Test Failed
Push — main ( 6435b1...db043e )
by Paul
16:23 queued 07:02
created

Range::normalizeOptions()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 5
c 0
b 0
f 0
dl 0
loc 7
rs 10
cc 2
nc 2
nop 0
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Modules\Html\FieldElements;
4
5
use GeminiLabs\SiteReviews\Arguments;
6
use GeminiLabs\SiteReviews\Helper;
7
use GeminiLabs\SiteReviews\Helpers\Arr;
8
use GeminiLabs\SiteReviews\Helpers\Cast;
9
use GeminiLabs\SiteReviews\Modules\Html\Builder;
10
use GeminiLabs\SiteReviews\Modules\Html\Template;
11
use GeminiLabs\SiteReviews\Modules\Style;
12
13
class Range extends Radio
14
{
15
    protected function buildReviewField(Arguments $args): string
16
    {
17
        $field = glsr(Builder::class)->div([
18
            'class' => 'glsr-range-options',
19
            'data-placeholder' => __('Please select', 'site-reviews'),
20
            'text' => parent::buildReviewField($args),
21
        ]);
22
        if (empty($args->labels)) {
23
            return $field;
24
        }
25
        $labels = [
26
            Arr::get($args->labels, 0, ''),
27
            Arr::get($args->labels, 1, ''),
28
            Arr::get($args->labels, 2, ''),
29
        ];
30
        $labels = array_reduce($labels,
31
            fn ($carry, $label) => $carry.glsr(Builder::class)->span($label),
32
            ''
33
        );
34
        $labels = glsr(Builder::class)->div([
35
            'class' => 'glsr-range-labels',
36
            'text' => $labels,
37
        ]);
38
        return $labels.$field;
39
    }
40
41
    protected function normalizeOptions(): void
42
    {
43
        if (!empty($this->field->options)) {
44
            $keys = range(1, count($this->field->options));
45
            $values = array_values($this->field->options);
46
            $values = array_map(fn ($value) => Cast::toString($value), $values);
47
            $this->field->options = array_combine($keys, $values);
48
        }
49
    }
50
}
51