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

47 lines (42 loc) 1.6 kB
import sanitize from './sanitize'; import isVisible from '../dom/is-visible'; import AbstractVirtualNode from '../../core/base/virtual-node/abstract-virtual-node'; import { getNodeFromTree } from '../../core/utils'; /** * Returns the visible text of the virtual node * NOTE: when calculating the text or accessible text of a node that includes shadow * roots attached to it or its children, the flattened tree must be considered * rather than the "light DOM" * @method visibleVirtual * @memberof axe.commons.text * @instance * @param {VirtualNode} element * @param {Boolean} screenReader When provided, will evaluate visibility from the perspective of a screen reader * @param {Boolean} noRecursing When False, the result will contain text from the element and it's children. * When True, the result will only contain text from the element * @return {String} */ function visibleVirtual(element, screenReader, noRecursing) { const vNode = element instanceof AbstractVirtualNode ? element : getNodeFromTree(element); // if the element does not have an actual node treat it as if // it is visible const visible = !element.actualNode || (element.actualNode && isVisible(element.actualNode, screenReader)); const result = vNode.children .map(child => { const { nodeType, nodeValue } = child.props; if (nodeType === 3) { // filter on text nodes if (nodeValue && visible) { return nodeValue; } } else if (!noRecursing) { return visibleVirtual(child, screenReader); } }) .join(''); return sanitize(result); } export default visibleVirtual;