e2ed
Version:
E2E testing framework over Playwright
31 lines (30 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addOnClickOnClass = void 0;
/**
* Adds `onclick` event listener on all elements with some class.
* This base client function should not use scope variables (except other base functions).
* @internal
*/
const 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;
};
exports.addOnClickOnClass = addOnClickOnClass;