<?php

use Magento\Framework\Escaper;
use Meta\Conversion\Block\Pixel\AddToCart;

/**
 * Hyva-compatible override of Meta_Conversion::pixel/add_to_cart.phtml
 *
 * The Luma version relies on jQuery's "ajax:addToCart" event and Luma
 * swatch-renderer widget data. Hyva has no equivalent event, so this
 * listens directly on add-to-cart form submissions instead
 * (see MetaConversion.addToCart() in meta-pixel.js for the full flow).
 *
 * @var AddToCart $block
 * @var Escaper $escaper
 */

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);
    }
}


$trackerUrl = $block->getTrackerUrl();
?>
<?php if ($block->getFacebookPixelID()): ?>
    <script>
        (function () {
            var config = {
                url: <?= /* @noEscape */ metaConversionJsonEncode($trackerUrl) ?>,
                productInfoUrl: <?= /* @noEscape */ metaConversionJsonEncode($block->getProductInfoUrl()) ?>,
                eventName: <?= /* @noEscape */ metaConversionJsonEncode($block->getEventToObserveName()) ?>,
                fbAgentVersion: <?= /* @noEscape */ metaConversionJsonEncode($block->getFacebookAgentVersion()) ?>,
                fbPixelId: <?= /* @noEscape */ metaConversionJsonEncode($block->getFacebookPixelID()) ?>,
                source: <?= /* @noEscape */ metaConversionJsonEncode($block->getSource()) ?>,
                pluginVersion: <?= /* @noEscape */ metaConversionJsonEncode($block->getPluginVersion()) ?>
            };

            function init() {
                window.MetaConversion.addToCart(config);
            }

            window.MetaConversion ? init() : document.addEventListener('DOMContentLoaded', init);
        })();
    </script>
<?php endif; ?>
