<?php
/**
 * Hyvä Themes - https://hyva.io
 * Copyright © Hyvä Themes. All rights reserved.
 * See COPYING.txt for license details.
 */

declare(strict_types=1);

use Hyva\Theme\ViewModel\HyvaCsp;
use Magento\Framework\Escaper;
use Magento\Framework\View\Element\Template;

/** @var Template $block */
/** @var Escaper $escaper */
/** @var HyvaCsp $hyvaCsp */

?>
<script>
'use strict';

<?php /* Usage: apply rule on the 'from date' input and pass the 'to date' input ID to check against as the 'options' param */ ?>
hyva.formValidation.addRule('dateFromTo', (value, options, field, context) => {
    const dateFrom = field.element;
    const dateTo = document.getElementById(options);

    if (!field || !options || isNaN(dateFrom.valueAsNumber) || isNaN(dateTo.valueAsNumber)) {
        return true;
    }

    const valid = dateFrom.valueAsNumber <= dateTo.valueAsNumber;

    return !valid ? '<?= $escaper->escapeJs(__("The 'From' date must precede the 'To' date.")) ?>' : true;
});
</script>
<?php $hyvaCsp->registerInlineScript() ?>
