<?php

declare(strict_types=1);

use Fisharebest\Webtrees\I18N;

/**
 * @var array<int,array<string|array<string,int|bool|string>>> $chart_options
 * @var string                                                 $chart_title
 * @var array<string,array{0:string,1:int}>                    $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; ?>
