MediaWiki:Gadget-Wikicache.js:修订间差异

MediaWiki系统消息页面
(Git commit ab99472: refactor: 迁移注册用户脚本)
 
(Git commit 315405d: feat: sync upstream with Qiuwen)
 
(未显示2个用户的5个中间版本)
第3行: 第3行:
* _addText: '{{Gadget Header|license=CC-BY-SA-4.0}}'
* _addText: '{{Gadget Header|license=CC-BY-SA-4.0}}'
*
*
* @source {@link https://github.com/TopRealm/YsArxiv-Gadgets/tree/master/src/Wikicache}
* @source {@link https://github.com/TopRealm/YsArchives-Gadgets/tree/master/src/Wikicache}
* @license CC-BY-SA-4.0 {@link https://www.qiuwenbaike.cn/wiki/H:CC-BY-SA-4.0}
* @license CC-BY-SA-4.0 {@link https://youshou.wiki/wiki/H:CC-BY-SA-4.0}
*/
*/
/**
/**
第24行: 第24行:


// dist/Wikicache/Wikicache.js
// dist/Wikicache/Wikicache.js
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
function asyncGeneratorStep(n, t, e, r, o, a, c) {
try {
try {
var info = gen[key](arg);
var i = n[a](c), u = i.value;
} catch (n2) {
var value = info.value;
return void e(n2);
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
Promise.resolve(value).then(_next, _throw);
}
}
i.done ? t(u) : Promise.resolve(u).then(r, o);
}
}
function _asyncToGenerator(fn) {
function _asyncToGenerator(n) {
return function() {
return function() {
var self = this, args = arguments;
var t = this, e = arguments;
return new Promise(function(resolve, reject) {
return new Promise(function(r, o) {
var gen = fn.apply(self, args);
var a = n.apply(t, e);
function _next(value) {
function _next(n2) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
asyncGeneratorStep(a, r, o, _next, _throw, "next", n2);
}
}
function _throw(err) {
function _throw(n2) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2);
}
}
_next(void 0);
_next(void 0);
第53行: 第47行:
};
};
}
}
//! src/Wikicache/Wikicache.ts
//! src/Wikicache/options.json
var import_ext_gadget = require("ext.gadget.Util");
var configKey = "gadget-Wikicache__Initialized";
var cacheKeyPrefix = "wikicache-autosave-";
void (0, import_ext_gadget.getBody)().then(/* @__PURE__ */ function() {
//! src/Wikicache/modules/cache.ts
var _wikicache = _asyncToGenerator(function* ($body) {
var import_ext_gadget2 = require("ext.gadget.Util");
var _document$querySelect, _mw$storage$getObject, _document$querySelect2;
//! src/Wikicache/modules/i18n.ts
const wpSummary = $body.find("input[name=wpSummary]").get(0);
var import_ext_gadget = require("ext.gadget.i18n");
const wpTextbox1 = $body.find("textarea[name=wpTextbox1]").get(0);
var getI18nMessages = () => {
if (!wpSummary || !wpTextbox1) {
return {
"Change saved": (0, import_ext_gadget.localize)({
en: "Edit content saved to local storage successfully",
"zh-hans": "编辑内容已成功保存至本地存储",
"zh-hant": "編輯內容已成功儲存至本地儲存"
}),
"Restore changes?": (0, import_ext_gadget.localize)({
en: "Your unsaved chages have been saved to your local storage. Restore changes?",
"zh-hans": "先前未保存的编辑内容已存储于本地存储。是否恢复先前未保存的编辑内容?",
"zh-hant": "先前未保存的編輯內容已儲存于本地儲存。是否恢復先前未保存的編輯內容?"
}),
"Restore unsaved changes": (0, import_ext_gadget.localize)({
en: "Restore",
"zh-hans": "恢复",
"zh-hant": "恢復"
}),
"Not to restore": (0, import_ext_gadget.localize)({
en: "Not to restore",
"zh-hans": "不恢复",
"zh-hant": "不恢復"
})
};
};
var i18nMessages = getI18nMessages();
var getMessage = (key) => {
return i18nMessages[key] || key;
};
//! src/Wikicache/modules/cache.ts
var getCacheKey = () => {
var _document$querySelect;
const {
wgPageName
} = mw.config.get();
let cacheKey = "".concat(cacheKeyPrefix).concat(wgPageName);
const section = (_document$querySelect = document.querySelector("input[name=wpSection]")) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.value;
if (section) {
cacheKey += "#".concat(section);
}
return cacheKey;
};
var newSaveObject = ({
$editForm
}) => {
const saveObject = {
date: /* @__PURE__ */ new Date(),
wpSummary: (0, import_ext_gadget2.getWpSummaryContent)({
$editForm
}),
wpTextbox1: (0, import_ext_gadget2.getWpTextbox1Content)({
$editForm
})
};
return saveObject;
};
var setCache = ({
$editForm
}) => {
try {
mw.storage.setObject(getCacheKey(), newSaveObject({
$editForm
}), 60 * 60 * 24 * 30 * 1e3);
void mw.notify(getMessage("Change saved"), {
tag: "wikicache"
});
} catch (error) {
console.error(error);
}
};
var getCache = /* @__PURE__ */ function() {
var _ref = _asyncToGenerator(function* ({
$editForm
}) {
if (mw.config.get(configKey)) {
return;
return;
}
}
mw.config.set(configKey, true);
const {
const saveObject = mw.storage.getObject(getCacheKey());
wgPageName
if (!saveObject) {
} = mw.config.get();
return;
let cacheKey = "wikicache-autosave-".concat(wgPageName);
const section = (_document$querySelect = document.querySelector("input[name=wpSection]")) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.value;
if (section) {
cacheKey += "#".concat(section);
}
}
if (saveObject["wpSummary"]) {
const saveObject = (_mw$storage$getObject = mw.storage.getObject(cacheKey)) !== null && _mw$storage$getObject !== void 0 ? _mw$storage$getObject : {};
(0, import_ext_gadget2.setWpSummaryContent)({
if (saveObject["input[name=wpSummary]"]) {
var _saveObject$inputNam;
$editForm,
content: saveObject["wpSummary"]
wpSummary.value = (_saveObject$inputNam = saveObject["input[name=wpSummary]"]) !== null && _saveObject$inputNam !== void 0 ? _saveObject$inputNam : saveObject["#wpSummary"];
});
} else if (saveObject["#wpSummary"]) {
wpSummary.value = saveObject["#wpSummary"];
}
}
if (saveObject["textarea[name=wpTextbox1]"]) {
if (!saveObject["wpTextbox1"]) {
return;
wpTextbox1.value = saveObject["textarea[name=wpTextbox1]"];
} else if (saveObject["#wpTextbox1"]) {
wpTextbox1.value = saveObject["#wpTextbox1"];
}
}
if (![saveObject["wpTextbox1"], "".concat(saveObject["wpTextbox1"], "\n")].includes((0, import_ext_gadget2.getWpTextbox1Content)({
(_document$querySelect2 = document.querySelector("#editform")) === null || _document$querySelect2 === void 0 || _document$querySelect2.addEventListener("submit", () => {
$editForm
mw.storage.remove(cacheKey);
});
}))) {
const confirm = yield OO.ui.confirm(getMessage("Restore changes?"), {
actions: [{
label: getMessage("Restore unsaved changes"),
action: "accept",
flags: ["progressive"]
}, {
label: getMessage("Not to restore"),
action: "cancel",
flags: ["destructive"]
}]
});
if (confirm) {
(0, import_ext_gadget2.setWpTextbox1Content)({
$editForm,
content: saveObject["wpTextbox1"]
});
}
mw.storage.remove("".concat(getCacheKey(), "##PreviewDiff"));
}
});
return function getCache2(_x) {
return _ref.apply(this, arguments);
};
}();
var autoSetCache = /* @__PURE__ */ function() {
var _ref2 = _asyncToGenerator(function* ({
$editForm
}) {
while (true) {
while (true) {
yield (0, import_ext_gadget.delay)(60 * 1e3);
yield (0, import_ext_gadget2.delay)(60 * 1e3);
const newSaveObject = {
setCache({
$editForm
_path: location.pathname + location.search,
});
_date: /* @__PURE__ */ new Date(),
"input[name=wpSummary]": wpSummary.value,
"textarea[name=wpTextbox1]": wpTextbox1.value
};
mw.storage.setObject(cacheKey, newSaveObject, 60 * 60 * 24 * 30 * 1e3);
}
}
});
});
function wikicache(_x) {
return function autoSetCache2(_x2) {
return _wikicache.apply(this, arguments);
return _ref2.apply(this, arguments);
}
};
}();
return wikicache;
var setCacheBeforeSubmit = ({
$editForm
}) => {
const editForm = document.querySelector("#editform");
editForm === null || editForm === void 0 || editForm.addEventListener("submit", (event) => {
if ([document.querySelector("#wpPreview"), document.querySelector("#wpDiff")].includes(event.submitter)) {
mw.storage.setObject("".concat(getCacheKey(), "##PreviewDiff"), "1", 60 * 60 * 24 * 1);
}
setCache({
$editForm
});
});
};
//! src/Wikicache/Wikicache.ts
mw.hook("wikipage.editform").add(/* @__PURE__ */ function() {
var _ref3 = _asyncToGenerator(function* ($editForm) {
setCacheBeforeSubmit({
$editForm
});
yield getCache({
$editForm
});
yield autoSetCache({
$editForm
});
});
return function(_x3) {
return _ref3.apply(this, arguments);
};
}());
}());


第107行: 第221行:
/* </nowiki> */
/* </nowiki> */


//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1dpa2ljYWNoZS9vcHRpb25zLmpzb24iLCAic3JjL1dpa2ljYWNoZS9tb2R1bGVzL2NhY2hlLnRzIiwgInNyYy9XaWtpY2FjaGUvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9XaWtpY2FjaGUvV2lraWNhY2hlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ7XG5cdFwiY29uZmlnS2V5XCI6IFwiZ2FkZ2V0LVdpa2ljYWNoZV9fSW5pdGlhbGl6ZWRcIixcblx0XCJjYWNoZUtleVByZWZpeFwiOiBcIndpa2ljYWNoZS1hdXRvc2F2ZS1cIixcblx0XCJ2ZXJzaW9uXCI6IFwiMy4wXCJcbn1cbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge1xuXHRkZWxheSxcblx0Z2V0V3BTdW1tYXJ5Q29udGVudCxcblx0Z2V0V3BUZXh0Ym94MUNvbnRlbnQsXG5cdHNldFdwU3VtbWFyeUNvbnRlbnQsXG5cdHNldFdwVGV4dGJveDFDb250ZW50LFxufSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHtBdXRvU2F2ZU9iamVjdH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5cbmNvbnN0IGdldENhY2hlS2V5ID0gKCkgPT4ge1xuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGxldCBjYWNoZUtleTogc3RyaW5nID0gYCR7T1BUSU9OUy5jYWNoZUtleVByZWZpeH0ke3dnUGFnZU5hbWV9YDtcblx0Y29uc3Qgc2VjdGlvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTElucHV0RWxlbWVudD4oJ2lucHV0W25hbWU9d3BTZWN0aW9uXScpPy52YWx1ZTtcblx0aWYgKHNlY3Rpb24pIHtcblx0XHRjYWNoZUtleSArPSBgIyR7c2VjdGlvbn1gO1xuXHR9XG5cblx0cmV0dXJuIGNhY2hlS2V5O1xufTtcblxuY29uc3QgbmV3U2F2ZU9iamVjdCA9ICh7JGVkaXRGb3JtfTogeyRlZGl0Rm9ybTogSlF1ZXJ5PEhUTUxFbGVtZW50Pn0pOiBBdXRvU2F2ZU9iamVjdCA9PiB7XG5cdGNvbnN0IHNhdmVPYmplY3Q6IEF1dG9TYXZlT2JqZWN0ID0ge1xuXHRcdGRhdGU6IG5ldyBEYXRlKCksXG5cdFx0d3BTdW1tYXJ5OiBnZXRXcFN1bW1hcnlDb250ZW50KHskZWRpdEZvcm19KSxcblx0XHR3cFRleHRib3gxOiBnZXRXcFRleHRib3gxQ29udGVudCh7JGVkaXRGb3JtfSksXG5cdH07XG5cblx0cmV0dXJuIHNhdmVPYmplY3Q7XG59O1xuXG5jb25zdCBzZXRDYWNoZSA9ICh7JGVkaXRGb3JtfTogeyRlZGl0Rm9ybTogSlF1ZXJ5PEhUTUxFbGVtZW50Pn0pID0+IHtcblx0dHJ5IHtcblx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChnZXRDYWNoZUtleSgpLCBuZXdTYXZlT2JqZWN0KHskZWRpdEZvcm19KSwgNjAgKiA2MCAqIDI0ICogMzAgKiAxMDAwKTtcblx0XHR2b2lkIG13Lm5vdGlmeShnZXRNZXNzYWdlKCdDaGFuZ2Ugc2F2ZWQnKSwge1xuXHRcdFx0dGFnOiAnd2lraWNhY2hlJyxcblx0XHR9KTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRjb25zb2xlLmVycm9yKGVycm9yKTtcblx0fVxufTtcblxuY29uc3QgZ2V0Q2FjaGUgPSBhc3luYyAoeyRlZGl0Rm9ybX06IHskZWRpdEZvcm06IEpRdWVyeTxIVE1MRWxlbWVudD59KSA9PiB7XG5cdGlmIChtdy5jb25maWcuZ2V0KE9QVElPTlMuY29uZmlnS2V5KSkge1xuXHRcdHJldHVybjtcblx0fVxuXHRtdy5jb25maWcuc2V0KE9QVElPTlMuY29uZmlnS2V5LCB0cnVlKTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG5cdGNvbnN0IHNhdmVPYmplY3Q6IFBhcnRpYWw8QXV0b1NhdmVPYmplY3Q+ID0gbXcuc3RvcmFnZS5nZXRPYmplY3QoZ2V0Q2FjaGVLZXkoKSk7XG5cblx0aWYgKCFzYXZlT2JqZWN0KSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKHNhdmVPYmplY3RbJ3dwU3VtbWFyeSddKSB7XG5cdFx0c2V0V3BTdW1tYXJ5Q29udGVudCh7JGVkaXRGb3JtLCBjb250ZW50OiBzYXZlT2JqZWN0Wyd3cFN1bW1hcnknXX0pO1xuXHR9XG5cblx0aWYgKCFzYXZlT2JqZWN0Wyd3cFRleHRib3gxJ10pIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoIVtzYXZlT2JqZWN0Wyd3cFRleHRib3gxJ10sIGAke3NhdmVPYmplY3RbJ3dwVGV4dGJveDEnXX1cXG5gXS5pbmNsdWRlcyhnZXRXcFRleHRib3gxQ29udGVudCh7JGVkaXRGb3JtfSkpKSB7XG5cdFx0Y29uc3QgY29uZmlybSA9IGF3YWl0IE9PLnVpLmNvbmZpcm0oZ2V0TWVzc2FnZSgnUmVzdG9yZSBjaGFuZ2VzPycpLCB7XG5cdFx0XHRhY3Rpb25zOiBbXG5cdFx0XHRcdHtsYWJlbDogZ2V0TWVzc2FnZSgnUmVzdG9yZSB1bnNhdmVkIGNoYW5nZXMnKSwgYWN0aW9uOiAnYWNjZXB0JywgZmxhZ3M6IFsncHJvZ3Jlc3NpdmUnXX0sXG5cdFx0XHRcdHtsYWJlbDogZ2V0TWVzc2FnZSgnTm90IHRvIHJlc3RvcmUnKSwgYWN0aW9uOiAnY2FuY2VsJywgZmxhZ3M6IFsnZGVzdHJ1Y3RpdmUnXX0sXG5cdFx0XHRdLFxuXHRcdH0pO1xuXHRcdGlmIChjb25maXJtKSB7XG5cdFx0XHRzZXRXcFRleHRib3gxQ29udGVudCh7JGVkaXRGb3JtLCBjb250ZW50OiBzYXZlT2JqZWN0Wyd3cFRleHRib3gxJ119KTtcblx0XHR9XG5cdFx0bXcuc3RvcmFnZS5yZW1vdmUoYCR7Z2V0Q2FjaGVLZXkoKX0jI1ByZXZpZXdEaWZmYCk7XG5cdH1cbn07XG5cbmNvbnN0IGF1dG9TZXRDYWNoZSA9IGFzeW5jICh7JGVkaXRGb3JtfTogeyRlZGl0Rm9ybTogSlF1ZXJ5PEhUTUxFbGVtZW50Pn0pID0+IHtcblx0d2hpbGUgKHRydWUpIHtcblx0XHRhd2FpdCBkZWxheSg2MCAqIDEwMDApO1xuXHRcdHNldENhY2hlKHskZWRpdEZvcm19KTtcblx0fVxufTtcblxuY29uc3Qgc2V0Q2FjaGVCZWZvcmVTdWJtaXQgPSAoeyRlZGl0Rm9ybX06IHskZWRpdEZvcm06IEpRdWVyeTxIVE1MRWxlbWVudD59KSA9PiB7XG5cdGNvbnN0IGVkaXRGb3JtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRm9ybUVsZW1lbnQ+KCcjZWRpdGZvcm0nKTtcblx0ZWRpdEZvcm0/LmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChldmVudCkgPT4ge1xuXHRcdGlmIChbZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3dwUHJldmlldycpLCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjd3BEaWZmJyldLmluY2x1ZGVzKGV2ZW50LnN1Ym1pdHRlcikpIHtcblx0XHRcdG13LnN0b3JhZ2Uuc2V0T2JqZWN0KGAke2dldENhY2hlS2V5KCl9IyNQcmV2aWV3RGlmZmAsICcxJywgNjAgKiA2MCAqIDI0ICogMSk7XG5cdFx0fVxuXHRcdHNldENhY2hlKHskZWRpdEZvcm19KTtcblx0fSk7XG59O1xuXG5leHBvcnQge2dldENhY2hlLCBhdXRvU2V0Q2FjaGUsIHNldENhY2hlQmVmb3JlU3VibWl0fTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0J0NoYW5nZSBzYXZlZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRWRpdCBjb250ZW50IHNhdmVkIHRvIGxvY2FsIHN0b3JhZ2Ugc3VjY2Vzc2Z1bGx5Jyxcblx0XHRcdCd6aC1oYW5zJzogJ+e8lui+keWGheWuueW3suaIkOWKn+S/neWtmOiHs+acrOWcsOWtmOWCqCcsXG5cdFx0XHQnemgtaGFudCc6ICfnt6jovK/lhaflrrnlt7LmiJDlip/lhLLlrZjoh7PmnKzlnLDlhLLlrZgnLFxuXHRcdH0pLFxuXHRcdCdSZXN0b3JlIGNoYW5nZXM/JzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdZb3VyIHVuc2F2ZWQgY2hhZ2VzIGhhdmUgYmVlbiBzYXZlZCB0byB5b3VyIGxvY2FsIHN0b3JhZ2UuIFJlc3RvcmUgY2hhbmdlcz8nLFxuXHRcdFx0J3poLWhhbnMnOiAn5YWI5YmN5pyq5L+d5a2Y55qE57yW6L6R5YaF5a655bey5a2Y5YKo5LqO5pys5Zyw5a2Y5YKo44CC5piv5ZCm5oGi5aSN5YWI5YmN5pyq5L+d5a2Y55qE57yW6L6R5YaF5a6577yfJyxcblx0XHRcdCd6aC1oYW50JzogJ+WFiOWJjeacquS/neWtmOeahOe3qOi8r+WFp+WuueW3suWEsuWtmOS6juacrOWcsOWEsuWtmOOAguaYr+WQpuaBouW+qeWFiOWJjeacquS/neWtmOeahOe3qOi8r+WFp+Wuue+8nycsXG5cdFx0fSksXG5cdFx0J1Jlc3RvcmUgdW5zYXZlZCBjaGFuZ2VzJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdSZXN0b3JlJyxcblx0XHRcdCd6aC1oYW5zJzogJ+aBouWkjScsXG5cdFx0XHQnemgtaGFudCc6ICfmgaLlvqknLFxuXHRcdH0pLFxuXHRcdCdOb3QgdG8gcmVzdG9yZSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTm90IHRvIHJlc3RvcmUnLFxuXHRcdFx0J3poLWhhbnMnOiAn5LiN5oGi5aSNJyxcblx0XHRcdCd6aC1oYW50JzogJ+S4jeaBouW+qScsXG5cdFx0fSksXG5cdH07XG59O1xuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQge2F1dG9TZXRDYWNoZSwgZ2V0Q2FjaGUsIHNldENhY2hlQmVmb3JlU3VibWl0fSBmcm9tICcuL21vZHVsZXMvY2FjaGUnO1xuXG5tdy5ob29rKCd3aWtpcGFnZS5lZGl0Zm9ybScpLmFkZChhc3luYyAoJGVkaXRGb3JtKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdHNldENhY2hlQmVmb3JlU3VibWl0KHskZWRpdEZvcm19KTsgLy8gQWRkIGhvb2sgdG8gI2VkaXRmb3JtXG5cdGF3YWl0IGdldENhY2hlKHskZWRpdEZvcm19KTtcblx0YXdhaXQgYXV0b1NldENhY2hlKHskZWRpdEZvcm19KTtcbn0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNDLElBQUFBLFlBQWE7QUFDYixJQUFBQyxpQkFBa0I7O0FDRG5CLElBQUFDLHFCQU1PQyxRQUFBLGlCQUFBOztBQ1BQLElBQUFDLG9CQUF1QkQsUUFBQSxpQkFBQTtBQUV2QixJQUFNRSxrQkFBa0JBLE1BQU07QUFDN0IsU0FBTztJQUNOLGlCQUFBLEdBQWdCRCxrQkFBQUUsVUFBUztNQUN4QkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELHFCQUFBLEdBQW9CSCxrQkFBQUUsVUFBUztNQUM1QkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELDRCQUFBLEdBQTJCSCxrQkFBQUUsVUFBUztNQUNuQ0MsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELG1CQUFBLEdBQWtCSCxrQkFBQUUsVUFBUztNQUMxQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztFQUNGO0FBQ0Q7QUFDQSxJQUFNQyxlQUFlSCxnQkFBZ0I7QUFFckMsSUFBTUksYUFBZ0RDLFNBQVE7QUFDN0QsU0FBT0YsYUFBYUUsR0FBRyxLQUFLQTtBQUM3Qjs7QURuQkEsSUFBTUMsY0FBY0EsTUFBTTtBQUFBLE1BQUFDO0FB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QixtQkFBQTJELE9BQU0sS0FBSyxHQUFJO0FBQ3JCN0IsZUFBUztRQUFDUjtNQUFTLENBQUM7SUFDckI7RUFDRCxDQUFBO0FBQUEsU0FBQSxTQUxNbUMsY0FBQUcsS0FBQTtBQUFBLFdBQUFGLE1BQUFILE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQTtBQU9OLElBQU1LLHVCQUF1QkEsQ0FBQztFQUFDdkM7QUFBUyxNQUF3QztBQUMvRSxRQUFNd0MsV0FBVzVDLFNBQVNDLGNBQStCLFdBQVc7QUFDcEUyQyxlQUFBLFFBQUFBLGFBQUEsVUFBQUEsU0FBVUMsaUJBQWlCLFVBQVdDLFdBQVU7QUFDL0MsUUFBSSxDQUFDOUMsU0FBU0MsY0FBYyxZQUFZLEdBQUdELFNBQVNDLGNBQWMsU0FBUyxDQUFDLEVBQUV5QixTQUFTb0IsTUFBTUMsU0FBUyxHQUFHO0FBQ3hHckQsU0FBR21CLFFBQVFDLFVBQUEsR0FBQWhCLE9BQWFQLFlBQVksR0FBQyxlQUFBLEdBQWlCLEtBQUssS0FBSyxLQUFLLEtBQUssQ0FBQztJQUM1RTtBQUNBcUIsYUFBUztNQUFDUjtJQUFTLENBQUM7RUFDckIsQ0FBQztBQUNGOztBRTNGQVYsR0FBR3NELEtBQUssbUJBQW1CLEVBQUVDLElBQUEsMkJBQUE7QUFBQSxNQUFBQyxRQUFBN0Isa0JBQUksV0FBT2pCLFdBQTZCO0FBQ3BFdUMseUJBQXFCO01BQUN2QztJQUFTLENBQUM7QUFDaEMsVUFBTWUsU0FBUztNQUFDZjtJQUFTLENBQUM7QUFDMUIsVUFBTW1DLGFBQWE7TUFBQ25DO0lBQVMsQ0FBQztFQUMvQixDQUFDO0FBQUEsU0FBQSxTQUFBK0MsS0FBQTtBQUFBLFdBQUFELE1BQUFiLE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQSxDQUFBOyIsCiAgIm5hbWVzIjogWyJjb25maWdLZXkiLCAiY2FjaGVLZXlQcmVmaXgiLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgImxvY2FsaXplIiwgImVuIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJnZXRDYWNoZUtleSIsICJfZG9jdW1lbnQkcXVlcnlTZWxlY3QiLCAid2dQYWdlTmFtZSIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImNhY2hlS2V5IiwgImNvbmNhdCIsICJzZWN0aW9uIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAidmFsdWUiLCAibmV3U2F2ZU9iamVjdCIsICIkZWRpdEZvcm0iLCAic2F2ZU9iamVjdCIsICJkYXRlIiwgIkRhdGUiLCAid3BTdW1tYXJ5IiwgImdldFdwU3VtbWFyeUNvbnRlbnQiLCAid3BUZXh0Ym94MSIsICJnZXRXcFRleHRib3gxQ29udGVudCIsICJzZXRDYWNoZSIsICJzdG9yYWdlIiwgInNldE9iamVjdCIsICJub3RpZnkiLCAidGFnIiwgImVycm9yIiwgImNvbnNvbGUiLCAiZ2V0Q2FjaGUiLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJzZXQiLCAiZ2V0T2JqZWN0IiwgInNldFdwU3VtbWFyeUNvbnRlbnQiLCAiY29udGVudCIsICJpbmNsdWRlcyIsICJjb25maXJtIiwgIk9PIiwgInVpIiwgImFjdGlvbnMiLCAibGFiZWwiLCAiYWN0aW9uIiwgImZsYWdzIiwgInNldFdwVGV4dGJveDFDb250ZW50IiwgInJlbW92ZSIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiYXV0b1NldENhY2hlIiwgIl9yZWYyIiwgImRlbGF5IiwgIl94MiIsICJzZXRDYWNoZUJlZm9yZVN1Ym1pdCIsICJlZGl0Rm9ybSIsICJhZGRFdmVudExpc3RlbmVyIiwgImV2ZW50IiwgInN1Ym1pdHRlciIsICJob29rIiwgImFkZCIsICJfcmVmMyIsICJfeDMiXQp9Cg==
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1dpa2ljYWNoZS9XaWtpY2FjaGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7ZGVsYXksIGdldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQgdHlwZSB7QXV0b1NhdmVPYmplY3R9IGZyb20gJy4vbW9kdWxlcy90eXBlcyc7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oYXN5bmMgZnVuY3Rpb24gd2lraWNhY2hlKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IFByb21pc2U8dm9pZD4ge1xuXHRjb25zdCB3cFN1bW1hcnk6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQgPSAkYm9keS5maW5kPEhUTUxJbnB1dEVsZW1lbnQ+KCdpbnB1dFtuYW1lPXdwU3VtbWFyeV0nKS5nZXQoMCk7XG5cdGNvbnN0IHdwVGV4dGJveDE6IEhUTUxUZXh0QXJlYUVsZW1lbnQgfCB1bmRlZmluZWQgPSAkYm9keVxuXHRcdC5maW5kPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KCd0ZXh0YXJlYVtuYW1lPXdwVGV4dGJveDFdJylcblx0XHQuZ2V0KDApO1xuXHRpZiAoIXdwU3VtbWFyeSB8fCAhd3BUZXh0Ym94MSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHt3Z1BhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRsZXQgY2FjaGVLZXk6IHN0cmluZyA9IGB3aWtpY2FjaGUtYXV0b3NhdmUtJHt3Z1BhZ2VOYW1lfWA7XG5cdGNvbnN0IHNlY3Rpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxJbnB1dEVsZW1lbnQ+KCdpbnB1dFtuYW1lPXdwU2VjdGlvbl0nKT8udmFsdWU7XG5cdGlmIChzZWN0aW9uKSB7XG5cdFx0Y2FjaGVLZXkgKz0gYCMke3NlY3Rpb259YDtcblx0fVxuXG5cdGNvbnN0IHNhdmVPYmplY3Q6IFBhcnRpYWw8QXV0b1NhdmVPYmplY3Q+ID0gKG13LnN0b3JhZ2UuZ2V0T2JqZWN0KGNhY2hlS2V5KSBhcyBBdXRvU2F2ZU9iamVjdCB8IG51bGwpID8/IHt9O1xuXHRpZiAoc2F2ZU9iamVjdFsnaW5wdXRbbmFtZT13cFN1bW1hcnldJ10pIHtcblx0XHR3cFN1bW1hcnkudmFsdWUgPSBzYXZlT2JqZWN0WydpbnB1dFtuYW1lPXdwU3VtbWFyeV0nXSA/PyBzYXZlT2JqZWN0Wycjd3BTdW1tYXJ5J107XG5cdH0gZWxzZSBpZiAoc2F2ZU9iamVjdFsnI3dwU3VtbWFyeSddKSB7XG5cdFx0d3BTdW1tYXJ5LnZhbHVlID0gc2F2ZU9iamVjdFsnI3dwU3VtbWFyeSddO1xuXHR9XG5cdGlmIChzYXZlT2JqZWN0Wyd0ZXh0YXJlYVtuYW1lPXdwVGV4dGJveDFdJ10pIHtcblx0XHR3cFRleHRib3gxLnZhbHVlID0gc2F2ZU9iamVjdFsndGV4dGFyZWFbbmFtZT13cFRleHRib3gxXSddO1xuXHR9IGVsc2UgaWYgKHNhdmVPYmplY3RbJyN3cFRleHRib3gxJ10pIHtcblx0XHR3cFRleHRib3gxLnZhbHVlID0gc2F2ZU9iamVjdFsnI3dwVGV4dGJveDEnXTtcblx0fVxuXG5cdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEZvcm1FbGVtZW50PignI2VkaXRmb3JtJyk/LmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsICgpOiB2b2lkID0+IHtcblx0XHRtdy5zdG9yYWdlLnJlbW92ZShjYWNoZUtleSk7XG5cdH0pO1xuXG5cdHdoaWxlICh0cnVlKSB7XG5cdFx0YXdhaXQgZGVsYXkoNjAgKiAxMDAwKTtcblx0XHRjb25zdCBuZXdTYXZlT2JqZWN0OiBBdXRvU2F2ZU9iamVjdCA9IHtcblx0XHRcdF9wYXRoOiBsb2NhdGlvbi5wYXRobmFtZSArIGxvY2F0aW9uLnNlYXJjaCxcblx0XHRcdF9kYXRlOiBuZXcgRGF0ZSgpLFxuXHRcdFx0J2lucHV0W25hbWU9d3BTdW1tYXJ5XSc6IHdwU3VtbWFyeS52YWx1ZSxcblx0XHRcdCd0ZXh0YXJlYVtuYW1lPXdwVGV4dGJveDFdJzogd3BUZXh0Ym94MS52YWx1ZSxcblx0XHR9O1xuXHRcdG13LnN0b3JhZ2Uuc2V0T2JqZWN0KGNhY2hlS2V5LCBuZXdTYXZlT2JqZWN0LCA2MCAqIDYwICogMjQgKiAzMCAqIDEwMDApO1xuXHR9XG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxvQkFBNkJDLFFBQUEsaUJBQUE7QUFHN0IsTUFBQSxHQUFLRCxrQkFBQUUsU0FBUSxFQUFFQyxLQUFBLDJCQUFBO0FBQUEsTUFBQUMsYUFBQUMsa0JBQUssV0FBeUJDLE9BQStDO0FBQUEsUUFBQUMsdUJBQUFDLHVCQUFBQztBQUMzRixVQUFNQyxZQUEwQ0osTUFBTUssS0FBdUIsdUJBQXVCLEVBQUVDLElBQUksQ0FBQztBQUMzRyxVQUFNQyxhQUE4Q1AsTUFDbERLLEtBQTBCLDJCQUEyQixFQUNyREMsSUFBSSxDQUFDO0FBQ1AsUUFBSSxDQUFDRixhQUFhLENBQUNHLFlBQVk7QUFDOUI7SUFDRDtBQUVBLFVBQU07TUFBQ0M7SUFBVSxJQUFJQyxHQUFHQyxPQUFPSixJQUFJO0FBRW5DLFFBQUlLLFdBQUEsc0JBQUFDLE9BQXlDSixVQUFVO0FBQ3ZELFVBQU1LLFdBQUFaLHdCQUFVYSxTQUFTQyxjQUFnQyx1QkFBdUIsT0FBQSxRQUFBZCwwQkFBQSxTQUFBLFNBQWhFQSxzQkFBbUVlO0FBQ25GLFFBQUlILFNBQVM7QUFDWkYsa0JBQUEsSUFBQUMsT0FBZ0JDLE9BQU87SUFDeEI7QUFFQSxVQUFNSSxjQUFBZix3QkFBdUNPLEdBQUdTLFFBQVFDLFVBQVVSLFFBQVEsT0FBQSxRQUFBVCwwQkFBQSxTQUFBQSx3QkFBK0IsQ0FBQztBQUMxRyxRQUFJZSxXQUFXLHVCQUF1QixHQUFHO0FBQUEsVUFBQUc7QUFDeENoQixnQkFBVVksU0FBQUksdUJBQVFILFdBQVcsdUJBQXVCLE9BQUEsUUFBQUcseUJBQUEsU0FBQUEsdUJBQUtILFdBQVcsWUFBWTtJQUNqRixXQUFXQSxXQUFXLFlBQVksR0FBRztBQUNwQ2IsZ0JBQVVZLFFBQVFDLFdBQVcsWUFBWTtJQUMxQztBQUNBLFFBQUlBLFdBQVcsMkJBQTJCLEdBQUc7QUFDNUNWLGlCQUFXUyxRQUFRQyxXQUFXLDJCQUEyQjtJQUMxRCxXQUFXQSxXQUFXLGFBQWEsR0FBRztBQUNyQ1YsaUJBQVdTLFFBQVFDLFdBQVcsYUFBYTtJQUM1QztBQUVBLEtBQUFkLHlCQUFBVyxTQUFTQyxjQUErQixXQUFXLE9BQUEsUUFBQVosMkJBQUEsVUFBbkRBLHVCQUFzRGtCLGlCQUFpQixVQUFVLE1BQVk7QUFDNUZaLFNBQUdTLFFBQVFJLE9BQU9YLFFBQVE7SUFDM0IsQ0FBQztBQUVELFdBQU8sTUFBTTtBQUNaLGFBQUEsR0FBTWpCLGtCQUFBNkIsT0FBTSxLQUFLLEdBQUk7QUFDckIsWUFBTUMsZ0JBQWdDO1FBQ3JDQyxPQUFPQyxTQUFTQyxXQUFXRCxTQUFTRTtRQUNwQ0MsT0FBTyxvQkFBSUMsS0FBSztRQUNoQix5QkFBeUIxQixVQUFVWTtRQUNuQyw2QkFBNkJULFdBQVdTO01BQ3pDO0FBQ0FQLFNBQUdTLFFBQVFhLFVBQVVwQixVQUFVYSxlQUFlLEtBQUssS0FBSyxLQUFLLEtBQUssR0FBSTtJQUN2RTtFQUNELENBQUM7QUFBQSxXQTNDa0NRLFVBQUFDLElBQUE7QUFBQSxXQUFBbkMsV0FBQW9DLE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsU0FBQUg7QUFBQSxFQUFBLENBMkNsQzsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2V4dF9nYWRnZXQiLCAicmVxdWlyZSIsICJnZXRCb2R5IiwgInRoZW4iLCAiX3dpa2ljYWNoZSIsICJfYXN5bmNUb0dlbmVyYXRvciIsICIkYm9keSIsICJfZG9jdW1lbnQkcXVlcnlTZWxlY3QiLCAiX213JHN0b3JhZ2UkZ2V0T2JqZWN0IiwgIl9kb2N1bWVudCRxdWVyeVNlbGVjdDIiLCAid3BTdW1tYXJ5IiwgImZpbmQiLCAiZ2V0IiwgIndwVGV4dGJveDEiLCAid2dQYWdlTmFtZSIsICJtdyIsICJjb25maWciLCAiY2FjaGVLZXkiLCAiY29uY2F0IiwgInNlY3Rpb24iLCAiZG9jdW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJ2YWx1ZSIsICJzYXZlT2JqZWN0IiwgInN0b3JhZ2UiLCAiZ2V0T2JqZWN0IiwgIl9zYXZlT2JqZWN0JGlucHV0TmFtIiwgImFkZEV2ZW50TGlzdGVuZXIiLCAicmVtb3ZlIiwgImRlbGF5IiwgIm5ld1NhdmVPYmplY3QiLCAiX3BhdGgiLCAibG9jYXRpb24iLCAicGF0aG5hbWUiLCAic2VhcmNoIiwgIl9kYXRlIiwgIkRhdGUiLCAic2V0T2JqZWN0IiwgIndpa2ljYWNoZSIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiXQp9Cg==

2024年5月31日 (五) 16:02的最新版本

/**
 * SPDX-License-Identifier: CC-BY-SA-4.0
 * _addText: '{{Gadget Header|license=CC-BY-SA-4.0}}'
 *
 * @source {@link https://github.com/TopRealm/YsArchives-Gadgets/tree/master/src/Wikicache}
 * @license CC-BY-SA-4.0 {@link https://youshou.wiki/wiki/H:CC-BY-SA-4.0}
 */
/**
 * +------------------------------------------------------------+
 * |            === WARNING: GLOBAL GADGET FILE ===             |
 * +------------------------------------------------------------+
 * |       All changes should be made in the repository,        |
 * |                otherwise they will be lost.                |
 * +------------------------------------------------------------+
 * |        Changes to this page may affect many users.         |
 * | Please discuss changes by opening an issue before editing. |
 * +------------------------------------------------------------+
 */
/* <nowiki> */

(() => {

"use strict";

// dist/Wikicache/Wikicache.js
function asyncGeneratorStep(n, t, e, r, o, a, c) {
  try {
    var i = n[a](c), u = i.value;
  } catch (n2) {
    return void e(n2);
  }
  i.done ? t(u) : Promise.resolve(u).then(r, o);
}
function _asyncToGenerator(n) {
  return function() {
    var t = this, e = arguments;
    return new Promise(function(r, o) {
      var a = n.apply(t, e);
      function _next(n2) {
        asyncGeneratorStep(a, r, o, _next, _throw, "next", n2);
      }
      function _throw(n2) {
        asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2);
      }
      _next(void 0);
    });
  };
}
//! src/Wikicache/options.json
var configKey = "gadget-Wikicache__Initialized";
var cacheKeyPrefix = "wikicache-autosave-";
//! src/Wikicache/modules/cache.ts
var import_ext_gadget2 = require("ext.gadget.Util");
//! src/Wikicache/modules/i18n.ts
var import_ext_gadget = require("ext.gadget.i18n");
var getI18nMessages = () => {
  return {
    "Change saved": (0, import_ext_gadget.localize)({
      en: "Edit content saved to local storage successfully",
      "zh-hans": "编辑内容已成功保存至本地存储",
      "zh-hant": "編輯內容已成功儲存至本地儲存"
    }),
    "Restore changes?": (0, import_ext_gadget.localize)({
      en: "Your unsaved chages have been saved to your local storage. Restore changes?",
      "zh-hans": "先前未保存的编辑内容已存储于本地存储。是否恢复先前未保存的编辑内容?",
      "zh-hant": "先前未保存的編輯內容已儲存于本地儲存。是否恢復先前未保存的編輯內容?"
    }),
    "Restore unsaved changes": (0, import_ext_gadget.localize)({
      en: "Restore",
      "zh-hans": "恢复",
      "zh-hant": "恢復"
    }),
    "Not to restore": (0, import_ext_gadget.localize)({
      en: "Not to restore",
      "zh-hans": "不恢复",
      "zh-hant": "不恢復"
    })
  };
};
var i18nMessages = getI18nMessages();
var getMessage = (key) => {
  return i18nMessages[key] || key;
};
//! src/Wikicache/modules/cache.ts
var getCacheKey = () => {
  var _document$querySelect;
  const {
    wgPageName
  } = mw.config.get();
  let cacheKey = "".concat(cacheKeyPrefix).concat(wgPageName);
  const section = (_document$querySelect = document.querySelector("input[name=wpSection]")) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.value;
  if (section) {
    cacheKey += "#".concat(section);
  }
  return cacheKey;
};
var newSaveObject = ({
  $editForm
}) => {
  const saveObject = {
    date: /* @__PURE__ */ new Date(),
    wpSummary: (0, import_ext_gadget2.getWpSummaryContent)({
      $editForm
    }),
    wpTextbox1: (0, import_ext_gadget2.getWpTextbox1Content)({
      $editForm
    })
  };
  return saveObject;
};
var setCache = ({
  $editForm
}) => {
  try {
    mw.storage.setObject(getCacheKey(), newSaveObject({
      $editForm
    }), 60 * 60 * 24 * 30 * 1e3);
    void mw.notify(getMessage("Change saved"), {
      tag: "wikicache"
    });
  } catch (error) {
    console.error(error);
  }
};
var getCache = /* @__PURE__ */ function() {
  var _ref = _asyncToGenerator(function* ({
    $editForm
  }) {
    if (mw.config.get(configKey)) {
      return;
    }
    mw.config.set(configKey, true);
    const saveObject = mw.storage.getObject(getCacheKey());
    if (!saveObject) {
      return;
    }
    if (saveObject["wpSummary"]) {
      (0, import_ext_gadget2.setWpSummaryContent)({
        $editForm,
        content: saveObject["wpSummary"]
      });
    }
    if (!saveObject["wpTextbox1"]) {
      return;
    }
    if (![saveObject["wpTextbox1"], "".concat(saveObject["wpTextbox1"], "\n")].includes((0, import_ext_gadget2.getWpTextbox1Content)({
      $editForm
    }))) {
      const confirm = yield OO.ui.confirm(getMessage("Restore changes?"), {
        actions: [{
          label: getMessage("Restore unsaved changes"),
          action: "accept",
          flags: ["progressive"]
        }, {
          label: getMessage("Not to restore"),
          action: "cancel",
          flags: ["destructive"]
        }]
      });
      if (confirm) {
        (0, import_ext_gadget2.setWpTextbox1Content)({
          $editForm,
          content: saveObject["wpTextbox1"]
        });
      }
      mw.storage.remove("".concat(getCacheKey(), "##PreviewDiff"));
    }
  });
  return function getCache2(_x) {
    return _ref.apply(this, arguments);
  };
}();
var autoSetCache = /* @__PURE__ */ function() {
  var _ref2 = _asyncToGenerator(function* ({
    $editForm
  }) {
    while (true) {
      yield (0, import_ext_gadget2.delay)(60 * 1e3);
      setCache({
        $editForm
      });
    }
  });
  return function autoSetCache2(_x2) {
    return _ref2.apply(this, arguments);
  };
}();
var setCacheBeforeSubmit = ({
  $editForm
}) => {
  const editForm = document.querySelector("#editform");
  editForm === null || editForm === void 0 || editForm.addEventListener("submit", (event) => {
    if ([document.querySelector("#wpPreview"), document.querySelector("#wpDiff")].includes(event.submitter)) {
      mw.storage.setObject("".concat(getCacheKey(), "##PreviewDiff"), "1", 60 * 60 * 24 * 1);
    }
    setCache({
      $editForm
    });
  });
};
//! src/Wikicache/Wikicache.ts
mw.hook("wikipage.editform").add(/* @__PURE__ */ function() {
  var _ref3 = _asyncToGenerator(function* ($editForm) {
    setCacheBeforeSubmit({
      $editForm
    });
    yield getCache({
      $editForm
    });
    yield autoSetCache({
      $editForm
    });
  });
  return function(_x3) {
    return _ref3.apply(this, arguments);
  };
}());

})();

/* </nowiki> */

//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1dpa2ljYWNoZS9vcHRpb25zLmpzb24iLCAic3JjL1dpa2ljYWNoZS9tb2R1bGVzL2NhY2hlLnRzIiwgInNyYy9XaWtpY2FjaGUvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9XaWtpY2FjaGUvV2lraWNhY2hlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ7XG5cdFwiY29uZmlnS2V5XCI6IFwiZ2FkZ2V0LVdpa2ljYWNoZV9fSW5pdGlhbGl6ZWRcIixcblx0XCJjYWNoZUtleVByZWZpeFwiOiBcIndpa2ljYWNoZS1hdXRvc2F2ZS1cIixcblx0XCJ2ZXJzaW9uXCI6IFwiMy4wXCJcbn1cbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge1xuXHRkZWxheSxcblx0Z2V0V3BTdW1tYXJ5Q29udGVudCxcblx0Z2V0V3BUZXh0Ym94MUNvbnRlbnQsXG5cdHNldFdwU3VtbWFyeUNvbnRlbnQsXG5cdHNldFdwVGV4dGJveDFDb250ZW50LFxufSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHtBdXRvU2F2ZU9iamVjdH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5cbmNvbnN0IGdldENhY2hlS2V5ID0gKCkgPT4ge1xuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGxldCBjYWNoZUtleTogc3RyaW5nID0gYCR7T1BUSU9OUy5jYWNoZUtleVByZWZpeH0ke3dnUGFnZU5hbWV9YDtcblx0Y29uc3Qgc2VjdGlvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTElucHV0RWxlbWVudD4oJ2lucHV0W25hbWU9d3BTZWN0aW9uXScpPy52YWx1ZTtcblx0aWYgKHNlY3Rpb24pIHtcblx0XHRjYWNoZUtleSArPSBgIyR7c2VjdGlvbn1gO1xuXHR9XG5cblx0cmV0dXJuIGNhY2hlS2V5O1xufTtcblxuY29uc3QgbmV3U2F2ZU9iamVjdCA9ICh7JGVkaXRGb3JtfTogeyRlZGl0Rm9ybTogSlF1ZXJ5PEhUTUxFbGVtZW50Pn0pOiBBdXRvU2F2ZU9iamVjdCA9PiB7XG5cdGNvbnN0IHNhdmVPYmplY3Q6IEF1dG9TYXZlT2JqZWN0ID0ge1xuXHRcdGRhdGU6IG5ldyBEYXRlKCksXG5cdFx0d3BTdW1tYXJ5OiBnZXRXcFN1bW1hcnlDb250ZW50KHskZWRpdEZvcm19KSxcblx0XHR3cFRleHRib3gxOiBnZXRXcFRleHRib3gxQ29udGVudCh7JGVkaXRGb3JtfSksXG5cdH07XG5cblx0cmV0dXJuIHNhdmVPYmplY3Q7XG59O1xuXG5jb25zdCBzZXRDYWNoZSA9ICh7JGVkaXRGb3JtfTogeyRlZGl0Rm9ybTogSlF1ZXJ5PEhUTUxFbGVtZW50Pn0pID0+IHtcblx0dHJ5IHtcblx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChnZXRDYWNoZUtleSgpLCBuZXdTYXZlT2JqZWN0KHskZWRpdEZvcm19KSwgNjAgKiA2MCAqIDI0ICogMzAgKiAxMDAwKTtcblx0XHR2b2lkIG13Lm5vdGlmeShnZXRNZXNzYWdlKCdDaGFuZ2Ugc2F2ZWQnKSwge1xuXHRcdFx0dGFnOiAnd2lraWNhY2hlJyxcblx0XHR9KTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRjb25zb2xlLmVycm9yKGVycm9yKTtcblx0fVxufTtcblxuY29uc3QgZ2V0Q2FjaGUgPSBhc3luYyAoeyRlZGl0Rm9ybX06IHskZWRpdEZvcm06IEpRdWVyeTxIVE1MRWxlbWVudD59KSA9PiB7XG5cdGlmIChtdy5jb25maWcuZ2V0KE9QVElPTlMuY29uZmlnS2V5KSkge1xuXHRcdHJldHVybjtcblx0fVxuXHRtdy5jb25maWcuc2V0KE9QVElPTlMuY29uZmlnS2V5LCB0cnVlKTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG5cdGNvbnN0IHNhdmVPYmplY3Q6IFBhcnRpYWw8QXV0b1NhdmVPYmplY3Q+ID0gbXcuc3RvcmFnZS5nZXRPYmplY3QoZ2V0Q2FjaGVLZXkoKSk7XG5cblx0aWYgKCFzYXZlT2JqZWN0KSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKHNhdmVPYmplY3RbJ3dwU3VtbWFyeSddKSB7XG5cdFx0c2V0V3BTdW1tYXJ5Q29udGVudCh7JGVkaXRGb3JtLCBjb250ZW50OiBzYXZlT2JqZWN0Wyd3cFN1bW1hcnknXX0pO1xuXHR9XG5cblx0aWYgKCFzYXZlT2JqZWN0Wyd3cFRleHRib3gxJ10pIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoIVtzYXZlT2JqZWN0Wyd3cFRleHRib3gxJ10sIGAke3NhdmVPYmplY3RbJ3dwVGV4dGJveDEnXX1cXG5gXS5pbmNsdWRlcyhnZXRXcFRleHRib3gxQ29udGVudCh7JGVkaXRGb3JtfSkpKSB7XG5cdFx0Y29uc3QgY29uZmlybSA9IGF3YWl0IE9PLnVpLmNvbmZpcm0oZ2V0TWVzc2FnZSgnUmVzdG9yZSBjaGFuZ2VzPycpLCB7XG5cdFx0XHRhY3Rpb25zOiBbXG5cdFx0XHRcdHtsYWJlbDogZ2V0TWVzc2FnZSgnUmVzdG9yZSB1bnNhdmVkIGNoYW5nZXMnKSwgYWN0aW9uOiAnYWNjZXB0JywgZmxhZ3M6IFsncHJvZ3Jlc3NpdmUnXX0sXG5cdFx0XHRcdHtsYWJlbDogZ2V0TWVzc2FnZSgnTm90IHRvIHJlc3RvcmUnKSwgYWN0aW9uOiAnY2FuY2VsJywgZmxhZ3M6IFsnZGVzdHJ1Y3RpdmUnXX0sXG5cdFx0XHRdLFxuXHRcdH0pO1xuXHRcdGlmIChjb25maXJtKSB7XG5cdFx0XHRzZXRXcFRleHRib3gxQ29udGVudCh7JGVkaXRGb3JtLCBjb250ZW50OiBzYXZlT2JqZWN0Wyd3cFRleHRib3gxJ119KTtcblx0XHR9XG5cdFx0bXcuc3RvcmFnZS5yZW1vdmUoYCR7Z2V0Q2FjaGVLZXkoKX0jI1ByZXZpZXdEaWZmYCk7XG5cdH1cbn07XG5cbmNvbnN0IGF1dG9TZXRDYWNoZSA9IGFzeW5jICh7JGVkaXRGb3JtfTogeyRlZGl0Rm9ybTogSlF1ZXJ5PEhUTUxFbGVtZW50Pn0pID0+IHtcblx0d2hpbGUgKHRydWUpIHtcblx0XHRhd2FpdCBkZWxheSg2MCAqIDEwMDApO1xuXHRcdHNldENhY2hlKHskZWRpdEZvcm19KTtcblx0fVxufTtcblxuY29uc3Qgc2V0Q2FjaGVCZWZvcmVTdWJtaXQgPSAoeyRlZGl0Rm9ybX06IHskZWRpdEZvcm06IEpRdWVyeTxIVE1MRWxlbWVudD59KSA9PiB7XG5cdGNvbnN0IGVkaXRGb3JtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRm9ybUVsZW1lbnQ+KCcjZWRpdGZvcm0nKTtcblx0ZWRpdEZvcm0/LmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChldmVudCkgPT4ge1xuXHRcdGlmIChbZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3dwUHJldmlldycpLCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjd3BEaWZmJyldLmluY2x1ZGVzKGV2ZW50LnN1Ym1pdHRlcikpIHtcblx0XHRcdG13LnN0b3JhZ2Uuc2V0T2JqZWN0KGAke2dldENhY2hlS2V5KCl9IyNQcmV2aWV3RGlmZmAsICcxJywgNjAgKiA2MCAqIDI0ICogMSk7XG5cdFx0fVxuXHRcdHNldENhY2hlKHskZWRpdEZvcm19KTtcblx0fSk7XG59O1xuXG5leHBvcnQge2dldENhY2hlLCBhdXRvU2V0Q2FjaGUsIHNldENhY2hlQmVmb3JlU3VibWl0fTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0J0NoYW5nZSBzYXZlZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRWRpdCBjb250ZW50IHNhdmVkIHRvIGxvY2FsIHN0b3JhZ2Ugc3VjY2Vzc2Z1bGx5Jyxcblx0XHRcdCd6aC1oYW5zJzogJ+e8lui+keWGheWuueW3suaIkOWKn+S/neWtmOiHs+acrOWcsOWtmOWCqCcsXG5cdFx0XHQnemgtaGFudCc6ICfnt6jovK/lhaflrrnlt7LmiJDlip/lhLLlrZjoh7PmnKzlnLDlhLLlrZgnLFxuXHRcdH0pLFxuXHRcdCdSZXN0b3JlIGNoYW5nZXM/JzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdZb3VyIHVuc2F2ZWQgY2hhZ2VzIGhhdmUgYmVlbiBzYXZlZCB0byB5b3VyIGxvY2FsIHN0b3JhZ2UuIFJlc3RvcmUgY2hhbmdlcz8nLFxuXHRcdFx0J3poLWhhbnMnOiAn5YWI5YmN5pyq5L+d5a2Y55qE57yW6L6R5YaF5a655bey5a2Y5YKo5LqO5pys5Zyw5a2Y5YKo44CC5piv5ZCm5oGi5aSN5YWI5YmN5pyq5L+d5a2Y55qE57yW6L6R5YaF5a6577yfJyxcblx0XHRcdCd6aC1oYW50JzogJ+WFiOWJjeacquS/neWtmOeahOe3qOi8r+WFp+WuueW3suWEsuWtmOS6juacrOWcsOWEsuWtmOOAguaYr+WQpuaBouW+qeWFiOWJjeacquS/neWtmOeahOe3qOi8r+WFp+Wuue+8nycsXG5cdFx0fSksXG5cdFx0J1Jlc3RvcmUgdW5zYXZlZCBjaGFuZ2VzJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdSZXN0b3JlJyxcblx0XHRcdCd6aC1oYW5zJzogJ+aBouWkjScsXG5cdFx0XHQnemgtaGFudCc6ICfmgaLlvqknLFxuXHRcdH0pLFxuXHRcdCdOb3QgdG8gcmVzdG9yZSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTm90IHRvIHJlc3RvcmUnLFxuXHRcdFx0J3poLWhhbnMnOiAn5LiN5oGi5aSNJyxcblx0XHRcdCd6aC1oYW50JzogJ+S4jeaBouW+qScsXG5cdFx0fSksXG5cdH07XG59O1xuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQge2F1dG9TZXRDYWNoZSwgZ2V0Q2FjaGUsIHNldENhY2hlQmVmb3JlU3VibWl0fSBmcm9tICcuL21vZHVsZXMvY2FjaGUnO1xuXG5tdy5ob29rKCd3aWtpcGFnZS5lZGl0Zm9ybScpLmFkZChhc3luYyAoJGVkaXRGb3JtKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdHNldENhY2hlQmVmb3JlU3VibWl0KHskZWRpdEZvcm19KTsgLy8gQWRkIGhvb2sgdG8gI2VkaXRmb3JtXG5cdGF3YWl0IGdldENhY2hlKHskZWRpdEZvcm19KTtcblx0YXdhaXQgYXV0b1NldENhY2hlKHskZWRpdEZvcm19KTtcbn0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNDLElBQUFBLFlBQWE7QUFDYixJQUFBQyxpQkFBa0I7O0FDRG5CLElBQUFDLHFCQU1PQyxRQUFBLGlCQUFBOztBQ1BQLElBQUFDLG9CQUF1QkQsUUFBQSxpQkFBQTtBQUV2QixJQUFNRSxrQkFBa0JBLE1BQU07QUFDN0IsU0FBTztJQUNOLGlCQUFBLEdBQWdCRCxrQkFBQUUsVUFBUztNQUN4QkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELHFCQUFBLEdBQW9CSCxrQkFBQUUsVUFBUztNQUM1QkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELDRCQUFBLEdBQTJCSCxrQkFBQUUsVUFBUztNQUNuQ0MsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELG1CQUFBLEdBQWtCSCxrQkFBQUUsVUFBUztNQUMxQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztFQUNGO0FBQ0Q7QUFDQSxJQUFNQyxlQUFlSCxnQkFBZ0I7QUFFckMsSUFBTUksYUFBZ0RDLFNBQVE7QUFDN0QsU0FBT0YsYUFBYUUsR0FBRyxLQUFLQTtBQUM3Qjs7QURuQkEsSUFBTUMsY0FBY0EsTUFBTTtBQUFBLE1BQUFDO0FB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QixtQkFBQTJELE9BQU0sS0FBSyxHQUFJO0FBQ3JCN0IsZUFBUztRQUFDUjtNQUFTLENBQUM7SUFDckI7RUFDRCxDQUFBO0FBQUEsU0FBQSxTQUxNbUMsY0FBQUcsS0FBQTtBQUFBLFdBQUFGLE1BQUFILE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQTtBQU9OLElBQU1LLHVCQUF1QkEsQ0FBQztFQUFDdkM7QUFBUyxNQUF3QztBQUMvRSxRQUFNd0MsV0FBVzVDLFNBQVNDLGNBQStCLFdBQVc7QUFDcEUyQyxlQUFBLFFBQUFBLGFBQUEsVUFBQUEsU0FBVUMsaUJBQWlCLFVBQVdDLFdBQVU7QUFDL0MsUUFBSSxDQUFDOUMsU0FBU0MsY0FBYyxZQUFZLEdBQUdELFNBQVNDLGNBQWMsU0FBUyxDQUFDLEVBQUV5QixTQUFTb0IsTUFBTUMsU0FBUyxHQUFHO0FBQ3hHckQsU0FBR21CLFFBQVFDLFVBQUEsR0FBQWhCLE9BQWFQLFlBQVksR0FBQyxlQUFBLEdBQWlCLEtBQUssS0FBSyxLQUFLLEtBQUssQ0FBQztJQUM1RTtBQUNBcUIsYUFBUztNQUFDUjtJQUFTLENBQUM7RUFDckIsQ0FBQztBQUNGOztBRTNGQVYsR0FBR3NELEtBQUssbUJBQW1CLEVBQUVDLElBQUEsMkJBQUE7QUFBQSxNQUFBQyxRQUFBN0Isa0JBQUksV0FBT2pCLFdBQTZCO0FBQ3BFdUMseUJBQXFCO01BQUN2QztJQUFTLENBQUM7QUFDaEMsVUFBTWUsU0FBUztNQUFDZjtJQUFTLENBQUM7QUFDMUIsVUFBTW1DLGFBQWE7TUFBQ25DO0lBQVMsQ0FBQztFQUMvQixDQUFDO0FBQUEsU0FBQSxTQUFBK0MsS0FBQTtBQUFBLFdBQUFELE1BQUFiLE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQSxDQUFBOyIsCiAgIm5hbWVzIjogWyJjb25maWdLZXkiLCAiY2FjaGVLZXlQcmVmaXgiLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgImxvY2FsaXplIiwgImVuIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJnZXRDYWNoZUtleSIsICJfZG9jdW1lbnQkcXVlcnlTZWxlY3QiLCAid2dQYWdlTmFtZSIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImNhY2hlS2V5IiwgImNvbmNhdCIsICJzZWN0aW9uIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAidmFsdWUiLCAibmV3U2F2ZU9iamVjdCIsICIkZWRpdEZvcm0iLCAic2F2ZU9iamVjdCIsICJkYXRlIiwgIkRhdGUiLCAid3BTdW1tYXJ5IiwgImdldFdwU3VtbWFyeUNvbnRlbnQiLCAid3BUZXh0Ym94MSIsICJnZXRXcFRleHRib3gxQ29udGVudCIsICJzZXRDYWNoZSIsICJzdG9yYWdlIiwgInNldE9iamVjdCIsICJub3RpZnkiLCAidGFnIiwgImVycm9yIiwgImNvbnNvbGUiLCAiZ2V0Q2FjaGUiLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJzZXQiLCAiZ2V0T2JqZWN0IiwgInNldFdwU3VtbWFyeUNvbnRlbnQiLCAiY29udGVudCIsICJpbmNsdWRlcyIsICJjb25maXJtIiwgIk9PIiwgInVpIiwgImFjdGlvbnMiLCAibGFiZWwiLCAiYWN0aW9uIiwgImZsYWdzIiwgInNldFdwVGV4dGJveDFDb250ZW50IiwgInJlbW92ZSIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiYXV0b1NldENhY2hlIiwgIl9yZWYyIiwgImRlbGF5IiwgIl94MiIsICJzZXRDYWNoZUJlZm9yZVN1Ym1pdCIsICJlZGl0Rm9ybSIsICJhZGRFdmVudExpc3RlbmVyIiwgImV2ZW50IiwgInN1Ym1pdHRlciIsICJob29rIiwgImFkZCIsICJfcmVmMyIsICJfeDMiXQp9Cg==