{"version":3,"sources":["../../../node_modules/ally.js/src/util/context-to-element.js","../../../node_modules/ally.js/src/util/element-matches.js","../../../node_modules/ally.js/src/util/platform.js","../../../node_modules/ally.js/src/supports/detect-focus.js","../../../node_modules/ally.js/src/version.js","../../../node_modules/ally.js/src/supports/supports-cache.js","../../../node_modules/ally.js/src/supports/css-shadow-piercing-deep-combinator.js","../../../node_modules/ally.js/src/supports/media/gif.js","../../../node_modules/ally.js/src/supports/focus-area-img-tabindex.js","../../../node_modules/ally.js/src/supports/focus-area-tabindex.js","../../../node_modules/ally.js/src/supports/focus-area-without-href.js","../../../node_modules/ally.js/src/supports/media/mp3.js","../../../node_modules/ally.js/src/supports/focus-audio-without-controls.js","../../../node_modules/ally.js/src/supports/focus-broken-image-map.js","../../../node_modules/ally.js/src/supports/focus-img-ismap.js","../../../node_modules/ally.js/src/supports/focus-img-usemap-tabindex.js","../../../node_modules/ally.js/src/supports/focus-in-zero-dimension-object.js","../../../node_modules/ally.js/src/supports/media/svg.js","../../../node_modules/ally.js/src/supports/focus-object-svg-hidden.js","../../../node_modules/ally.js/src/supports/focus-object-svg.js","../../../node_modules/ally.js/src/supports/focus-object-swf.js","../../../node_modules/ally.js/src/supports/focus-redirect-img-usemap.js","../../../node_modules/ally.js/src/element/focus.svg-foreign-object-hack.js","../../../node_modules/ally.js/src/supports/helper/svg.js","../../../node_modules/ally.js/src/supports/focus-svg-focusable-attribute.js","../../../node_modules/ally.js/src/supports/focus-svg-tabindex-attribute.js","../../../node_modules/ally.js/src/supports/focus-svg-negative-tabindex-attribute.js","../../../node_modules/ally.js/src/supports/focus-svg-use-tabindex.js","../../../node_modules/ally.js/src/supports/focus-svg-foreignobject-tabindex.js","../../../node_modules/ally.js/src/supports/focus-svg-in-iframe.js","../../../node_modules/ally.js/src/supports/focus-svg.js","../../../node_modules/ally.js/src/supports/media/mp4.js","../../../node_modules/ally.js/src/supports/focus-video-without-controls.js","../../../node_modules/ally.js/src/supports/tabsequence-area-at-img-position.js","../../../node_modules/ally.js/src/supports/supports.js","../../../node_modules/ally.js/src/supports/focus-children-of-focusable-flexbox.js","../../../node_modules/ally.js/src/supports/focus-fieldset-disabled.js","../../../node_modules/ally.js/src/supports/focus-fieldset.js","../../../node_modules/ally.js/src/supports/focus-flexbox-container.js","../../../node_modules/ally.js/src/supports/focus-form-disabled.js","../../../node_modules/ally.js/src/supports/focus-in-hidden-iframe.js","../../../node_modules/ally.js/src/supports/focus-invalid-tabindex.js","../../../node_modules/ally.js/src/supports/focus-label-tabindex.js","../../../node_modules/ally.js/src/supports/focus-redirect-legend.js","../../../node_modules/ally.js/src/supports/focus-scroll-body.js","../../../node_modules/ally.js/src/supports/focus-scroll-container-without-overflow.js","../../../node_modules/ally.js/src/supports/focus-scroll-container.js","../../../node_modules/ally.js/src/supports/focus-summary.js","../../../node_modules/ally.js/src/supports/focus-tabindex-trailing-characters.js","../../../node_modules/ally.js/src/supports/focus-table.js","../../../node_modules/ally.js/src/is/valid-tabindex.js","../../../node_modules/ally.js/src/is/focus-relevant.js","../../../node_modules/ally.js/src/util/tabindex-value.js","../../../node_modules/ally.js/src/is/is.util.js","../../../node_modules/ally.js/src/util/array-find-index.js","../../../node_modules/ally.js/src/util/get-content-document.js","../../../node_modules/ally.js/src/util/select-in-shadows.js","../../../node_modules/ally.js/src/util/get-frame-element.js","../../../node_modules/ally.js/src/util/get-window.js","../../../node_modules/ally.js/src/is/visible.js","../../../node_modules/ally.js/src/is/valid-area.js","../../../node_modules/ally.js/src/is/native-disabled-supported.js","../../../node_modules/ally.js/src/is/disabled.js","../../../node_modules/ally.js/src/util/image-map.js","../../../node_modules/ally.js/src/is/only-tabbable.js","../../../node_modules/ally.js/src/is/focusable.js","../../../node_modules/ally.js/src/query/focusable.strict.js","../../../node_modules/ally.js/src/selector/focusable.js","../../../node_modules/ally.js/src/query/focusable.js","../../../node_modules/ally.js/src/element/disabled.js","../../../node_modules/ally.js/src/query/focusable.quick.js","../../../node_modules/ally.js/src/util/toggle-attribute.js","../../../node_modules/ally.js/src/util/logger.js","../../../node_modules/ally.js/src/query/shadow-hosts.js","../../../node_modules/ally.js/src/observe/shadow-mutations.js","../../../node_modules/ally.js/src/maintain/disabled.js","../../../node_modules/ally.js/src/get/insignificant-branches.js","../../../node_modules/ally.js/src/maintain/hidden.js","../../../node_modules/react-scripts/node_modules/webpack/buildin/module.js","../../../node_modules/ally.js/src/util/node-array.js","../../../node_modules/ally.js/src/get/parents.js","../../../node_modules/ally.js/src/util/get-document.js","../../../node_modules/ally.js/src/util/compare-position.js","../../../node_modules/ally.js/src/util/toggle-attribute-value.js","../../../node_modules/platform/platform.js","../../../node_modules/css.escape/css.escape.js"],"names":["context","label","resolveDocument","defaultToDocument","element","nodeArray","nodeType","Node","DOCUMENT_NODE","documentElement","document","TypeError","ELEMENT_NODE","DOCUMENT_FRAGMENT_NODE","names","name","elementMatches","selector","some","_name","findMethodName","platform","JSON","parse","stringify","_platform","os","family","ANDROID","WINDOWS","slice","OSX","IOS","BLINK","layout","GECKO","TRIDENT","EDGE","WEBKIT","version","parseFloat","majorVersion","Math","floor","is","IE9","IE10","IE11","tests","data","activeElement","windowScrollTop","window","scrollTop","windowScrollLeft","scrollLeft","bodyScrollTop","body","bodyScrollLeft","iframe","createElement","setAttribute","appendChild","_window","contentWindow","_document","open","close","wrapper","before","results","Object","keys","map","key","options","innerHTML","focus","mutate","parentNode","validate","test","blur","removeChild","after","userAgent","navigator","cacheKey","cache","localStorage","getItem","e","readLocalStorage","values","forEach","time","Date","toISOString","value","hasFocus","setItem","removeItem","writeLocalStorage","combinator","querySelector","noArrowArrowArrow","noDeep","gif","focusTarget","mp3","href","result","svg","style","visibility","target","ownerSVGElement","nodeName","toLowerCase","foreignObject","fragment","firstChild","makeFocusableForeignObject","input","disabled","generate","HTMLElement","prototype","call","focusSvgForeignObjectHack","join","getElementsByTagName","Boolean","SVGElement","mp4","testCallbacks","cssShadowPiercingDeepCombinator","focusInZeroDimensionObject","focusObjectSwf","focusSvgInIframe","tabsequenceAreaAtImgPosition","testDescriptions","focusAreaImgTabindex","focusAreaTabindex","focusAreaWithoutHref","focusAudioWithoutControls","focusBrokenImageMap","focusChildrenOfFocusableFlexbox","focusFieldsetDisabled","focusFieldset","focusFlexboxContainer","focusFormDisabled","focusImgIsmap","focusImgUsemapTabindex","focusInHiddenIframe","iframeDocument","focusInvalidTabindex","focusLabelTabindex","offsetHeight","focusObjectSvg","focusObjectSvgHidden","focusRedirectImgUsemap","focusRedirectLegend","focusable","tabbable","focusScrollBody","focusScrollContainerWithoutOverflow","focusScrollContainer","focusSummary","firstElementChild","focusSvgFocusableAttribute","focusSvgTabindexAttribute","focusSvgNegativeTabindexAttribute","focusSvgUseTabindex","focusSvgForeignobjectTabindex","focusSvg","focusTabindexTrailingCharacters","focusTable","createDocumentFragment","focusVideoWithoutControls","supports","supportsCache","detectFocus","executeTests","validIntegerPatternNoTrailing","validIntegerPatternWithTrailing","_supports","validIntegerPattern","contextToElement","hasTabindex","hasAttribute","hasTabIndex","tabindex","getAttribute","isValidTabindex","attributeName","parseInt","isNaN","hasCssOverflowScroll","getPropertyValue","overflow","hasCssDisplayFlex","display","indexOf","isScrollableContainer","parentNodeName","parentStyle","scrollHeight","offsetWidth","scrollWidth","isFocusRelevantRules","except","flexbox","scrollable","shadow","shadowRoot","type","svgType","validTabindex","isSvgElement","isSvgContent","focusableAttribute","tabindexValue","getComputedStyle","userModify","webkitUserModify","isUserModifyWritable","hasLinkParent","getParents","parent","parentElement","isFocusRelevant","rules","findIndex","array","callback","length","i","shadowPrefix","node","contentDocument","getSVGDocument","getDocument","defaultView","operator","replace","split","getFrameElement","getWindow","frameElement","selectInShadows","undefined","_frameElement","potentialHosts","querySelectorAll","getContentDocument","findDocumentHostElement","notRenderedElementsPattern","computedStyle","property","isVisibleRules","notRendered","cssDisplay","cssVisibility","detailsElement","browsingContext","_path","isAudioWithoutControls","notDisplayed","hidden","visible","notVisible","offset","collapsedParent","_isVisible","isVisible","disabledElementsPattern","img","cssEscape","getImageOfArea","complete","naturalHeight","_element","disabledElements","select","textarea","button","fieldset","form","RegExp","isDisabledFieldset","isDisabledForm","isNativeDisabledSupported","parents","isOnlyTabbableRules","onlyFocusableBrowsingContext","isOnlyTabbable","isFocusableRules","onlyTabbable","_isOnlyTabbable","_tabindex","isValidArea","isOnlyFocusRelevant","isDisabled","visibilityOptions","isFocusable","createFilter","condition","filter","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","acceptNode","PossiblyFocusableFilter","queryFocusableStrict","includeContext","includeOnlyTabbable","strategy","_isFocusable","walker","createTreeWalker","SHOW_ELEMENT","list","nextNode","currentNode","push","concat","unshift","_selector","elements","queryFocusableQuick","attribute","temporaryAttribute","_value","removeAttribute","noop","console","log","debug","info","warn","error","disabledFocus","logger","this","setElementDisabled","disabledState","toggleAttributeValue","temporaryValue","setAriaDisabled","tabIndex","saveValue","disableTabindex","disableScriptFocus","pointerEvents","disablePointerEvents","toggleAttribute","remove","disableVideoControls","disableSvgFocusable","disableSvgLink","currentState","runningAsGetter","arguments","queryShadowHosts","shadowObserverConfig","childList","subtree","ShadowMutationObserver","config","disengage","bind","clientObserver","MutationObserver","hostObserver","mutations","handleHostMutation","observeContext","observeShadowHosts","disconnect","observe","mutation","addedNodes","undoElementInert","elementDisabled","observerConfig","attributes","attributeFilter","InertSubtree","_context","_filter","_inertElementCache","handleMutation","renderInert","filterElements","filterParentElements","queryFocusable","shadowObserver","observeShadowMutations","reduce","previous","current","makeElementInert","isParentOfElement","getParentComparator","includeSelf","addedElements","addedFocusableElements","listQueryFocusable","queryInsignificantBranches","insiginificantBranches","CollectInsignificantBranchesFilter","FILTER_REJECT","containsNode","containsFilteredElement","makeElementHidden","undoElementHidden","HiddenSubtree","isInsignificantBranch","getInsignificantBranches","startObserver","_observer","module","exports","webpackPolyfill","deprecate","paths","children","defineProperty","enumerable","get","l","Array","isArray","String","ownerDocument","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","objectTypes","root","oldRoot","freeExports","freeModule","freeGlobal","global","self","maxSafeInteger","pow","reOpera","thisBinding","objectProto","hasOwnProperty","toString","capitalize","string","charAt","toUpperCase","format","trim","forOwn","object","getClassOf","isHostType","qualify","accumulator","index","each","ua","isCustomContext","nav","isSpecialCasedOS","isModuleScope","likeChrome","objectClass","airRuntimeClass","enviroClass","javaClass","java","phantomClass","rhino","environment","alpha","beta","doc","opera","operamini","operaClass","arch","description","prerelease","useFeatures","guess","pattern","exec","guesses","getName","product","getProduct","manufacturer","getManufacturer","cleanupOS","getOS","lang","System","getProperty","system","require","process","browser","runtime","flash","Capabilities","phantom","major","minor","patch","documentMode","toFixed","appMinorVersion","external","architecture","cpuClass","define","CSS","escape","codeUnit","firstCodeUnit","charCodeAt","factory"],"mappings":"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","file":"static/js/3.5d2d9222.chunk.js","sourcesContent":["\nimport nodeArray from '../util/node-array';\n\nexport default function({\n context,\n label = 'context-to-element',\n resolveDocument,\n defaultToDocument,\n}) {\n let element = nodeArray(context)[0];\n\n if (resolveDocument && element && element.nodeType === Node.DOCUMENT_NODE) {\n element = element.documentElement;\n }\n\n if (!element && defaultToDocument) {\n return document.documentElement;\n }\n\n if (!element) {\n throw new TypeError(label + ' requires valid options.context');\n }\n\n if (element.nodeType !== Node.ELEMENT_NODE && element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n throw new TypeError(label + ' requires options.context to be an Element');\n }\n\n return element;\n}\n","\n// Element.prototype.matches may be available at a different name\n// https://developer.mozilla.org/en/docs/Web/API/Element/matches\n\nconst names = ['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector'];\nlet name = null;\n\nfunction findMethodName(element) {\n names.some(function(_name) {\n if (!element[_name]) {\n return false;\n }\n\n name = _name;\n return true;\n });\n}\n\nexport default function elementMatches(element, selector) {\n if (!name) {\n findMethodName(element);\n }\n\n return element[name](selector);\n}\n","\n// sugar for https://github.com/bestiejs/platform.js\n// make sure to ALWAYS reference the layout engine,\n// even if it is not necessary for the condition,\n// as this makes grepping for this stuff simpler\n\nimport _platform from 'platform';\n\n// deep clone of original platform\nconst platform = JSON.parse(JSON.stringify(_platform));\n\n// operating system\nconst os = platform.os.family || '';\nconst ANDROID = os === 'Android';\nconst WINDOWS = os.slice(0, 7) === 'Windows';\nconst OSX = os === 'OS X';\nconst IOS = os === 'iOS';\n\n// layout\nconst BLINK = platform.layout === 'Blink';\nconst GECKO = platform.layout === 'Gecko';\nconst TRIDENT = platform.layout === 'Trident';\nconst EDGE = platform.layout === 'EdgeHTML';\nconst WEBKIT = platform.layout === 'WebKit';\n\n// browser version (not layout engine version!)\nconst version = parseFloat(platform.version);\nconst majorVersion = Math.floor(version);\nplatform.majorVersion = majorVersion;\n\nplatform.is = {\n // operating system\n ANDROID,\n WINDOWS,\n OSX,\n IOS,\n // layout\n BLINK, // \"Chrome\", \"Chrome Mobile\", \"Opera\"\n GECKO, // \"Firefox\"\n TRIDENT, // \"Internet Explorer\"\n EDGE, // \"Microsoft Edge\"\n WEBKIT, // \"Safari\"\n // INTERNET EXPLORERS\n IE9: TRIDENT && majorVersion === 9,\n IE10: TRIDENT && majorVersion === 10,\n IE11: TRIDENT && majorVersion === 11,\n};\n\nexport default platform;\n","\nimport platform from '../util/platform';\n\nfunction before() {\n const data = {\n // remember what had focus to restore after test\n activeElement: document.activeElement,\n // remember scroll positions to restore after test\n windowScrollTop: window.scrollTop,\n windowScrollLeft: window.scrollLeft,\n bodyScrollTop: document.body.scrollTop,\n bodyScrollLeft: document.body.scrollLeft,\n };\n\n // wrap tests in an element hidden from screen readers to prevent them\n // from announcing focus, which can be quite irritating to the user\n const iframe = document.createElement('iframe');\n iframe.setAttribute('style', 'position:absolute; position:fixed; top:0; left:-2px; width:1px; height:1px; overflow:hidden;');\n iframe.setAttribute('aria-live', 'off');\n iframe.setAttribute('aria-busy', 'true');\n iframe.setAttribute('aria-hidden', 'true');\n document.body.appendChild(iframe);\n\n const _window = iframe.contentWindow;\n const _document = _window.document;\n\n _document.open();\n _document.close();\n const wrapper = _document.createElement('div');\n _document.body.appendChild(wrapper);\n\n data.iframe = iframe;\n data.wrapper = wrapper;\n data.window = _window;\n data.document = _document;\n\n return data;\n}\n\n// options.element:\n// {string} element name\n// {function} callback(wrapper, document) to generate an element\n// options.mutate: (optional)\n// {function} callback(element, wrapper, document) to manipulate element prior to focus-test.\n// Can return DOMElement to define focus target (default: element)\n// options.validate: (optional)\n// {function} callback(element, focusTarget, document) to manipulate test-result\nfunction test(data, options) {\n // make sure we operate on a clean slate\n data.wrapper.innerHTML = '';\n // create dummy element to test focusability of\n const element = typeof options.element === 'string'\n ? data.document.createElement(options.element)\n : options.element(data.wrapper, data.document);\n // allow callback to further specify dummy element\n // and optionally define element to focus\n let focus = options.mutate && options.mutate(element, data.wrapper, data.document);\n if (!focus && focus !== false) {\n focus = element;\n }\n // element needs to be part of the DOM to be focusable\n !element.parentNode && data.wrapper.appendChild(element);\n // test if the element with invalid tabindex can be focused\n focus && focus.focus && focus.focus();\n // validate test's result\n return options.validate\n ? options.validate(element, focus, data.document)\n : data.document.activeElement === focus;\n}\n\nfunction after(data) {\n // restore focus to what it was before test and cleanup\n if (data.activeElement === document.body) {\n document.activeElement && document.activeElement.blur && document.activeElement.blur();\n if (platform.is.IE10) {\n // IE10 does not redirect focus to when the activeElement is removed\n document.body.focus();\n }\n } else {\n data.activeElement && data.activeElement.focus && data.activeElement.focus();\n }\n\n document.body.removeChild(data.iframe);\n\n // restore scroll position\n window.scrollTop = data.windowScrollTop;\n window.scrollLeft = data.windowScrollLeft;\n document.body.scrollTop = data.bodyScrollTop;\n document.body.scrollLeft = data.bodyScrollLeft;\n}\n\nexport default function(tests) {\n const data = before();\n\n const results = {};\n Object.keys(tests).map(function(key) {\n results[key] = test(data, tests[key]);\n });\n\n after(data);\n return results;\n}\n","\n// this file is overwritten by `npm run build:pre`\nconst version = '1.4.1';\nexport default version;\n","/*\n Facility to cache test results in localStorage.\n\n USAGE:\n cache.get('key');\n cache.set('key', 'value');\n */\n\nimport version from '../version';\n\nfunction readLocalStorage(key) {\n // allow reading from storage to retrieve previous support results\n // even while the document does not have focus\n let data;\n\n try {\n data = window.localStorage && window.localStorage.getItem(key);\n data = data ? JSON.parse(data) : {};\n } catch (e) {\n data = {};\n }\n\n return data;\n}\n\nfunction writeLocalStorage(key, value) {\n if (!document.hasFocus()) {\n // if the document does not have focus when tests are executed, focus() may\n // not be handled properly and events may not be dispatched immediately.\n // This can happen when a document is reloaded while Developer Tools have focus.\n try {\n window.localStorage && window.localStorage.removeItem(key);\n } catch (e) {\n // ignore\n }\n\n return;\n }\n\n try {\n window.localStorage && window.localStorage.setItem(key, JSON.stringify(value));\n } catch (e) {\n // ignore\n }\n}\n\nconst userAgent = typeof window !== 'undefined' && window.navigator.userAgent || '';\nconst cacheKey = 'ally-supports-cache';\nlet cache = readLocalStorage(cacheKey);\n\n// update the cache if ally or the user agent changed (newer version, etc)\nif (cache.userAgent !== userAgent || cache.version !== version) {\n cache = {};\n}\n\ncache.userAgent = userAgent;\ncache.version = version;\n\nexport default {\n get: function() {\n return cache;\n },\n set: function(values) {\n Object.keys(values).forEach(function(key) {\n cache[key] = values[key];\n });\n\n cache.time = new Date().toISOString();\n writeLocalStorage(cacheKey, cache);\n },\n};\n","\nexport default function() {\n let combinator;\n\n // see https://dev.w3.org/csswg/css-scoping-1/#deep-combinator\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1117572\n // https://code.google.com/p/chromium/issues/detail?id=446051\n try {\n document.querySelector('html >>> :first-child');\n combinator = '>>>';\n } catch (noArrowArrowArrow) {\n try {\n // old syntax supported at least up to Chrome 41\n // https://code.google.com/p/chromium/issues/detail?id=446051\n document.querySelector('html /deep/ :first-child');\n combinator = '/deep/';\n } catch (noDeep) {\n combinator = '';\n }\n }\n\n return combinator;\n}\n","\nexport default 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n","\nimport gif from './media/gif';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = ''\n + ''\n + '\"\"';\n\n return element.querySelector('area');\n },\n};\n","\nimport gif from './media/gif';\nimport platform from '../util/platform';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = ''\n + ''\n + '\"\"';\n\n return false;\n },\n validate: function(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n\n const focus = element.querySelector('area');\n focus.focus();\n return _document.activeElement === focus;\n },\n};\n","\nimport gif from './media/gif';\nimport platform from '../util/platform';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = ''\n + ''\n + '\"\"';\n\n return element.querySelector('area');\n },\n validate: function(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n\n return _document.activeElement === focusTarget;\n },\n};\n","\n// export default 'data:audio/mp3;base64,audio-focus-test';\nimport gif from './gif';\nexport default gif;\n","\nimport mp3 from './media/mp3';\n\nexport default {\n name: 'can-focus-audio-without-controls',\n element: 'audio',\n mutate: function(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', mp3);\n } catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n },\n};\n","\nimport invalidGif from './media/gif.invalid';\n\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = ''\n + '\"\"';\n\n return element.querySelector('area');\n },\n};\n","\nimport gif from './media/gif';\n\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// fixes https://github.com/medialize/ally.js/issues/20\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-ismap\nexport default {\n element: 'a',\n mutate: function(element) {\n element.href = '#void';\n element.innerHTML = '\"\"';\n return element.querySelector('img');\n },\n};\n","\nimport gif from './media/gif';\n\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = ''\n + '\"\"';\n\n return element.querySelector('img');\n },\n};\n","\nimport platform from '../util/platform';\n\nconst result = !platform.is.WEBKIT;\n\nexport default function() {\n return result;\n}\n","\nexport default 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtb'\n + 'G5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0ic3ZnIj48dGV4dCB4PSIxMCIgeT0iMjAiIGlkPSJ'\n + 'zdmctbGluay10ZXh0Ij50ZXh0PC90ZXh0Pjwvc3ZnPg==';\n","\nimport svg from './media/svg';\n\n// Note: IE10 on BrowserStack does not like this test\n\nexport default {\n element: 'object',\n mutate: function(element) {\n element.setAttribute('type', 'image/svg+xml');\n element.setAttribute('data', svg);\n element.setAttribute('width', '200');\n element.setAttribute('height', '50');\n element.style.visibility = 'hidden';\n },\n};\n","\nimport svg from './media/svg';\nimport platform from '../util/platform';\n\n// Note: IE10 on BrowserStack does not like this test\n\nexport default {\n name: 'can-focus-object-svg',\n element: 'object',\n mutate: function(element) {\n element.setAttribute('type', 'image/svg+xml');\n element.setAttribute('data', svg);\n element.setAttribute('width', '200');\n element.setAttribute('height', '50');\n },\n validate: function(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // Firefox seems to be handling the object creation asynchronously and thereby produces a false negative test result.\n // Because we know Firefox is able to focus object elements referencing SVGs, we simply cheat by sniffing the user agent string\n return true;\n }\n\n return _document.activeElement === element;\n },\n};\n","\nimport platform from '../util/platform';\n\n// Every Environment except IE9 considers SWF objects focusable\nconst result = !platform.is.IE9;\n\nexport default function() {\n return result;\n}\n","\nimport gif from './media/gif';\n\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = ''\n + '\"\"';\n\n // focus the , not the
\n return element.querySelector('img');\n },\n validate: function(element, focusTarget, _document) {\n const target = element.querySelector('area');\n return _document.activeElement === target;\n },\n};\n","\nfunction makeFocusableForeignObject() {\n const fragment = document.createElement('div');\n fragment.innerHTML = `\n \n `;\n\n return fragment.firstChild.firstChild;\n}\n\nexport default function(element) {\n // Edge13, Edge14: foreignObject focus hack\n // https://jsbin.com/kunehinugi/edit?html,js,output\n // https://jsbin.com/fajagi/3/edit?html,js,output\n const isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg';\n if (!isSvgElement) {\n return false;\n }\n\n // inject and focus an element into the SVG element to receive focus\n const foreignObject = makeFocusableForeignObject();\n element.appendChild(foreignObject);\n const input = foreignObject.querySelector('input');\n input.focus();\n\n // upon disabling the activeElement, IE and Edge\n // will not shift focus to like all the other\n // browsers, but instead find the first focusable\n // ancestor and shift focus to that\n input.disabled = true;\n\n // clean up\n element.removeChild(foreignObject);\n return true;\n}\n","\nimport focusSvgForeignObjectHack from '../../element/focus.svg-foreign-object-hack';\n\nexport function generate(element) {\n return ''\n + element + '';\n}\n\nexport function focus(element) {\n if (element.focus) {\n return;\n }\n\n try {\n HTMLElement.prototype.focus.call(element);\n } catch (e) {\n focusSvgForeignObjectHack(element);\n }\n}\n\nexport function validate(element, focusTarget, _document) {\n focus(focusTarget);\n return _document.activeElement === focusTarget;\n}\n","\nimport {generate, validate} from './helper/svg';\n\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = generate('a');\n return element.querySelector('text');\n },\n validate,\n};\n","\nimport {generate, validate} from './helper/svg';\n\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = generate('a');\n return element.querySelector('text');\n },\n validate,\n};\n","\nimport {generate, validate} from './helper/svg';\n\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = generate('a');\n return element.querySelector('text');\n },\n validate,\n};\n","\nimport {generate, validate} from './helper/svg';\n\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = generate([\n 'link',\n '',\n ].join(''));\n\n return element.querySelector('use');\n },\n validate,\n};\n","\nimport {generate, validate} from './helper/svg';\n\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = generate('');\n // Safari 8's quersSelector() can't identify foreignObject, but getElementyByTagName() can\n return element.querySelector('foreignObject') || element.getElementsByTagName('foreignObject')[0];\n },\n validate,\n\n};\n","\nimport platform from '../util/platform';\n\n// Firefox seems to be handling the SVG-document-in-iframe creation asynchronously\n// and thereby produces a false negative test result. Thus the test is pointless\n// and we resort to UA sniffing once again.\n// see http://jsbin.com/vunadohoko/1/edit?js,console,output\n\nconst result = Boolean(platform.is.GECKO && typeof SVGElement !== 'undefined' && SVGElement.prototype.focus);\n\nexport default function() {\n return result;\n}\n","\nimport {generate, validate} from './helper/svg';\n\nexport default {\n element: 'div',\n mutate: function(element) {\n element.innerHTML = generate('');\n return element.firstChild;\n },\n validate,\n};\n","\n// export default 'data:video/mp4;base64,video-focus-test';\nimport gif from './gif';\nexport default gif;\n","\nimport mp4 from './media/mp4';\n\nexport default {\n element: 'video',\n mutate: function(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', mp4);\n } catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n },\n};\n","\nimport platform from '../util/platform';\n\n// https://jsbin.com/vafaba/3/edit?html,js,console,output\nconst result = platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE;\n\nexport default function() {\n return result;\n}\n","\nimport detectFocus from './detect-focus';\nimport cache from './supports-cache';\n\nimport cssShadowPiercingDeepCombinator from './css-shadow-piercing-deep-combinator';\nimport focusAreaImgTabindex from './focus-area-img-tabindex';\nimport focusAreaTabindex from './focus-area-tabindex';\nimport focusAreaWithoutHref from './focus-area-without-href';\nimport focusAudioWithoutControls from './focus-audio-without-controls';\nimport focusBrokenImageMap from './focus-broken-image-map';\nimport focusChildrenOfFocusableFlexbox from './focus-children-of-focusable-flexbox';\nimport focusFieldsetDisabled from './focus-fieldset-disabled';\nimport focusFieldset from './focus-fieldset';\nimport focusFlexboxContainer from './focus-flexbox-container';\nimport focusFormDisabled from './focus-form-disabled';\nimport focusImgIsmap from './focus-img-ismap';\nimport focusImgUsemapTabindex from './focus-img-usemap-tabindex';\nimport focusInHiddenIframe from './focus-in-hidden-iframe';\nimport focusInZeroDimensionObject from './focus-in-zero-dimension-object';\nimport focusInvalidTabindex from './focus-invalid-tabindex';\nimport focusLabelTabindex from './focus-label-tabindex';\nimport focusObjectSvgHidden from './focus-object-svg-hidden';\nimport focusObjectSvg from './focus-object-svg';\nimport focusObjectSwf from './focus-object-swf';\nimport focusRedirectImgUsemap from './focus-redirect-img-usemap';\nimport focusRedirectLegend from './focus-redirect-legend';\nimport focusScrollBody from './focus-scroll-body';\nimport focusScrollContainerWithoutOverflow from './focus-scroll-container-without-overflow';\nimport focusScrollContainer from './focus-scroll-container';\nimport focusSummary from './focus-summary';\nimport focusSvgFocusableAttribute from './focus-svg-focusable-attribute';\nimport focusSvgTabindexAttribute from './focus-svg-tabindex-attribute';\nimport focusSvgNegativeTabindexAttribute from './focus-svg-negative-tabindex-attribute';\nimport focusSvgUseTabindex from './focus-svg-use-tabindex';\nimport focusSvgForeignobjectTabindex from './focus-svg-foreignobject-tabindex';\nimport focusSvgInIframe from './focus-svg-in-iframe';\nimport focusSvg from './focus-svg';\nimport focusTabindexTrailingCharacters from './focus-tabindex-trailing-characters';\nimport focusTable from './focus-table';\nimport focusVideoWithoutControls from './focus-video-without-controls';\nimport tabsequenceAreaAtImgPosition from './tabsequence-area-at-img-position';\n\nconst testCallbacks = {\n cssShadowPiercingDeepCombinator,\n focusInZeroDimensionObject,\n focusObjectSwf,\n focusSvgInIframe,\n tabsequenceAreaAtImgPosition,\n};\n\nconst testDescriptions = {\n focusAreaImgTabindex,\n focusAreaTabindex,\n focusAreaWithoutHref,\n focusAudioWithoutControls,\n focusBrokenImageMap,\n focusChildrenOfFocusableFlexbox,\n focusFieldsetDisabled,\n focusFieldset,\n focusFlexboxContainer,\n focusFormDisabled,\n focusImgIsmap,\n focusImgUsemapTabindex,\n focusInHiddenIframe,\n focusInvalidTabindex,\n focusLabelTabindex,\n focusObjectSvg,\n focusObjectSvgHidden,\n focusRedirectImgUsemap,\n focusRedirectLegend,\n focusScrollBody,\n focusScrollContainerWithoutOverflow,\n focusScrollContainer,\n focusSummary,\n focusSvgFocusableAttribute,\n focusSvgTabindexAttribute,\n focusSvgNegativeTabindexAttribute,\n focusSvgUseTabindex,\n focusSvgForeignobjectTabindex,\n focusSvg,\n focusTabindexTrailingCharacters,\n focusTable,\n focusVideoWithoutControls,\n};\n\nfunction executeTests() {\n const results = detectFocus(testDescriptions);\n Object.keys(testCallbacks).forEach(function(key) {\n results[key] = testCallbacks[key]();\n });\n\n return results;\n}\n\nlet supportsCache = null;\n\nexport default function() {\n if (supportsCache) {\n return supportsCache;\n }\n\n supportsCache = cache.get();\n if (!supportsCache.time) {\n cache.set(executeTests());\n supportsCache = cache.get();\n }\n\n return supportsCache;\n}\n","\n// Children of focusable elements with display:flex are focusable in IE10-11\nexport default {\n element: 'div',\n mutate: function(element) {\n element.setAttribute('tabindex', '-1');\n element.setAttribute('style', 'display: -webkit-flex; display: -ms-flexbox; display: flex;');\n element.innerHTML = 'hello';\n return element.querySelector('span');\n },\n};\n","\n// fieldset[tabindex=0][disabled] should not be focusable, but Blink and WebKit disagree\n// @specification https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\n// @browser-issue Chromium https://crbug.com/453847\n// @browser-issue WebKit https://bugs.webkit.org/show_bug.cgi?id=141086\nexport default {\n element: 'fieldset',\n mutate: function(element) {\n element.setAttribute('tabindex', 0);\n element.setAttribute('disabled', 'disabled');\n },\n};\n","\nexport default {\n element: 'fieldset',\n mutate: function(element) {\n element.innerHTML = 'legend

content

';\n },\n};\n","\n// elements with display:flex are focusable in IE10-11\nexport default {\n element: 'span',\n mutate: function(element) {\n element.setAttribute('style', 'display: -webkit-flex; display: -ms-flexbox; display: flex;');\n element.innerHTML = 'hello';\n },\n};\n","\n// form[tabindex=0][disabled] should be focusable as the\n// specification doesn't know the disabled attribute on the form element\n// @specification https://www.w3.org/TR/html5/forms.html#the-form-element\nexport default {\n element: 'form',\n mutate: function(element) {\n element.setAttribute('tabindex', 0);\n element.setAttribute('disabled', 'disabled');\n },\n};\n","\nexport default {\n element: function(wrapper, _document) {\n const iframe = _document.createElement('iframe');\n\n // iframe must be part of the DOM before accessing the contentWindow is possible\n wrapper.appendChild(iframe);\n\n // create the iframe's default document ()\n const iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.close();\n return iframe;\n },\n mutate: function(iframe) {\n iframe.style.visibility = 'hidden';\n\n const iframeDocument = iframe.contentWindow.document;\n const input = iframeDocument.createElement('input');\n iframeDocument.body.appendChild(input);\n return input;\n },\n validate: function(iframe) {\n const iframeDocument = iframe.contentWindow.document;\n const focus = iframeDocument.querySelector('input');\n return iframeDocument.activeElement === focus;\n },\n};\n","\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nexport default {\n element: 'div',\n mutate: function(element) {\n element.setAttribute('tabindex', 'invalid-value');\n },\n};\n","\nexport default {\n element: 'label',\n mutate: function(element) {\n element.setAttribute('tabindex', '-1');\n },\n validate: function(element, focusTarget, _document) {\n // force layout in Chrome 49, otherwise the element won't be focusable\n /* eslint-disable no-unused-vars */\n const variableToPreventDeadCodeElimination = element.offsetHeight;\n /* eslint-enable no-unused-vars */\n element.focus();\n return _document.activeElement === element;\n },\n};\n","\n// see https://jsbin.com/nenirisage/edit?html,js,console,output\n\nexport default {\n element: 'fieldset',\n mutate: function(element) {\n element.innerHTML = 'legend';\n // take care of focus in validate();\n return false;\n },\n validate: function(element, focusTarget, _document) {\n const focusable = element.querySelector('input[tabindex=\"-1\"]');\n const tabbable = element.querySelector('input[tabindex=\"0\"]');\n\n // Firefox requires this test to focus the
first, while this is not necessary in\n // https://jsbin.com/nenirisage/edit?html,js,console,output\n element.focus();\n\n element.querySelector('legend').focus();\n return _document.activeElement === focusable && 'focusable'\n || _document.activeElement === tabbable && 'tabbable'\n || '';\n },\n};\n","\n// https://github.com/medialize/ally.js/issues/21\nexport default {\n element: 'div',\n mutate: function(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;');\n element.innerHTML = '
scrollable content
';\n return element.querySelector('div');\n },\n};\n","\n// https://github.com/medialize/ally.js/issues/21\nexport default {\n element: 'div',\n mutate: function(element) {\n element.setAttribute('style', 'width: 100px; height: 50px;');\n element.innerHTML = '
scrollable content
';\n },\n};\n","\n// https://github.com/medialize/ally.js/issues/21\nexport default {\n element: 'div',\n mutate: function(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;');\n element.innerHTML = '
scrollable content
';\n },\n};\n","\nexport default {\n element: 'details',\n mutate: function(element) {\n element.innerHTML = 'foo

