{"version":3,"file":"../js/aria-utils.js","names":["aria","KeyCode","BACKSPACE","TAB","RETURN","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","Utils","matches","element","selector","Element","prototype","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","s","parentNode","querySelectorAll","i","length","item","remove","removeChild","isFocusable","tabIndex","getAttribute","disabled","nodeName","href","rel","type","getAncestorBySelector","tagName","currentNode","ancestor","hasClass","className","RegExp","test","addClass","removeClass","classRegex","replace","trim","bindMethods","object","methodNames","Array","slice","call","arguments","forEach","method","bind"],"sources":["aria-utils.js"],"sourcesContent":["/**\n * @namespace aria\n *\n * SEE: https://github.com/w3c/aria-practices/blob/c8546fea328e7fcc86403795147b948cd7925c60/examples/js/utils.js\n */\n\nvar aria = aria || {};\n\n/**\n * @desc\n * Key code constants\n */\naria.KeyCode = {\n BACKSPACE: 8,\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\naria.Utils = aria.Utils || {};\n\n// Polyfill src https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\naria.Utils.matches = function (element, selector) {\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function (s) {\n var matches = element.parentNode.querySelectorAll(s);\n var i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {\n // empty\n }\n return i > -1;\n };\n }\n\n return element.matches(selector);\n};\n\naria.Utils.remove = function (item) {\n if (item.remove && typeof item.remove === 'function') {\n return item.remove();\n }\n if (item.parentNode &&\n item.parentNode.removeChild &&\n typeof item.parentNode.removeChild === 'function') {\n return item.parentNode.removeChild(item);\n }\n return false;\n};\n\naria.Utils.isFocusable = function (element) {\n if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)) {\n return true;\n }\n\n if (element.disabled) {\n return false;\n }\n\n switch (element.nodeName) {\n case 'A':\n return !!element.href && element.rel != 'ignore';\n case 'INPUT':\n return element.type != 'hidden' && element.type != 'file';\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n default:\n return false;\n }\n};\n\naria.Utils.getAncestorBySelector = function (element, selector) {\n if (!aria.Utils.matches(element, selector + ' ' + element.tagName)) {\n // Element is not inside an element that matches selector\n return null;\n }\n\n // Move up the DOM tree until a parent matching the selector is found\n var currentNode = element;\n var ancestor = null;\n while (ancestor === null) {\n if (aria.Utils.matches(currentNode.parentNode, selector)) {\n ancestor = currentNode.parentNode;\n }\n else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return ancestor;\n};\n\naria.Utils.hasClass = function (element, className) {\n return (new RegExp('(\\\\s|^)' + className + '(\\\\s|$)')).test(element.className);\n};\n\naria.Utils.addClass = function (element, className) {\n if (!aria.Utils.hasClass(element, className)) {\n element.className += ' ' + className;\n }\n};\n\naria.Utils.removeClass = function (element, className) {\n var classRegex = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\n element.className = element.className.replace(classRegex, ' ').trim();\n};\n\naria.Utils.bindMethods = function (object /* , ...methodNames */) {\n var methodNames = Array.prototype.slice.call(arguments, 1);\n methodNames.forEach(function (method) {\n object[method] = object[method].bind(object);\n });\n};\n"],"mappings":"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","ignoreList":[]}