{"version":3,"sources":["jsdelivr-header.js","/npm/anzhiyu-theme-static@1.1.10/accesskey/accesskey.js"],"names":[],"mappings":"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","file":"/npm/anzhiyu-theme-static@1.1.10/accesskey/accesskey.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/anzhiyu-theme-static@1.1.10/accesskey/accesskey.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*\n** HTML accesskey辅助增强脚本\n** 作用包括：\n** 1. 统一IE浏览器和其它浏览器的快捷访问行为；\n** 2. 增加单独accesskey属性值对应按键按下的focus行为；\n** 3. 增加accesskey生效的前置键按下的提示行为，例如window上Alt键提示，Mac下的Alt + control组合提示等；\n** 4. 增加shift + '?'(keyCode=191)键的提示行为支持；\n** MIT\n*/\n\n(function (doc, win) {\n\t// 操作系统和浏览器设备检测\n\tvar ua = navigator.userAgent;\n\t\n\tvar syetem = 'windows';\n\t\n\tif (/Mac\\sOS\\sX/i.test(ua)) {\n\t\tsyetem = 'mac';\n\t}\n\t\n\t// 浏览器判断\n\tvar browser = 'chrome';\n\tif (typeof doc.mozFullScreen != 'undefined') {\n\t\tbrowser = 'moz';\n\t} else if (typeof doc.msHidden != 'undefined' || typeof doc.hidden == 'undefined') {\n\t\tbrowser = 'ie';\n\t}\n\t\n\t// 快捷键组合\n\tvar keyPrefix = ({\n\t\twindows: (browser == 'moz'? {\n\t\t\tctrlKey: false,\n\t\t\taltKey: true,\n\t\t\tshiftKey: true\n\t\t}: {\n\t\t\tctrlKey: false,\n\t\t\taltKey: true,\n\t\t\tshiftKey: false\n\t\t}),\n\t\tmac: {\n\t\t\tctrlKey: true,\n\t\t\taltKey: true,\n\t\t\tshiftKey: false\n\t\t} \n\t})[syetem];\n\t\n\t// 获取字符Unicode值方法\n\tvar U = function(a, b) {\n\t\tif (!a) return \"\";\n\t\tfor (var b = b || \"x\", c = \"\", d = 0, e; d < a.length; d += 1) a.charCodeAt(d) >= 55296 && a.charCodeAt(d) <= 56319 ? (e = (65536 + 1024 * (Number(a.charCodeAt(d)) - 55296) + Number(a.charCodeAt(d + 1)) - 56320).toString(16), d += 1) : e = a.charCodeAt(d).toString(16),\n\t\tc += b + e;\n\t\treturn c.substr(b.length)\n\t};\n\t\n\t// 提示当前元素快捷键的方法\n\tvar timerTips = null;\n\tvar tips = function (arrEles) {\n\t\t// 已经显示中，忽略\n\t\tif (doc.hasTipsShow) {\n\t\t\treturn;\t\n\t\t}\n\t\t// 页面的滚动高度\n\t\tvar scrollTop = doc.documentElement.scrollTop || doc.body.scrollTop;\n\t\tvar scrollLeft = doc.documentElement.scrollLeft || doc.body.scrollLeft;\n\t\t\n\t\t// 遍历创建提示元素\n\t\tarrEles.forEach(function (ele) {\n\t\t\t\n\t\t\t// 如果元素隐藏，也忽略\n\t\t\tif (ele.clientHeight * ele.clientWidth == 0) {\n\t\t\t\treturn;\t\n\t\t\t}\n\t\t\t\n\t\t\tvar accesskey = ele.getAttribute('accesskey');\n\t\t\tvar arrAccesskey = [];\n\t\t\tfor (var key in keyPrefix) {\n\t\t\t\tif (keyPrefix[key]) {\n\t\t\t\t\tarrAccesskey.push(key);\n\t\t\t\t}\n\t\t\t}\n\t\t\tarrAccesskey.push(accesskey);\n\t\t\t\n\t\t\t// 当前元素相对于文档的偏移\n\t\t\tvar bounding = ele.getBoundingClientRect();\n\n\t\t\t// 创建tips提示元素\n\t\t\tvar div = document.createElement('div');\n\t\t\tdiv.className = 'AK_Tips';\n\t\t\tdiv.setAttribute('style', 'position:fixed;top:'+ (bounding.top) +'px;left:'+ (bounding.left + scrollLeft) +'px;z-index:9999;font-family:consolas,\"Liberation Mono\",courier,monospace;font-size:12px;border-radius:8px;color:#fff;background:rgba(0,0,0,.75);opacity:0.8;line-height:13px;padding:3px 3px;user-select: none;pointer-events: none;');\n\t\t\tdiv.innerHTML = arrAccesskey.map(function (key) {\n\t\t\t\treturn '<kbd style=\"font-family:inherit;\">'+ key.replace('Key', '') +'</kbd>';\t\n\t\t\t}).join('+');\n\t\t\t\n\t\t\tdocument.body.appendChild(div);\n\t\t\t\n\t\t\tdiv.fromTarget = ele;\n\t\t});\n\t\t\n\t\t// 标记，避免重复生成\n\t\tdoc.hasTipsShow = true;\n\t\t\n\t\t// 一段时间隐藏\n\t\ttimerTips = setTimeout(function () {\n\t\t\tremoveTips();\t\n\t\t}, 3000);\n\t};\n\t// 隐藏tips\n\tvar removeTips = function () {\n\t\tclearTimeout(timerTips);\n\t\t// 移除所有的快捷键提示\n\t\tvar elesTips = doc.querySelectorAll('.AK_Tips');\n\t\t[].slice.call(elesTips).forEach(function (ele) {\n\t\t\tif (ele.fromTarget) {\n\t\t\t\tele.fromTarget.hasTipsShow = null;\n\t\t\t}\n\t\t\tdoc.body.removeChild(ele);\n\t\t});\n\t\tdoc.hasTipsShow = null;\n\t};\n\t\n\tif (doc.addEventListener) {\n\t\t// IE9+\n\t\tdoc.addEventListener('keydown', function (event) {\n\t\t\t// 当前元素是否是可输入的input或者textarea\n\t\t\tvar isTargetInputable = false;\n\t\t\tvar eleTarget = event.target || doc.activeElement;\n\t\t\tvar tagName = eleTarget.tagName.toLowerCase();\n\t\t\tif (tagName == 'textarea' || (tagName == 'input' && /checkbox|radio|select|file|button|image|hidden/.test(eleTarget.type) == false)) {\n\t\t\t\tisTargetInputable = true;\n\t\t\t}\n\t\t\t\n\t\t\t// 遍历所有设置了accesskey的符合HTML4.0.1规范的元素\n\t\t\t// 包括<a>, <area>, <button>, <input>, <label>, <legend>以及<textarea>\n\t\t\tvar elesOwnAccesskey = doc.querySelectorAll('a[accesskey],area[accesskey],button[accesskey],input[accesskey],label[accesskey],legend[accesskey],textarea[accesskey]');\n\t\t\tif (elesOwnAccesskey.length == 0) {\n\t\t\t\treturn;\t\n\t\t\t}\n\t\t\t// 对象列表转换成数组\n\t\t\tvar arrElesOwnAccesskey = [].slice.call(elesOwnAccesskey);\n\t\t\t// 进行遍历\n\t\t\tvar arrAcceeekey = arrElesOwnAccesskey.map(function (ele) {\n\t\t\t\treturn ele.getAttribute('accesskey');\n\t\t\t});\n\t\t\t// windows下图下直接event.key就是按下的键对于的内容，但OS X系统却没有key属性，有的是event.keyIdentifier，表示字符的Unicode值\n\t\t\t// 根据这个判断按键是否有对应的匹配\n\t\t\tvar indexMatch = -1;\n\t\t\tarrAcceeekey.forEach(function (accesskey, index) {\n\t\t\t\tif ((event.key && event.key == accesskey) || (event.keyIdentifier && parseInt(event.keyIdentifier.toLowerCase().replace('u+', ''), 16) == parseInt(U(accesskey), 16))) {\n\t\t\t\t\tindexMatch = index;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t// 1. 单独按下某个键的匹配支持\n\t\t\tif (event.altKey == false && event.shiftKey == false && event.ctrlKey == false) {\n\t\t\t\tif (isTargetInputable) {\n\t\t\t\t\treturn;\t\n\t\t\t\t}\t\t\t\t\n\t\t\t\t// focus高亮\n\t\t\t\tif (arrElesOwnAccesskey[indexMatch]) {\n\t\t\t\t\tarrElesOwnAccesskey[indexMatch].focus();\n\t\t\t\t\t// 阻止内容输入\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t// 2. shift + '?'(keyCode=191)键的提示行为支持\n\t\t\t} else if (event.altKey == false && event.shiftKey == true && event.ctrlKey == false) {\n\t\t\t\tif (event.keyCode == 191 && !isTargetInputable) {\n\t\t\t\t\tdoc.hasTipsShow? removeTips(): tips(arrElesOwnAccesskey);\n\t\t\t\t}\n\t\t\t// 3. 增加accesskey生效的前置键按下的提示行为\n\t\t\t} else if (event.altKey == keyPrefix.altKey && event.shiftKey == keyPrefix.shiftKey && event.ctrlKey == keyPrefix.ctrlKey) {\t\t\t\t\n\t\t\t\tif (indexMatch == -1) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tdoc.hasTipsShow? removeTips(): tips(arrElesOwnAccesskey);\n\t\t\t\t} else {\n\t\t\t\t\tremoveTips();\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// 4. IE浏览器和其他浏览器行为一致的处理\n\t\t\t\tif (browser == 'ie' && arrElesOwnAccesskey[indexMatch] && !isTargetInputable) {\n\t\t\t\t\t// click行为触发\n\t\t\t\t\tarrElesOwnAccesskey[indexMatch].click();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tdoc.addEventListener('mousedown', function (event) {\n\t\t\tremoveTips();\n\t\t});\n\t}\t\n})(document, window);"]}