xref: /webtrees/resources/views/statistics/other/charts/combo.phtml (revision 728c8c2714cc197d45bad7363eb52e0bff3297bb)
1<?php
2
3declare(strict_types=1);
4
5use Fisharebest\Webtrees\I18N;
6
7/**
8 * @var array<mixed> $chart_options
9 * @var array<array> $data
10 * @var string       $language
11 */
12
13$id   = 'google-chart-' . bin2hex(random_bytes(8));
14$name = 'callback_' . bin2hex(random_bytes(12));
15?>
16
17<?php if (count($data) === 1) : ?>
18    <?= I18N::translate('This information is not available.') ?>
19<?php else : ?>
20    <div id="<?= $id ?>" title="<?= $chart_title ?? '' ?>"></div>
21    <script>
22
23    let <?= $name ?> = function () {
24        statistics.drawComboChart(
25            <?= json_encode($id, JSON_THROW_ON_ERROR) ?>,
26            <?= json_encode($data, JSON_THROW_ON_ERROR) ?>,
27            <?= json_encode($chart_options, JSON_THROW_ON_ERROR) ?>
28        );
29    };
30
31    if (document.readyState === "complete"
32        || (document.readyState !== "loading" && !document.documentElement.doScroll)
33    ) {
34        statistics.init(<?= json_encode($language, JSON_THROW_ON_ERROR) ?>);
35        statistics.addCallback(<?= $name ?>);
36    } else {
37        document.addEventListener("DOMContentLoaded", function () {
38            statistics.init(<?= json_encode($language, JSON_THROW_ON_ERROR) ?>);
39            statistics.addCallback(<?= $name ?>);
40        });
41    }
42
43    </script>
44<?php endif; ?>
45