content

';\n return element.firstElementChild;\n },\n};\n","\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nexport default {\n element: 'div',\n mutate: function(element) {\n element.setAttribute('tabindex', '3x');\n },\n};\n","\nexport default {\n element: 'table',\n mutate: function(element, wrapper, _document) {\n // IE9 has a problem replacing TBODY contents with innerHTML.\n // https://stackoverflow.com/a/8097055/515124\n // element.innerHTML = 'cell';\n const fragment = _document.createDocumentFragment();\n fragment.innerHTML = 'cell';\n element.appendChild(fragment);\n },\n};\n","\n// determine if an element's tabindex attribute has a valid value\n\nimport contextToElement from '../util/context-to-element';\nimport _supports from '../supports/supports';\nlet supports;\n\n// https://www.w3.org/TR/html5/infrastructure.html#rules-for-parsing-integers\n// NOTE: all browsers agree to allow trailing spaces as well\nconst validIntegerPatternNoTrailing = /^\\s*(-|\\+)?[0-9]+\\s*$/;\nconst validIntegerPatternWithTrailing = /^\\s*(-|\\+)?[0-9]+.*$/;\n\nexport default function(context) {\n if (!supports) {\n supports = _supports();\n }\n\n const validIntegerPattern = supports.focusTabindexTrailingCharacters\n ? validIntegerPatternWithTrailing\n : validIntegerPatternNoTrailing;\n\n const element = contextToElement({\n label: 'is/valid-tabindex',\n resolveDocument: true,\n context,\n });\n\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n const hasTabindex = element.hasAttribute('tabindex');\n const hasTabIndex = element.hasAttribute('tabIndex');\n\n if (!hasTabindex && !hasTabIndex) {\n return false;\n }\n\n // older Firefox and Internet Explorer don't support tabindex on SVG elements\n const isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg';\n if (isSvgElement && !supports.focusSvgTabindexAttribute) {\n return false;\n }\n\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n if (supports.focusInvalidTabindex) {\n return true;\n }\n\n // an element matches the tabindex selector even if its value is invalid\n const tabindex = element.getAttribute(hasTabindex ? 'tabindex' : 'tabIndex');\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n // @browser-issue Trident https://connect.microsoft.com/IE/feedback/details/1072965\n if (tabindex === '-32768') {\n return false;\n }\n\n return Boolean(tabindex && validIntegerPattern.test(tabindex));\n}\n","\n// determine if an element supports.can be focused by script regardless\n// of the element actually being focusable at the time of execution\n// i.e. is conisdered focus-relevant, but not focusable\n\nimport getParents from '../get/parents';\nimport contextToElement from '../util/context-to-element';\nimport elementMatches from '../util/element-matches';\nimport tabindexValue from '../util/tabindex-value';\nimport isValidTabindex from './valid-tabindex';\nimport {\n hasCssOverflowScroll,\n hasCssDisplayFlex,\n isScrollableContainer,\n isUserModifyWritable,\n} from './is.util';\n\nimport _supports from '../supports/supports';\nlet supports;\n\nfunction isFocusRelevantRules({\n context,\n except = {\n flexbox: false,\n scrollable: false,\n shadow: false,\n },\n} = {}) {\n if (!supports) {\n supports = _supports();\n }\n\n const element = contextToElement({\n label: 'is/focus-relevant',\n resolveDocument: true,\n context,\n });\n\n if (!except.shadow && element.shadowRoot) {\n // a ShadowDOM host receives focus when the focus moves to its content\n return true;\n }\n\n const nodeName = element.nodeName.toLowerCase();\n\n if (nodeName === 'input' && element.type === 'hidden') {\n // input[type=\"hidden\"] supports.cannot be focused\n return false;\n }\n\n if (nodeName === 'input' || nodeName === 'select' || nodeName === 'button' || nodeName === 'textarea') {\n return true;\n }\n\n if (nodeName === 'legend' && supports.focusRedirectLegend) {\n // specifics filtered in is/focusable\n return true;\n }\n\n if (nodeName === 'label') {\n // specifics filtered in is/focusable\n return true;\n }\n\n if (nodeName === 'area') {\n // specifics filtered in is/focusable\n return true;\n }\n\n if (nodeName === 'a' && element.hasAttribute('href')) {\n return true;\n }\n\n if (nodeName === 'object' && element.hasAttribute('usemap')) {\n // object[usemap] is not focusable in any browser\n return false;\n }\n\n if (nodeName === 'object') {\n const svgType = element.getAttribute('type');\n if (!supports.focusObjectSvg && svgType === 'image/svg+xml') {\n // object[type=\"image/svg+xml\"] is not focusable in Internet Explorer\n return false;\n } else if (!supports.focusObjectSwf && svgType === 'application/x-shockwave-flash') {\n // object[type=\"application/x-shockwave-flash\"] is not focusable in Internet Explorer 9\n return false;\n }\n }\n\n if (nodeName === 'iframe' || nodeName === 'object') {\n // browsing context containers\n return true;\n }\n\n if (nodeName === 'embed' || nodeName === 'keygen') {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n\n if (element.hasAttribute('contenteditable')) {\n // also see CSS property user-modify below\n return true;\n }\n\n if (nodeName === 'audio' && (supports.focusAudioWithoutControls || element.hasAttribute('controls'))) {\n return true;\n }\n\n if (nodeName === 'video' && (supports.focusVideoWithoutControls || element.hasAttribute('controls'))) {\n return true;\n }\n\n if (supports.focusSummary && nodeName === 'summary') {\n return true;\n }\n\n const validTabindex = isValidTabindex(element);\n\n if (nodeName === 'img' && element.hasAttribute('usemap')) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the \n return validTabindex && supports.focusImgUsemapTabindex || supports.focusRedirectImgUsemap;\n }\n\n if (supports.focusTable && (nodeName === 'table' || nodeName === 'td')) {\n // IE10-11 supports.can focus and
\n return true;\n }\n\n if (supports.focusFieldset && nodeName === 'fieldset') {\n // IE10-11 supports.can focus
\n return true;\n }\n\n const isSvgElement = nodeName === 'svg';\n const isSvgContent = element.ownerSVGElement;\n const focusableAttribute = element.getAttribute('focusable');\n const tabindex = tabindexValue(element);\n\n if (nodeName === 'use' && tabindex !== null && !supports.focusSvgUseTabindex) {\n // cannot be made focusable by adding a tabindex attribute anywhere but Blink and WebKit\n return false;\n }\n\n if (nodeName === 'foreignobject') {\n // can only be made focusable in Blink and WebKit\n return tabindex !== null && supports.focusSvgForeignobjectTabindex;\n }\n\n if (elementMatches(element, 'svg a') && element.hasAttribute('xlink:href')) {\n return true;\n }\n\n if ((isSvgElement || isSvgContent) && element.focus && !supports.focusSvgNegativeTabindexAttribute && tabindex < 0) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return false;\n }\n\n if (isSvgElement) {\n return validTabindex || supports.focusSvg || supports.focusSvgInIframe\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n || Boolean(supports.focusSvgFocusableAttribute && focusableAttribute && focusableAttribute === 'true');\n }\n\n if (isSvgContent) {\n if (supports.focusSvgTabindexAttribute && validTabindex) {\n return true;\n }\n\n if (supports.focusSvgFocusableAttribute) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n return focusableAttribute === 'true';\n }\n }\n\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n if (validTabindex) {\n return true;\n }\n\n const style = window.getComputedStyle(element, null);\n if (isUserModifyWritable(style)) {\n return true;\n }\n\n if (supports.focusImgIsmap && nodeName === 'img' && element.hasAttribute('ismap')) {\n // IE10-11 considers the in focusable\n // https://github.com/medialize/ally.js/issues/20\n const hasLinkParent = getParents({context: element}).some(\n parent => parent.nodeName.toLowerCase() === 'a' && parent.hasAttribute('href')\n );\n\n if (hasLinkParent) {\n return true;\n }\n }\n\n // https://github.com/medialize/ally.js/issues/21\n if (!except.scrollable && supports.focusScrollContainer) {\n if (supports.focusScrollContainerWithoutOverflow) {\n // Internet Explorer does will consider the scrollable area focusable\n // if the element is a
or a and it is in fact scrollable,\n // regardless of the CSS overflow property\n if (isScrollableContainer(element, nodeName)) {\n return true;\n }\n } else if (hasCssOverflowScroll(style)) {\n // Firefox requires proper overflow setting, IE does not necessarily\n // https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n return true;\n }\n }\n\n if (!except.flexbox && supports.focusFlexboxContainer && hasCssDisplayFlex(style)) {\n // elements with display:flex are focusable in IE10-11\n return true;\n }\n\n const parent = element.parentElement;\n if (!except.scrollable && parent) {\n const parentNodeName = parent.nodeName.toLowerCase();\n const parentStyle = window.getComputedStyle(parent, null);\n if (supports.focusScrollBody && isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n // scrollable bodies are focusable Internet Explorer\n // https://github.com/medialize/ally.js/issues/21\n return true;\n }\n\n // Children of focusable elements with display:flex are focusable in IE10-11\n if (supports.focusChildrenOfFocusableFlexbox) {\n if (hasCssDisplayFlex(parentStyle)) {\n return true;\n }\n }\n }\n\n // NOTE: elements marked as inert are not focusable,\n // but that property is not exposed to the DOM\n // https://www.w3.org/TR/html5/editing.html#inert\n\n return false;\n}\n\n// bind exceptions to an iterator callback\nisFocusRelevantRules.except = function(except = {}) {\n const isFocusRelevant = function(context) {\n return isFocusRelevantRules({\n context,\n except,\n });\n };\n\n isFocusRelevant.rules = isFocusRelevantRules;\n return isFocusRelevant;\n};\n\n// provide isFocusRelevant(context) as default iterator callback\nconst isFocusRelevant = isFocusRelevantRules.except({});\nexport default isFocusRelevant;\n","\nimport isValidTabindex from '../is/valid-tabindex';\n\nexport default function(element) {\n if (!isValidTabindex(element)) {\n return null;\n }\n\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n const hasTabindex = element.hasAttribute('tabindex');\n const attributeName = hasTabindex ? 'tabindex' : 'tabIndex';\n\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n const tabindex = parseInt(element.getAttribute(attributeName), 10);\n return isNaN(tabindex) ? -1 : tabindex;\n}\n","\n// this is a shared utility file for focus-relevant.js and tabbable.js\n// separate testing of this file's functions is not necessary,\n// as they're implicitly tested by way of the consumers\n\nexport function isUserModifyWritable(style) {\n // https://www.w3.org/TR/1999/WD-css3-userint-19990916#user-modify\n // https://github.com/medialize/ally.js/issues/17\n const userModify = style.webkitUserModify || '';\n return Boolean(userModify && userModify.indexOf('write') !== -1);\n}\n\nexport function hasCssOverflowScroll(style) {\n return [\n style.getPropertyValue('overflow'),\n style.getPropertyValue('overflow-x'),\n style.getPropertyValue('overflow-y'),\n ].some(overflow => overflow === 'auto' || overflow === 'scroll');\n}\n\nexport function hasCssDisplayFlex(style) {\n return style.display.indexOf('flex') > -1;\n}\n\nexport function isScrollableContainer(element, nodeName, parentNodeName, parentStyle) {\n if (nodeName !== 'div' && nodeName !== 'span') {\n // Internet Explorer advances scrollable containers and bodies to focusable\n // only if the scrollable container is
or - this does *not*\n // happen for
,
, …\n return false;\n }\n\n if (parentNodeName && parentNodeName !== 'div' && parentNodeName !== 'span' && !hasCssOverflowScroll(parentStyle)) {\n return false;\n }\n\n return element.offsetHeight < element.scrollHeight || element.offsetWidth < element.scrollWidth;\n}\n","export default function findIndex(array, callback) {\n // attempt to use native or polyfilled Array#findIndex first\n if (array.findIndex) {\n return array.findIndex(callback);\n }\n\n const length = array.length;\n\n // shortcut if the array is empty\n if (length === 0) {\n return -1;\n }\n\n // otherwise loop over array\n for (let i = 0; i < length; i++) {\n if (callback(array[i], i, array)) {\n return i;\n }\n }\n\n return -1;\n}\n","\nexport default function(node) {\n try {\n // works on and