/**
* Prepare options for this button.
*
* @param array &$options The options about this button.
*
* @return void
*
* @since 4.0.0
*/
protected function prepareOptions(array &$options)
{
$options['name'] = $this->getName();
$options['text'] = Text::_($this->getText());
$options['class'] = $this->getIcon() ?: $this->fetchIconClass($this->getName());
$options['id'] = $this->ensureUniqueId($this->fetchId());
if (!empty($options['is_child'])) {
$options['tagName'] = 'button';
$options['btnClass'] = ($options['button_class'] ?? '') . ' dropdown-item';
$options['attributes']['type'] = 'button';
if ($options['is_first_child']) {
$options['btnClass'] .= ' first';
}
if ($options['is_last_child']) {
$options['btnClass'] .= ' last';
}
} else {
$options['tagName'] = 'button';
$options['btnClass'] = $options['button_class'] ?? 'btn btn-primary';
$options['attributes']['type'] = 'button';
}
}