<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://test.zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-AccessKeyCheatsheet.js</id>
	<title>MediaWiki:Gadget-AccessKeyCheatsheet.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://test.zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-AccessKeyCheatsheet.js"/>
	<link rel="alternate" type="text/html" href="https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-AccessKeyCheatsheet.js&amp;action=history"/>
	<updated>2026-07-18T03:00:02Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-AccessKeyCheatsheet.js&amp;diff=249&amp;oldid=prev</id>
		<title>鹿野耕云：​创建页面，内容为“/**  * SPDX-License-Identifier: CC-BY-SA-4.0  * _addText: &#039;{{Gadget Header|license=CC-BY-SA-4.0}}&#039;  *  * @base {@link https://en.wikipedia.org/wiki/User:Guarapiranga/accessKeysCheatSheet.js}  * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/AccessKeyCheatsheet}  * @license CC-BY-SA-4.0 {@link https://www.qiuwenbaike.cn/wiki/H:CC-BY-SA-4.0}  */ /**  * +------------------------------------------------------------+  * |…”</title>
		<link rel="alternate" type="text/html" href="https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-AccessKeyCheatsheet.js&amp;diff=249&amp;oldid=prev"/>
		<updated>2026-06-14T03:43:58Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“&lt;span class=&quot;autocomment&quot;&gt;*  * SPDX-License-Identifier: CC-BY-SA-4.0  * _addText: &amp;#039;{{Gadget Header|license=CC-BY-SA-4.0}}&amp;#039;  *  * @base {@link https://en.wikipedia.org/wiki/User:Guarapiranga/accessKeysCheatSheet.js}  * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/AccessKeyCheatsheet}  * @license CC-BY-SA-4.0 {@link https://www.qiuwenbaike.cn/wiki/H:CC-BY-SA-4.0}：​&lt;/span&gt; /**  * +------------------------------------------------------------+  * |…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * SPDX-License-Identifier: CC-BY-SA-4.0&lt;br /&gt;
 * _addText: &amp;#039;{{Gadget Header|license=CC-BY-SA-4.0}}&amp;#039;&lt;br /&gt;
 *&lt;br /&gt;
 * @base {@link https://en.wikipedia.org/wiki/User:Guarapiranga/accessKeysCheatSheet.js}&lt;br /&gt;
 * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/AccessKeyCheatsheet}&lt;br /&gt;
 * @license CC-BY-SA-4.0 {@link https://www.qiuwenbaike.cn/wiki/H:CC-BY-SA-4.0}&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 * |            === WARNING: GLOBAL GADGET FILE ===             |&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 * |       All changes should be made in the repository,        |&lt;br /&gt;
 * |                otherwise they will be lost.                |&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 * |        Changes to this page may affect many users.         |&lt;br /&gt;
 * | Please discuss changes by opening an issue before editing. |&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 */&lt;br /&gt;
