Spaces:
No application file
No application file
namespace Mautic\CoreBundle\Helper\Chart; | |
class BarChart extends AbstractChart implements ChartInterface | |
{ | |
/** | |
* Defines the basic chart values, generates the time axe labels from it. | |
*/ | |
public function __construct(array $labels) | |
{ | |
$this->labels = $labels; | |
} | |
/** | |
* @return array{labels: mixed[], datasets: mixed[]} | |
*/ | |
public function render(): array | |
{ | |
ksort($this->datasets); | |
return [ | |
'labels' => $this->labels, | |
'datasets' => $this->datasets, | |
]; | |
} | |
/** | |
* Define a dataset by name and data. Method will add the rest. | |
* | |
* @param string $label | |
* @param int $order | |
* | |
* @return $this | |
*/ | |
public function setDataset($label, array $data, $order = null) | |
{ | |
$datasetId = count($this->datasets); | |
$baseData = [ | |
'label' => $label, | |
'data' => $data, | |
]; | |
if (null === $order) { | |
$order = count($this->datasets); | |
} | |
$this->datasets[$order] = array_merge($baseData, $this->generateColors($datasetId)); | |
return $this; | |
} | |
/** | |
* Generate unique color for the dataset. | |
* | |
* @param int $datasetId | |
*/ | |
public function generateColors($datasetId): array | |
{ | |
$color = $this->configureColorHelper($datasetId); | |
return [ | |
'fill' => true, | |
'backgroundColor' => $color->toRgba(0.7), | |
'borderColor' => $color->toRgba(0.8), | |
'pointHoverBackgroundColor' => $color->toRgba(0.9), | |
'pointHoverBorderColor' => $color->toRgba(1), | |
]; | |
} | |
} | |