{% set theme_config = attribute(config.themes, config.system.pages.theme) %}
<!DOCTYPE html>
<html lang="{{ grav.language.getLanguage ?: 'en' }}">
    {% block head %}
    <head>
        {% block meta %}
            <meta charset="utf-8" />
            <title>{% if header.title %}{{ header.title|e('html') }} | {% endif %}{{ site.title|e('html') }}</title>
            {% include 'partials/metadata.html.twig' %}
            <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
        {% endblock meta %}
        <link rel="icon" type="image/png" href="{{ url('theme://images/favicon.png') }}" />
        <link rel="canonical" href="{{ page.url(true, true) }}" />
        {% block stylesheets %}
            {% if config.plugins['presentation'].transition %}
                {% do assets.addCss('plugin://presentation/css/transition.css', {'group': 'critical'}) %}
            {% endif %}
            {% if config.plugins['presentation'].builtin_css %}
                {% do assets.addCss('plugin://presentation/node_modules/reveal.js/css/reveal.css', {'group': 'presentation'}) %}
                {% if uri.query('print-pdf') != 'true' %}
                    {% if config.plugins['presentation'].theme != 'none' %}
                        {% do assets.addCss('user://plugins/presentation/node_modules/reveal.js/css/theme/' ~ config.plugins['presentation'].theme ~ '.css', {'group': 'presentation'}) %}
                    {% endif %}
                {% else %}
                    {% do assets.addCss('plugin://presentation/node_modules/reveal.js/css/print/pdf.css', {'group': 'presentation'}) %}
                    {% if uri.query('theme') == 'preset' %}
                        {% do assets.addCss('user://plugins/presentation/node_modules/reveal.js/css/theme/' ~ config.plugins['presentation'].theme ~ '.css', {'group': 'presentation'}) %}
                    {% else %}
                        {% do assets.addCss('plugin://presentation/css/paper.css', {'group': 'presentation'}) %}
                    {% endif %}
                    <style type="text/css">
                    .reveal.print {
                        background: unset !important;
                    }
                    .reveal.print .slides section {
                        color: black !important;
                    }
                    .reveal.print embed, iframe, video, .pause-overlay, #snackbar {
                        display: none;
                    }
                    .reveal.print pre code {
                        padding: 0 !important;
                        border: 0 !important;
                    }
                    </style>
                {% endif %}
            {% endif %}
            {% if config.plugins['presentation'].plugin_css and uri.query('print-pdf') != 'true' %}
                {% do assets.addCss('plugin://presentation/css/presentation.css', {'group': 'presentation'}) %}
            {% endif %}
            {% if config.plugins['presentation'].theme_css %}
                {% do assets.addCss('theme://css/custom.css', {'group': 'presentation'}) %}
            {% endif %}
        {% endblock %}
        {% block scripts %}
            {# Deprecated v3.1.0 #}
            {# {% do assets.addInlineJs('const reveal_init = ' ~ reveal_init ~ ';', {'group': 'presentation'}) %} #}
            {# Deprecated v1.2.1 #}
            {# {% do assets.addInlineJs('const presentationBreakpoints = ' ~ presentation_breakpoints ~ ';', {'group': 'presentation'}) %} #}
            {% do assets.addInlineJs('const presentationAPIRoute = "/' ~ config.plugins['presentation'].api_route ~ '";', {'group': 'presentation'}) %}
            {% do assets.addInlineJs('const presentationAPITimeout = ' ~ config.plugins['presentation'].poll_timeout ~ ';', {'group': 'presentation'}) %}
            {% do assets.addInlineJs('const presentationAPIRetryLimit = ' ~ config.plugins['presentation'].poll_retry_limit ~ ';', {'group': 'presentation'}) %}
            {% if config.plugins['presentation'].token_auth == true %}
                {% do assets.addInlineJs('const presentationAPIAuth = true;', {'group': 'presentation'}) %}
            {% else %}
                {% do assets.addInlineJs('const presentationAPIAuth = false;', {'group': 'presentation'}) %}
            {% endif %}
            {% if uri.query('admin') == true %}
                {% do assets.addInlineJs('const presentationAuthToken = "' ~ config.plugins['presentation'].token ~ '";', {'group': 'presentation'}) %}
            {% endif %}
            {% if config.plugins['presentation'].builtin_js %}
                {% do assets.addJs('plugin://presentation/node_modules/reveal.js/lib/js/head.min.js', {'group': 'presentation'}) %}
                {% do assets.addJs('plugin://presentation/node_modules/reveal.js/js/reveal.js', {'group': 'presentation'}) %}
            {% endif %}
            {% if config.plugins['presentation'].plugin_js %}
                {% do assets.addJs('plugin://presentation/js/presentation.js', {'group': 'presentation'}) %}
            {% endif %}
            {# Deprecated v1.2.1 #}
            {# {% if config.plugins['presentation'].plugin_js and config.plugins['presentation'].textsizing %}
                {% do assets.addJs('plugin://presentation/js/modular-scale.package.js', {'group': 'critical'}) %}
                {% do assets.addJs('plugin://presentation/js/modular-scale.js', {'group': 'critical'}) %}
            {% endif %} #}
        {% endblock %}
        {% block assets deferred %}
            {{ assets.css('critical')|raw }}
            {{ assets.js('critical')|raw }}
            {{ assets.css('presentation')|raw }}
            {% if config.plugins['presentation'].all_assets or config.system.debugger.enabled %}
                {{ assets.css()|raw }}
            {% endif %}
        {% endblock %}
    </head>
    {% endblock head %}
    <body id="top" class="{{ page.header.body_classes }}">
        {% if config.plugins['presentation'].transition %}
        <div id="page_transition">
            <div class="la-line-scale la-dark la-3x">
                <div style="color: #0B110D;"></div>
                <div style="color: #2C4D56;"></div>
                <div style="color: #C3AA72;"></div>
                <div style="color: #DC7612;"></div>
                <div style="color: #BD3200;"></div>
            </div>
        </div>
        {% endif %}
        {% block content %}
        <div class="reveal {% if uri.query('print-pdf') == 'true' %}print{% endif %}" id="presentation">
            <div class="slides">
                {{ page.content|raw }}
            </div>
        </div>
        {% endblock content %}
        {% block plugin_init %}
            {{ assets.js('presentation')|raw }}
            {% if config.plugins['presentation'].builtin_js %}
            <script type="text/javascript">
            window.addEventListener('load', function(event) {
                Reveal.initialize(reveal_init);
                Reveal.addEventListener('ready', function( event ) {
                    elevateIframe(event)
                });
                Reveal.addEventListener('slidechanged', function( event ) {
                    elevateIframe(event)
                });
                if (findGetParameter('admin') == 'true') {
                    Reveal.addEventListener('ready', function(event) {
                        var body = document.getElementById('top');
                        body.insertAdjacentHTML('beforeend', '<div id="clockbox"></div>');
                        initClock();
                        setInterval(initClock, 1000);
                    });
                }
                if (findGetParameter('print-pdf') == 'true') {
                    Reveal.addEventListener('ready', function(event) {
                        var slides = document.querySelectorAll('.reveal.print .slides > section');
                        for (var i = 0; i < slides.length; i++) {
                            if (slides[i].querySelector('section')) {
                                slides[i].style.background = "initial";
                                slides[i].style.backgroundPosition = "50% 50%";
                                slides[i].style.backgroundRepeat = "no-repeat";
                                if (slides[i].querySelector('section').dataset.backgroundImage) {
                                    slides[i].style.backgroundImage = "url(" + slides[i].querySelector('section').dataset.backgroundImage + ")";
                                }
                                if (slides[i].querySelector('section').dataset.backgroundSize) {
                                    slides[i].style.backgroundSize = slides[i].querySelector('section').dataset.backgroundSize;
                                }
                                if (slides[i].querySelector('section').dataset.backgroundColor) {
                                    slides[i].style.backgroundColor = slides[i].querySelector('section').dataset.backgroundColor;
                                }
                            }
                                
                        }
                    });
                }
            }, false);
            </script>
                {% if config.plugins['presentation'].transition %}
                <script type="text/javascript">
                Reveal.addEventListener('ready', function (event) {
                    javascript:document.getElementById("page_transition").style.visibility="hidden";
                    javascript:document.getElementById("page_transition").style.opacity=0;
                    javascript:document.getElementById("page_transition").style.display="none";
                });
                </script>
                {% endif %}
            {% endif %}
        {% endblock %}
        {% if config.plugins['presentation'].sync == 'browser' %}
            {% do assets.addJs('plugin://presentation/js/broadcast.js', {'group': 'bottom'}) %}
        {% elseif config.plugins['presentation'].sync == 'poll' %}
            {% do assets.addJs('plugin://presentation/node_modules/axios/dist/axios.min.js', {'group': 'presentation'}) %}
            {% do assets.addJs('plugin://presentation/js/poll.js', {'group': 'bottom'}) %}
        {% endif %}
        {% block assets_bottom deferred %}
            {{ assets.js('bottom')|raw }}
            {% if config.plugins['presentation'].all_assets or config.system.debugger.enabled %}
                {{ assets.js()|raw }}
            {% endif %}
        {% endblock %}
        <div id="snackbar">
            <span id="snackbar-message"></span>
            <a href="javascript:window.location.reload(true)">Reload?</a>
        </div>
    </body>
</html>