<?php
namespace Maknz\Slack\BlockElement;
use Maknz\Slack\Object\Option;
class Checkboxes extends Options
{
protected $type = 'checkboxes';
protected static $availableAttributes = [
'action_id' => 'action_id',
'options' => 'options',
'confirm' => 'confirm',
];
public function getInitialOptions()
{
return array_values(array_filter($this->getOptions(), function (Option $o) {
return $o->isInitiallySelected();
}));
}
public function toArray()
{
$initialOptions = [];
$data = [
'type' => $this->getType(),
'action_id' => $this->getActionId(),
'options' => $this->getOptionsAsArrays(),
];
foreach ($this->getOptions() as $option) {
if ($option->isInitiallySelected()) {
$initialOptions[] = $option->toArray();
}
}
if (count($initialOptions)) {
$data['initial_options'] = $initialOptions;
}
if ($this->getConfirm()) {
$data['confirm'] = $this->getConfirm()->toArray();
}
return $data;
}
}