45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", {
 | 
						|
  value: true
 | 
						|
});
 | 
						|
exports.ariaHidden = ariaHidden;
 | 
						|
exports.hideSiblings = hideSiblings;
 | 
						|
exports.showSiblings = showSiblings;
 | 
						|
var BLACKLIST = ['template', 'script', 'style'];
 | 
						|
 | 
						|
function isHidable(node) {
 | 
						|
  return node.nodeType === 1 && BLACKLIST.indexOf(node.tagName.toLowerCase()) === -1;
 | 
						|
}
 | 
						|
 | 
						|
function siblings(container, mount, callback) {
 | 
						|
  mount = [].concat(mount); // eslint-disable-line no-param-reassign
 | 
						|
  [].forEach.call(container.children, function (node) {
 | 
						|
    if (mount.indexOf(node) === -1 && isHidable(node)) {
 | 
						|
      callback(node);
 | 
						|
    }
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
function ariaHidden(show, node) {
 | 
						|
  if (!node) {
 | 
						|
    return;
 | 
						|
  }
 | 
						|
  if (show) {
 | 
						|
    node.setAttribute('aria-hidden', 'true');
 | 
						|
  } else {
 | 
						|
    node.removeAttribute('aria-hidden');
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
function hideSiblings(container, mountNode) {
 | 
						|
  siblings(container, mountNode, function (node) {
 | 
						|
    return ariaHidden(true, node);
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
function showSiblings(container, mountNode) {
 | 
						|
  siblings(container, mountNode, function (node) {
 | 
						|
    return ariaHidden(false, node);
 | 
						|
  });
 | 
						|
} |