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

54 lines (49 loc) 1.4 kB
import isVisualContent from './is-visual-content'; import labelVirtual from '../aria/label-virtual'; const hiddenTextElms = [ 'HEAD', 'TITLE', 'TEMPLATE', 'SCRIPT', 'STYLE', 'IFRAME', 'OBJECT', 'VIDEO', 'AUDIO', 'NOSCRIPT' ]; function hasChildTextNodes(elm) { if (!hiddenTextElms.includes(elm.actualNode.nodeName.toUpperCase())) { return elm.children.some( ({ actualNode }) => actualNode.nodeType === 3 && actualNode.nodeValue.trim() ); } } /** * Check that the element has visible content in the form of either text, * an aria-label or visual content such as image * @method hasContentVirtual * @memberof axe.commons.dom * @instance * @param {VirtualNode} elm Virtual Node to search * @param {Boolean} noRecursion If true, only the element is checked, otherwise it will search all child nodes * @param {Boolean} ignoreAria if true, ignores `aria label` computation for content deduction * @return {Boolean} */ function hasContentVirtual(elm, noRecursion, ignoreAria) { return ( // It has text hasChildTextNodes(elm) || // It is a graphical element isVisualContent(elm.actualNode) || // It has an ARIA label (!ignoreAria && !!labelVirtual(elm)) || // or one of it's descendants does (!noRecursion && elm.children.some( child => child.actualNode.nodeType === 1 && hasContentVirtual(child) )) ); } export default hasContentVirtual;