Test Failed
Push — master ( e97986...2933e0 )
by Bruno
19:41 queued 09:43
created

RenderableVuetifyTrait::editable()   A

Complexity

Conditions 5
Paths 1

Size

Total Lines 18
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
eloc 9
c 2
b 1
f 0
dl 0
loc 18
rs 9.6111
cc 5
nc 1
nop 3
1
<?php declare(strict_types=1);
2
3
namespace Formularium\Frontend\Vuetify;
4
5
use Formularium\Field;
6
use Formularium\Frontend\HTML\Renderable;
7
use Formularium\HTMLNode;
8
9
trait RenderableVuetifyTrait
10
{
11
    /**
12
     * Subcall of wrapper editable() from RenderableTrait
13
     *
14
     * @param mixed $value
15
     * @param Field $field
16
     * @param HTMLNode $previous
17
     * @return HTMLNode
18
     */
19
    abstract public function _editable($value, Field $field, HTMLNode $previous): HTMLNode;
20
21
    public function editable($value, Field $field, HTMLNode $previous): HTMLNode
22
    {
23
        /** @var HTMLNode $base */
24
        $base = $this->_editable($value, $field, $previous);
25
26
        $base->filter(function ($e) {
27
            if ($e instanceof HTMLNode) {
28
                if ($e->getTag() === 'label') {
29
                    return false;
30
                }
31
                if ($e->getTag() === 'div' && $e->getAttribute('class') === ['formularium-comment']) {
32
                    return false;
33
                }
34
            }
35
            return true;
36
        });
37
38
        return $base;
39
    }
40
}
41