fix: optimize separator + missing css
This commit is contained in:
@@ -18,7 +18,9 @@ export class Column extends AbstractElement {
|
||||
element.x = Math.max(element.x, this.x);
|
||||
element.y = currentY;
|
||||
element.prepareRender(doc);
|
||||
currentY += element.getHeight(doc) + 2;
|
||||
const elementHeight = element.getHeight(doc);
|
||||
currentY +=
|
||||
elementHeight > 0 ? element.getHeight(doc) + 2 : elementHeight;
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
@@ -53,4 +55,8 @@ export class Column extends AbstractElement {
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
public isEmpty(): boolean {
|
||||
return this.elements.length === 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,50 +25,52 @@ export class LabelledValues extends Row {
|
||||
const labelPercent = 100 - valuePercent;
|
||||
const widthPercent = [labelPercent, valuePercent];
|
||||
let currentIndex = 0;
|
||||
if (this.nbrOfCol > 1) {
|
||||
const nbrPerCol = Math.floor(labelledValues.length / this.nbrOfCol);
|
||||
const rest = labelledValues.length - nbrPerCol * this.nbrOfCol;
|
||||
const nbrPerCols = [
|
||||
rest > 0 ? nbrPerCol + 1 : nbrPerCol,
|
||||
rest > 1 ? nbrPerCol + 1 : nbrPerCol,
|
||||
rest > 2 ? nbrPerCol + 1 : nbrPerCol,
|
||||
];
|
||||
for (let i = 0; i < this.nbrOfCol; i++) {
|
||||
this.elements[i] = new Column(0, 0, []);
|
||||
}
|
||||
for (let i = 0; i < labelledValues.length; i++) {
|
||||
if (i < nbrPerCols[0]) {
|
||||
currentIndex = 0;
|
||||
} else if (i < nbrPerCols[0] + nbrPerCols[1]) {
|
||||
currentIndex = 1;
|
||||
} else {
|
||||
currentIndex = 2;
|
||||
if (labelledValues.length > 0) {
|
||||
if (this.nbrOfCol > 1) {
|
||||
const nbrPerCol = Math.floor(labelledValues.length / this.nbrOfCol);
|
||||
const rest = labelledValues.length - nbrPerCol * this.nbrOfCol;
|
||||
const nbrPerCols = [
|
||||
rest > 0 ? nbrPerCol + 1 : nbrPerCol,
|
||||
rest > 1 ? nbrPerCol + 1 : nbrPerCol,
|
||||
rest > 2 ? nbrPerCol + 1 : nbrPerCol,
|
||||
];
|
||||
for (let i = 0; i < this.nbrOfCol; i++) {
|
||||
this.elements[i] = new Column(0, 0, []);
|
||||
}
|
||||
(<Column>this.elements[currentIndex]).elements.push(
|
||||
new LabelledValue(
|
||||
labelledValues[i].label,
|
||||
labelledValues[i].value,
|
||||
widthPercent,
|
||||
multiline
|
||||
for (let i = 0; i < labelledValues.length; i++) {
|
||||
if (i < nbrPerCols[0]) {
|
||||
currentIndex = 0;
|
||||
} else if (i < nbrPerCols[0] + nbrPerCols[1]) {
|
||||
currentIndex = 1;
|
||||
} else {
|
||||
currentIndex = 2;
|
||||
}
|
||||
(<Column>this.elements[currentIndex]).elements.push(
|
||||
new LabelledValue(
|
||||
labelledValues[i].label,
|
||||
labelledValues[i].value,
|
||||
widthPercent,
|
||||
multiline
|
||||
)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
this.elements.push(
|
||||
new Column(
|
||||
0,
|
||||
0,
|
||||
labelledValues.map(
|
||||
(libelledValue) =>
|
||||
new LabelledValue(
|
||||
libelledValue.label,
|
||||
libelledValue.value,
|
||||
widthPercent,
|
||||
multiline
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
this.elements.push(
|
||||
new Column(
|
||||
0,
|
||||
0,
|
||||
labelledValues.map(
|
||||
(libelledValue) =>
|
||||
new LabelledValue(
|
||||
libelledValue.label,
|
||||
libelledValue.value,
|
||||
widthPercent,
|
||||
multiline
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -83,4 +83,8 @@ export class Row extends AbstractElement {
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
public isEmpty(): boolean {
|
||||
return this.elements.length === 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,51 +23,53 @@ export class Texts extends Row {
|
||||
this.nbrOfCol = 4;
|
||||
}
|
||||
let currentIndex = 0;
|
||||
if (this.nbrOfCol > 1) {
|
||||
const nbrPerCol = Math.floor(texts.length / this.nbrOfCol);
|
||||
const rest = texts.length - nbrPerCol * this.nbrOfCol;
|
||||
const nbrPerCols = [
|
||||
rest > 0 ? nbrPerCol + 1 : nbrPerCol,
|
||||
rest > 1 ? nbrPerCol + 1 : nbrPerCol,
|
||||
rest > 2 ? nbrPerCol + 1 : nbrPerCol,
|
||||
rest > 3 ? nbrPerCol + 1 : nbrPerCol,
|
||||
];
|
||||
for (let i = 0; i < this.nbrOfCol; i++) {
|
||||
this.elements[i] = new Column(0, 0, []);
|
||||
}
|
||||
for (let i = 0; i < texts.length; i++) {
|
||||
if (i < nbrPerCols[0]) {
|
||||
currentIndex = 0;
|
||||
} else if (i < nbrPerCols[0] + nbrPerCols[1]) {
|
||||
currentIndex = 1;
|
||||
} else if (i < nbrPerCols[0] + nbrPerCols[1] + nbrPerCols[2]) {
|
||||
currentIndex = 2;
|
||||
} else {
|
||||
currentIndex = 3;
|
||||
if (texts.length > 0) {
|
||||
if (this.nbrOfCol > 1) {
|
||||
const nbrPerCol = Math.floor(texts.length / this.nbrOfCol);
|
||||
const rest = texts.length - nbrPerCol * this.nbrOfCol;
|
||||
const nbrPerCols = [
|
||||
rest > 0 ? nbrPerCol + 1 : nbrPerCol,
|
||||
rest > 1 ? nbrPerCol + 1 : nbrPerCol,
|
||||
rest > 2 ? nbrPerCol + 1 : nbrPerCol,
|
||||
rest > 3 ? nbrPerCol + 1 : nbrPerCol,
|
||||
];
|
||||
for (let i = 0; i < this.nbrOfCol; i++) {
|
||||
this.elements[i] = new Column(0, 0, []);
|
||||
}
|
||||
(<Column>this.elements[currentIndex]).elements.push(
|
||||
new Row(0, 0, [
|
||||
multiline
|
||||
? new MultilineText(0, 0, texts[i])
|
||||
: new Text(0, 0, texts[i]),
|
||||
])
|
||||
for (let i = 0; i < texts.length; i++) {
|
||||
if (i < nbrPerCols[0]) {
|
||||
currentIndex = 0;
|
||||
} else if (i < nbrPerCols[0] + nbrPerCols[1]) {
|
||||
currentIndex = 1;
|
||||
} else if (i < nbrPerCols[0] + nbrPerCols[1] + nbrPerCols[2]) {
|
||||
currentIndex = 2;
|
||||
} else {
|
||||
currentIndex = 3;
|
||||
}
|
||||
(<Column>this.elements[currentIndex]).elements.push(
|
||||
new Row(0, 0, [
|
||||
multiline
|
||||
? new MultilineText(0, 0, texts[i])
|
||||
: new Text(0, 0, texts[i]),
|
||||
])
|
||||
);
|
||||
}
|
||||
} else {
|
||||
this.elements.push(
|
||||
new Column(
|
||||
0,
|
||||
0,
|
||||
texts.map(
|
||||
(text) =>
|
||||
new Row(0, 0, [
|
||||
multiline
|
||||
? new MultilineText(0, 0, text)
|
||||
: new Text(0, 0, text),
|
||||
])
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
this.elements.push(
|
||||
new Column(
|
||||
0,
|
||||
0,
|
||||
texts.map(
|
||||
(text) =>
|
||||
new Row(0, 0, [
|
||||
multiline
|
||||
? new MultilineText(0, 0, text)
|
||||
: new Text(0, 0, text),
|
||||
])
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user