FontIcon   A
last analyzed

Complexity

Total Complexity 14

Size/Duplication

Total Lines 74
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 14
lcom 1
cbo 3
dl 0
loc 74
ccs 0
cts 52
cp 0
rs 10
c 0
b 0
f 0

12 Methods

Rating   Name   Duplication   Size   Complexity  
A i() 0 4 1
A build() 0 6 1
A __toString() 0 4 1
A addClass() 0 6 1
A setName() 0 4 1
A setRotate() 0 4 1
A rotate() 0 4 1
A border() 0 4 1
A fixedWidth() 0 4 1
A nameClass() 0 4 2
A setParams() 0 6 2
A render() 0 4 1
1
<?php
2
/**
3
 * HiPanel core package
4
 *
5
 * @link      https://hipanel.com/
6
 * @package   hipanel-core
7
 * @license   BSD-3-Clause
8
 * @copyright Copyright (c) 2014-2019, HiQDev (http://hiqdev.com/)
9
 */
10
11
namespace hipanel\helpers;
12
13
use Yii;
14
use yii\helpers\Html;
15
16
class FontIcon extends \yii\base\BaseObject
17
{
18
    public $tag;
19
20
    public $content;
21
22
    public $options = [];
23
24
    public static function i($name, $params = [])
25
    {
26
        return self::build('i', $name, $params);
27
    }
28
29
    public static function build($tag, $name, $params = [])
30
    {
31
        $class = get_called_class();
32
33
        return Yii::createObject(compact('class', 'tag', 'name', 'params'));
34
    }
35
36
    public function __toString()
37
    {
38
        return $this->render();
39
    }
40
41
    public function addClass($class)
42
    {
43
        Html::addCssClass($this->options, $class);
44
45
        return $this;
46
    }
47
48
    public function setName($name)
49
    {
50
        $this->addClass(self::nameClass($name));
51
    }
52
53
    public function setRotate($angle)
54
    {
55
        $this->rotate($angle);
56
    }
57
58
    public function rotate($angle)
59
    {
60
        return $this->addClass("fa-rotate-$angle");
61
    }
62
63
    public function border()
64
    {
65
        return $this->addClass('fa-border');
66
    }
67
68
    public function fixedWidth()
69
    {
70
        return $this->addClass('fa-fw');
71
    }
72
73
    public static function nameClass($name)
74
    {
75
        return (substr($name, 0, 3) === 'fa-' ? 'fa ' : '') . $name;
76
    }
77
78
    public function setParams($params)
79
    {
80
        foreach ($params as $k => $v) {
81
            $this->{$k} = $v;
82
        }
83
    }
84
85
    public function render()
86
    {
87
        return Html::tag($this->tag, $this->content, $this->options);
88
    }
89
}
90