fix: regression generate pdf
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import { AbstractElement } from './elements/abstract-element';
|
import { AbstractElement } from './elements/abstract-element';
|
||||||
|
import { GenerateTypeEnum } from './elements/generate-type.enum';
|
||||||
|
|
||||||
export abstract class AbstractBuilder {
|
export abstract class AbstractBuilder {
|
||||||
public abstract build(elements: AbstractElement[]);
|
public abstract build(elements: AbstractElement[]);
|
||||||
@@ -8,4 +9,6 @@ export abstract class AbstractBuilder {
|
|||||||
public abstract save(name: string);
|
public abstract save(name: string);
|
||||||
|
|
||||||
public abstract getImageScale(): number;
|
public abstract getImageScale(): number;
|
||||||
|
|
||||||
|
public abstract getGenerateType(): GenerateTypeEnum;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { AbstractElement } from './abstract-element';
|
import { AbstractElement } from './abstract-element';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export abstract class AbstractContainerElement extends AbstractElement {
|
export abstract class AbstractContainerElement extends AbstractElement {
|
||||||
public pdfElements: AbstractElement[] = [];
|
public pdfElements: AbstractElement[] = [];
|
||||||
@@ -7,22 +8,24 @@ export abstract class AbstractContainerElement extends AbstractElement {
|
|||||||
public contextElements: AbstractElement[] = [];
|
public contextElements: AbstractElement[] = [];
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
maxWidth: number | undefined,
|
maxWidth: number | undefined,
|
||||||
elements: AbstractElement[] = [],
|
elements: AbstractElement[] = [],
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, maxWidth, context);
|
super(globalType, x, y, maxWidth, context);
|
||||||
this.htmlElements = this.context.isHtml
|
this.htmlElements = this.context.isHtml
|
||||||
? elements.filter((el) => el.context.isHtml)
|
? elements.filter((el) => el.context.isHtml)
|
||||||
: [];
|
: [];
|
||||||
this.pdfElements = this.context.isPdf
|
this.pdfElements = this.context.isPdf
|
||||||
? elements.filter((el) => el.context.isPdf)
|
? elements.filter((el) => el.context.isPdf)
|
||||||
: [];
|
: [];
|
||||||
this.contextElements = this.context.isHtml
|
this.contextElements =
|
||||||
? this.htmlElements
|
this.globalType === GenerateTypeEnum.HTML
|
||||||
: this.pdfElements;
|
? this.htmlElements
|
||||||
|
: this.pdfElements;
|
||||||
}
|
}
|
||||||
|
|
||||||
public getElements(): AbstractElement[] {
|
public getElements(): AbstractElement[] {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import jsPDF from 'jspdf';
|
import jsPDF from 'jspdf';
|
||||||
import { MARGINS } from '../constants';
|
import { MARGINS } from '../constants';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export abstract class AbstractElement {
|
export abstract class AbstractElement {
|
||||||
public static readonly DEFAULT_CONTEXT: IContext = {
|
public static readonly DEFAULT_CONTEXT: IContext = {
|
||||||
@@ -9,17 +10,20 @@ export abstract class AbstractElement {
|
|||||||
name: 'element',
|
name: 'element',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public globalType: GenerateTypeEnum;
|
||||||
public x: number;
|
public x: number;
|
||||||
public y: number;
|
public y: number;
|
||||||
public maxWidth?: number;
|
public maxWidth?: number;
|
||||||
public context: IContext = AbstractElement.DEFAULT_CONTEXT;
|
public context: IContext = AbstractElement.DEFAULT_CONTEXT;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
maxWidth?: number | undefined,
|
maxWidth?: number | undefined,
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
|
this.globalType = globalType;
|
||||||
this.x = x >= MARGINS.left ? x : MARGINS.left;
|
this.x = x >= MARGINS.left ? x : MARGINS.left;
|
||||||
this.y = y >= MARGINS.top ? y : MARGINS.top;
|
this.y = y >= MARGINS.top ? y : MARGINS.top;
|
||||||
this.maxWidth = maxWidth;
|
this.maxWidth = maxWidth;
|
||||||
|
|||||||
@@ -2,20 +2,22 @@ import { AbstractElement } from './abstract-element';
|
|||||||
import jsPDF from 'jspdf';
|
import jsPDF from 'jspdf';
|
||||||
import { Box } from './box';
|
import { Box } from './box';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class Blank extends Box {
|
export class Blank extends Box {
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
w: number,
|
w: number,
|
||||||
h: number,
|
h: number,
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, w, h, context);
|
super(globalType, x, y, w, h, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static heightBlank(h: number) {
|
public static heightBlank(globalType: GenerateTypeEnum, h: number) {
|
||||||
return new Blank(0, 0, 0, h);
|
return new Blank(globalType, 0, 0, 0, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getCheckNewPageHeight(doc?: jsPDF): number {
|
public getCheckNewPageHeight(doc?: jsPDF): number {
|
||||||
|
|||||||
@@ -1,19 +1,21 @@
|
|||||||
import { AbstractElement } from './abstract-element';
|
import { AbstractElement } from './abstract-element';
|
||||||
import jsPDF from 'jspdf';
|
import jsPDF from 'jspdf';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class Box extends AbstractElement {
|
export class Box extends AbstractElement {
|
||||||
public w: number;
|
public w: number;
|
||||||
public h: number;
|
public h: number;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
w: number,
|
w: number,
|
||||||
h: number,
|
h: number,
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, w, context);
|
super(globalType, x, y, w, context);
|
||||||
this.w = w;
|
this.w = w;
|
||||||
this.h = h;
|
this.h = h;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,15 +2,17 @@ import { AbstractElement } from './abstract-element';
|
|||||||
import jsPDF from 'jspdf';
|
import jsPDF from 'jspdf';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
import { AbstractContainerElement } from './abstract-container-element';
|
import { AbstractContainerElement } from './abstract-container-element';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class Column extends AbstractContainerElement {
|
export class Column extends AbstractContainerElement {
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
elements: AbstractElement[],
|
elements: AbstractElement[],
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, undefined, elements, context);
|
super(globalType, x, y, undefined, elements, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public prepareRender(doc: jsPDF, _maxWidth?: number): jsPDF {
|
public prepareRender(doc: jsPDF, _maxWidth?: number): jsPDF {
|
||||||
|
|||||||
4
src/elements/generate-type.enum.ts
Normal file
4
src/elements/generate-type.enum.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
export enum GenerateTypeEnum {
|
||||||
|
PDF = 'PDF',
|
||||||
|
HTML = 'HTML',
|
||||||
|
}
|
||||||
@@ -2,11 +2,13 @@ import { Box } from './box';
|
|||||||
import jsPDF from 'jspdf';
|
import jsPDF from 'jspdf';
|
||||||
import { AbstractElement } from './abstract-element';
|
import { AbstractElement } from './abstract-element';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class Image extends Box {
|
export class Image extends Box {
|
||||||
public imageData: string;
|
public imageData: string;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
w: number,
|
w: number,
|
||||||
@@ -14,7 +16,7 @@ export class Image extends Box {
|
|||||||
imageData: string,
|
imageData: string,
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, w, h, context);
|
super(globalType, x, y, w, h, context);
|
||||||
this.imageData = imageData;
|
this.imageData = imageData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,12 +9,14 @@ import {
|
|||||||
} from '../constants';
|
} from '../constants';
|
||||||
import { AbstractElement } from './abstract-element';
|
import { AbstractElement } from './abstract-element';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class LabelledText extends Text {
|
export class LabelledText extends Text {
|
||||||
public label: string;
|
public label: string;
|
||||||
public labelOptions?: TextOptionsLight;
|
public labelOptions?: TextOptionsLight;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
label: string,
|
label: string,
|
||||||
@@ -23,7 +25,7 @@ export class LabelledText extends Text {
|
|||||||
labelOptions?: TextOptionsLight,
|
labelOptions?: TextOptionsLight,
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, text, textOptions, context);
|
super(globalType, x, y, text, textOptions, context);
|
||||||
this.label = label;
|
this.label = label;
|
||||||
this.labelOptions = labelOptions;
|
this.labelOptions = labelOptions;
|
||||||
const textMaxWidth = this.textOptions?.maxWidth ?? 0;
|
const textMaxWidth = this.textOptions?.maxWidth ?? 0;
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ import { Text } from './text';
|
|||||||
import { MultilineText } from './multiline-text';
|
import { MultilineText } from './multiline-text';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
import { AbstractElement } from './abstract-element';
|
import { AbstractElement } from './abstract-element';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class LabelledValue extends Row {
|
export class LabelledValue extends Row {
|
||||||
public label: string;
|
public label: string;
|
||||||
public value: number;
|
public value: number;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
label: string,
|
label: string,
|
||||||
value: number,
|
value: number,
|
||||||
widthPercents?: number[],
|
widthPercents?: number[],
|
||||||
@@ -17,11 +19,14 @@ export class LabelledValue extends Row {
|
|||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
|
globalType,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
[
|
[
|
||||||
multiline ? new MultilineText(0, 0, label) : new Text(0, 0, label),
|
multiline
|
||||||
new Text(0, 0, value.toString(), {
|
? new MultilineText(globalType, 0, 0, label)
|
||||||
|
: new Text(globalType, 0, 0, label),
|
||||||
|
new Text(globalType, 0, 0, value.toString(), {
|
||||||
align: 'right',
|
align: 'right',
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -5,12 +5,14 @@ import jsPDF from 'jspdf';
|
|||||||
import { MARGINS } from '../constants';
|
import { MARGINS } from '../constants';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
import { AbstractElement } from './abstract-element';
|
import { AbstractElement } from './abstract-element';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class LabelledValues extends Row {
|
export class LabelledValues extends Row {
|
||||||
public labelledValues: { label: string; value: number }[];
|
public labelledValues: { label: string; value: number }[];
|
||||||
public nbrOfCol: number;
|
public nbrOfCol: number;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
labelledValues: { label: string; value: number }[],
|
labelledValues: { label: string; value: number }[],
|
||||||
@@ -18,7 +20,7 @@ export class LabelledValues extends Row {
|
|||||||
multiline = false,
|
multiline = false,
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, [], undefined, undefined, undefined, context);
|
super(globalType, x, y, [], undefined, undefined, undefined, context);
|
||||||
this.labelledValues = labelledValues;
|
this.labelledValues = labelledValues;
|
||||||
this.nbrOfCol = nbrOfCol ?? 3;
|
this.nbrOfCol = nbrOfCol ?? 3;
|
||||||
if (this.nbrOfCol > 3) {
|
if (this.nbrOfCol > 3) {
|
||||||
@@ -38,7 +40,7 @@ export class LabelledValues extends Row {
|
|||||||
rest > 2 ? nbrPerCol + 1 : nbrPerCol,
|
rest > 2 ? nbrPerCol + 1 : nbrPerCol,
|
||||||
];
|
];
|
||||||
for (let i = 0; i < this.nbrOfCol; i++) {
|
for (let i = 0; i < this.nbrOfCol; i++) {
|
||||||
this.contextElements[i] = new Column(0, 0, [], {
|
this.contextElements[i] = new Column(globalType, 0, 0, [], {
|
||||||
name: `${this.context.name}-column`,
|
name: `${this.context.name}-column`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -52,6 +54,7 @@ export class LabelledValues extends Row {
|
|||||||
}
|
}
|
||||||
(<Column>this.contextElements[currentIndex]).contextElements.push(
|
(<Column>this.contextElements[currentIndex]).contextElements.push(
|
||||||
new LabelledValue(
|
new LabelledValue(
|
||||||
|
globalType,
|
||||||
labelledValues[i].label,
|
labelledValues[i].label,
|
||||||
labelledValues[i].value,
|
labelledValues[i].value,
|
||||||
widthPercent,
|
widthPercent,
|
||||||
@@ -62,11 +65,13 @@ export class LabelledValues extends Row {
|
|||||||
} else {
|
} else {
|
||||||
this.contextElements.push(
|
this.contextElements.push(
|
||||||
new Column(
|
new Column(
|
||||||
|
globalType,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
labelledValues.map(
|
labelledValues.map(
|
||||||
(libelledValue) =>
|
(libelledValue) =>
|
||||||
new LabelledValue(
|
new LabelledValue(
|
||||||
|
globalType,
|
||||||
libelledValue.label,
|
libelledValue.label,
|
||||||
libelledValue.value,
|
libelledValue.value,
|
||||||
widthPercent,
|
widthPercent,
|
||||||
|
|||||||
@@ -3,18 +3,20 @@ import jsPDF, { TextOptionsLight } from 'jspdf';
|
|||||||
import { HTML_TEXT_SIZE, i18nLocalize, TEXT_SIZE } from '../constants';
|
import { HTML_TEXT_SIZE, i18nLocalize, TEXT_SIZE } from '../constants';
|
||||||
import { Text } from './text';
|
import { Text } from './text';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class MultilineText extends Text {
|
export class MultilineText extends Text {
|
||||||
private nbrLine = 1;
|
private nbrLine = 1;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
text: string,
|
text: string,
|
||||||
textOptions?: TextOptionsLight,
|
textOptions?: TextOptionsLight,
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, text, textOptions, context);
|
super(globalType, x, y, text, textOptions, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public prepareRender(doc: jsPDF, maxWidth?: number): jsPDF {
|
public prepareRender(doc: jsPDF, maxWidth?: number): jsPDF {
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ import jsPDF from 'jspdf';
|
|||||||
import { MARGINS } from '../constants';
|
import { MARGINS } from '../constants';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
import { AbstractContainerElement } from './abstract-container-element';
|
import { AbstractContainerElement } from './abstract-container-element';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class Row extends AbstractContainerElement {
|
export class Row extends AbstractContainerElement {
|
||||||
public widthPercents?: number[];
|
public widthPercents?: number[];
|
||||||
public maxWidths?: number[];
|
public maxWidths?: number[];
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
elements: AbstractElement[],
|
elements: AbstractElement[],
|
||||||
@@ -17,7 +19,7 @@ export class Row extends AbstractContainerElement {
|
|||||||
maxWidths?: number[],
|
maxWidths?: number[],
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, maxWidth, elements, context);
|
super(globalType, x, y, maxWidth, elements, context);
|
||||||
this.widthPercents = widthPercents ?? [];
|
this.widthPercents = widthPercents ?? [];
|
||||||
this.maxWidths = maxWidths ?? [];
|
this.maxWidths = maxWidths ?? [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,15 +2,17 @@ import { AbstractElement } from './abstract-element';
|
|||||||
import jsPDF from 'jspdf';
|
import jsPDF from 'jspdf';
|
||||||
import { MARGINS } from '../constants';
|
import { MARGINS } from '../constants';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class Separator extends AbstractElement {
|
export class Separator extends AbstractElement {
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
maxWidth?: number | undefined,
|
maxWidth?: number | undefined,
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, maxWidth, context);
|
super(globalType, x, y, maxWidth, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getHeight(_doc?: jsPDF): number {
|
public getHeight(_doc?: jsPDF): number {
|
||||||
|
|||||||
@@ -2,19 +2,21 @@ import { AbstractElement } from './abstract-element';
|
|||||||
import jsPDF, { TextOptionsLight } from 'jspdf';
|
import jsPDF, { TextOptionsLight } from 'jspdf';
|
||||||
import { HTML_TEXT_SIZE, i18nLocalize, TEXT_SIZE } from '../constants';
|
import { HTML_TEXT_SIZE, i18nLocalize, TEXT_SIZE } from '../constants';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class Text extends AbstractElement {
|
export class Text extends AbstractElement {
|
||||||
public text: string;
|
public text: string;
|
||||||
public textOptions?: TextOptionsLight;
|
public textOptions?: TextOptionsLight;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
text: string,
|
text: string,
|
||||||
textOptions?: TextOptionsLight,
|
textOptions?: TextOptionsLight,
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, textOptions?.maxWidth, context);
|
super(globalType, x, y, textOptions?.maxWidth, context);
|
||||||
this.text = text;
|
this.text = text;
|
||||||
this.textOptions = textOptions;
|
this.textOptions = textOptions;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,12 +6,14 @@ import { Text } from './text';
|
|||||||
import { MultilineText } from './multiline-text';
|
import { MultilineText } from './multiline-text';
|
||||||
import { IContext } from './context';
|
import { IContext } from './context';
|
||||||
import { AbstractElement } from './abstract-element';
|
import { AbstractElement } from './abstract-element';
|
||||||
|
import { GenerateTypeEnum } from './generate-type.enum';
|
||||||
|
|
||||||
export class Texts extends Row {
|
export class Texts extends Row {
|
||||||
public texts: string[];
|
public texts: string[];
|
||||||
public nbrOfCol: number;
|
public nbrOfCol: number;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
globalType: GenerateTypeEnum,
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
texts: string[],
|
texts: string[],
|
||||||
@@ -19,7 +21,7 @@ export class Texts extends Row {
|
|||||||
multiline = false,
|
multiline = false,
|
||||||
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
|
||||||
) {
|
) {
|
||||||
super(x, y, [], undefined, undefined, undefined, context);
|
super(globalType, x, y, [], undefined, undefined, undefined, context);
|
||||||
this.texts = texts;
|
this.texts = texts;
|
||||||
this.nbrOfCol = nbrOfCol ?? 4;
|
this.nbrOfCol = nbrOfCol ?? 4;
|
||||||
if (this.nbrOfCol > 4) {
|
if (this.nbrOfCol > 4) {
|
||||||
@@ -37,7 +39,7 @@ export class Texts extends Row {
|
|||||||
rest > 3 ? nbrPerCol + 1 : nbrPerCol,
|
rest > 3 ? nbrPerCol + 1 : nbrPerCol,
|
||||||
];
|
];
|
||||||
for (let i = 0; i < this.nbrOfCol; i++) {
|
for (let i = 0; i < this.nbrOfCol; i++) {
|
||||||
this.contextElements[i] = new Column(0, 0, []);
|
this.contextElements[i] = new Column(this.globalType, 0, 0, []);
|
||||||
}
|
}
|
||||||
for (let i = 0; i < texts.length; i++) {
|
for (let i = 0; i < texts.length; i++) {
|
||||||
if (i < nbrPerCols[0]) {
|
if (i < nbrPerCols[0]) {
|
||||||
@@ -50,24 +52,25 @@ export class Texts extends Row {
|
|||||||
currentIndex = 3;
|
currentIndex = 3;
|
||||||
}
|
}
|
||||||
(<Column>this.contextElements[currentIndex]).contextElements.push(
|
(<Column>this.contextElements[currentIndex]).contextElements.push(
|
||||||
new Row(0, 0, [
|
new Row(this.globalType, 0, 0, [
|
||||||
multiline
|
multiline
|
||||||
? new MultilineText(0, 0, texts[i])
|
? new MultilineText(this.globalType, 0, 0, texts[i])
|
||||||
: new Text(0, 0, texts[i]),
|
: new Text(this.globalType, 0, 0, texts[i]),
|
||||||
])
|
])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.contextElements.push(
|
this.contextElements.push(
|
||||||
new Column(
|
new Column(
|
||||||
|
this.globalType,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
texts.map(
|
texts.map(
|
||||||
(text) =>
|
(text) =>
|
||||||
new Row(0, 0, [
|
new Row(this.globalType, 0, 0, [
|
||||||
multiline
|
multiline
|
||||||
? new MultilineText(0, 0, text)
|
? new MultilineText(this.globalType, 0, 0, text)
|
||||||
: new Text(0, 0, text),
|
: new Text(this.globalType, 0, 0, text),
|
||||||
])
|
])
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import {
|
|||||||
LABEL_SIZE,
|
LABEL_SIZE,
|
||||||
TEXT_SIZE,
|
TEXT_SIZE,
|
||||||
} from './constants';
|
} from './constants';
|
||||||
|
import { GenerateTypeEnum } from './elements/generate-type.enum';
|
||||||
|
|
||||||
export class HtmlBuilder extends AbstractBuilder {
|
export class HtmlBuilder extends AbstractBuilder {
|
||||||
public doc: Document;
|
public doc: Document;
|
||||||
@@ -86,4 +87,8 @@ export class HtmlBuilder extends AbstractBuilder {
|
|||||||
public getImageScale(): number {
|
public getImageScale(): number {
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getGenerateType(): GenerateTypeEnum {
|
||||||
|
return GenerateTypeEnum.HTML;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
560
src/main.ts
560
src/main.ts
@@ -95,6 +95,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
const careerDetail: any = careerData?.data;
|
const careerDetail: any = careerData?.data;
|
||||||
|
|
||||||
const skills = new LabelledValues(
|
const skills = new LabelledValues(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.skill
|
actor.itemCategories.skill
|
||||||
@@ -122,6 +123,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const talents = new LabelledValues(
|
const talents = new LabelledValues(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
Object.entries(talentsByName)
|
Object.entries(talentsByName)
|
||||||
@@ -137,6 +139,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const traits = new Texts(
|
const traits = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.trait
|
actor.itemCategories.trait
|
||||||
@@ -148,6 +151,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const weaponsMelee = new Texts(
|
const weaponsMelee = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
Util.getActorItems(actor, 'weapon')
|
Util.getActorItems(actor, 'weapon')
|
||||||
@@ -165,6 +169,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const weaponsRanged = new Texts(
|
const weaponsRanged = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
Util.getActorItems(actor, 'weapon')
|
Util.getActorItems(actor, 'weapon')
|
||||||
@@ -182,6 +187,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const ammunitions = new Texts(
|
const ammunitions = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
Util.getActorItems(actor, 'ammunition')
|
Util.getActorItems(actor, 'ammunition')
|
||||||
@@ -223,6 +229,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const armours = new Texts(
|
const armours = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
armourLocation.map((al) => {
|
armourLocation.map((al) => {
|
||||||
@@ -235,6 +242,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const petty = new Texts(
|
const petty = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.spell
|
actor.itemCategories.spell
|
||||||
@@ -247,6 +255,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const spell = new Texts(
|
const spell = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.spell
|
actor.itemCategories.spell
|
||||||
@@ -259,6 +268,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const blessing = new Texts(
|
const blessing = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.prayer
|
actor.itemCategories.prayer
|
||||||
@@ -271,6 +281,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const miracle = new Texts(
|
const miracle = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.prayer
|
actor.itemCategories.prayer
|
||||||
@@ -296,6 +307,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const trappingsHeader = new Texts(
|
const trappingsHeader = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
[
|
[
|
||||||
@@ -310,6 +322,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const trappings = new Texts(
|
const trappings = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
Util.getAllActorItems(actor, ['container', 'trapping'])
|
Util.getAllActorItems(actor, ['container', 'trapping'])
|
||||||
@@ -328,6 +341,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const critical = new Texts(
|
const critical = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.critical.map((i) => {
|
actor.itemCategories.critical.map((i) => {
|
||||||
@@ -337,6 +351,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const disease = new Texts(
|
const disease = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.disease.map((i) => {
|
actor.itemCategories.disease.map((i) => {
|
||||||
@@ -346,6 +361,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const injury = new Texts(
|
const injury = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.injury.map((i) => {
|
actor.itemCategories.injury.map((i) => {
|
||||||
@@ -355,6 +371,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const mutationP = new Texts(
|
const mutationP = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.mutation
|
actor.itemCategories.mutation
|
||||||
@@ -366,6 +383,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const mutationM = new Texts(
|
const mutationM = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.mutation
|
actor.itemCategories.mutation
|
||||||
@@ -377,6 +395,7 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const psychology = new Texts(
|
const psychology = new Texts(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
actor.itemCategories.psychology.map((i) => {
|
actor.itemCategories.psychology.map((i) => {
|
||||||
@@ -391,44 +410,107 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
const imageY = labelledRowHeight + MARGINS.top + 2;
|
const imageY = labelledRowHeight + MARGINS.top + 2;
|
||||||
const actorImageElementPdf =
|
const actorImageElementPdf =
|
||||||
actorImageData != null
|
actorImageData != null
|
||||||
? new Image(0, imageY, imageWidth, imageWidth, actorImageData, {
|
? new Image(
|
||||||
isHtml: false,
|
docBuilder.getGenerateType(),
|
||||||
})
|
0,
|
||||||
: new Box(0, imageY, imageWidth, imageWidth, {
|
imageY,
|
||||||
isHtml: false,
|
imageWidth,
|
||||||
});
|
imageWidth,
|
||||||
|
actorImageData,
|
||||||
|
{
|
||||||
|
isHtml: false,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
: new Box(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
imageY,
|
||||||
|
imageWidth,
|
||||||
|
imageWidth,
|
||||||
|
{
|
||||||
|
isHtml: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
const actorImageElementHtml =
|
const actorImageElementHtml =
|
||||||
actorImageData != null
|
actorImageData != null
|
||||||
? new Image(0, imageY, imageWidth, imageWidth, actorImageData, {
|
? new Image(
|
||||||
isPdf: false,
|
docBuilder.getGenerateType(),
|
||||||
})
|
0,
|
||||||
: new Box(0, imageY, imageWidth, imageWidth, {
|
imageY,
|
||||||
isPdf: false,
|
imageWidth,
|
||||||
});
|
imageWidth,
|
||||||
|
actorImageData,
|
||||||
|
{
|
||||||
|
isPdf: false,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
: new Box(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
imageY,
|
||||||
|
imageWidth,
|
||||||
|
imageWidth,
|
||||||
|
{
|
||||||
|
isPdf: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
docBuilder.build([
|
docBuilder.build([
|
||||||
actorImageElementPdf,
|
actorImageElementPdf,
|
||||||
new Column(
|
new Column(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
[
|
[
|
||||||
new Row(0, 0, [
|
new Row(docBuilder.getGenerateType(), 0, 0, [
|
||||||
new LabelledText(0, 0, 'Name', `${actor.name}`),
|
new LabelledText(
|
||||||
new LabelledText(0, 0, 'Species', `${actorDetails?.species?.value}`),
|
docBuilder.getGenerateType(),
|
||||||
new LabelledText(0, 0, 'Gender', `${actorDetails?.gender?.value}`),
|
0,
|
||||||
|
0,
|
||||||
|
'Name',
|
||||||
|
`${actor.name}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Species',
|
||||||
|
`${actorDetails?.species?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Gender',
|
||||||
|
`${actorDetails?.gender?.value}`
|
||||||
|
),
|
||||||
]),
|
]),
|
||||||
new Row(
|
new Row(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
imageWidth + MARGINS.left + 1,
|
imageWidth + MARGINS.left + 1,
|
||||||
0,
|
0,
|
||||||
[
|
[
|
||||||
new LabelledText(0, 0, 'Class', `${careerDetail?.class?.value}`),
|
|
||||||
new LabelledText(
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Class',
|
||||||
|
`${careerDetail?.class?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'Career Group',
|
'Career Group',
|
||||||
`${careerDetail?.careergroup?.value}`
|
`${careerDetail?.careergroup?.value}`
|
||||||
),
|
),
|
||||||
new LabelledText(0, 0, 'Career', `${currentCareer?.name}`),
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Career',
|
||||||
|
`${currentCareer?.name}`
|
||||||
|
),
|
||||||
],
|
],
|
||||||
undefined,
|
undefined,
|
||||||
undefined,
|
undefined,
|
||||||
@@ -436,14 +518,40 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
{ isHtml: false }
|
{ isHtml: false }
|
||||||
),
|
),
|
||||||
new Row(
|
new Row(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
imageWidth + MARGINS.left + 1,
|
imageWidth + MARGINS.left + 1,
|
||||||
0,
|
0,
|
||||||
[
|
[
|
||||||
new LabelledText(0, 0, 'Status', `${actorDetails?.status?.value}`),
|
|
||||||
new LabelledText(0, 0, 'Age', `${actorDetails?.age?.value}`),
|
|
||||||
new LabelledText(0, 0, 'Height', `${actorDetails?.height?.value}`),
|
|
||||||
new LabelledText(0, 0, 'Weight', `${actorDetails?.weight?.value}`),
|
|
||||||
new LabelledText(
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Status',
|
||||||
|
`${actorDetails?.status?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Age',
|
||||||
|
`${actorDetails?.age?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Height',
|
||||||
|
`${actorDetails?.height?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Weight',
|
||||||
|
`${actorDetails?.weight?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'Hair Colour',
|
'Hair Colour',
|
||||||
@@ -456,22 +564,26 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
{ isHtml: false }
|
{ isHtml: false }
|
||||||
),
|
),
|
||||||
new Row(
|
new Row(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
imageWidth + MARGINS.left + 1,
|
imageWidth + MARGINS.left + 1,
|
||||||
0,
|
0,
|
||||||
[
|
[
|
||||||
new LabelledText(
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'Eye Colour',
|
'Eye Colour',
|
||||||
`${actorDetails?.eyecolour?.value}`
|
`${actorDetails?.eyecolour?.value}`
|
||||||
),
|
),
|
||||||
new LabelledText(
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'Distinguishing Mark',
|
'Distinguishing Mark',
|
||||||
`${actorDetails?.distinguishingmark?.value}`
|
`${actorDetails?.distinguishingmark?.value}`
|
||||||
),
|
),
|
||||||
new LabelledText(
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'Star Sign',
|
'Star Sign',
|
||||||
@@ -484,73 +596,110 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
{ isHtml: false }
|
{ isHtml: false }
|
||||||
),
|
),
|
||||||
new Row(
|
new Row(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
[
|
[
|
||||||
actorImageElementHtml,
|
actorImageElementHtml,
|
||||||
new Column(0, 0, [
|
new Column(docBuilder.getGenerateType(), 0, 0, [
|
||||||
new Row(imageWidth + MARGINS.left + 1, 0, [
|
new Row(
|
||||||
new LabelledText(
|
docBuilder.getGenerateType(),
|
||||||
0,
|
imageWidth + MARGINS.left + 1,
|
||||||
0,
|
0,
|
||||||
'Class',
|
[
|
||||||
`${careerDetail?.class?.value}`
|
new LabelledText(
|
||||||
),
|
docBuilder.getGenerateType(),
|
||||||
new LabelledText(
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
'Class',
|
||||||
'Career Group',
|
`${careerDetail?.class?.value}`
|
||||||
`${careerDetail?.careergroup?.value}`
|
),
|
||||||
),
|
new LabelledText(
|
||||||
new LabelledText(0, 0, 'Career', `${currentCareer?.name}`),
|
docBuilder.getGenerateType(),
|
||||||
]),
|
0,
|
||||||
new Row(imageWidth + MARGINS.left + 1, 0, [
|
0,
|
||||||
new LabelledText(
|
'Career Group',
|
||||||
0,
|
`${careerDetail?.careergroup?.value}`
|
||||||
0,
|
),
|
||||||
'Status',
|
new LabelledText(
|
||||||
`${actorDetails?.status?.value}`
|
docBuilder.getGenerateType(),
|
||||||
),
|
0,
|
||||||
new LabelledText(0, 0, 'Age', `${actorDetails?.age?.value}`),
|
0,
|
||||||
new LabelledText(
|
'Career',
|
||||||
0,
|
`${currentCareer?.name}`
|
||||||
0,
|
),
|
||||||
'Height',
|
]
|
||||||
`${actorDetails?.height?.value}`
|
),
|
||||||
),
|
new Row(
|
||||||
new LabelledText(
|
docBuilder.getGenerateType(),
|
||||||
0,
|
imageWidth + MARGINS.left + 1,
|
||||||
0,
|
0,
|
||||||
'Weight',
|
[
|
||||||
`${actorDetails?.weight?.value}`
|
new LabelledText(
|
||||||
),
|
docBuilder.getGenerateType(),
|
||||||
new LabelledText(
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
'Status',
|
||||||
'Hair Colour',
|
`${actorDetails?.status?.value}`
|
||||||
`${actorDetails?.haircolour?.value}`
|
),
|
||||||
),
|
new LabelledText(
|
||||||
]),
|
docBuilder.getGenerateType(),
|
||||||
new Row(imageWidth + MARGINS.left + 1, 0, [
|
0,
|
||||||
new LabelledText(
|
0,
|
||||||
0,
|
'Age',
|
||||||
0,
|
`${actorDetails?.age?.value}`
|
||||||
'Eye Colour',
|
),
|
||||||
`${actorDetails?.eyecolour?.value}`
|
new LabelledText(
|
||||||
),
|
docBuilder.getGenerateType(),
|
||||||
new LabelledText(
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
'Height',
|
||||||
'Distinguishing Mark',
|
`${actorDetails?.height?.value}`
|
||||||
`${actorDetails?.distinguishingmark?.value}`
|
),
|
||||||
),
|
new LabelledText(
|
||||||
new LabelledText(
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'Star Sign',
|
'Weight',
|
||||||
`${actorDetails?.starsign?.value}`
|
`${actorDetails?.weight?.value}`
|
||||||
),
|
),
|
||||||
]),
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Hair Colour',
|
||||||
|
`${actorDetails?.haircolour?.value}`
|
||||||
|
),
|
||||||
|
]
|
||||||
|
),
|
||||||
|
new Row(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
imageWidth + MARGINS.left + 1,
|
||||||
|
0,
|
||||||
|
[
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Eye Colour',
|
||||||
|
`${actorDetails?.eyecolour?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Distinguishing Mark',
|
||||||
|
`${actorDetails?.distinguishingmark?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Star Sign',
|
||||||
|
`${actorDetails?.starsign?.value}`
|
||||||
|
),
|
||||||
|
]
|
||||||
|
),
|
||||||
]),
|
]),
|
||||||
],
|
],
|
||||||
undefined,
|
undefined,
|
||||||
@@ -558,72 +707,161 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
undefined,
|
undefined,
|
||||||
{ isPdf: false }
|
{ isPdf: false }
|
||||||
),
|
),
|
||||||
Blank.heightBlank(2),
|
Blank.heightBlank(docBuilder.getGenerateType(), 2),
|
||||||
new Row(0, 0, [
|
new Row(docBuilder.getGenerateType(), 0, 0, [
|
||||||
new LabelledText(0, 0, 'CHARAbbrev.WS', `${actorCharacs?.ws?.value}`),
|
|
||||||
new LabelledText(0, 0, 'CHARAbbrev.BS', `${actorCharacs?.bs?.value}`),
|
|
||||||
new LabelledText(0, 0, 'CHARAbbrev.S', `${actorCharacs?.s?.value}`),
|
|
||||||
new LabelledText(0, 0, 'CHARAbbrev.T', `${actorCharacs?.t?.value}`),
|
|
||||||
new LabelledText(0, 0, 'CHARAbbrev.I', `${actorCharacs?.i?.value}`),
|
|
||||||
new LabelledText(0, 0, 'CHARAbbrev.Ag', `${actorCharacs?.ag?.value}`),
|
|
||||||
new LabelledText(
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'CHARAbbrev.WS',
|
||||||
|
`${actorCharacs?.ws?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'CHARAbbrev.BS',
|
||||||
|
`${actorCharacs?.bs?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'CHARAbbrev.S',
|
||||||
|
`${actorCharacs?.s?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'CHARAbbrev.T',
|
||||||
|
`${actorCharacs?.t?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'CHARAbbrev.I',
|
||||||
|
`${actorCharacs?.i?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'CHARAbbrev.Ag',
|
||||||
|
`${actorCharacs?.ag?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'CHARAbbrev.Dex',
|
'CHARAbbrev.Dex',
|
||||||
`${actorCharacs?.dex?.value}`
|
`${actorCharacs?.dex?.value}`
|
||||||
),
|
),
|
||||||
new LabelledText(
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'CHARAbbrev.Int',
|
'CHARAbbrev.Int',
|
||||||
`${actorCharacs?.int?.value}`
|
`${actorCharacs?.int?.value}`
|
||||||
),
|
),
|
||||||
new LabelledText(0, 0, 'CHARAbbrev.WP', `${actorCharacs?.wp?.value}`),
|
|
||||||
new LabelledText(
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'CHARAbbrev.WP',
|
||||||
|
`${actorCharacs?.wp?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'CHARAbbrev.Fel',
|
'CHARAbbrev.Fel',
|
||||||
`${actorCharacs?.fel?.value}`
|
`${actorCharacs?.fel?.value}`
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
new Row(0, 0, [
|
new Row(docBuilder.getGenerateType(), 0, 0, [
|
||||||
new LabelledText(0, 0, 'Move', `${actorDetails?.move?.value}`),
|
|
||||||
new LabelledText(0, 0, 'Walk', `${actorDetails?.move?.walk}`),
|
|
||||||
new LabelledText(0, 0, 'Run', `${actorDetails?.move?.run}`),
|
|
||||||
new LabelledText(0, 0, 'Fortune', `${actorStatus?.fortune?.value}`),
|
|
||||||
new LabelledText(0, 0, 'Fate', `${actorStatus?.fate?.value}`),
|
|
||||||
new LabelledText(0, 0, 'Resolve', `${actorStatus?.resolve?.value}`),
|
|
||||||
new LabelledText(
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Move',
|
||||||
|
`${actorDetails?.move?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Walk',
|
||||||
|
`${actorDetails?.move?.walk}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Run',
|
||||||
|
`${actorDetails?.move?.run}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Fortune',
|
||||||
|
`${actorStatus?.fortune?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Fate',
|
||||||
|
`${actorStatus?.fate?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'Resolve',
|
||||||
|
`${actorStatus?.resolve?.value}`
|
||||||
|
),
|
||||||
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'Resilience',
|
'Resilience',
|
||||||
`${actorStatus?.resilience?.value}`
|
`${actorStatus?.resilience?.value}`
|
||||||
),
|
),
|
||||||
new LabelledText(
|
new LabelledText(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
'Wounds',
|
'Wounds',
|
||||||
`${actorStatus?.wounds?.value}/${actorStatus?.wounds?.max}`
|
`${actorStatus?.wounds?.value}/${actorStatus?.wounds?.max}`
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
new Separator(0, 0),
|
new Separator(docBuilder.getGenerateType(), 0, 0),
|
||||||
new Text(0, 0, 'Skills'),
|
new Text(docBuilder.getGenerateType(), 0, 0, 'Skills'),
|
||||||
skills,
|
skills,
|
||||||
new Separator(0, 0),
|
new Separator(docBuilder.getGenerateType(), 0, 0),
|
||||||
new Text(0, 0, `${i18nLocalize('Talents')} : ${i18nLocalize('Tests')}`),
|
new Text(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
`${i18nLocalize('Talents')} : ${i18nLocalize('Tests')}`
|
||||||
|
),
|
||||||
talents,
|
talents,
|
||||||
traits.contextElements.length > 0
|
traits.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
traits.contextElements.length > 0
|
traits.contextElements.length > 0
|
||||||
? new Text(0, 0, 'Traits')
|
? new Text(docBuilder.getGenerateType(), 0, 0, 'Traits')
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
traits,
|
traits,
|
||||||
weaponsMelee.contextElements.length > 0
|
weaponsMelee.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
weaponsMelee.contextElements.length > 0
|
weaponsMelee.contextElements.length > 0
|
||||||
? new Text(
|
? new Text(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
`${i18nLocalize('SHEET.MeleeWeaponHeader')} : ${i18nLocalize(
|
`${i18nLocalize('SHEET.MeleeWeaponHeader')} : ${i18nLocalize(
|
||||||
@@ -632,13 +870,14 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
'Damage'
|
'Damage'
|
||||||
)}, ${i18nLocalize('Qualities')}, ${i18nLocalize('Flaws')}`
|
)}, ${i18nLocalize('Qualities')}, ${i18nLocalize('Flaws')}`
|
||||||
)
|
)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
weaponsMelee,
|
weaponsMelee,
|
||||||
weaponsRanged.contextElements.length > 0
|
weaponsRanged.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
weaponsRanged.contextElements.length > 0
|
weaponsRanged.contextElements.length > 0
|
||||||
? new Text(
|
? new Text(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
`${i18nLocalize('SHEET.RangedWeaponHeader')} : ${i18nLocalize(
|
`${i18nLocalize('SHEET.RangedWeaponHeader')} : ${i18nLocalize(
|
||||||
@@ -647,13 +886,14 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
'Damage'
|
'Damage'
|
||||||
)}, ${i18nLocalize('Qualities')}, ${i18nLocalize('Flaws')}`
|
)}, ${i18nLocalize('Qualities')}, ${i18nLocalize('Flaws')}`
|
||||||
)
|
)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
weaponsRanged,
|
weaponsRanged,
|
||||||
ammunitions.contextElements.length > 0
|
ammunitions.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
ammunitions.contextElements.length > 0
|
ammunitions.contextElements.length > 0
|
||||||
? new Text(
|
? new Text(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
`${i18nLocalize('Ammunition')} : ${i18nLocalize(
|
`${i18nLocalize('Ammunition')} : ${i18nLocalize(
|
||||||
@@ -662,20 +902,21 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
'Qualities'
|
'Qualities'
|
||||||
)}, ${i18nLocalize('Flaws')}`
|
)}, ${i18nLocalize('Flaws')}`
|
||||||
)
|
)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
ammunitions,
|
ammunitions,
|
||||||
armours.contextElements.length > 0
|
armours.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
armours.contextElements.length > 0
|
armours.contextElements.length > 0
|
||||||
? new Text(0, 0, 'Armour')
|
? new Text(docBuilder.getGenerateType(), 0, 0, 'Armour')
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
armours,
|
armours,
|
||||||
petty.contextElements.length > 0
|
petty.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
petty.contextElements.length > 0
|
petty.contextElements.length > 0
|
||||||
? new Text(
|
? new Text(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
`${i18nLocalize('SHEET.PettySpell')} : ${i18nLocalize(
|
`${i18nLocalize('SHEET.PettySpell')} : ${i18nLocalize(
|
||||||
@@ -684,13 +925,14 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
'Target'
|
'Target'
|
||||||
)}, ${i18nLocalize('Duration')}`
|
)}, ${i18nLocalize('Duration')}`
|
||||||
)
|
)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
petty,
|
petty,
|
||||||
spell.contextElements.length > 0
|
spell.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
spell.contextElements.length > 0
|
spell.contextElements.length > 0
|
||||||
? new Text(
|
? new Text(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
`${i18nLocalize('SHEET.LoreSpell')} : ${i18nLocalize(
|
`${i18nLocalize('SHEET.LoreSpell')} : ${i18nLocalize(
|
||||||
@@ -701,86 +943,90 @@ async function generate(actor: Actor & any, docBuilder: AbstractBuilder) {
|
|||||||
'WFRP4E.TrappingType.Ingredients'
|
'WFRP4E.TrappingType.Ingredients'
|
||||||
)}`
|
)}`
|
||||||
)
|
)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
spell,
|
spell,
|
||||||
blessing.contextElements.length > 0
|
blessing.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
blessing.contextElements.length > 0
|
blessing.contextElements.length > 0
|
||||||
? new Text(
|
? new Text(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
`${i18nLocalize('Blessing')} : ${i18nLocalize(
|
`${i18nLocalize('Blessing')} : ${i18nLocalize(
|
||||||
'Range'
|
'Range'
|
||||||
)}, ${i18nLocalize('Target')}, ${i18nLocalize('Duration')}`
|
)}, ${i18nLocalize('Target')}, ${i18nLocalize('Duration')}`
|
||||||
)
|
)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
blessing,
|
blessing,
|
||||||
miracle.contextElements.length > 0
|
miracle.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
miracle.contextElements.length > 0
|
miracle.contextElements.length > 0
|
||||||
? new Text(
|
? new Text(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
`${i18nLocalize('Miracle')} : ${i18nLocalize(
|
`${i18nLocalize('Miracle')} : ${i18nLocalize(
|
||||||
'Range'
|
'Range'
|
||||||
)}, ${i18nLocalize('Target')}, ${i18nLocalize('Duration')}`
|
)}, ${i18nLocalize('Target')}, ${i18nLocalize('Duration')}`
|
||||||
)
|
)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
miracle,
|
miracle,
|
||||||
new Separator(0, 0),
|
new Separator(docBuilder.getGenerateType(), 0, 0),
|
||||||
trappingsHeader,
|
trappingsHeader,
|
||||||
trappings,
|
trappings,
|
||||||
psychology.contextElements.length > 0
|
psychology.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
psychology.contextElements.length > 0
|
psychology.contextElements.length > 0
|
||||||
? new Text(0, 0, 'Psychology')
|
? new Text(docBuilder.getGenerateType(), 0, 0, 'Psychology')
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
psychology,
|
psychology,
|
||||||
critical.contextElements.length > 0
|
critical.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
critical.contextElements.length > 0
|
critical.contextElements.length > 0
|
||||||
? new Text(0, 0, 'Criticals')
|
? new Text(docBuilder.getGenerateType(), 0, 0, 'Criticals')
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
critical,
|
critical,
|
||||||
disease.contextElements.length > 0
|
disease.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
disease.contextElements.length > 0
|
disease.contextElements.length > 0
|
||||||
? new Text(0, 0, 'Diseases')
|
? new Text(docBuilder.getGenerateType(), 0, 0, 'Diseases')
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
disease,
|
disease,
|
||||||
injury.contextElements.length > 0
|
injury.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
injury.contextElements.length > 0
|
injury.contextElements.length > 0
|
||||||
? new Text(0, 0, 'Injuries')
|
? new Text(docBuilder.getGenerateType(), 0, 0, 'Injuries')
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
injury,
|
injury,
|
||||||
mutationP.contextElements.length > 0
|
mutationP.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
mutationP.contextElements.length > 0
|
mutationP.contextElements.length > 0
|
||||||
? new Text(
|
? new Text(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
`${i18nLocalize('Mutations')} (${i18nLocalize('Physical')})`
|
`${i18nLocalize('Mutations')} (${i18nLocalize('Physical')})`
|
||||||
)
|
)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
mutationP,
|
mutationP,
|
||||||
mutationM.contextElements.length > 0
|
mutationM.contextElements.length > 0
|
||||||
? new Separator(0, 0)
|
? new Separator(docBuilder.getGenerateType(), 0, 0)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
mutationM.contextElements.length > 0
|
mutationM.contextElements.length > 0
|
||||||
? new Text(
|
? new Text(
|
||||||
|
docBuilder.getGenerateType(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
`${i18nLocalize('Mutations')} (${i18nLocalize('Mental')})`
|
`${i18nLocalize('Mutations')} (${i18nLocalize('Mental')})`
|
||||||
)
|
)
|
||||||
: Blank.heightBlank(0),
|
: Blank.heightBlank(docBuilder.getGenerateType(), 0),
|
||||||
mutationM,
|
mutationM,
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { AbstractElement } from './elements/abstract-element';
|
|||||||
import { LABEL_SIZE, MARGINS, TEXT_SIZE } from './constants';
|
import { LABEL_SIZE, MARGINS, TEXT_SIZE } from './constants';
|
||||||
import { AbstractBuilder } from './abstract-builder';
|
import { AbstractBuilder } from './abstract-builder';
|
||||||
import { Util } from './util';
|
import { Util } from './util';
|
||||||
|
import { GenerateTypeEnum } from './elements/generate-type.enum';
|
||||||
|
|
||||||
export class PdfBuilder extends AbstractBuilder {
|
export class PdfBuilder extends AbstractBuilder {
|
||||||
public doc: jsPDF;
|
public doc: jsPDF;
|
||||||
@@ -73,4 +74,8 @@ export class PdfBuilder extends AbstractBuilder {
|
|||||||
public getImageScale(): number {
|
public getImageScale(): number {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getGenerateType(): GenerateTypeEnum {
|
||||||
|
return GenerateTypeEnum.PDF;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user