var grecaptchaReady = false; var onloadCallback = function(){ grecaptchaReady = true; }; var verifyCallback = function(token) { document.dispatchEvent(new CustomEvent('grecaptchaVerified', {'detail': {response: 'token'}})); }; var expireCallback = function() { document.dispatchEvent(new Event('grecaptchaExpired')); }; var errorCallback = function() { document.dispatchEvent(new Event('grecaptchaError')); }; document.addEventListener('grecaptchaRender', function(e) { onloadCallback = function() { grecaptchaReady = true; grecaptcha.render(e.detail.element, { 'sitekey': '6LcoLQUqAAAAADTCgckHRzxfQCJaPqbT-QdUnmiS', 'callback': verifyCallback, 'expired-callback': expireCallback, 'error-callback': errorCallback }); }; if (grecaptchaReady) { onloadCallback(); } }); document.addEventListener('grecaptchaReset', function() { grecaptcha.reset(); }); document.addEventListener('DOMContentLoaded', function () { // Function to dispatch custom event function dispatchFilterChangeEvent(checked) { const event = new CustomEvent('filterchange', { detail: { checked } }); document.dispatchEvent(event); } // Function to handle checkbox change function handleCheckboxChange(evt) { var checked = evt.target.checked; console.log('checked--'+checked); dispatchFilterChangeEvent(checked); } // Function to attach event listeners to checkboxes function attachEventListeners() { var commerceSearchFilters = document.querySelectorAll('commerce-search-filters lightning-input[type="checkbox"]'); commerceSearchFilters.forEach(input => { input.addEventListener('change', handleCheckboxChange); }); } // Initial attachment of event listeners attachEventListeners(); // Observe for any DOM changes to re-attach event listeners var observer = new MutationObserver(attachEventListeners); observer.observe(document.body, { childList: true, subtree: true }); });