<?php declare(strict_types=1); namespace Arcanedev\Html\Elements; use Arcanedev\Html\Contracts\Selectable; use Arcanedev\Html\Elements\Concerns\{HasDisabledAttribute, HasValueAttribute}; /** * Class Option * * @author ARCANEDEV <arcanedev.maroc@gmail.com> * * @method \Arcanedev\Html\Elements\Option selectedUnless(bool $condition) */ class Option extends HtmlElement implements Selectable { /* ----------------------------------------------------------------- | Traits | ----------------------------------------------------------------- */ use HasDisabledAttribute, HasValueAttribute; /* ----------------------------------------------------------------- | Properties | ----------------------------------------------------------------- */ /** @var string */ protected $tag = 'option'; /* ----------------------------------------------------------------- | Main Methods | ----------------------------------------------------------------- */ /** * Add the selected if it fulfill the condition. * * @param bool $condition * * @return $this */ public function selectedIf($condition) { return $condition ? $this->selected() : $this->unselected(); } /** * Add the selected attribute. * * @param bool $selected * * @return $this */ public function selected(bool $selected = true) { return $selected ? $this->attribute('selected') : $this->forgetAttribute('selected'); } /** * Remove the selected attribute. * * @return $this */ public function unselected() { return $this->selected(false); } }