feat: add mobile css

This commit is contained in:
Matthieu CAILLEAUX
2022-04-27 23:36:15 +02:00
parent b16967c351
commit 049c77a004
19 changed files with 639 additions and 319 deletions

View File

@@ -3,6 +3,8 @@ import { Column } from './column';
import { LabelledValue } from './labelled-value';
import jsPDF from 'jspdf';
import { MARGINS } from '../constants';
import { IContext } from './context';
import { AbstractElement } from './abstract-element';
export class LabelledValues extends Row {
public labelledValues: { label: string; value: number }[];
@@ -13,9 +15,10 @@ export class LabelledValues extends Row {
y: number,
labelledValues: { label: string; value: number }[],
nbrOfCol?: number,
multiline = false
multiline = false,
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
) {
super(x, y, []);
super(x, y, [], undefined, undefined, undefined, context);
this.labelledValues = labelledValues;
this.nbrOfCol = nbrOfCol ?? 3;
if (this.nbrOfCol > 3) {
@@ -35,7 +38,9 @@ export class LabelledValues extends Row {
rest > 2 ? nbrPerCol + 1 : nbrPerCol,
];
for (let i = 0; i < this.nbrOfCol; i++) {
this.elements[i] = new Column(0, 0, []);
this.contextElements[i] = new Column(0, 0, [], {
name: `${this.context.name}-column`,
});
}
for (let i = 0; i < labelledValues.length; i++) {
if (i < nbrPerCols[0]) {
@@ -45,7 +50,7 @@ export class LabelledValues extends Row {
} else {
currentIndex = 2;
}
(<Column>this.elements[currentIndex]).elements.push(
(<Column>this.contextElements[currentIndex]).contextElements.push(
new LabelledValue(
labelledValues[i].label,
labelledValues[i].value,
@@ -55,7 +60,7 @@ export class LabelledValues extends Row {
);
}
} else {
this.elements.push(
this.contextElements.push(
new Column(
0,
0,
@@ -67,7 +72,10 @@ export class LabelledValues extends Row {
widthPercent,
multiline
)
)
),
{
name: `${this.context.name}-column`,
}
)
);
}
@@ -77,8 +85,8 @@ export class LabelledValues extends Row {
public prepareRender(doc: jsPDF, maxWidth?: number): jsPDF {
const pageWidth = doc.internal.pageSize.width;
const rowWidth = pageWidth - this.x - MARGINS.right;
for (const column of this.elements) {
for (const labelledValue of (<Column>column).elements) {
for (const column of this.pdfElements) {
for (const labelledValue of (<Column>column).pdfElements) {
labelledValue.maxWidth = rowWidth / this.nbrOfCol;
}
}