@luisgb2212/table-customizable
Version:
Vue3 Datatable - fully customizable & easy to use datatable library
375 lines (374 loc) • 12.7 kB
TypeScript
export interface colDef {
isUnique?: boolean;
field?: string;
title?: string;
value?: any;
condition?: any;
type?: string;
width?: string | undefined;
minWidth?: string | undefined;
maxWidth?: string | undefined;
hide?: boolean;
filter?: boolean;
search?: boolean;
sort?: boolean;
html?: boolean;
cellRenderer?: [Function, string];
headerClass?: string;
cellClass?: string;
range?: boolean;
formatDate?: string;
filterColumns?: Array<string>;
}
export interface Props {
loading?: boolean;
isServerMode?: boolean;
skin?: string;
totalRows?: number;
rows?: Array<any>;
columns?: Array<colDef>;
hasCheckbox?: boolean;
search?: string;
columnChooser?: boolean;
page?: number;
pageSize?: number;
pageSizeOptions?: Array<number>;
showPageSize?: boolean;
rowClass?: [Array<string>, Function];
cellClass?: [Array<string>, Function];
sortable?: boolean;
sortColumn?: string;
sortDirection?: string;
columnFilter?: boolean;
columnFilterLang?: Record<string, string> | null;
pagination?: boolean;
showNumbers?: boolean;
showNumbersCount?: number;
showFirstPage?: boolean;
showLastPage?: boolean;
firstArrow?: string;
lastArrow?: string;
nextArrow?: string;
previousArrow?: string;
paginationInfo?: string;
noDataContent?: string;
stickyHeader?: boolean;
height?: string;
stickyFirstColumn?: boolean;
cloneHeaderInFooter?: boolean;
selectRowOnClick?: boolean;
fieldVerify?: string;
virifyClass?: string;
}
declare const _default: {
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
loading: boolean;
isServerMode: boolean;
skin: string;
totalRows: number;
rows: () => never[];
columns: () => never[];
hasCheckbox: boolean;
search: string;
columnChooser: boolean;
page: number;
pageSize: number;
pageSizeOptions: () => number[];
showPageSize: boolean;
rowClass: never;
cellClass: never;
cellRenderer: null;
sortable: boolean;
sortColumn: string;
sortDirection: string;
columnFilter: boolean;
columnFilterLang: null;
pagination: boolean;
showNumbers: boolean;
showNumbersCount: number;
showFirstPage: boolean;
showLastPage: boolean;
firstArrow: string;
lastArrow: string;
nextArrow: string;
previousArrow: string;
paginationInfo: string;
noDataContent: string;
stickyHeader: boolean;
height: string;
stickyFirstColumn: boolean;
cloneHeaderInFooter: boolean;
selectRowOnClick: boolean;
}>>> & Readonly<{
onFilterChange?: ((...args: any[]) => any) | undefined;
onSortChange?: ((...args: any[]) => any) | undefined;
onChange?: ((...args: any[]) => any) | undefined;
onSearchChange?: ((...args: any[]) => any) | undefined;
onPageChange?: ((...args: any[]) => any) | undefined;
onPageSizeChange?: ((...args: any[]) => any) | undefined;
onRowSelect?: ((...args: any[]) => any) | undefined;
onRowClick?: ((...args: any[]) => any) | undefined;
onRowDBClick?: ((...args: any[]) => any) | undefined;
}>, {
reset(): void;
getSelectedRows(): any[];
getColumnFilters(): colDef[];
clearSelectedRows(): void;
selectRow(index: number): void;
unselectRow(index: number): void;
isRowSelected(index: number): boolean;
getFilteredRows(): any[];
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "filterChange" | "sortChange" | "searchChange" | "pageChange" | "pageSizeChange" | "rowSelect" | "rowClick" | "rowDBClick")[], import("vue").PublicProps, {
search: string;
columnFilterLang: Record<string, string> | null;
loading: boolean;
isServerMode: boolean;
skin: string;
totalRows: number;
rows: any[];
columns: colDef[];
hasCheckbox: boolean;
columnChooser: boolean;
page: number;
pageSize: number;
pageSizeOptions: number[];
showPageSize: boolean;
rowClass: [string[], Function];
cellClass: [string[], Function];
sortable: boolean;
sortColumn: string;
sortDirection: string;
columnFilter: boolean;
pagination: boolean;
showNumbers: boolean;
showNumbersCount: number;
showFirstPage: boolean;
showLastPage: boolean;
firstArrow: string;
lastArrow: string;
nextArrow: string;
previousArrow: string;
paginationInfo: string;
noDataContent: string;
stickyHeader: boolean;
height: string;
stickyFirstColumn: boolean;
cloneHeaderInFooter: boolean;
selectRowOnClick: boolean;
}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
loading: boolean;
isServerMode: boolean;
skin: string;
totalRows: number;
rows: () => never[];
columns: () => never[];
hasCheckbox: boolean;
search: string;
columnChooser: boolean;
page: number;
pageSize: number;
pageSizeOptions: () => number[];
showPageSize: boolean;
rowClass: never;
cellClass: never;
cellRenderer: null;
sortable: boolean;
sortColumn: string;
sortDirection: string;
columnFilter: boolean;
columnFilterLang: null;
pagination: boolean;
showNumbers: boolean;
showNumbersCount: number;
showFirstPage: boolean;
showLastPage: boolean;
firstArrow: string;
lastArrow: string;
nextArrow: string;
previousArrow: string;
paginationInfo: string;
noDataContent: string;
stickyHeader: boolean;
height: string;
stickyFirstColumn: boolean;
cloneHeaderInFooter: boolean;
selectRowOnClick: boolean;
}>>> & Readonly<{
onFilterChange?: ((...args: any[]) => any) | undefined;
onSortChange?: ((...args: any[]) => any) | undefined;
onChange?: ((...args: any[]) => any) | undefined;
onSearchChange?: ((...args: any[]) => any) | undefined;
onPageChange?: ((...args: any[]) => any) | undefined;
onPageSizeChange?: ((...args: any[]) => any) | undefined;
onRowSelect?: ((...args: any[]) => any) | undefined;
onRowClick?: ((...args: any[]) => any) | undefined;
onRowDBClick?: ((...args: any[]) => any) | undefined;
}>, {
reset(): void;
getSelectedRows(): any[];
getColumnFilters(): colDef[];
clearSelectedRows(): void;
selectRow(index: number): void;
unselectRow(index: number): void;
isRowSelected(index: number): boolean;
getFilteredRows(): any[];
}, {}, {}, {}, {
search: string;
columnFilterLang: Record<string, string> | null;
loading: boolean;
isServerMode: boolean;
skin: string;
totalRows: number;
rows: any[];
columns: colDef[];
hasCheckbox: boolean;
columnChooser: boolean;
page: number;
pageSize: number;
pageSizeOptions: number[];
showPageSize: boolean;
rowClass: [string[], Function];
cellClass: [string[], Function];
sortable: boolean;
sortColumn: string;
sortDirection: string;
columnFilter: boolean;
pagination: boolean;
showNumbers: boolean;
showNumbersCount: number;
showFirstPage: boolean;
showLastPage: boolean;
firstArrow: string;
lastArrow: string;
nextArrow: string;
previousArrow: string;
paginationInfo: string;
noDataContent: string;
stickyHeader: boolean;
height: string;
stickyFirstColumn: boolean;
cloneHeaderInFooter: boolean;
selectRowOnClick: boolean;
}>;
__isFragment?: undefined;
__isTeleport?: undefined;
__isSuspense?: undefined;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
loading: boolean;
isServerMode: boolean;
skin: string;
totalRows: number;
rows: () => never[];
columns: () => never[];
hasCheckbox: boolean;
search: string;
columnChooser: boolean;
page: number;
pageSize: number;
pageSizeOptions: () => number[];
showPageSize: boolean;
rowClass: never;
cellClass: never;
cellRenderer: null;
sortable: boolean;
sortColumn: string;
sortDirection: string;
columnFilter: boolean;
columnFilterLang: null;
pagination: boolean;
showNumbers: boolean;
showNumbersCount: number;
showFirstPage: boolean;
showLastPage: boolean;
firstArrow: string;
lastArrow: string;
nextArrow: string;
previousArrow: string;
paginationInfo: string;
noDataContent: string;
stickyHeader: boolean;
height: string;
stickyFirstColumn: boolean;
cloneHeaderInFooter: boolean;
selectRowOnClick: boolean;
}>>> & Readonly<{
onFilterChange?: ((...args: any[]) => any) | undefined;
onSortChange?: ((...args: any[]) => any) | undefined;
onChange?: ((...args: any[]) => any) | undefined;
onSearchChange?: ((...args: any[]) => any) | undefined;
onPageChange?: ((...args: any[]) => any) | undefined;
onPageSizeChange?: ((...args: any[]) => any) | undefined;
onRowSelect?: ((...args: any[]) => any) | undefined;
onRowClick?: ((...args: any[]) => any) | undefined;
onRowDBClick?: ((...args: any[]) => any) | undefined;
}>, {
reset(): void;
getSelectedRows(): any[];
getColumnFilters(): colDef[];
clearSelectedRows(): void;
selectRow(index: number): void;
unselectRow(index: number): void;
isRowSelected(index: number): boolean;
getFilteredRows(): any[];
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "filterChange" | "sortChange" | "searchChange" | "pageChange" | "pageSizeChange" | "rowSelect" | "rowClick" | "rowDBClick")[], "change" | "filterChange" | "sortChange" | "searchChange" | "pageChange" | "pageSizeChange" | "rowSelect" | "rowClick" | "rowDBClick", {
search: string;
columnFilterLang: Record<string, string> | null;
loading: boolean;
isServerMode: boolean;
skin: string;
totalRows: number;
rows: any[];
columns: colDef[];
hasCheckbox: boolean;
columnChooser: boolean;
page: number;
pageSize: number;
pageSizeOptions: number[];
showPageSize: boolean;
rowClass: [string[], Function];
cellClass: [string[], Function];
sortable: boolean;
sortColumn: string;
sortDirection: string;
columnFilter: boolean;
pagination: boolean;
showNumbers: boolean;
showNumbersCount: number;
showFirstPage: boolean;
showLastPage: boolean;
firstArrow: string;
lastArrow: string;
nextArrow: string;
previousArrow: string;
paginationInfo: string;
noDataContent: string;
stickyHeader: boolean;
height: string;
stickyFirstColumn: boolean;
cloneHeaderInFooter: boolean;
selectRowOnClick: boolean;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
$slots: any;
});
export default _default;
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
type __VLS_TypePropsToRuntimeProps<T> = {
[K in keyof T]-?: {} extends Pick<T, K> ? {
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
} : {
type: import('vue').PropType<T[K]>;
required: true;
};
};
type __VLS_WithDefaults<P, D> = {
[K in keyof Pick<P, keyof P>]: K extends keyof D ? P[K] & {
default: D[K];
} : P[K];
};