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

@@ -1,16 +1,20 @@
import { AbstractElement } from './abstract-element';
import jsPDF from 'jspdf';
import { IContext } from './context';
import { AbstractContainerElement } from './abstract-container-element';
export class Column extends AbstractElement {
public elements: AbstractElement[] = [];
constructor(x: number, y: number, elements: AbstractElement[]) {
super(x, y);
this.elements = elements;
export class Column extends AbstractContainerElement {
constructor(
x: number,
y: number,
elements: AbstractElement[],
context: Partial<IContext> = AbstractElement.DEFAULT_CONTEXT
) {
super(x, y, undefined, elements, context);
}
public prepareRender(doc: jsPDF, _maxWidth?: number): jsPDF {
const elements = this.elements ?? [];
const elements = this.pdfElements ?? [];
let currentY = this.y;
for (let i = 0; i < elements.length; i++) {
@@ -37,7 +41,8 @@ export class Column extends AbstractElement {
): Document {
const div = doc.createElement('div');
div.classList.add(`column`);
const elements = this.elements ?? [];
div.classList.add(this.context.name);
const elements = this.htmlElements ?? [];
for (let i = 0; i < elements.length; i++) {
const element = elements[i];
element.renderHtml(doc, div, cssRules, sheet);
@@ -47,8 +52,8 @@ export class Column extends AbstractElement {
}
public getHeight(doc): number {
return this.elements.length > 0
? this.elements
return this.pdfElements.length > 0
? this.pdfElements
.map((e) => e.getHeight(doc))
.reduce((p, c, i) => {
if (i === 0) {
@@ -60,20 +65,8 @@ export class Column extends AbstractElement {
}
public getCheckNewPageHeight(doc?: jsPDF): number {
return this.elements.length > 0
? this.elements[0].getCheckNewPageHeight(doc)
return this.pdfElements.length > 0
? this.pdfElements[0].getCheckNewPageHeight(doc)
: 0;
}
public getElements(): AbstractElement[] {
const elements: AbstractElement[] = [];
for (const element of this.elements) {
elements.push(...element.getElements());
}
return elements;
}
public isEmpty(): boolean {
return this.elements.length === 0;
}
}