/**
* Prepare options for this button.
*
* @param array $options The options about this button.
*
* @return void
*
* @since 4.0.0
* @throws \Exception
*/
protected function prepareOptions(array &$options)
{
parent::prepareOptions($options);
$childToolbar = $this->getChildToolbar();
$options['hasButtons'] = \count($childToolbar->getItems()) > 0;
$buttons = $childToolbar->getItems();
if ($options['hasButtons']) {
if ($this->getOption('toggleSplit', true)) {
/** @var ToolbarButton $button */
$button = array_shift($buttons);
$childToolbar->setItems($buttons);
$options['button'] = $button->render();
$options['caretClass'] = $options['toggleButtonClass'] ?? $button->getButtonClass();
$options['dropdownItems'] = $childToolbar->render(['is_child' => true]);
} else {
$options['dropdownItems'] = $childToolbar->render(['is_child' => true]);
$button = new BasicButton($this->getName(), $this->getText(), $options);
$options['button'] = $button->setParent($this->parent)->buttonClass($button->getButtonClass() . ' dropdown-toggle')->attributes(['data-bs-toggle' => 'dropdown', 'data-bs-target' => '#' . $this->fetchId(), 'aria-haspopup' => 'true', 'aria-expanded' => 'false'])->render();
}
}
}