resources/views/statistics/other/charts/column.phtml
<?php
declare(strict_types=1);
use Fisharebest\Webtrees\I18N;
/**
* @var array<mixed> $chart_options
* @var string $chart_title
* @var array<array> $data
* @var string $language
*/
$id = 'google-chart-' . bin2hex(random_bytes(8));
$name = 'callback_' . bin2hex(random_bytes(12));
?>
<?php if (count($data) === 1) : ?>
<?= I18N::translate('This information is not available.') ?>
<?php else : ?>
<div id="<?= $id ?>" title="<?= $chart_title ?>"></div>
<script>
let <?= $name ?> = function () {
statistics.drawColumnChart(
<?= json_encode($id, JSON_THROW_ON_ERROR) ?>,
<?= json_encode($data, JSON_THROW_ON_ERROR) ?>,
<?= json_encode($chart_options, JSON_THROW_ON_ERROR) ?>
);
};
if (document.readyState === "complete"
|| (document.readyState !== "loading" && !document.documentElement.doScroll)
) {
statistics.init(<?= json_encode($language, JSON_THROW_ON_ERROR) ?>);
statistics.addCallback(<?= $name ?>);
} else {
document.addEventListener("DOMContentLoaded", function () {
statistics.init(<?= json_encode($language, JSON_THROW_ON_ERROR) ?>);
statistics.addCallback(<?= $name ?>);
});
}
</script>
<?php endif; ?>