pagamio-frontend-commons-lib
Version:
Pagamio library for Frontend reusable components like the form engine and table container
58 lines (57 loc) • 1.6 kB
TypeScript
import { type MRT_ColumnDef } from 'mantine-react-table';
import React from 'react';
export type ExtraOption = {
value: string;
label: React.ReactNode;
onClick: () => void;
};
interface ThemeColors {
primary: {
500: string;
600: string;
700: string;
};
core: {
primary: string;
secondary: string;
};
}
interface PdfExportOptions {
title?: string;
subtitle?: string;
colors?: ThemeColors;
logo?: {
url: string;
width?: number;
height?: number;
};
}
interface XlsxExportOptions {
title?: string;
subtitle?: string;
colors?: ThemeColors;
sheetName?: string;
includeTimestamp?: boolean;
autoFitColumns?: boolean;
}
interface CsvExportOptions {
title?: string;
includeTimestamp?: boolean;
includeHeaders?: boolean;
delimiter?: string;
filename?: string;
}
type ExportDropdownProps<T extends Record<string, any>> = {
data: T[];
columns: MRT_ColumnDef<T>[];
containerClassName?: string;
buttonClassName?: string;
extraOptions?: ExtraOption[];
pdfOptions?: PdfExportOptions;
xlsxOptions?: XlsxExportOptions;
csvOptions?: CsvExportOptions;
exportAll?: boolean;
fetchData?: (params?: Record<string, string>) => Promise<T[]>;
};
declare const ExportDropdown: <T extends Record<string, any>>({ data, columns, containerClassName, buttonClassName, extraOptions, pdfOptions, xlsxOptions, csvOptions, exportAll, fetchData, }: ExportDropdownProps<T>) => import("react/jsx-runtime").JSX.Element;
export default ExportDropdown;