react-csv-importer
Version:
React CSV import widget with user-customizable mapping
130 lines (126 loc) • 4 kB
TypeScript
// Generated by dts-bundle-generator v6.4.0
import React from 'react';
export interface ImporterLocale {
general: {
goToPreviousStepTooltip: string;
};
fileStep: {
initialDragDropPrompt: string;
activeDragDropPrompt: string;
getImportError: (message: string) => string;
getDataFormatError: (message: string) => string;
goBackButton: string;
nextButton: string;
rawFileContentsHeading: string;
previewImportHeading: string;
dataHasHeadersCheckbox: string;
previewLoadingStatus: string;
};
fieldsStep: {
stepSubtitle: string;
requiredFieldsError: string;
nextButton: string;
dragSourceAreaCaption: string;
getDragSourcePageIndicator: (currentPage: number, pageCount: number) => string;
getDragSourceActiveStatus: (columnCode: string) => string;
nextColumnsTooltip: string;
previousColumnsTooltip: string;
clearAssignmentTooltip: string;
selectColumnTooltip: string;
unselectColumnTooltip: string;
dragTargetAreaCaption: string;
getDragTargetOptionalCaption: (field: string) => string;
getDragTargetRequiredCaption: (field: string) => string;
dragTargetPlaceholder: string;
getDragTargetAssignTooltip: (columnCode: string) => string;
dragTargetClearTooltip: string;
columnCardDummyHeader: string;
getColumnCardHeader: (code: string) => string;
};
progressStep: {
stepSubtitle: string;
uploadMoreButton: string;
finishButton: string;
statusError: string;
statusComplete: string;
statusPending: string;
processedRowsLabel: string;
};
}
export declare const enUS: ImporterLocale;
export declare const deDE: ImporterLocale;
export declare const itIT: ImporterLocale;
export declare const ptBR: ImporterLocale;
export declare const daDK: ImporterLocale;
export declare const trTR: ImporterLocale;
export interface CustomizablePapaParseConfig {
delimiter?: Papa.ParseConfig["delimiter"];
newline?: Papa.ParseConfig["newline"];
quoteChar?: Papa.ParseConfig["quoteChar"];
escapeChar?: Papa.ParseConfig["escapeChar"];
comments?: Papa.ParseConfig["comments"];
skipEmptyLines?: Papa.ParseConfig["skipEmptyLines"];
delimitersToGuess?: Papa.ParseConfig["delimitersToGuess"];
chunkSize?: Papa.ParseConfig["chunkSize"];
encoding?: Papa.ParseConfig["encoding"];
}
export declare type BaseRow = {
[name: string]: unknown;
};
export declare type ParseCallback<Row extends BaseRow> = (rows: Row[], info: {
startIndex: number;
}) => void | Promise<void>;
export interface ImporterPreviewColumn {
index: number;
header?: string;
values: string[];
}
export interface ImporterFilePreview {
rawData: string;
columns: ImporterPreviewColumn[];
skipHeaders: boolean;
parseWarning?: Papa.ParseError;
}
export interface ImportInfo {
file: File;
preview: ImporterFilePreview;
fields: string[];
columnFields: (string | undefined)[];
}
export declare type ImporterContentRenderProp = (info: {
file: File | null;
preview: ImporterFilePreview | null;
}) => React.ReactNode;
export interface ImporterFieldProps {
name: string;
label: string;
optional?: boolean;
}
export declare type ImporterDataHandlerProps<Row extends BaseRow> = {
dataHandler: ParseCallback<Row>;
processChunk?: undefined;
} | {
/**
* @deprecated renamed to `dataHandler`
*/
processChunk: ParseCallback<Row>;
dataHandler?: undefined;
};
export declare type ImporterProps<Row extends BaseRow> = ImporterDataHandlerProps<Row> & {
defaultNoHeader?: boolean;
/**
* @deprecated renamed to `defaultNoHeader`
*/
assumeNoHeaders?: boolean;
displayColumnPageSize?: number;
displayFieldRowSize?: number;
restartable?: boolean;
onStart?: (info: ImportInfo) => void;
onComplete?: (info: ImportInfo) => void;
onClose?: (info: ImportInfo) => void;
children?: ImporterContentRenderProp | React.ReactNode;
locale?: ImporterLocale;
} & CustomizablePapaParseConfig;
export declare const ImporterField: React.FC<ImporterFieldProps>;
export declare function Importer<Row extends BaseRow>(props: ImporterProps<Row>): React.ReactElement;
export {};