/* &amp;lt;nowiki&amp;gt; */&lt;br /&gt;
&lt;br /&gt;
(() =&amp;gt; {&lt;br /&gt;
&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// dist/AccessKeyCheatsheet/AccessKeyCheatsheet.js&lt;br /&gt;
function _createForOfIteratorHelper(r, e) {&lt;br /&gt;
  var t = &amp;quot;undefined&amp;quot; != typeof Symbol &amp;amp;&amp;amp; r[Symbol.iterator] || r[&amp;quot;@@iterator&amp;quot;];&lt;br /&gt;
  if (!t) {&lt;br /&gt;
    if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e &amp;amp;&amp;amp; r &amp;amp;&amp;amp; &amp;quot;number&amp;quot; == typeof r.length) {&lt;br /&gt;
      t &amp;amp;&amp;amp; (r = t);&lt;br /&gt;
      var n = 0, F = function() {&lt;br /&gt;
      };&lt;br /&gt;
      return { s: F, n: function() {&lt;br /&gt;
        return n &amp;gt;= r.length ? { done: true } : { done: false, value: r[n++] };&lt;br /&gt;
      }, e: function(r2) {&lt;br /&gt;
        throw r2;&lt;br /&gt;
      }, f: F };&lt;br /&gt;
    }&lt;br /&gt;
    throw new TypeError(&amp;quot;Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  var o, a = true, u = false;&lt;br /&gt;
  return { s: function() {&lt;br /&gt;
    t = t.call(r);&lt;br /&gt;
  }, n: function() {&lt;br /&gt;
    var r2 = t.next();&lt;br /&gt;
    return a = r2.done, r2;&lt;br /&gt;
  }, e: function(r2) {&lt;br /&gt;
    u = true, o = r2;&lt;br /&gt;
  }, f: function() {&lt;br /&gt;
    try {&lt;br /&gt;
      a || null == t.return || t.return();&lt;br /&gt;
    } finally {&lt;br /&gt;
      if (u) throw o;&lt;br /&gt;
    }&lt;br /&gt;
  } };&lt;br /&gt;
}&lt;br /&gt;
function _unsupportedIterableToArray(r, a) {&lt;br /&gt;
  if (r) {&lt;br /&gt;
    if (&amp;quot;string&amp;quot; == typeof r) return _arrayLikeToArray(r, a);&lt;br /&gt;
    var t = {}.toString.call(r).slice(8, -1);&lt;br /&gt;
    return &amp;quot;Object&amp;quot; === t &amp;amp;&amp;amp; r.constructor &amp;amp;&amp;amp; (t = r.constructor.name), &amp;quot;Map&amp;quot; === t || &amp;quot;Set&amp;quot; === t ? Array.from(r) : &amp;quot;Arguments&amp;quot; === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
function _arrayLikeToArray(r, a) {&lt;br /&gt;
  (null == a || a &amp;gt; r.length) &amp;amp;&amp;amp; (a = r.length);&lt;br /&gt;
  for (var e = 0, n = Array(a); e &amp;lt; a; e++) n[e] = r[e];&lt;br /&gt;
  return n;&lt;br /&gt;
}&lt;br /&gt;
var __create = Object.create;&lt;br /&gt;
var __defProp = Object.defineProperty;&lt;br /&gt;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;&lt;br /&gt;
var __getOwnPropNames = Object.getOwnPropertyNames;&lt;br /&gt;
var __getProtoOf = Object.getPrototypeOf;&lt;br /&gt;
var __hasOwnProp = Object.prototype.hasOwnProperty;&lt;br /&gt;
var __copyProps = (to, from, except, desc) =&amp;gt; {&lt;br /&gt;
  if (from &amp;amp;&amp;amp; typeof from === &amp;quot;object&amp;quot; || typeof from === &amp;quot;function&amp;quot;) {&lt;br /&gt;
    var _iterator = _createForOfIteratorHelper(__getOwnPropNames(from)), _step;&lt;br /&gt;
    try {&lt;br /&gt;
      for (_iterator.s(); !(_step = _iterator.n()).done; ) {&lt;br /&gt;
        let key = _step.value;&lt;br /&gt;
        if (!__hasOwnProp.call(to, key) &amp;amp;&amp;amp; key !== except) __defProp(to, key, {&lt;br /&gt;
          get: () =&amp;gt; from[key],&lt;br /&gt;
          enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable&lt;br /&gt;
        });&lt;br /&gt;
      }&lt;br /&gt;
    } catch (err) {&lt;br /&gt;
      _iterator.e(err);&lt;br /&gt;
    } finally {&lt;br /&gt;
      _iterator.f();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return to;&lt;br /&gt;
};&lt;br /&gt;
var __toESM = (mod, isNodeMode, target) =&amp;gt; (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(&lt;br /&gt;
  // If the importer is in node compatibility mode or this is not an ESM&lt;br /&gt;
  // file that has been converted to a CommonJS file using a Babel-&lt;br /&gt;
  // compatible transform (i.e. &amp;quot;__esModule&amp;quot; has not been set), then set&lt;br /&gt;
  // &amp;quot;default&amp;quot; to the CommonJS &amp;quot;module.exports&amp;quot; for node compatibility.&lt;br /&gt;
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, &amp;quot;default&amp;quot;, {&lt;br /&gt;
    value: mod,&lt;br /&gt;
    enumerable: true&lt;br /&gt;
  }) : target,&lt;br /&gt;
  mod&lt;br /&gt;
));&lt;br /&gt;
//! src/AccessKeyCheatsheet/modules/addListener.ts&lt;br /&gt;
var messageDialog;&lt;br /&gt;
var addListener = ($element, windowManager, messageDialogProperty) =&amp;gt; {&lt;br /&gt;
  $element.on(&amp;quot;click&amp;quot;, (event) =&amp;gt; {&lt;br /&gt;
    event.preventDefault();&lt;br /&gt;
    if (messageDialog) {&lt;br /&gt;
      if (messageDialog.isOpened()) {&lt;br /&gt;
        messageDialog.close();&lt;br /&gt;
      } else {&lt;br /&gt;
        messageDialog.open(messageDialogProperty);&lt;br /&gt;
      }&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    messageDialog = new OO.ui.MessageDialog();&lt;br /&gt;
    windowManager.addWindows([messageDialog]);&lt;br /&gt;
    void windowManager.openWindow(messageDialog, messageDialogProperty);&lt;br /&gt;
  });&lt;br /&gt;
};&lt;br /&gt;
//! src/AccessKeyCheatsheet/modules/util/generateElements.tsx&lt;br /&gt;
var import_ext_gadget2 = __toESM(require(&amp;quot;ext.gadget.JSX&amp;quot;), 1);&lt;br /&gt;
//! src/AccessKeyCheatsheet/modules/i18n.ts&lt;br /&gt;
var import_ext_gadget = require(&amp;quot;ext.gadget.i18n&amp;quot;);&lt;br /&gt;
var getI18nMessages = () =&amp;gt; {&lt;br /&gt;
  return {&lt;br /&gt;
    Close: (0, import_ext_gadget.localize)({&lt;br /&gt;
      en: &amp;quot;Close&amp;quot;,&lt;br /&gt;
      ja: &amp;quot;閉じる&amp;quot;,&lt;br /&gt;
      ru: &amp;quot;Закрыть&amp;quot;,&lt;br /&gt;
      &amp;quot;zh-hans&amp;quot;: &amp;quot;关闭&amp;quot;,&lt;br /&gt;
      &amp;quot;zh-hant&amp;quot;: &amp;quot;關閉&amp;quot;&lt;br /&gt;
    }),&lt;br /&gt;
    Text: (0, import_ext_gadget.localize)({&lt;br /&gt;
      en: &amp;quot;Open access keys cheatsheet&amp;quot;,&lt;br /&gt;
      ja: &amp;quot;アクセスキーのチートシート&amp;quot;,&lt;br /&gt;
      ru: &amp;quot;Открыть подсказку с клавиатурными ярлыками&amp;quot;,&lt;br /&gt;
      &amp;quot;zh-hans&amp;quot;: &amp;quot;显示键盘快捷键提示&amp;quot;,&lt;br /&gt;
      &amp;quot;zh-hant&amp;quot;: &amp;quot;顯示鍵盤快速鍵提示&amp;quot;&lt;br /&gt;
    }),&lt;br /&gt;
    Title: (0, import_ext_gadget.localize)({&lt;br /&gt;
      en: &amp;quot;Access keys cheatsheet&amp;quot;,&lt;br /&gt;
      ja: &amp;quot;アクセスキーのチートシート&amp;quot;,&lt;br /&gt;
      ru: &amp;quot;Подсказки клавиатурных ярлыков&amp;quot;,&lt;br /&gt;
      &amp;quot;zh-hans&amp;quot;: &amp;quot;键盘快捷键提示&amp;quot;,&lt;br /&gt;
      &amp;quot;zh-hant&amp;quot;: &amp;quot;鍵盤快速鍵提示&amp;quot;&lt;br /&gt;
    })&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
var i18nMessages = getI18nMessages();&lt;br /&gt;
var getMessage = (key) =&amp;gt; {&lt;br /&gt;
  return i18nMessages[key] || key;&lt;br /&gt;
};&lt;br /&gt;
//! src/AccessKeyCheatsheet/modules/util/generateElements.tsx&lt;br /&gt;
var generateElements = ($body) =&amp;gt; {&lt;br /&gt;
  const table = /* @__PURE__ */ import_ext_gadget2.default.createElement(&amp;quot;table&amp;quot;, {&lt;br /&gt;
    className: &amp;quot;wikitable&amp;quot;,&lt;br /&gt;
    style: {&lt;br /&gt;
      width: &amp;quot;100%&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }, [...$body.find(&amp;quot;[accesskey]&amp;quot;)].map((element, index) =&amp;gt; /* @__PURE__ */ import_ext_gadget2.default.createElement(&amp;quot;tr&amp;quot;, {&lt;br /&gt;
    key: index&lt;br /&gt;
  }, /* @__PURE__ */ import_ext_gadget2.default.createElement(&amp;quot;th&amp;quot;, null, element.accessKey.toUpperCase()), /* @__PURE__ */ import_ext_gadget2.default.createElement(&amp;quot;td&amp;quot;, null, (element.getAttribute(&amp;quot;aria-label&amp;quot;) || element.title || element.textContent || element.value || $body.find(&amp;#039;label[for=&amp;quot;&amp;#039;.concat(element.id, &amp;#039;&amp;quot;]&amp;#039;)).text()).replace(/\s*?\[.+?]$/, &amp;quot;&amp;quot;).trim()))));&lt;br /&gt;
  const $table = $(table);&lt;br /&gt;
  const $opener = $(/* @__PURE__ */ import_ext_gadget2.default.createElement(&amp;quot;a&amp;quot;, {&lt;br /&gt;
    accessKey: &amp;quot;?&amp;quot;&lt;br /&gt;
  }, getMessage(&amp;quot;Text&amp;quot;)));&lt;br /&gt;
  return {&lt;br /&gt;
    $table,&lt;br /&gt;
    $opener&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
//! src/AccessKeyCheatsheet/modules/util/generateMessageDialogProperty.ts&lt;br /&gt;
var generateMessageDialogProperty = ($element) =&amp;gt; {&lt;br /&gt;
  const messageDialogProperty = {&lt;br /&gt;
    title: getMessage(&amp;quot;Title&amp;quot;),&lt;br /&gt;
    message: $element,&lt;br /&gt;
    actions: [{&lt;br /&gt;
      action: &amp;quot;close&amp;quot;,&lt;br /&gt;
      flags: [&amp;quot;safe&amp;quot;, &amp;quot;close&amp;quot;],&lt;br /&gt;
      label: getMessage(&amp;quot;Close&amp;quot;)&lt;br /&gt;
    }],&lt;br /&gt;
    size: &amp;quot;medium&amp;quot;&lt;br /&gt;
  };&lt;br /&gt;
  return messageDialogProperty;&lt;br /&gt;
};&lt;br /&gt;
//! src/AccessKeyCheatsheet/AccessKeyCheatsheet.ts&lt;br /&gt;
var import_ext_gadget3 = require(&amp;quot;ext.gadget.Util&amp;quot;);&lt;br /&gt;
//! src/AccessKeyCheatsheet/modules/initWindowManager.ts&lt;br /&gt;
var initWindowManager = () =&amp;gt; {&lt;br /&gt;
  const windowManager = new OO.ui.WindowManager();&lt;br /&gt;
  windowManager.$element.css({&lt;br /&gt;
    &amp;quot;margin-bottom&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
    width: &amp;quot;35em&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
  return windowManager;&lt;br /&gt;
};&lt;br /&gt;
//! src/AccessKeyCheatsheet/AccessKeyCheatsheet.ts&lt;br /&gt;
void (0, import_ext_gadget3.getBody)().then(function accessKeyCheatsheet($body) {&lt;br /&gt;
  const {&lt;br /&gt;
    $table,&lt;br /&gt;
    $opener&lt;br /&gt;
  } = generateElements($body);&lt;br /&gt;
  $opener.hide().appendTo($body);&lt;br /&gt;
  const windowManager = initWindowManager();&lt;br /&gt;
  windowManager.$element.appendTo($body);&lt;br /&gt;
  const messageDialogProperty = generateMessageDialogProperty($table);&lt;br /&gt;
  addListener($opener, windowManager, messageDialogProperty);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* &amp;lt;/nowiki&amp;gt; */&lt;/div&gt;</summary>
		<author><name>鹿野耕云</name></author>
	</entry>
</feed>