target->addClasses( array( 'oo-ui-labelElement-label' ) ); $this->setLabel( isset( $config['label'] ) ? $config['label'] : null ); } /** * Set the label. * * An empty string will result in the label being hidden. A string containing only whitespace will * be converted to a single ` `. * * @param string|HtmlSnippet|null $label Label text * @chainable */ public function setLabel( $label ) { $this->label = $label; $this->target->clearContent(); if ( $this->label !== null ) { if ( is_string( $this->label ) && $this->label !== '' && trim( $this->label ) === '' ) { $this->target->appendContent( new HtmlSnippet( ' ' ) ); } else { $this->target->appendContent( $label ); } } $this->element->toggleClasses( array( 'oo-ui-labelElement' ), !!$this->label ); return $this; } /** * Get the label. * * @return string|HtmlSnippet|null Label text */ public function getLabel() { return $this->label; } public function getConfig( &$config ) { if ( $this->label !== null ) { $config['label'] = $this->label; } return parent::getConfig( $config ); } }