UNPKG

4.88 kBTypeScriptView Raw
1// Generated by dts-bundle-generator v4.0.0
2
3export declare type HookHandler = (data: HookData) => void | boolean;
4export declare type CellHookHandler = (data: CellHookData) => void | boolean;
5declare class CellHooks {
6 didParseCell: CellHookHandler[];
7 willDrawCell: CellHookHandler[];
8 didDrawCell: CellHookHandler[];
9 didDrawPage: HookHandler[];
10}
11declare class Table {
12 id?: any;
13 cursor: {
14 x: number;
15 y: number;
16 };
17 doc: any;
18 userStyles: {};
19 settings: any;
20 columns: Column[];
21 head: Row[];
22 body: Row[];
23 foot: Row[];
24 height: number;
25 width: number;
26 preferredWidth: number;
27 wrappedWidth: number;
28 minWidth: number;
29 headHeight: number;
30 footHeight: number;
31 startPageNumber: number;
32 pageNumber: number;
33 pageCount: number;
34 pageStartX: number;
35 pageStartY: number;
36 finalY: number;
37 styles: {
38 styles: {};
39 headStyles: {};
40 bodyStyles: {};
41 footStyles: {};
42 alternateRowStyles: {};
43 columnStyles: {};
44 };
45 cellHooks: CellHooks;
46 allRows(): Row[];
47 callCellHooks(handlers: HookHandler[], cell: Cell, row: Row, column: Column): boolean;
48 callEndPageHooks(): void;
49 margin(side: any): any;
50}
51declare class Row {
52 raw: HTMLTableRowElement | any;
53 index: number;
54 cells: {};
55 section: 'head' | 'body' | 'foot';
56 height: number;
57 maxCellHeight: number;
58 x: number;
59 y: number;
60 spansMultiplePages: boolean;
61 constructor(raw: any, index: any, section: any);
62 canEntireRowFit(height: any): boolean;
63 getMinimumRowHeight(): any;
64}
65declare class Cell {
66 raw: HTMLTableCellElement | any;
67 styles: any;
68 text: string[];
69 section: 'head' | 'body' | 'foot';
70 contentHeight: number;
71 contentWidth: number;
72 wrappedWidth: number;
73 minWidth: number;
74 textPos: {};
75 height: number;
76 width: number;
77 x: number;
78 y: number;
79 colSpan: number;
80 rowSpan: number;
81 constructor(raw: any, themeStyles: any, section: any);
82 getContentHeight(): any;
83 padding(name: any): any;
84}
85declare class Column {
86 raw: any;
87 dataKey: string | number;
88 index: number;
89 preferredWidth: number;
90 minWidth: number;
91 wrappedWidth: number;
92 width: number;
93 constructor(dataKey: any, raw: any, index: any);
94}
95declare class HookData {
96 table: Table;
97 pageNumber: number;
98 pageCount: number;
99 settings: any;
100 doc: any;
101 cursor: {
102 x: number;
103 y: number;
104 };
105 constructor();
106}
107declare class CellHookData extends HookData {
108 cell: Cell;
109 row: Row;
110 column: Column;
111 section: 'head' | 'body' | 'foot';
112 constructor(cell: Cell, row: Row, column: Column);
113}
114export interface ColumnOption {
115 header?: string;
116 title?: string;
117 footer?: string;
118 dataKey?: string | number;
119}
120export declare type UserOptions = HTMLConfig | ContentConfig | ColumnDataConfig;
121export declare type Color = [number, number, number] | number | 'transparent' | false;
122export declare type MarginPadding = number | {
123 top?: number;
124 right?: number;
125 bottom?: number;
126 left?: number;
127};
128export interface Styles {
129 font?: 'helvetica' | 'times' | 'courier' | string;
130 fontStyle?: 'normal' | 'bold' | 'italic' | 'bolditalic';
131 overflow?: 'linebreak' | 'ellipsize' | 'visible' | 'hidden';
132 fillColor?: Color;
133 textColor?: Color;
134 halign?: 'left' | 'center' | 'right' | 'justify';
135 valign?: 'top' | 'middle' | 'bottom';
136 fontSize?: number;
137 cellPadding?: number;
138 lineColor?: Color;
139 lineWidth?: number;
140 cellWidth?: 'auto' | 'wrap' | number;
141 minCellHeight?: number;
142}
143export interface CellDefinition {
144 rowSpan?: number;
145 colSpan?: number;
146 styles?: Styles;
147 content?: string | string[] | number;
148}
149export declare type CellType = null | string | number | boolean | CellDefinition;
150export declare type MultipleRowType = CellType[][] | {
151 string: CellType;
152}[];
153export declare type SingleRowType = CellType[] | {
154 string: CellType;
155};
156export interface BaseConfig {
157 theme?: 'striped' | 'grid' | 'plain';
158 startY?: number;
159 margin?: MarginPadding;
160 pageBreak?: 'auto' | 'avoid' | 'always';
161 rowPageBreak?: 'auto' | 'avoid';
162 tableWidth?: 'auto' | 'wrap' | number;
163 showHead?: 'everyPage' | 'firstPage' | 'never';
164 showFoot?: 'everyPage' | 'lastPage' | 'never';
165 tableLineWidth?: number;
166 tableLineColor?: Color;
167 tableId?: any;
168 styles?: Styles;
169 bodyStyles?: Styles;
170 headStyles?: Styles;
171 footStyles?: Styles;
172 alternateRowStyles?: Styles;
173 columnStyles?: {
174 [key: string]: Styles;
175 };
176 didParseCell?: (data: CellHookData) => void;
177 willDrawCell?: (data: CellHookData) => void;
178 didDrawCell?: (data: CellHookData) => void;
179 didDrawPage?: (data: CellHookData) => void;
180}
181export interface ContentConfig extends BaseConfig {
182 head?: SingleRowType | MultipleRowType;
183 foot?: SingleRowType | MultipleRowType;
184 body: MultipleRowType;
185}
186export interface ColumnDataConfig extends BaseConfig {
187 columns?: ColumnOption[];
188 body: object[];
189}
190export interface HTMLConfig extends BaseConfig {
191 html: string | HTMLElement;
192}
193export declare function applyPlugin(jsPDF: any): void;
194export declare type autoTable = (options: UserOptions) => void;
195
196export {};