<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Telefoneer API</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
    <style>
        :root {
            color-scheme: light dark;
        }
        body {
            margin: 0;
            min-height: 100vh;
            display: grid;
            place-items: center;
            font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
            background: #0f172a;
            color: #e2e8f0;
        }
        .card {
            max-width: 520px;
            padding: 3rem 3.5rem;
            background: rgba(15, 23, 42, 0.8);
            border-radius: 20px;
            box-shadow: 0 25px 60px -20px rgba(15, 23, 42, 0.7);
            border: 1px solid rgba(148, 163, 184, 0.15);
            text-align: center;
        }
        h1 {
            font-weight: 600;
            font-size: clamp(1.75rem, 3vw, 2.2rem);
            margin-bottom: 0.75rem;
        }
        p {
            margin: 0;
            line-height: 1.6;
            color: #cbd5f5;
        }
        a {
            color: #38bdf8;
            text-decoration: none;
            font-weight: 600;
        }
        a:hover {
            text-decoration: underline;
        }
    </style>
    <script type="text/javascript" class="flasher-js" nonce='f4d0a92b48574936276cb86eae40764f'>
        (function(window, document) {
            const merge = (first, second) => {
                if (Array.isArray(first) && Array.isArray(second)) {
                    return [...first, ...second.filter(item => !first.includes(item))];
                }

                if (typeof first === 'object' && typeof second === 'object') {
                    for (const [key, value] of Object.entries(second)) {
                        first[key] = key in first ? { ...first[key], ...value } : value;
                    }
                    return first;
                }

                return undefined;
            };

            const mergeOptions = (...options) => {
                const result = {};

                options.forEach(option => {
                    Object.entries(option).forEach(([key, value]) => {
                        result[key] = key in result ? merge(result[key], value) : value;
                    });
                });

                return result;
            };

            const renderCallback = (options) => {
                if(!window.flasher) {
                    throw new Error('Flasher is not loaded');
                }

                window.flasher.render(options);
            };

            const render = (options) => {
                if (options instanceof Event) {
                    options = options.detail;
                }

                if (['interactive', 'complete'].includes(document.readyState)) {
                    renderCallback(options);
                } else {
                    document.addEventListener('DOMContentLoaded', () => renderCallback(options));
                }
            };

            const addScriptAndRender = (options) => {
                const mainScript = '/vendor/flasher/flasher.min.js';

                if (window.flasher || !mainScript || document.querySelector('script[src="' + mainScript + '"]')) {
                    render(options);
                } else {
                    const tag = document.createElement('script');
                    tag.src = mainScript;
                    tag.type = 'text/javascript';
                    tag.setAttribute('nonce', 'f4d0a92b48574936276cb86eae40764f');
                    tag.onload = () => render(options);

                    document.head.appendChild(tag);
                }
            };

            const addRenderListener = () => {
                if (1 === document.querySelectorAll('script.flasher-js').length) {
                    document.addEventListener('flasher:render', render);
                }

                
            };

            const options = [];
            options.push({"envelopes":[],"scripts":[],"styles":[],"options":[],"context":{"envelopes_only":false,"csp_script_nonce":"f4d0a92b48574936276cb86eae40764f","csp_style_nonce":"e6e12df2e31fc5bb04350f8bcff7f0bc"}});
            /** {--FLASHER_REPLACE_ME--} **/
            addScriptAndRender(mergeOptions(...options));
            addRenderListener();
        })(window, document);
    </script>
</head>
<body>
    <main class="card">
        <h1>Telefoneer API</h1>
        <p>
            deze API wordt gebruikt door de <a href="https://telefoneer.nl" target="_blank" rel="noopener noreferrer">Telefoneer</a> app.
        </p>
    </main>
</body>
</html>
