ivt
Version:
Ivt Components Library
51 lines (45 loc) • 1.79 kB
TypeScript
import { Table } from '@tanstack/react-table';
import React__default from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';
type FormatterFn<T> = (value: unknown, originalRow: T) => string | number | null;
interface ExportConfig<TData> {
exportableFields: readonly string[];
columnMapping: Partial<Record<string, string>>;
fieldFormatters?: Partial<Record<string, FormatterFn<TData>>>;
defaultFileName: string;
worksheetName: string;
emptyMessage?: string;
}
interface ButtonExportCsvProps<TData extends object> {
table: Table<TData>;
disabled?: boolean;
action?: () => void;
fileName?: string;
config?: ExportConfig<TData>;
text?: string;
rowsToExport?: TData[];
}
declare const ButtonExportCsv: <TData extends object>({ table, disabled, action, fileName, config, text, rowsToExport, }: ButtonExportCsvProps<TData>) => React__default.ReactElement;
interface ButtonExportXlsProps<TData extends object> {
table: Table<TData>;
disabled?: boolean;
action?: () => void;
fileName?: string;
config: ExportConfig<TData>;
text?: string;
rowsToExport?: TData[];
}
declare const ButtonExportXls: <TData extends object>({ table, disabled, action, fileName, config, text, rowsToExport, }: ButtonExportXlsProps<TData>) => React__default.JSX.Element;
interface ExportOption {
label: string;
onExport: () => Promise<void> | void;
disabled?: boolean;
}
interface ExportButtonsProps {
options: ExportOption[];
buttonLabel?: string;
disabledButtons?: boolean;
}
declare function ExportButtons({ options, buttonLabel, disabledButtons, }: ExportButtonsProps): react_jsx_runtime.JSX.Element | null;
export { ButtonExportCsv, ButtonExportXls, ExportButtons };
export type { ExportOption };