in src/service/ui/UITargetNormalizer.ts [83:112]
public static getTarget(
event: MouseEvent,
requiredAttribute?: string,
requiredAttributeValue?: string
): HTMLElement | undefined {
const { target } = UITargetNormalizer.normalizeMouseEventTarget(event);
if (!target) {
return;
}
let currentTarget = target as HTMLElement;
// @FIXME this is a hacky way to make sure that events outside of the browser don't require a target.
if (currentTarget === document.documentElement) {
return currentTarget;
}
if (!requiredAttribute) {
return currentTarget;
}
while (!UITargetNormalizer.checkAttributeValue(currentTarget, requiredAttribute, requiredAttributeValue) &&
currentTarget.parentElement) {
currentTarget = currentTarget.parentElement;
}
return UITargetNormalizer
.checkAttributeValue(currentTarget, requiredAttribute, requiredAttributeValue) && currentTarget || undefined;
}