1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
<?php
namespace OOUI;
/**
* Label widget.
*/
class LabelWidget extends Widget {
use LabelElement;
/* Static Properties */
/** @var string */
public static $tagName = 'label';
/* Properties */
/**
* Associated input element.
*
* @var InputWidget|null
*/
protected $input;
/**
* @param array $config Configuration options
* - InputWidget $config['input'] Input widget this label is for
*/
public function __construct( array $config = [] ) {
// Parent constructor
parent::__construct( $config );
// Traits
$this->initializeLabelElement(
array_merge( [ 'labelElement' => $this ], $config )
);
// Properties
$this->input = $config['input'] ?? null;
// Initialization
if ( $this->input && $this->input->getInputId() ) {
$this->setAttributes( [ 'for' => $this->input->getInputId() ] );
}
$this->addClasses( [ 'oo-ui-labelWidget' ] );
}
/** @inheritDoc */
public function getConfig( &$config ) {
if ( $this->input !== null ) {
$config['input'] = $this->input;
}
return parent::getConfig( $config );
}
}
|