MediaWiki:Gadget-interfaceVariantConverter.js

来自萌娘共享
Leranjun讨论 | 贡献2022年9月5日 (一) 09:44的版本 (//IPE)
跳转至: 导航搜索

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件
/* <pre> */
/**
 * -------------------------------------------------------------------------
 * !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!
 * -------------------------------------------------------------------------
 */
var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/interfaceVariantConverter/MediaWiki:Gadget-interfaceVariantConverter.js|user=[[U:Leranjun]]|longId=bf0cf433d5e17247a7bb13a676340e6621824465|shortId=bf0cf43|message=fix(Gadget-interfaceVariantConverter): always use zh for conversion}}';

"use strict";
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
var __read = (this && this.__read) || function (o, n) {
    var m = typeof Symbol === "function" && o[Symbol.iterator];
    if (!m) return o;
    var i = m.call(o), r, ar = [], e;
    try {
        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
    }
    catch (error) { e = { error: error }; }
    finally {
        try {
            if (r && !r.done && (m = i["return"])) m.call(i);
        }
        finally { if (e) throw e.error; }
    }
    return ar;
};
var __values = (this && this.__values) || function(o) {
    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
    if (m) return m.call(o);
    if (o && typeof o.length === "number") return {
        next: function () {
            if (o && i >= o.length) o = void 0;
            return { value: o && o[i++], done: !o };
        }
    };
    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
$(function () { return (function () { return __awaiter(void 0, void 0, void 0, function () {
    var pagename, pageid, basepage, api, zhAPI, lr_aivc, prepopContent, _a, _b, toParams, variantPage, REGEXP, escapeWikitext, restoreWikitext, AIVCWindow, $body, windowManager, aivcDialog;
    return __generator(this, function (_c) {
        switch (_c.label) {
            case 0:
                pagename = mw.config.get("wgPageName");
                if (mw.config.get("wgNamespaceNumber") !== 8 || pagename.includes(".js") || pagename.includes(".css")) {
                    return [2];
                }
                $.cachedScript = function (url, options) { return $.ajax($.extend(options || {}, {
                    dataType: "script",
                    cache: true,
                    url: url
                })); };
                pageid = mw.config.get("wgArticleId");
                basepage = pagename.replace(/\/.*?$/, "");
                api = new mw.Api(), zhAPI = location.hostname === "zh.moegirl.org.cn" ? api : new mw.ForeignApi("https://zh.moegirl.org.cn/api.php", { anonymous: true });
                lr_aivc = $.extend({
                    main: ["zh-cn", "zh-tw", "zh-hk"],
                    dependent: {
                        "(main)": "zh-cn",
                        "zh-hans": "zh-cn",
                        "zh-hant": "zh-tw"
                    },
                    noteTA: {
                        G1: "Interface"
                    },
                    autoPopulate: true,
                    useOpenCC: true,
                    manualAction: {
                        "zh-hk": function (t) { return t.replaceAll("户", "戶"); },
                        "zh-tw": function (t) { return t.replaceAll("名稱空間", "命名空間").replaceAll("記憶體", "內存"); }
                    },
                    watchlist: "nochange"
                }, window.lr_aivc);
                prepopContent = "";
                _c.label = 1;
            case 1:
                _c.trys.push([1, 5, , 6]);
                if (!lr_aivc.autoPopulate) return [3, 3];
                return [4, api.get({
                        action: "parse",
                        pageid: pageid,
                        prop: "wikitext"
                    })];
            case 2:
                _a = (_c.sent()).parse.wikitext["*"];
                return [3, 4];
            case 3:
                _a = "";
                _c.label = 4;
            case 4:
                prepopContent = _a;
                return [3, 6];
            case 5:
                _b = _c.sent();
                return [3, 6];
            case 6:
                toParams = function (obj) { return Object.entries(obj).map(function (_a) {
                    var _b = __read(_a, 2), k = _b[0], v = _b[1];
                    return "".concat(k, "=").concat(v);
                }).join("|"); };
                variantPage = function (variant) { return variant === "(main)" ? "".concat(basepage) : "".concat(basepage, "/").concat(variant); };
                REGEXP = {
                    lcMarker: /-{([\s\S]*?)}-/g,
                    lcMarkerEsc: /-\\{([\s\S]*?)}\\-/g,
                    nowiki: /<nowiki>([\s\S]*?)<\/nowiki>/g,
                    link: /\[\[([\s\S]*?)(?:#([\s\S]*?))?(\|[\s\S]*?)?\]\]/g,
                    extLink: /([^[])\[([^[]+?)( [\s\S]+?)?\]([^\]])/g,
                    template: /\{\{([\s\S]*?)\}\}/g,
                    htmlEntity: /&([a-zA-Z0-9#]+);/g,
                    noOCC: /<!--noOCC-->([\s\S]*?)<!--\/noOCC-->/gi
                };
                escapeWikitext = function (original) {
                    var nowikis = [], mappings = [];
                    var replaced = original;
                    replaced = replaced.replace(REGEXP.lcMarker, function (_, content) { return "-\\{".concat(content, "}\\-"); });
                    replaced = replaced.replace(REGEXP.nowiki, function (_, content) { return "<nowiki>".concat(nowikis.push(content) - 1, "</nowiki>"); });
                    replaced = replaced.replace(REGEXP.link, function (match, target, anchor, text) { return anchor || text ? "[[".concat(text ? mappings.push(target) - 1 : target).concat(anchor ? "#".concat(mappings.push(anchor) - 1) : "").concat(text || "", "]]") : match; });
                    replaced = replaced.replace(REGEXP.extLink, function (_, before, target, text, after) { return "".concat(before, "[").concat(mappings.push(target) - 1).concat(text || "", "]").concat(after); });
                    replaced = replaced.replace(REGEXP.template, function (_, params) {
                        var paramList = params.split("|");
                        mappings.push(paramList[0]);
                        paramList.shift();
                        return "".concat(paramList.reduce(function (acc, param) {
                            var _a = __read(param.split("=")), first = _a[0], rest = _a.slice(1);
                            return rest.length ? "".concat(acc, "|").concat(mappings.push(first) - 1, "=").concat(rest.join("=")) : "".concat(acc, "|").concat(param);
                        }, "{{".concat(mappings.length - 1)), "}}");
                    });
                    replaced = replaced.replace(REGEXP.lcMarkerEsc, function (_, content) { return "-\\{".concat(mappings.push(content || "") - 1, "}\\-"); });
                    replaced = replaced.replace(REGEXP.htmlEntity, function (_, entity) { return "&".concat(mappings.push(entity) - 1, ";"); });
                    replaced = replaced.replace(REGEXP.nowiki, function (_, index) { return "<nowiki><nowiki>".concat(nowikis[index], "</nowiki></nowiki>"); });
                    return { replaced: replaced, mappings: mappings };
                };
                restoreWikitext = function (original, mappings) {
                    var nowikis = [];
                    var replaced = original;
                    replaced = replaced.replace(REGEXP.nowiki, function (_, content) { return "<nowiki>".concat(nowikis.push(content) - 1, "</nowiki>"); });
                    replaced = replaced.replace(REGEXP.htmlEntity, function (_, index) { return "&".concat(mappings[index], ";"); });
                    replaced = replaced.replace(REGEXP.template, function (_, params) {
                        var paramList = params.split("|");
                        var name = mappings[paramList[0]];
                        paramList.shift();
                        return "".concat(paramList.reduce(function (acc, param) {
                            var _a = __read(param.split("=")), first = _a[0], rest = _a.slice(1);
                            return rest.length ? "".concat(acc, "|").concat(mappings[first], "=").concat(rest.join("=")) : "".concat(acc, "|").concat(param);
                        }, "{{".concat(name)), "}}");
                    });
                    replaced = replaced.replace(REGEXP.extLink, function (_, before, target, text, after) { return "".concat(before, "[").concat(mappings[target]).concat(text || "", "]").concat(after); });
                    replaced = replaced.replace(REGEXP.link, function (match, target, anchor, text) { return anchor || text ? "[[".concat(text ? mappings[target] : target).concat(mappings[anchor] ? "#".concat(mappings[anchor]) : "").concat(text || "", "]]") : match; });
                    replaced = replaced.replace(REGEXP.nowiki, function (_, index) { return "<nowiki>".concat(nowikis[index], "</nowiki>"); });
                    replaced = replaced.replace(REGEXP.lcMarkerEsc, function (_, index) { var _a; return "-{".concat((_a = mappings[index]) !== null && _a !== void 0 ? _a : index, "}-"); });
                    return replaced;
                };
                AIVCWindow = (function (_super) {
                    __extends(AIVCWindow, _super);
                    function AIVCWindow(config) {
                        var _this = _super.call(this, config) || this;
                        _this.config = config.data.config;
                        _this.prepopContent = config.data.prepopContent;
                        return _this;
                    }
                    AIVCWindow.prototype.initialize = function () {
                        _super.prototype.initialize.call(this);
                        this.configPanel = new OO.ui.PanelLayout({
                            scrollable: false,
                            expanded: false,
                            padded: true
                        });
                        this.confirmPanel = new OO.ui.PanelLayout({
                            scrollable: false,
                            expanded: false,
                            padded: true
                        });
                        this.ogText = new OO.ui.MultilineTextInputWidget({
                            value: this.prepopContent,
                            autosize: true
                        });
                        var textField = new OO.ui.FieldLayout(this.ogText, {
                            label: wgULS("原始内容", "原始內容"),
                            align: "top"
                        });
                        this.mainVariants = new OO.ui.TextInputWidget({
                            value: this.config.main.join(";")
                        });
                        var mainField = new OO.ui.FieldLayout(this.mainVariants, {
                            label: wgULS("主要变体", "主要變体"),
                            align: "top"
                        });
                        this.depVariants = new OO.ui.TextInputWidget({
                            value: Object.entries(this.config.dependent).map(function (_a) {
                                var _b = __read(_a, 2), k = _b[0], v = _b[1];
                                return "".concat(k, ":").concat(v);
                            }).join(";")
                        });
                        var depField = new OO.ui.FieldLayout(this.depVariants, {
                            label: wgULS("依赖变体", "依賴變体"),
                            align: "top"
                        });
                        this.noteTAParams = new OO.ui.TextInputWidget({
                            value: toParams(this.config.noteTA)
                        });
                        var noteTAField = new OO.ui.FieldLayout(this.noteTAParams, {
                            label: wgULS("NoteTA参数", "NoteTA參數"),
                            align: "top"
                        });
                        this.occCheckbox = new OO.ui.CheckboxInputWidget({
                            selected: this.config.useOpenCC
                        });
                        var occField = new OO.ui.FieldLayout(this.occCheckbox, {
                            label: "使用OpenCC",
                            align: "inline"
                        });
                        this.configPanel.$element.append(textField.$element, mainField.$element, depField.$element, noteTAField.$element, occField.$element);
                        this.stackLayout = new OO.ui.StackLayout({
                            items: [this.configPanel, this.confirmPanel]
                        });
                        this.ogText.connect(this, { resize: "updateSize" });
                        this.$body.append(this.stackLayout.$element);
                    };
                    AIVCWindow.prototype.getBodyHeight = function () {
                        return this.stackLayout.getCurrentItem().$element.outerHeight(true);
                    };
                    AIVCWindow.prototype.getSetupProcess = function (data) {
                        var _this = this;
                        return _super.prototype.getSetupProcess.call(this, data).next(function () {
                            _this.actions.setMode("config");
                            _this.stackLayout.setItem(_this.configPanel);
                        }, this);
                    };
                    AIVCWindow.prototype.getReadyProcess = function (data) {
                        var _this = this;
                        return _super.prototype.getReadyProcess.call(this, data)
                            .next(function () {
                            _this.ogText.focus();
                        }, this);
                    };
                    AIVCWindow.prototype.getActionProcess = function (action) {
                        var _this = this;
                        var dfd = $.Deferred();
                        if (action === "cancel") {
                            return new OO.ui.Process(function () {
                                _this.close({ action: action });
                            }, this);
                        }
                        else if (action === "continue") {
                            return new OO.ui.Process(function () {
                                _this.config = $.extend(_this.config, {
                                    main: _this.mainVariants.getValue().split(";"),
                                    dependent: Object.fromEntries(_this.depVariants.getValue().split(";").map(function (v) { return v.split(":"); })),
                                    noteTAStr: _this.noteTAParams.getValue(),
                                    useOpenCC: _this.occCheckbox.isSelected(),
                                    dependentInv: {}
                                });
                                if (_this.config.main.includes("(main)")) {
                                    dfd.reject(new OO.ui.Error(wgULS("主页面不得作为主要变体", "主頁面不得作為主要變体")));
                                    return dfd.promise();
                                }
                                _this.config.main.forEach(function (v) { return _this.config.dependentInv[v] = [v]; });
                                try {
                                    Object.entries(_this.config.dependent).forEach(function (_a) {
                                        var _b = __read(_a, 2), k = _b[0], v = _b[1];
                                        return _this.config.dependentInv[v].push(k);
                                    });
                                }
                                catch (_a) {
                                    console.error("[VariantConverter] Error: Key not found in dependentInv. Config dump:", _this.config);
                                    dfd.reject(new OO.ui.Error(wgULS("依赖变体格式错误,请检查控制台", "依賴變体格式錯誤,請檢查控制臺")));
                                    return dfd.promise();
                                }
                                _this.textInputs = {};
                                _this.confirmPanel.$element.empty();
                                _this.getVariants(_this.ogText.getValue()).then(function () {
                                    _this.actions.setMode("confirm");
                                    _this.stackLayout.setItem(_this.confirmPanel);
                                    _this.updateSize();
                                    dfd.resolve();
                                })["catch"](function (e) {
                                    console.error("[VariantConverter] Error:", e);
                                    dfd.reject(new OO.ui.Error(e));
                                });
                                return dfd.promise();
                            }, this);
                        }
                        else if (action === "back") {
                            this.actions.setMode("config");
                            this.stackLayout.setItem(this.configPanel);
                            this.updateSize();
                        }
                        else if (action === "submit") {
                            return new OO.ui.Process(function () {
                                _this.saveChanges().then(function () {
                                    _this.close({ action: action });
                                    mw.notify("保存成功!", {
                                        title: wgULS("自动繁简转换工具", "自動繁簡轉換工具"),
                                        type: "success",
                                        tag: "lr-aivc"
                                    });
                                    dfd.resolve();
                                    setTimeout(function () { return location.reload(); }, 730);
                                })["catch"](function (e) {
                                    console.error("[VariantConverter] Error:", e);
                                    dfd.reject(new OO.ui.Error(e));
                                });
                                return dfd.promise();
                            }, this);
                        }
                        return _super.prototype.getActionProcess.call(this, action);
                    };
                    AIVCWindow.prototype.addVariant = function (variant, text) {
                        var _this = this;
                        var _a;
                        this.textInputs[variant] = new OO.ui.MultilineTextInputWidget({
                            value: text,
                            autosize: true
                        });
                        var field = new OO.ui.FieldLayout(this.textInputs[variant], {
                            label: variant,
                            align: "top"
                        });
                        this.textInputs[variant].connect(this, { resize: "updateSize" });
                        this.confirmPanel.$element.append(field.$element);
                        if ((_a = window === null || window === void 0 ? void 0 : window.InPageEdit) === null || _a === void 0 ? void 0 : _a.quickDiff) {
                            this.confirmPanel.$element.append(new OO.ui.FieldLayout(new OO.ui.Widget({
                                content: [
                                    new OO.ui.HorizontalLayout({
                                        items: this.config.dependentInv[variant].map(function (v) { return new OO.ui.ButtonWidget({
                                            label: "".concat(wgULS("对比", "對比")).concat(v === "(main)" ? wgULS("主页面", "主頁面") : v)
                                        }).on("click", function () { return window.InPageEdit.quickDiff({
                                            fromtitle: variantPage(v),
                                            totext: _this.textInputs[variant].getValue(),
                                            pageName: variantPage(v),
                                            isPreview: true
                                        }); }); })
                                    }),
                                ]
                            })).$element);
                        }
                    };
                    AIVCWindow.prototype.getVariants = function (original) {
                        var _a, _b;
                        return __awaiter(this, void 0, void 0, function () {
                            var _c, replaced, mappings, _loop_1, this_1, _d, _e, variant, e_1_1;
                            var e_1, _f;
                            return __generator(this, function (_g) {
                                switch (_g.label) {
                                    case 0:
                                        this.confirmPanel.$element.append("<p>".concat(wgULS("请确认以下转换是否正确", "請確認以下轉換是否正確"), "\uFF1A</p>"));
                                        if (!(!window.OpenCC && this.config.useOpenCC)) return [3, 4];
                                        return [4, $.cachedScript("https://fastly.jsdelivr.net/npm/opencc-js@1.0.3/data.min.js")];
                                    case 1:
                                        _g.sent();
                                        return [4, Promise.all([$.cachedScript("https://fastly.jsdelivr.net/npm/opencc-js@1.0.3/data.cn2t.min.js"), $.cachedScript("https://fastly.jsdelivr.net/npm/opencc-js@1.0.3/data.t2cn.min.js")])];
                                    case 2:
                                        _g.sent();
                                        return [4, $.cachedScript("https://fastly.jsdelivr.net/npm/opencc-js@1.0.3/bundle-browser.min.js")];
                                    case 3:
                                        _g.sent();
                                        _g.label = 4;
                                    case 4:
                                        _c = escapeWikitext(original), replaced = _c.replaced, mappings = _c.mappings;
                                        _loop_1 = function (variant) {
                                            var text, parsed, _h, _j, _k, converted, occMappings_1, occVariant, converter, final, restored;
                                            return __generator(this, function (_l) {
                                                switch (_l.label) {
                                                    case 0:
                                                        if (variant === "(main)") {
                                                            return [2, "continue"];
                                                        }
                                                        text = "{{NoteTA|".concat(this_1.config.noteTAStr, "}}<pre id=\"converted\">-{}-").concat(replaced, "</pre>");
                                                        _h = $;
                                                        _k = (_j = $).parseHTML;
                                                        return [4, zhAPI.post({
                                                                action: "parse",
                                                                text: text,
                                                                contentmodel: "wikitext",
                                                                prop: "text",
                                                                uselang: variant,
                                                                disablelimitreport: true,
                                                                pst: true
                                                            })];
                                                    case 1:
                                                        parsed = _h.apply(void 0, [_k.apply(_j, [(_l.sent()).parse.text["*"]])]);
                                                        converted = parsed.find("#converted").text();
                                                        if (this_1.config.useOpenCC) {
                                                            occMappings_1 = [];
                                                            converted = converted.replace(REGEXP.noOCC, function (_, content) { return "<!--noOCC-->".concat(occMappings_1.push(content) - 1, "<!--/noOCC-->"); });
                                                            occVariant = variant.replace("hans", "cn").replace(/zh-(?:han)?/, "").replace("tw", "twp");
                                                            converter = OpenCC.Converter({ from: occVariant, to: occVariant });
                                                            converted = converter(converted);
                                                            converted = converted.replace(REGEXP.noOCC, function (_, index) { return "<!--noOCC-->".concat(occMappings_1[index], "<!--/noOCC-->"); });
                                                        }
                                                        final = ((_b = (_a = this_1.config.manualAction)[variant]) === null || _b === void 0 ? void 0 : _b.call(_a, converted)) || converted;
                                                        restored = restoreWikitext(final, mappings);
                                                        this_1.addVariant(variant, restored);
                                                        return [2];
                                                }
                                            });
                                        };
                                        this_1 = this;
                                        _g.label = 5;
                                    case 5:
                                        _g.trys.push([5, 10, 11, 12]);
                                        _d = __values(this.config.main), _e = _d.next();
                                        _g.label = 6;
                                    case 6:
                                        if (!!_e.done) return [3, 9];
                                        variant = _e.value;
                                        return [5, _loop_1(variant)];
                                    case 7:
                                        _g.sent();
                                        _g.label = 8;
                                    case 8:
                                        _e = _d.next();
                                        return [3, 6];
                                    case 9: return [3, 12];
                                    case 10:
                                        e_1_1 = _g.sent();
                                        e_1 = { error: e_1_1 };
                                        return [3, 12];
                                    case 11:
                                        try {
                                            if (_e && !_e.done && (_f = _d["return"])) _f.call(_d);
                                        }
                                        finally { if (e_1) throw e_1.error; }
                                        return [7];
                                    case 12: return [2];
                                }
                            });
                        });
                    };
                    AIVCWindow.prototype.saveChanges = function () {
                        return __awaiter(this, void 0, void 0, function () {
                            var _a, _b, _c;
                            var _this = this;
                            return __generator(this, function (_d) {
                                switch (_d.label) {
                                    case 0:
                                        _b = (_a = console).log;
                                        _c = ["[VariantConverter] Saved changes"];
                                        return [4, Promise.allSettled(this.config.main.map(function (variant) {
                                                var text = _this.textInputs[variant].getValue();
                                                return api.postWithToken("csrf", {
                                                    action: "edit",
                                                    title: variantPage(variant),
                                                    text: text,
                                                    summary: "\u81EA\u52A8\u8F6C\u6362\u81EA[[".concat(pagename, "]]"),
                                                    tags: "VariantConverter|Automation tool",
                                                    watchlist: _this.config.watchlist
                                                });
                                            }).concat(Object.entries(this.config.dependent).map(function (_a) {
                                                var _b = __read(_a, 2), variant = _b[0], parent = _b[1];
                                                var text = _this.textInputs[parent].getValue();
                                                return api.postWithToken("csrf", {
                                                    action: "edit",
                                                    title: variantPage(variant),
                                                    text: text,
                                                    summary: "\u81EA\u52A8\u8F6C\u6362\u81EA[[".concat(pagename, "]]\uFF08\u540C\u6B65").concat(parent, "\uFF09"),
                                                    tags: "VariantConverter|Automation tool",
                                                    watchlist: _this.config.watchlist
                                                });
                                            })))];
                                    case 1:
                                        _b.apply(_a, _c.concat([_d.sent()]));
                                        return [2];
                                }
                            });
                        });
                    };
                    AIVCWindow.static = __assign(__assign({}, _super.static), { name: "lr-aivc", title: wgULS("自动繁简转换工具", "自動繁簡轉換工具"), actions: [
                            {
                                action: "cancel",
                                label: "取消",
                                flags: ["safe", "close", "destructive"],
                                modes: "config"
                            },
                            {
                                action: "continue",
                                label: wgULS("继续", "繼續"),
                                flags: ["primary", "progressive"],
                                modes: "config"
                            },
                            {
                                action: "back",
                                label: "返回",
                                flags: ["safe", "back"],
                                modes: "confirm"
                            },
                            {
                                action: "submit",
                                label: wgULS("确认", "確認"),
                                flags: ["primary", "progressive"],
                                modes: "confirm"
                            },
                        ] });
                    return AIVCWindow;
                }(OO.ui.ProcessDialog));
                $body = $(document.body);
                windowManager = new OO.ui.WindowManager();
                $body.append(windowManager.$element);
                aivcDialog = new AIVCWindow({
                    size: "large",
                    data: {
                        config: lr_aivc,
                        prepopContent: prepopContent
                    }
                });
                windowManager.addWindows([aivcDialog]);
                $(mw.util.addPortletLink("p-cactions", "#", wgULS("自动繁简转换", "自動繁簡轉換"), "ca-VariantConverter", wgULS("自动同步界面消息的繁简版本", "自動同步介面消息的繁簡版本"))).on("click", function (e) {
                    e.preventDefault();
                    $("#mw-notification-area").appendTo($body);
                    windowManager.openWindow(aivcDialog);
                });
                return [2];
        }
    });
}); })(); });

/* </pre> */