<?php

namespace DynamicOOOS\Mpdf\Tag;

class Br extends Tag
{
    public function open($attr, &$ahtml, &$ihtml)
    {
        // Added mPDF 3.0 Float DIV - CLEAR
        if (isset($attr['STYLE'])) {
            $properties = $this->cssManager->readInlineCSS($attr['STYLE']);
            if (isset($properties['CLEAR'])) {
                $this->mpdf->ClearFloats(\strtoupper($properties['CLEAR']), $this->mpdf->blklvl);
            }
            // *CSS-FLOAT*
        }
        // mPDF 6 bidi
        // Inline
        // If unicode-bidi set, any embedding levels, isolates, or overrides started by
        // the inline box are closed at the br and reopened on the other side
        $blockpre = '';
        $blockpost = '';
        if (isset($this->mpdf->blk[$this->mpdf->blklvl]['bidicode'])) {
            $blockpre = $this->mpdf->_setBidiCodes('end', $this->mpdf->blk[$this->mpdf->blklvl]['bidicode']);
            $blockpost = $this->mpdf->_setBidiCodes('start', $this->mpdf->blk[$this->mpdf->blklvl]['bidicode']);
        }
        // Inline
        // If unicode-bidi set, any embedding levels, isolates, or overrides started by
        // the inline box are closed at the br and reopened on the other side
        $inlinepre = '';
        $inlinepost = '';
        $iBDF = [];
        if (\count($this->mpdf->InlineBDF)) {
            foreach ($this->mpdf->InlineBDF as $k => $ib) {
                foreach ($ib as $ib2) {
                    $iBDF[$ib2[1]] = $ib2[0];
                }
            }
            if (\count($iBDF)) {
                \ksort($iBDF);
                for ($i = \count($iBDF) - 1; $i >= 0; $i--) {
                    $inlinepre .= $this->mpdf->_setBidiCodes('end', $iBDF[$i]);
                }
                for ($i = 0; $i < \count($iBDF); $i++) {
                    $inlinepost .= $this->mpdf->_setBidiCodes('start', $iBDF[$i]);
                }
            }
        }
        /* -- TABLES -- */
        if ($this->mpdf->tableLevel) {
            if ($this->mpdf->blockjustfinished) {
                $this->mpdf->_saveCellTextBuffer($blockpre . $inlinepre . "\n" . $inlinepost . $blockpost);
            }
            $this->mpdf->_saveCellTextBuffer($blockpre . $inlinepre . "\n" . $inlinepost . $blockpost);
            if (!isset($this->mpdf->cell[$this->mpdf->row][$this->mpdf->col]['maxs'])) {
                $this->mpdf->cell[$this->mpdf->row][$this->mpdf->col]['maxs'] = $this->mpdf->cell[$this->mpdf->row][$this->mpdf->col]['s'];
            } elseif ($this->mpdf->cell[$this->mpdf->row][$this->mpdf->col]['maxs'] < $this->mpdf->cell[$this->mpdf->row][$this->mpdf->col]['s']) {
                $this->mpdf->cell[$this->mpdf->row][$this->mpdf->col]['maxs'] = $this->mpdf->cell[$this->mpdf->row][$this->mpdf->col]['s'];
            }
            $this->mpdf->cell[$this->mpdf->row][$this->mpdf->col]['s'] = 0;
            // reset
        } else {
            /* -- END TABLES -- */
            if (\count($this->mpdf->textbuffer)) {
                $this->mpdf->textbuffer[\count($this->mpdf->textbuffer) - 1][0] = \preg_replace('/ $/', '', $this->mpdf->textbuffer[\count($this->mpdf->textbuffer) - 1][0]);
                if (!empty($this->mpdf->textbuffer[\count($this->mpdf->textbuffer) - 1][18])) {
                    $this->otl->trimOTLdata($this->mpdf->textbuffer[\count($this->mpdf->textbuffer) - 1][18], \false);
                }
                // *OTL*
            }
            $this->mpdf->_saveTextBuffer($blockpre . $inlinepre . "\n" . $inlinepost . $blockpost);
        }
        // *TABLES*
        $this->mpdf->ignorefollowingspaces = \true;
        $this->mpdf->blockjustfinished = \false;
        $this->mpdf->linebreakjustfinished = \true;
    }
    public function close(&$ahtml, &$ihtml)
    {
    }
}
