. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Report; use function strip_tags; use function trim; class ReportBaseElement { // Special value for X or Y position, to indicate the current position. public const float CURRENT_POSITION = -1.0; protected string $text = ''; /** * @param HtmlRenderer|PdfRenderer $renderer */ public function render($renderer): void { //-- to be implemented in inherited classes } /** * @param HtmlRenderer|PdfRenderer $renderer */ public function getHeight($renderer): float { return 0.0; } /** * @param HtmlRenderer|PdfRenderer $renderer * * @return array{0:float,1:int,2:float} */ public function getWidth($renderer): array { return [0.0, 1, 0.0]; } public function addText(string $t): void { $t = trim($t, "\r\n\t"); $t = strtr($t, ['
' => "\n", ' ' => "\u{A0}"]); $this->text .= strip_tags($t); } public function addNewline(): void { $this->text .= "\n"; } public function getValue(): string { return $this->text; } public function setWrapWidth(float $wrapwidth, float $cellwidth): float { return 0; } /** * @param HtmlRenderer|PdfRenderer $renderer */ public function renderFootnote($renderer): void { } }