UNPKG

e2ed

Version:

E2E testing framework over Playwright

30 lines (29 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addOnClickOnClass = addOnClickOnClass; /** * Adds `onclick` event listener on all elements with some class. * This base client function should not use scope variables (except other base functions). * @internal */ function addOnClickOnClass(className, onclick) { let { clickListeners } = reportClientState; if (!clickListeners) { clickListeners = {}; reportClientState.clickListeners = clickListeners; document.addEventListener('click', (event) => { let currentElement = event.target; while (currentElement) { for (const currentClass of Object.keys(clickListeners)) { if (currentElement.classList?.contains(currentClass)) { const listener = clickListeners?.[currentClass]; listener?.(currentElement); return; } } currentElement = currentElement.parentNode; } }); } clickListeners[className] = onclick; }