public static getTarget()

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;
  }