<html><head></head><body>{"version":3,"file":"index.umd.min.js","sources":["../src/index.js"],"sourcesContent":["const candidateSelectors = [\n  'input',\n  'select',\n  'textarea',\n  'a[href]',\n  'button',\n  '[tabindex]',\n  'audio[controls]',\n  'video[controls]',\n  '[contenteditable]:not([contenteditable=\"false\"])',\n  'details&gt;summary:first-of-type',\n  'details',\n];\nconst candidateSelector = /* #__PURE__ */ candidateSelectors.join(',');\n\nconst matches =\n  typeof Element === 'undefined'\n    ? function () {}\n    : Element.prototype.matches ||\n      Element.prototype.msMatchesSelector ||\n      Element.prototype.webkitMatchesSelector;\n\nconst getCandidates = function (el, includeContainer, filter) {\n  let candidates = Array.prototype.slice.apply(\n    el.querySelectorAll(candidateSelector)\n  );\n  if (includeContainer &amp;&amp; matches.call(el, candidateSelector)) {\n    candidates.unshift(el);\n  }\n  candidates = candidates.filter(filter);\n  return candidates;\n};\n\nconst isContentEditable = function (node) {\n  return node.contentEditable === 'true';\n};\n\nconst getTabindex = function (node) {\n  const tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n\n  if (!isNaN(tabindexAttr)) {\n    return tabindexAttr;\n  }\n\n  // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n  // so if they don't have a tabindex attribute specifically set, assume it's 0.\n  if (isContentEditable(node)) {\n    return 0;\n  }\n\n  // in Chrome, <details>, <audio controls=""> and <video controls=""> elements get a default\n  //  `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n  //  yet they are still part of the regular tab order; in FF, they get a default\n  //  `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n  //  order, consider their tab index to be 0.\n  if (\n    (node.nodeName === 'AUDIO' ||\n      node.nodeName === 'VIDEO' ||\n      node.nodeName === 'DETAILS') &amp;&amp;\n    node.getAttribute('tabindex') === null\n  ) {\n    return 0;\n  }\n\n  return node.tabIndex;\n};\n\nconst sortOrderedTabbables = function (a, b) {\n  return a.tabIndex === b.tabIndex\n    ? a.documentOrder - b.documentOrder\n    : a.tabIndex - b.tabIndex;\n};\n\nconst isInput = function (node) {\n  return node.tagName === 'INPUT';\n};\n\nconst isHiddenInput = function (node) {\n  return isInput(node) &amp;&amp; node.type === 'hidden';\n};\n\nconst isDetailsWithSummary = function (node) {\n  const r =\n    node.tagName === 'DETAILS' &amp;&amp;\n    Array.prototype.slice\n      .apply(node.children)\n      .some((child) =&gt; child.tagName === 'SUMMARY');\n  return r;\n};\n\nconst getCheckedRadio = function (nodes, form) {\n  for (let i = 0; i &lt; nodes.length; i++) {\n    if (nodes[i].checked &amp;&amp; nodes[i].form === form) {\n      return nodes[i];\n    }\n  }\n};\n\nconst isTabbableRadio = function (node) {\n  if (!node.name) {\n    return true;\n  }\n  const radioScope = node.form || node.ownerDocument;\n\n  const queryRadios = function (name) {\n    return radioScope.querySelectorAll(\n      'input[type=\"radio\"][name=\"' + name + '\"]'\n    );\n  };\n\n  let radioSet;\n  if (\n    typeof window !== 'undefined' &amp;&amp;\n    typeof window.CSS !== 'undefined' &amp;&amp;\n    typeof window.CSS.escape === 'function'\n  ) {\n    radioSet = queryRadios(window.CSS.escape(node.name));\n  } else {\n    try {\n      radioSet = queryRadios(node.name);\n    } catch (err) {\n      // eslint-disable-next-line no-console\n      console.error(\n        'Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s',\n        err.message\n      );\n      return false;\n    }\n  }\n\n  const checked = getCheckedRadio(radioSet, node.form);\n  return !checked || checked === node;\n};\n\nconst isRadio = function (node) {\n  return isInput(node) &amp;&amp; node.type === 'radio';\n};\n\nconst isNonTabbableRadio = function (node) {\n  return isRadio(node) &amp;&amp; !isTabbableRadio(node);\n};\n\nconst isHidden = function (node, displayCheck) {\n  if (getComputedStyle(node).visibility === 'hidden') {\n    return true;\n  }\n\n  const isDirectSummary = matches.call(node, 'details&gt;summary:first-of-type');\n  const nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n  if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n    return true;\n  }\n  if (!displayCheck || displayCheck === 'full') {\n    while (node) {\n      if (getComputedStyle(node).display === 'none') {\n        return true;\n      }\n      node = node.parentElement;\n    }\n  } else if (displayCheck === 'non-zero-area') {\n    const { width, height } = node.getBoundingClientRect();\n    return width === 0 &amp;&amp; height === 0;\n  }\n\n  return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n//  unless they are in the _first_ <legend> element of the top-most disabled\n//  fieldset\nconst isDisabledFromFieldset = function (node) {\n  if (\n    isInput(node) ||\n    node.tagName === 'SELECT' ||\n    node.tagName === 'TEXTAREA' ||\n    node.tagName === 'BUTTON'\n  ) {\n    let parentNode = node.parentElement;\n    while (parentNode) {\n      if (parentNode.tagName === 'FIELDSET' &amp;&amp; parentNode.disabled) {\n        // look for the first <legend> as an immediate child of the disabled\n        //  <fieldset>: if the node is in that legend, it'll be enabled even\n        //  though the fieldset is disabled; otherwise, the node is in a\n        //  secondary/subsequent legend, or somewhere else within the fieldset\n        //  (however deep nested) and it'll be disabled\n        for (let i = 0; i &lt; parentNode.children.length; i++) {\n          const child = parentNode.children.item(i);\n          if (child.tagName === 'LEGEND') {\n            if (child.contains(node)) {\n              return false;\n            }\n\n            // the node isn't in the first legend (in doc order), so no matter\n            //  where it is now, it'll be disabled\n            return true;\n          }\n        }\n\n        // the node isn't in a legend, so no matter where it is now, it'll be disabled\n        return true;\n      }\n\n      parentNode = parentNode.parentElement;\n    }\n  }\n\n  // else, node's tabbable/focusable state should not be affected by a fieldset's\n  //  enabled/disabled state\n  return false;\n};\n\nconst isNodeMatchingSelectorFocusable = function (options, node) {\n  if (\n    node.disabled ||\n    isHiddenInput(node) ||\n    isHidden(node, options.displayCheck) ||\n    // For a details element with a summary, the summary element gets the focus\n    isDetailsWithSummary(node) ||\n    isDisabledFromFieldset(node)\n  ) {\n    return false;\n  }\n  return true;\n};\n\nconst isNodeMatchingSelectorTabbable = function (options, node) {\n  if (\n    !isNodeMatchingSelectorFocusable(options, node) ||\n    isNonTabbableRadio(node) ||\n    getTabindex(node) &lt; 0\n  ) {\n    return false;\n  }\n  return true;\n};\n\nconst tabbable = function (el, options) {\n  options = options || {};\n\n  const regularTabbables = [];\n  const orderedTabbables = [];\n\n  const candidates = getCandidates(\n    el,\n    options.includeContainer,\n    isNodeMatchingSelectorTabbable.bind(null, options)\n  );\n\n  candidates.forEach(function (candidate, i) {\n    const candidateTabindex = getTabindex(candidate);\n    if (candidateTabindex === 0) {\n      regularTabbables.push(candidate);\n    } else {\n      orderedTabbables.push({\n        documentOrder: i,\n        tabIndex: candidateTabindex,\n        node: candidate,\n      });\n    }\n  });\n\n  const tabbableNodes = orderedTabbables\n    .sort(sortOrderedTabbables)\n    .map((a) =&gt; a.node)\n    .concat(regularTabbables);\n\n  return tabbableNodes;\n};\n\nconst focusable = function (el, options) {\n  options = options || {};\n\n  const candidates = getCandidates(\n    el,\n    options.includeContainer,\n    isNodeMatchingSelectorFocusable.bind(null, options)\n  );\n\n  return candidates;\n};\n\nconst isTabbable = function (node, options) {\n  options = options || {};\n  if (!node) {\n    throw new Error('No node provided');\n  }\n  if (matches.call(node, candidateSelector) === false) {\n    return false;\n  }\n  return isNodeMatchingSelectorTabbable(options, node);\n};\n\nconst focusableCandidateSelector = /* #__PURE__ */ candidateSelectors\n  .concat('iframe')\n  .join(',');\n\nconst isFocusable = function (node, options) {\n  options = options || {};\n  if (!node) {\n    throw new Error('No node provided');\n  }\n  if (matches.call(node, focusableCandidateSelector) === false) {\n    return false;\n  }\n  return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { tabbable, focusable, isTabbable, isFocusable };\n"],"names":["candidateSelectors","candidateSelector","join","matches","Element","prototype","msMatchesSelector","webkitMatchesSelector","getCandidates","el","includeContainer","filter","candidates","Array","slice","apply","querySelectorAll","call","unshift","getTabindex","node","tabindexAttr","parseInt","getAttribute","isNaN","contentEditable","isContentEditable","nodeName","tabIndex","sortOrderedTabbables","a","b","documentOrder","isInput","tagName","isNonTabbableRadio","type","isRadio","name","radioSet","radioScope","form","ownerDocument","queryRadios","window","CSS","escape","err","console","error","message","checked","nodes","i","length","getCheckedRadio","isTabbableRadio","isNodeMatchingSelectorFocusable","options","disabled","isHiddenInput","displayCheck","getComputedStyle","visibility","nodeUnderDetails","parentElement","getBoundingClientRect","width","height","display","isHidden","children","some","child","isDetailsWithSummary","parentNode","item","contains","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","focusableCandidateSelector","concat","bind","Error","regularTabbables","orderedTabbables","forEach","candidate","candidateTabindex","push","sort","map"],"mappings":"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"}</fieldset></legend></legend></video></audio></details><style>
.hidden {
display: none;
}
</style>

