Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
LabelIconWidget
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace MediaWiki\Extension\Notifications\OOUI;
4
5use OOUI\IconElement;
6use OOUI\LabelElement;
7use OOUI\Tag;
8use OOUI\TitledElement;
9use OOUI\Widget;
10
11/**
12 * Widget combining a label and icon
13 */
14class LabelIconWidget extends Widget {
15    use IconElement;
16    use LabelElement;
17    use TitledElement;
18
19    /**
20     * @param array $config Configuration options
21     *  - string|HtmlSnippet $config['label'] Label text
22     *  - string $config['title'] Title text
23     *  - string $config['icon'] Icon key
24     */
25    public function __construct( $config ) {
26        parent::__construct( $config );
27
28        $tableRow = new Tag( 'div' );
29        $tableRow->setAttributes( [
30            'class' => 'oo-ui-labelIconWidget-row',
31        ] );
32
33        $icon = new Tag( 'div' );
34        $label = new Tag( 'div' );
35
36        $this->initializeIconElement( array_merge( $config, [ 'iconElement' => $icon ] ) );
37        $this->initializeLabelElement( array_merge( $config, [ 'labelElement' => $label ] ) );
38        $this->initializeTitledElement( $config );
39
40        $this->addClasses( [ 'oo-ui-labelIconWidget' ] );
41        $tableRow->appendContent( $icon, $label );
42        $this->appendContent( $tableRow );
43    }
44}