get-element-stack.js 666 B

12345678910111213141516171819202122232425262728
  1. import { createGrid, getRectStack } from './get-rect-stack';
  2. import { getNodeFromTree } from '../../core/utils';
  3. import cache from '../../core/base/cache';
  4. /**
  5. * Return all elements that are at the center bounding rect of the passed in node.
  6. * @method getElementStack
  7. * @memberof axe.commons.dom
  8. * @param {Node} node
  9. * @return {Node[]}
  10. */
  11. function getElementStack(node) {
  12. if (!cache.get('gridCreated')) {
  13. createGrid();
  14. cache.set('gridCreated', true);
  15. }
  16. const vNode = getNodeFromTree(node);
  17. const grid = vNode._grid;
  18. if (!grid) {
  19. return [];
  20. }
  21. return getRectStack(grid, vNode.boundingClientRect);
  22. }
  23. export default getElementStack;