]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - vendor/oojs/oojs-ui/php/widgets/LabelWidget.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / vendor / oojs / oojs-ui / php / widgets / LabelWidget.php
diff --git a/vendor/oojs/oojs-ui/php/widgets/LabelWidget.php b/vendor/oojs/oojs-ui/php/widgets/LabelWidget.php
new file mode 100644 (file)
index 0000000..593840c
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+
+namespace OOUI;
+
+/**
+ * Label widget.
+ */
+class LabelWidget extends Widget {
+       use LabelElement;
+
+       /* Static Properties */
+
+       public static $tagName = 'label';
+
+       /* Properties */
+
+       /**
+        * Associated input element.
+        *
+        * @var InputWidget|null
+        */
+       protected $input;
+
+       /**
+        * @param array $config Configuration options
+        * @param InputWidget $config['input'] Input widget this label is for
+        */
+       public function __construct( array $config = [] ) {
+               // Parent constructor
+               parent::__construct( $config );
+
+               // Traits
+               $this->initializeLabelElement(
+                       array_merge( $config, [ 'labelElement' => $this ] ) );
+
+               // Properties
+               $this->input = isset( $config['input'] ) ? $config['input'] : null;
+
+               // Initialization
+               if ( $this->input && $this->input->getInputId() ) {
+                       $this->setAttributes( [ 'for' => $this->input->getInputId() ] );
+               }
+               $this->addClasses( [ 'oo-ui-labelWidget' ] );
+       }
+
+       public function getConfig( &$config ) {
+               if ( $this->input !== null ) {
+                       $config['input'] = $this->input;
+               }
+               return parent::getConfig( $config );
+       }
+}