import { GetDataFn, Table, TableRow } from "./table"; import { ITableOptions } from "./table-interfaces"; import { SurveyModel, Event, ITheme } from "survey-core"; import { IColumnData, QuestionLocation } from "./config"; import type { DownloadType, SortDirection, TabulatorFull } from "tabulator-tables"; import { DashboardTheme } from "../theme"; import "./tabulator.scss"; interface ITabulatorOptions extends ITableOptions { tabulatorOptions?: any; downloadHiddenColumns?: boolean; actionsColumnWidth?: number; columnMinWidth?: number; downloadButtons?: Array; 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; type TabulatorConstuctor = { new (...args: TabulatorParameters): TabulatorFull; }; export declare class Tabulator extends Table { private _appliedTheme; private _theme; private static tabulatorTablesConstructor; static initTabulatorConstructor(tabulatorTablesConstructor: TabulatorConstuctor): void; static set haveCommercialLicense(val: boolean); onAfterRender: Event<(sender: Table, options: any) => any, Table, any>; protected afterRender(contentContainer: HTMLElement): void; constructor(survey: SurveyModel, data: Array | GetDataFn, options?: ITabulatorOptions, _columnsData?: Array); private readonly COLUMN_MIN_WIDTH; tabulatorTables: TabulatorFull; private tableContainer; private currentDownloadType; protected supportSoftRefresh(): boolean; protected softRefresh(): void; render(targetNode: HTMLElement | string): void; private createDownloadsBar; destroy: () => void; private columnMovedCallback; private columnResizedCallback; private rowFormatter; private getNestedCellDisplayValue; private createNestedTable; private createNestedTableFormatter; private formatNestedDataForExport; private accessorDownload; private processTitle; private getTitleFormatter; private getHeaderActions; getColumns(): Array; setColumnVisibility(columnName: string, isVisible: boolean): void; protected setAllColumnsVisibility(isVisible: boolean): void; private applyColumnVisibility; 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; get theme(): DashboardTheme; set theme(theme: DashboardTheme); /** * Applies a theme to the Dashboard. * @param theme An [`ITheme`](https://surveyjs.io/form-library/documentation/api-reference/itheme) object with theme settings. * @param baseTheme An optional [`ITheme`](https://surveyjs.io/form-library/documentation/api-reference/itheme) object used as the base theme. When specified, it is deep-merged with `theme`, and the merged result is applied. * @since 3.0.0 */ applyTheme(theme: ITheme, baseTheme?: ITheme): void; } 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; render(): void; remove(): void; } export {};