<a href="http://www.izuanhui.net"  class="hidden">足球买球</a>
<a href="http://www.yutb.net"  class="hidden">Grand-Lisboa-contact@yutb.net</a>
<a href="http://web-sitemap.gglh02.com" class="hidden">长乐新闻网</a>
<a href="http://web-sitemap.gl428.com" class="hidden">华泰财险</a>
<a href="http://www.swissabc.net"  class="hidden">Sports-betting-service@swissabc.net</a>
<a href="http://web-sitemap.mustbr.com" class="hidden">水泥商情网</a>
<a href="http://www.78278.net"  class="hidden">Asia-Tour-International-billing@78278.net</a>
<a href="http://wsbvyk.9224f.com" class="hidden">株洲赶集网</a>
<a href="http://www.zlmmc8.com"  class="hidden">皇冠体育app</a>
<a href="http://www.kongtiao11.com"  class="hidden">Gambling-website-hr@kongtiao11.com</a>
<a href="http://web-sitemap.garbage2go.net" class="hidden">北京慕田峪长城官方网站</a>
<a href="http://www.berxwedan.net"  class="hidden">皇冠博彩官网</a>
<a href="http://www.xyschool.net"  class="hidden">Sun-City-Entertainment-contactus@xyschool.net</a>
<a href="http://www.vko29.com"  class="hidden">365体育</a>
<a href="http://www.media2v-api.net"  class="hidden">365-Sports-Betting-careers@media2v-api.net</a>
<a href="http://ykrzzb.866kq.com" class="hidden">东北师范大学本科招生网</a>
<a href="http://padumn.yopin365.com" class="hidden">华龙网两江评论</a>
<a href="http://www.tdwang.net"  class="hidden">体育博彩</a>
<a href="http://www.braelyngenerator.net"  class="hidden">Sun-City-entertainment-City-customerservice@braelyngenerator.net</a>
<a href="http://www.rf518.com"  class="hidden">Gaming-platform-support@rf518.com</a>

