<?php

/**
 * Hyva-compatible override of Meta_Conversion::pixel/head.phtml
 *
 * @var \Meta\Conversion\Block\Pixel\Head $block
 * @var \Magento\Framework\Escaper $escaper
 * @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer
 */

if (!function_exists('metaConversionJsonEncode')) {
    /**
     * metaConversionJsonEncode() hardened for direct interpolation into an inline <script> tag.
     */
    function metaConversionJsonEncode($value)
    {
        return json_encode($value, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT);
    }
}


$userDataUrl = $block->getUserDataUrl();
$trackerUrl = $block->getTrackerUrl();
// Native Magento URL generation, no dependency on FBEHelper::getBaseUrl() from a template context.
$productInfoUrl = $block->getUrl('fbe/pixel/productinfoforaddtocart');
?>
<?php if ($block->getFacebookPixelID()): ?>
<!-- Meta Business Extension for Magento 2 (Hyva compatible) -->
<script>
    window.metaConversionConfig = window.metaConversionConfig || {};
    window.metaConversionConfig.productInfoUrl = <?= /* @noEscape */ metaConversionJsonEncode($productInfoUrl) ?>;

    (function () {
        function boot() {
            window.MetaConversion.initPixel({
                pixelId: <?= /* @noEscape */ metaConversionJsonEncode($block->getFacebookPixelID()) ?>,
                automaticMatchingFlag: <?= /* @noEscape */ $block->getAutomaticMatchingFlag() ? 'true' : 'false' ?>,
                userDataUrl: <?= /* @noEscape */ metaConversionJsonEncode($userDataUrl) ?>,
                agent: <?= /* @noEscape */ metaConversionJsonEncode($block->getFacebookAgentVersion()) ?>
            });

            window.MetaConversion.trackEvent({
                url: <?= /* @noEscape */ metaConversionJsonEncode($trackerUrl) ?>,
                payload: {
                    eventName: <?= /* @noEscape */ metaConversionJsonEncode($block->getEventToObserveName()) ?>
                },
                browserEventData: {
                    fbAgentVersion: <?= /* @noEscape */ metaConversionJsonEncode($block->getFacebookAgentVersion()) ?>,
                    fbPixelId: <?= /* @noEscape */ metaConversionJsonEncode($block->getFacebookPixelID()) ?>,
                    source: <?= /* @noEscape */ metaConversionJsonEncode($block->getSource()) ?>,
                    pluginVersion: <?= /* @noEscape */ metaConversionJsonEncode($block->getPluginVersion()) ?>,
                    track: 'track',
                    event: 'PageView',
                    payload: {}
                }
            });
        }

        if (window.MetaConversion) {
            boot();
        } else {
            // meta-pixel.js is loaded as a blocking <head> script (see
            // Hyva_MetaConversion layout/default.xml) so this branch should
            // not normally be needed - kept as a safety net.
            document.addEventListener('DOMContentLoaded', boot);
        }
    })();
</script>
<!-- End Meta Pixel Code -->
<?php else: ?>
<script>
    // eslint-disable-next-line no-console
    console.log('No Meta pixel is configured, please log in as an admin and then visit Stores -> Meta -> Setup -> Get Started');
</script>
<?php endif; ?>
