UNPKG

luhn-generator

Version:

A generator of numbers that passes the validation of Luhn algorithm or Luhn formula, also known as the 'modulus 10' or 'mod 10' algorithm

49 lines (40 loc) 1.29 kB
import implicitHtmlRoles from '../standards/implicit-html-roles'; import { getNodeFromTree } from '../../core/utils'; import AbstractVirtuaNode from '../../core/base/virtual-node/abstract-virtual-node'; /** * Get the implicit role for a given node * @method implicitRole * @memberof axe.commons.aria * @instance * @param {HTMLElement|VirtualNode} node The node to test * @return {Mixed} Either the role or `null` if there is none */ function implicitRole(node) { const vNode = node instanceof AbstractVirtuaNode ? node : getNodeFromTree(node); node = vNode.actualNode; // this error is only thrown if the virtual tree is not a // complete tree, which only happens in linting and if a // user used `getFlattenedTree` manually on a subset of the // DOM tree if (!vNode) { throw new ReferenceError( 'Cannot get implicit role of a node outside the current scope.' ); } // until we have proper implicit role lookups for svgs we will // avoid giving them one if (node && node.namespaceURI === 'http://www.w3.org/2000/svg') { return null; } const nodeName = vNode.props.nodeName; const role = implicitHtmlRoles[nodeName]; if (!role) { return null; } if (typeof role === 'function') { return role(vNode); } return role; } export default implicitRole;