survey-analytics
Version:
SurveyJS analytics Library.
96 lines (95 loc) • 3.39 kB
TypeScript
import { GetDataFn, ITableOptions, Table, TableRow } from "./table";
import { SurveyModel } from "survey-core";
import { IColumnData, QuestionLocation } from "./config";
import type { DownloadType, SortDirection, TabulatorFull } from "tabulator-tables";
import "./tabulator.scss";
interface ITabulatorOptions extends ITableOptions {
tabulatorOptions?: any;
downloadHiddenColumns?: boolean;
actionsColumnWidth?: number;
columnMinWidth?: number;
downloadButtons?: Array<string>;
downloadOptions?: {
[type: string]: any;
};
onDownloadCallbacks?: {
[type: string]: (tabulator: Tabulator, options: any) => void;
};
xlsx?: any;
jspdf?: any;
}
export declare const defaultDownloadOptions: {
fileName: string;
pdf: {
orientation: string;
autoTable: (doc: any) => {
styles: {
font: string;
fontStyle: string;
minCellWidth: number;
};
margin: {
top: number;
right: number;
bottom: number;
left: number;
};
};
};
csv: {
delimiter: string;
};
xlsx: {
sheetName: string;
};
};
export declare const defaultOptions: ITabulatorOptions;
type TabulatorParameters = ConstructorParameters<typeof TabulatorFull>;
type TabulatorConstuctor = {
new (...args: TabulatorParameters): TabulatorFull;
};
export declare class Tabulator extends Table {
private static tabulatorTablesConstructor;
static initTabulatorConstructor(tabulatorTablesConstructor: TabulatorConstuctor): void;
static set haveCommercialLicense(val: boolean);
constructor(survey: SurveyModel, data: Array<Object> | GetDataFn, options?: ITabulatorOptions, _columnsData?: Array<IColumnData>);
private readonly COLUMN_MIN_WIDTH;
tabulatorTables: TabulatorFull;
private tableContainer;
private currentDownloadType;
render(targetNode: HTMLElement | string): void;
private createDownloadsBar;
destroy: () => void;
private columnMovedCallback;
private columnResizedCallback;
private rowFormatter;
private accessorDownload;
private getTitleFormatter;
private getHeaderActions;
getColumns(): Array<any>;
setColumnVisibility(columnName: string, isVisible: boolean): void;
setColumnLocation(columnName: string, location: QuestionLocation): void;
setColumnWidth(columnName: string, width: number): void;
sortByColumn(columnName: string, direction: SortDirection): void;
applyColumnFilter(columnName: string, value: string): void;
applyFilter(value: string): void;
getPageNumber(): number;
setPageNumber(value: number): void;
setPageSize(value: number): void;
private getDownloadOptions;
download(type: DownloadType): void;
layout(hard?: boolean): void;
protected processLoadedDataItem(item: any): any;
}
export declare class TabulatorRow extends TableRow {
protected table: Table;
protected extensionsContainer: HTMLElement;
protected detailsContainer: HTMLElement;
protected innerRow: any;
constructor(table: Table, extensionsContainer: HTMLElement, detailsContainer: HTMLElement, innerRow: any);
getElement(): HTMLElement;
getRowData(): HTMLElement;
getDataPosition(): number;
remove(): void;
}
export {};