Passed
Push — master ( 06ae89...bb4653 )
by Bruno
08:26
created

Pagination   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 27
dl 0
loc 42
rs 10
c 0
b 0
f 0
wmc 13

1 Method

Rating   Name   Duplication   Size   Complexity  
F render() 0 40 13
1
<?php declare(strict_types=1);
2
3
namespace Formularium\Frontend\Bulma\Element;
4
5
use Formularium\Element;
6
use Formularium\HTMLNode;
7
8
class Pagination extends Element
9
{
10
    public function render(array $parameters, HTMLNode $previous): HTMLNode
11
    {
12
        foreach ($previous->get('.formularium-pagination-wrapper') as $e) {
13
            $e->addAttribute('class', 'pagination');
14
        }
15
        foreach ($previous->get('.formularium-disabled') as $e) {
16
            $e->addAttribute('class', 'disabled');
17
        }
18
        foreach ($previous->get('.formularium-ellipsis') as $e) {
19
            foreach ($e->getContent() as $e2) {
20
                $e2->setAttribute('class', 'pagination-ellipsis')
21
                    ->setTag('span');
22
            }
23
        }
24
        foreach ($previous->get('.formularium-pagination-link') as $e) {
25
            $e->addAttribute('class', 'pagination-link');
26
        }
27
        foreach ($previous->get('.formularium-pagination-current') as $e) {
28
            foreach ($e->getContent() as $e2) {
29
                $e2->addAttribute('class', 'is-current');
30
            }
31
        }
32
        foreach ($previous->get('.formularium-pagination') as $e) {
33
            $e->addAttribute('class', 'pagination-list');
34
        }
35
36
        $size = $parameters[self::SIZE] ?? '';
37
        switch ($size) {
38
            case self::SIZE_LARGE:
39
                foreach ($previous->get('.formularium-pagination') as $e) {
40
                    $e->addAttribute('class', 'is-large');
41
                }
42
                break;
43
            case self::SIZE_SMALL:
44
                foreach ($previous->get('.formularium-pagination') as $e) {
45
                    $e->addAttribute('class', 'is-small');
46
                }
47
                break;
48
        }
49
        return $previous;
50
    }
51
}
52