<a href="https://tw.dictionary.yahoo.com/dictionary?p=✔️网址:la66.net✔️888新皇冠官方登录地址(中国)有限公司✔️网址:la66.net✔️888新皇冠官方登录地址(中国)有限公司.sxw" class="hidden">燕子BT </a>
<a href="https://stock.adobe.com/search?k=最好的网上赌博可靠的赌博软件>>✔️最新网址:la55.net✔️手输<<.lvs" class="hidden">新东方教育高清视频网</a>
<a href="https://stock.adobe.com/search?k=>>✔️最新网址:la55.net✔️手输<<最大体育博彩赌博软件推荐.ect" class="hidden">乐贝</a>
<a href="https://m.facebook.com/public/最好的网络博彩网络博彩网站>>✔️网址:la666.net✔️手输<<最好的网络博彩网络博彩网站>>✔️网址:la666.net✔️手输<<" class="hidden">风雷游戏</a>
<a href="https://es-la.facebook.com/public/✔️网址:ad11.net✔️亚洲bet365-亚洲bet365官方网站.gmq" class="hidden">绿岸在线</a>
<a href="https://m.facebook.com/public/>>✔️最新网址:ad22.net✔️手输<<澳洲賭場德州撲克>>✔️最新网址:ad22.net✔️手输<<澳洲賭場德州撲克" class="hidden">EA官方中文网</a>
<a href="https://acrmc.com/search/为您推荐十大老品牌网赌大全✔️官方网址:la777.net✔️为您推荐十大老品牌网赌大全✔️官方网址:la777.net✔️" class="hidden">广东工业大学华立学院</a>
<a href="https://stock.adobe.com/search/images?k=日博app官方下载平台介绍✔️网址:la666.net✔️.ugi" class="hidden">济南地铁网</a>
<a href="https://stock.adobe.com/search?k=全球十大赌博靠谱平台-全球十大赌博靠谱平台官方网站✔️网址:ad11.net✔️" class="hidden">装一网</a>
<a href="https://tw.dictionary.yahoo.com/dictionary?p=✔️官方网址:la777.net✔️(关于立博体育平台网址的简介)立博体育平台网址" class="hidden">中关村在线智能穿戴频道</a>

<a href="/sttcs/hot-news/prerelation.html" class="hidden">东营违章查询网</a>
<a href="/html/igwuhd-301936" class="hidden">东方烟草网</a>
<a href="/html/lpgyox-417589.html" class="hidden">发78分类信息网</a>
<a href="/news/ubflqd-230433" class="hidden">福彩3D_幸运之门彩票网</a>
<a href="/sttcs/hot-news/rix.html" class="hidden">腾讯大浙房产</a>


</body></html>