pdfkit-table-ts
Advanced tools
Comparing version 0.0.11 to 0.0.13
declare const PDFDocumentSource: any; | ||
import { Data, Divider, Header, Options, Padding, Rect, Table, Title } from "./types"; | ||
export interface IFillAndOpacity { | ||
import { IData, IDivider, IHeader, IOptions, IPadding, IRect, ITable, ITitle } from "./types"; | ||
interface IIFillAndOpacity { | ||
fill: string | undefined; | ||
opacity: number | undefined; | ||
} | ||
export interface IOptions { | ||
title?: string | Title; | ||
subtitle?: string | Title; | ||
interface IIOptions { | ||
title?: string | ITitle; | ||
subtitle?: string | ITitle; | ||
width?: number; | ||
x?: number | null; | ||
y?: number; | ||
divider?: Divider | undefined; | ||
divider?: IDivider | undefined; | ||
columnsSize?: number[]; | ||
padding?: number[] | Padding; | ||
padding?: number[] | IPadding; | ||
hideHeader?: boolean; | ||
minRowHeight?: number; | ||
prepareHeader: () => any; | ||
prepareRow: (row: any, indexColumn?: number, indexRow?: number, rectRow?: Rect, rectCell?: Rect) => any; | ||
prepareRow: (row: any, indexColumn?: number, indexRow?: number, rectRow?: IRect, rectCell?: IRect) => any; | ||
} | ||
interface ICalcRowHeightOptions { | ||
interface IICalcRowHeightOptions { | ||
align?: string; | ||
@@ -26,9 +26,9 @@ isHeader?: boolean; | ||
} | ||
interface IPdfkitTableCache { | ||
title: string | Title; | ||
subtitle: string | Title; | ||
headers: (string | Header)[]; | ||
datas: Data[]; | ||
interface IIPdfkitTableCache { | ||
title: string | ITitle; | ||
subtitle: string | ITitle; | ||
headers: (string | IHeader)[]; | ||
datas: IData[]; | ||
rows: string[][]; | ||
options: IOptions; | ||
options: IIOptions; | ||
table: { | ||
@@ -46,6 +46,6 @@ width: number; | ||
declare class PDFDocument extends PDFDocumentSource { | ||
pdfkitTableCache: IPdfkitTableCache; | ||
pdfkitTableCache: IIPdfkitTableCache; | ||
constructor(option?: any); | ||
initValidates(): void; | ||
initCalcs(): void; | ||
private initValidates; | ||
private initCalcs; | ||
resetPeerTable(): void; | ||
@@ -57,17 +57,17 @@ resetPeerPage(): void; | ||
prepareRowOptions(row: any): void; | ||
prepareRowFillOptionsHeader: (object: any) => IFillAndOpacity; | ||
prepareRowFillOptionsData: (object: any) => IFillAndOpacity; | ||
prepareCellPadding(p: number | number[]): Padding; | ||
prepareRowFillOptionsHeader: (object: any) => IIFillAndOpacity; | ||
prepareRowFillOptionsData: (object: any) => IIFillAndOpacity; | ||
prepareCellPadding(p: number | number[]): IPadding; | ||
addPageAsync(): Promise<void>; | ||
pageAddedFire(): Promise<void>; | ||
createFill(rect: Rect, fillColor?: string, fillOpacity?: number): Promise<void>; | ||
addBackground: (rect: Rect, fillColor?: string | undefined, fillOpacity?: number | undefined) => Promise<void>; | ||
createFill(rect: IRect, fillColor?: string, fillOpacity?: number): Promise<void>; | ||
addBackground: (rect: IRect, fillColor?: string | undefined, fillOpacity?: number | undefined) => Promise<void>; | ||
createDivider(type: string, x: number, y: number, strokeWidth?: number, strokeOpacity?: number, strokeDisabled?: boolean, strokeColor?: string): void; | ||
createTitles(): Promise<unknown>; | ||
createTitle(data: string | Title | undefined, size?: number, opacity?: number, isTitle?: boolean): Promise<void>; | ||
createTitle(data: string | ITitle | undefined, size?: number, opacity?: number, isTitle?: boolean): Promise<void>; | ||
createHeader(): Promise<void>; | ||
createRowString(data: any): Promise<void>; | ||
createRowObject(data: any): Promise<void>; | ||
calcRowHeightString(row: any, opt: ICalcRowHeightOptions): Promise<number | any>; | ||
calcRowHeightObject(row: any, opt: ICalcRowHeightOptions): Promise<number | any[]>; | ||
calcRowHeightString(row: any, opt: IICalcRowHeightOptions): Promise<number | any>; | ||
calcRowHeightObject(row: any, opt: IICalcRowHeightOptions): Promise<number | any[]>; | ||
calcTitleSubtitleHeaderAndFirstLine(): Promise<number>; | ||
@@ -85,3 +85,3 @@ calcLimitCellOnPage(y: number, height: number): boolean; | ||
}; | ||
table(table: Table, options: Options, callback?: Function): Promise<{ | ||
table(table: ITable, options: IOptions, callback?: Function): Promise<{ | ||
y: any; | ||
@@ -95,3 +95,3 @@ x: any; | ||
}>; | ||
tables(tables: Table[], callback?: Function): Promise<unknown>; | ||
tables(tables: ITable[], callback?: Function): Promise<unknown>; | ||
logg(...args: any[]): void; | ||
@@ -98,0 +98,0 @@ } |
@@ -104,7 +104,7 @@ "use strict"; | ||
this.positionY = (this.pdfkitTableCache.options.y || this.y) + (this.pdfkitTableCache.distanceCorrection * 2); | ||
this.titleHeight = this.pdfkitTableCache.title ? 15 : (this.pdfkitTableCache.options.title ? 15 : 0); | ||
this.subtitleHeight = this.pdfkitTableCache.subtitle ? 10 : (this.pdfkitTableCache.options.subtitle ? 10 : 0); | ||
this.titleHeight = this.pdfkitTableCache.title ? 20 : (this.pdfkitTableCache.options.title ? 20 : 0); | ||
this.subtitleHeight = this.pdfkitTableCache.subtitle ? 15 : (this.pdfkitTableCache.options.subtitle ? 15 : 0); | ||
this.headerHeight = 0; | ||
this.headerHeightAndFirstLine = 0; | ||
this.headerHeightAndFirstLineAndTitleCalc = 0; | ||
this.firstLineHeight = 0; | ||
this.titleAndHeaderAndFirstLineHeightCalc = 0; | ||
this.rowHeight = 0; | ||
@@ -322,4 +322,4 @@ this.minRowHeight = this.pdfkitTableCache.options.minRowHeight || 0; | ||
subtitle || (subtitle = this.pdfkitTableCache.options.subtitle); | ||
const calc = yield this.calcTitleSubtitleHeaderAndFirstLine(); | ||
if (this.calcLimitCellOnPage(0, calc)) { | ||
this.titleAndHeaderAndFirstLineHeightCalc = yield this.calcTitleSubtitleHeaderAndFirstLine(); | ||
if (this.calcLimitCellOnPage(0, this.titleAndHeaderAndFirstLineHeightCalc)) { | ||
this.doNotCreateHeader = true; | ||
@@ -344,3 +344,3 @@ yield this.addPageAsync(); | ||
const { x, y } = this.pdfkitTableCache.options; | ||
let titleHeight; | ||
let titleHeight = 0; | ||
this.save(); | ||
@@ -394,10 +394,17 @@ if (typeof data === 'string') { | ||
yield this.pdfkitTableCache.options.prepareHeader(); | ||
this.headerHeightAndFirstLineAndTitleCalc = yield this.calcTitleSubtitleHeaderAndFirstLine(); | ||
if (this.headerHeightAndFirstLine > this.pdfkitTableCache.safelyPageY) { | ||
if (this.titleAndHeaderAndFirstLineHeightCalc === 0) { | ||
this.titleAndHeaderAndFirstLineHeightCalc = yield this.calcTitleSubtitleHeaderAndFirstLine(); | ||
} | ||
if (this.positionY + this.titleAndHeaderAndFirstLineHeightCalc > this.pdfkitTableCache.safelyPageY) { | ||
const err = 'CRAZY! This a big text on cell'; | ||
this.logg(err); | ||
yield this.addPageAsync(); | ||
yield this.createHeader(); | ||
resolve(); | ||
return; | ||
} | ||
else if (this.headerHeightAndFirstLineAndTitleCalc > this.pdfkitTableCache.safelyPageY) { | ||
else if (this.titleAndHeaderAndFirstLineHeightCalc > this.pdfkitTableCache.safelyPageHeight) { | ||
this.logg('addPage'); | ||
yield this.addPageAsync(); | ||
yield this.createHeader(); | ||
resolve(); | ||
@@ -526,3 +533,4 @@ return; | ||
const distance = this.pdfkitTableCache.distanceCorrection / 2; | ||
let rowIndex, colIndex; | ||
let rowIndex = 0; | ||
let colIndex = 0; | ||
let rowLen = datas.length || 0; | ||
@@ -789,19 +797,18 @@ let colLen = this.pdfkitTableCache.table.columns || 0; | ||
} | ||
if (this.headerHeightAndFirstLine === 0) { | ||
if (this.firstLineHeight === 0) { | ||
if (datas.length > 0) { | ||
this.headerHeightAndFirstLine = Number(yield this.calcRowHeightObject(datas[0], { isHeader: true })); | ||
this.logg(this.headerHeightAndFirstLine, 'datas'); | ||
this.firstLineHeight = Number(yield this.calcRowHeightObject(datas[0], { isHeader: true })); | ||
this.logg(this.firstLineHeight, 'datas'); | ||
} | ||
else if (rows.length > 0) { | ||
this.headerHeightAndFirstLine = Number(yield this.calcRowHeightString(rows[0], { isHeader: true })); | ||
this.logg(this.headerHeightAndFirstLine, 'rows'); | ||
this.firstLineHeight = Number(yield this.calcRowHeightString(rows[0], { isHeader: true })); | ||
this.logg(this.firstLineHeight, 'rows'); | ||
} | ||
} | ||
this.headerHeightAndFirstLineAndTitleCalc = | ||
this.titleHeight + | ||
this.subtitleHeight + | ||
this.headerHeightAndFirstLine + | ||
this.headerHeight + | ||
(this.pdfkitTableCache.distanceCorrection * 2); | ||
resolve(this.headerHeightAndFirstLineAndTitleCalc); | ||
const calc = (this.titleHeight + | ||
this.subtitleHeight + | ||
this.headerHeight + | ||
this.firstLineHeight + | ||
(this.pdfkitTableCache.distanceCorrection * 2)); | ||
resolve(calc); | ||
return; | ||
@@ -808,0 +815,0 @@ } |
@@ -1,2 +0,2 @@ | ||
export declare type Padding = { | ||
export declare type IPadding = { | ||
top: number; | ||
@@ -7,3 +7,3 @@ right: number; | ||
}; | ||
export declare type Rect = { | ||
export declare type IRect = { | ||
x: number; | ||
@@ -14,3 +14,3 @@ y: number; | ||
}; | ||
export interface Header { | ||
export interface IHeader { | ||
label: string; | ||
@@ -26,5 +26,5 @@ property: string; | ||
columnOpacity?: number; | ||
renderer?: (value: any, indexColumn?: number, indexRow?: number, row?: number, rectRow?: Rect, rectCell?: Rect) => string; | ||
renderer?: (value: any, indexColumn?: number, indexRow?: number, row?: number, rectRow?: IRect, rectCell?: IRect) => string; | ||
} | ||
export interface DataOptions { | ||
export interface IDataOptions { | ||
fontSize: number; | ||
@@ -34,10 +34,10 @@ fontFamily: string; | ||
} | ||
export interface ObjectData { | ||
export interface IObjectData { | ||
label: string; | ||
options: DataOptions; | ||
options: IDataOptions; | ||
} | ||
export interface Data { | ||
[key: string]: (string | number | boolean | null) | ObjectData; | ||
export interface IData { | ||
[key: string]: (string | number | boolean | null | IObjectData); | ||
} | ||
export interface DividerOptions { | ||
export interface IDividerOptions { | ||
disabled?: boolean; | ||
@@ -48,7 +48,7 @@ width?: number; | ||
} | ||
export interface Divider { | ||
header: DividerOptions; | ||
horizontal: DividerOptions; | ||
export interface IDivider { | ||
header: IDividerOptions; | ||
horizontal: IDividerOptions; | ||
} | ||
export interface Title { | ||
export interface ITitle { | ||
label: string; | ||
@@ -59,24 +59,24 @@ fontSize?: number; | ||
} | ||
export interface Table { | ||
title?: string | Title; | ||
subtitle?: string | Title; | ||
headers: (string | Header)[]; | ||
datas?: Data[]; | ||
export interface ITable { | ||
title?: string | ITitle; | ||
subtitle?: string | ITitle; | ||
headers: (string | IHeader)[]; | ||
datas?: IData[]; | ||
rows?: string[][]; | ||
options?: Options; | ||
options?: IOptions; | ||
} | ||
export interface Options { | ||
title?: string | Title; | ||
subtitle?: string | Title; | ||
export interface IOptions { | ||
title?: string | ITitle; | ||
subtitle?: string | ITitle; | ||
width?: number; | ||
x?: number | null; | ||
y?: number; | ||
divider?: Divider | undefined; | ||
divider?: IDivider; | ||
columnsSize?: number[]; | ||
padding?: number[] | Padding; | ||
padding?: number[] | IPadding; | ||
hideHeader?: boolean; | ||
minRowHeight?: number; | ||
prepareHeader?: () => any; | ||
prepareRow?: (row: number, indexColumn?: number, indexRow?: number, rectRow?: Rect, rectCell?: Rect) => () => any; | ||
prepareRow?: (row: number, indexColumn?: number, indexRow?: number, rectRow?: IRect, rectCell?: IRect) => any; | ||
} | ||
//# sourceMappingURL=types.d.ts.map |
{ | ||
"name": "pdfkit-table-ts", | ||
"version": "0.0.11", | ||
"version": "0.0.13", | ||
"description": "PdfKit Table. Helps to draw informations in simple tables using pdfkit. #server-side. Generate pdf tables with javascript (PDFKIT plugin) ", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
105612
1163