@inpageedit/core 0.12.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/dist/IconQuickEdit-CMCQncyj.js.map +1 -1
- package/dist/InputBox-nQKtiWtZ.js +30 -0
- package/dist/InputBox-nQKtiWtZ.js.map +1 -0
- package/dist/PluginPrefSync-Ziogy_o-.js +339 -0
- package/dist/PluginPrefSync-Ziogy_o-.js.map +1 -0
- package/dist/PluginStoreApp-Bnvyl-Oc.js +452 -0
- package/dist/PluginStoreApp-Bnvyl-Oc.js.map +1 -0
- package/dist/Preferences-DS4-CFWe.js.map +1 -1
- package/dist/components/index.js +6 -7
- package/dist/components/index.js.map +1 -1
- package/dist/{index-CYc6LH26.js → index-B3FUDhxl.js} +2 -2
- package/dist/{index-CYc6LH26.js.map → index-B3FUDhxl.js.map} +1 -1
- package/dist/{index-DEav9Ptt.js → index-B3YJdjxo.js} +128 -132
- package/dist/index-B3YJdjxo.js.map +1 -0
- package/dist/{index-Bv7Dw5eO.js → index-BRjEc8b8.js} +2 -2
- package/dist/{index-Bv7Dw5eO.js.map → index-BRjEc8b8.js.map} +1 -1
- package/dist/{index-CZXxH2-9.js → index-Bd70aDMT.js} +6 -7
- package/dist/{index-CZXxH2-9.js.map → index-Bd70aDMT.js.map} +1 -1
- package/dist/{index-B5DtUqkK.js → index-BvuaLEFc.js} +3 -4
- package/dist/{index-B5DtUqkK.js.map → index-BvuaLEFc.js.map} +1 -1
- package/dist/index-CG38LlAh.js.map +1 -1
- package/dist/index-CM_6yF2v.js.map +1 -1
- package/dist/{index-D4uwfUZL.js → index-Ccr3YhkP.js} +2 -2
- package/dist/{index-D4uwfUZL.js.map → index-Ccr3YhkP.js.map} +1 -1
- package/dist/{index-CPoUaSMw.js → index-D5zX93bn.js} +39 -40
- package/dist/index-D5zX93bn.js.map +1 -0
- package/dist/index-DD5CVCfD.js.map +1 -1
- package/dist/{index-BXaiDKnr.js → index-DgQNTfPR.js} +15 -14
- package/dist/index-DgQNTfPR.js.map +1 -0
- package/dist/{index-CJFePavo.js → index-Dnmv-xDn.js} +2 -2
- package/dist/{index-CJFePavo.js.map → index-Dnmv-xDn.js.map} +1 -1
- package/dist/{index-hSl8LzNb.js → index-eARjMi7f.js} +5 -6
- package/dist/index-eARjMi7f.js.map +1 -0
- package/dist/{index-Ckozkp6W.js → index-zHTGCjfF.js} +2 -2
- package/dist/{index-Ckozkp6W.js.map → index-zHTGCjfF.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/makeCallable-LDU0xZMJ.js.map +1 -1
- package/dist/models/WikiPage/index.d.ts +5 -1
- package/dist/noop-ClDc6zv4.js.map +1 -1
- package/dist/plugins/plugin-store/index.d.ts +9 -12
- package/dist/style.css +1 -1
- package/dist/{vueHooks-D0uVqbO-.js → vueHooks-l04s8cIl.js} +1112 -1080
- package/dist/{vueHooks-D0uVqbO-.js.map → vueHooks-l04s8cIl.js.map} +1 -1
- package/lib/index.umd.js +15 -11
- package/lib/index.umd.js.map +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/dist/CheckBox-Bc79KBEB.js +0 -13
- package/dist/CheckBox-Bc79KBEB.js.map +0 -1
- package/dist/InputBox-DZAdyZ4B.js +0 -22
- package/dist/InputBox-DZAdyZ4B.js.map +0 -1
- package/dist/PluginPrefSync-BPQkNtX8.js +0 -292
- package/dist/PluginPrefSync-BPQkNtX8.js.map +0 -1
- package/dist/PluginStoreApp-Cxspe6t8.js +0 -158
- package/dist/PluginStoreApp-Cxspe6t8.js.map +0 -1
- package/dist/index-BXaiDKnr.js.map +0 -1
- package/dist/index-CB7TltEb.js +0 -297
- package/dist/index-CB7TltEb.js.map +0 -1
- package/dist/index-CPoUaSMw.js.map +0 -1
- package/dist/index-DEav9Ptt.js.map +0 -1
- package/dist/index-hSl8LzNb.js.map +0 -1
- package/dist/plugins/quick-delete/index.d.ts +0 -55
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
import { j as t, F as _, P as L } from "./index-CM_6yF2v.js";
|
|
2
|
-
import { B as j, W as h, I as R, S as l } from "./index-
|
|
2
|
+
import { B as j, W as h, I as R, S as l } from "./index-DgQNTfPR.js";
|
|
3
3
|
import { m as U } from "./makeCallable-LDU0xZMJ.js";
|
|
4
4
|
import { R as Q } from "./Preferences-DS4-CFWe.js";
|
|
5
5
|
import { M as N } from "./index-CG38LlAh.js";
|
|
6
|
-
import { I as q } from "./InputBox-
|
|
6
|
+
import { I as q, C as I } from "./InputBox-nQKtiWtZ.js";
|
|
7
7
|
import { R as W } from "./RadioBox-0UuxlcWZ.js";
|
|
8
|
-
import { C as I } from "./CheckBox-Bc79KBEB.js";
|
|
9
8
|
import { n as T } from "./noop-ClDc6zv4.js";
|
|
10
9
|
const z = (i = 0) => new Promise((e) => setTimeout(e, i));
|
|
11
10
|
var $ = Object.create, E = Object.defineProperty, K = Object.getOwnPropertyDescriptor, C = (i, e) => (e = Symbol[i]) ? e : Symbol.for("Symbol." + i), F = (i) => {
|
|
12
11
|
throw TypeError(i);
|
|
13
|
-
}, Y = (i, e, r) => e in i ? E(i, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : i[e] = r, G = (i, e) => E(i, "name", { value: e, configurable: !0 }), H = (i) => [, , , $(i?.[C("metadata")] ?? null)], X = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], O = (i) => i !== void 0 && typeof i != "function" ? F("Function expected") : i, J = (i, e, r, d,
|
|
14
|
-
for (var
|
|
12
|
+
}, Y = (i, e, r) => e in i ? E(i, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : i[e] = r, G = (i, e) => E(i, "name", { value: e, configurable: !0 }), H = (i) => [, , , $(i?.[C("metadata")] ?? null)], X = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], O = (i) => i !== void 0 && typeof i != "function" ? F("Function expected") : i, J = (i, e, r, d, o) => ({ kind: X[i], name: e, metadata: d, addInitializer: (u) => r._ ? F("Already initialized") : o.push(O(u || null)) }), V = (i, e) => Y(e, C("metadata"), i[3]), Z = (i, e, r, d) => {
|
|
13
|
+
for (var o = 0, u = i[e >> 1], m = u && u.length; o < m; o++) u[o].call(r);
|
|
15
14
|
return d;
|
|
16
|
-
}, ee = (i, e, r, d,
|
|
17
|
-
var m, c, s, a = e & 7, v = !1, f = 0, x = i[f] || (i[f] = []), p = a && (
|
|
18
|
-
G(
|
|
15
|
+
}, ee = (i, e, r, d, o, u) => {
|
|
16
|
+
var m, c, s, a = e & 7, v = !1, f = 0, x = i[f] || (i[f] = []), p = a && (o = o.prototype, a < 5 && (a > 3 || !v) && K(o, r));
|
|
17
|
+
G(o, r);
|
|
19
18
|
for (var g = d.length - 1; g >= 0; g--)
|
|
20
|
-
s = J(a, r, c = {}, i[3], x), m = (0, d[g])(
|
|
21
|
-
return V(i,
|
|
19
|
+
s = J(a, r, c = {}, i[3], x), m = (0, d[g])(o, s), c._ = 1, O(m) && (o = m);
|
|
20
|
+
return V(i, o), p && E(o, r, p), v ? a ^ 4 ? u : p : o;
|
|
22
21
|
}, M, y, B;
|
|
23
22
|
M = [R(["api", "wikiPage", "wikiTitle", "currentPage", "wiki", "modal", "preferences"]), Q(
|
|
24
23
|
l.object({
|
|
@@ -66,21 +65,21 @@ let S = class A extends (B = j) {
|
|
|
66
65
|
title: e
|
|
67
66
|
}), e?.page && (e.title = e.page, delete e.page), !e.title && !e.pageId && !e.revision) {
|
|
68
67
|
this.logger.warn("None of the title, pageId or revision provided. Using defaults.");
|
|
69
|
-
const
|
|
68
|
+
const n = new URLSearchParams(window.location.search), w = this.ctx.currentPage.wikiTitle;
|
|
70
69
|
e = {
|
|
71
70
|
...e,
|
|
72
71
|
title: w?.getPrefixedDBKey(),
|
|
73
|
-
revision:
|
|
74
|
-
pageId:
|
|
72
|
+
revision: n.has("oldid") ? Number(n.get("oldid")) : void 0,
|
|
73
|
+
pageId: n.has("curid") ? Number(n.get("curid")) : void 0
|
|
75
74
|
};
|
|
76
75
|
}
|
|
77
76
|
if (!e.revision && !e.pageId && e.title) {
|
|
78
|
-
const
|
|
79
|
-
|
|
77
|
+
const n = this.ctx.wikiTitle.resolveSpecialPageTarget(e.title);
|
|
78
|
+
n && n.title.getNamespaceId() >= 0 && (e.title = n.title.getPrefixedDBKey(), e.section ??= n.section);
|
|
80
79
|
}
|
|
81
|
-
const r = await this.ctx.preferences.get("quickEdit.outSideClose"), d = await this.ctx.preferences.get("quickEdit.watchList"),
|
|
80
|
+
const r = await this.ctx.preferences.get("quickEdit.outSideClose"), d = await this.ctx.preferences.get("quickEdit.watchList"), o = typeof e.editSummary == "string" ? e.editSummary : await this.ctx.preferences.get("quickEdit.editSummary"), u = typeof e.editMinor == "boolean" ? e.editMinor : await this.ctx.preferences.get("quickEdit.editMinor"), m = await this.getEditFontOptions(), c = {
|
|
82
81
|
...this.DEFAULT_OPTIONS,
|
|
83
|
-
editSummary:
|
|
82
|
+
editSummary: o,
|
|
84
83
|
editMinor: u,
|
|
85
84
|
...e
|
|
86
85
|
};
|
|
@@ -126,9 +125,9 @@ let S = class A extends (B = j) {
|
|
|
126
125
|
try {
|
|
127
126
|
if (a = await this.getWikiPageFromPayload(c), a.pageInfo.special)
|
|
128
127
|
throw new Error("Special page is not editable");
|
|
129
|
-
} catch (
|
|
128
|
+
} catch (n) {
|
|
130
129
|
s.off(s.Event.Close), s.close(), this.ctx.modal.notify("error", {
|
|
131
|
-
content:
|
|
130
|
+
content: n instanceof Error ? n.message : String(n)
|
|
132
131
|
});
|
|
133
132
|
return;
|
|
134
133
|
}
|
|
@@ -208,15 +207,15 @@ let S = class A extends (B = j) {
|
|
|
208
207
|
h.nochange,
|
|
209
208
|
h.watch,
|
|
210
209
|
h.unwatch
|
|
211
|
-
].map((
|
|
210
|
+
].map((n) => /* @__PURE__ */ t(
|
|
212
211
|
W,
|
|
213
212
|
{
|
|
214
213
|
name: "watchlist",
|
|
215
|
-
value:
|
|
216
|
-
inputProps: { checked: d ===
|
|
217
|
-
children:
|
|
214
|
+
value: n,
|
|
215
|
+
inputProps: { checked: d === n },
|
|
216
|
+
children: n
|
|
218
217
|
},
|
|
219
|
-
|
|
218
|
+
n
|
|
220
219
|
)) })
|
|
221
220
|
] }),
|
|
222
221
|
/* @__PURE__ */ t("div", { style: { display: "flex", gap: "1rem" }, children: [
|
|
@@ -235,12 +234,12 @@ let S = class A extends (B = j) {
|
|
|
235
234
|
label: "Submit",
|
|
236
235
|
keyPress: await this.ctx.preferences.get("quickEdit.keyshortcut.save") || void 0,
|
|
237
236
|
method: () => {
|
|
238
|
-
const
|
|
237
|
+
const n = new FormData(b);
|
|
239
238
|
s.setLoadingState(!0), this.handleSubmit({
|
|
240
239
|
wikiPage: a,
|
|
241
|
-
text:
|
|
242
|
-
summary:
|
|
243
|
-
minor:
|
|
240
|
+
text: n.get("text"),
|
|
241
|
+
summary: n.get("summary"),
|
|
242
|
+
minor: n.get("minor") === "on",
|
|
244
243
|
section: c.section,
|
|
245
244
|
createonly: a.pageid === 0,
|
|
246
245
|
watchlist: d
|
|
@@ -250,7 +249,7 @@ let S = class A extends (B = j) {
|
|
|
250
249
|
}), s.close(), this.ctx.modal.notify("success", {
|
|
251
250
|
title: "Submission Successful",
|
|
252
251
|
content: "Your changes have been saved."
|
|
253
|
-
}),
|
|
252
|
+
}), n.get("reloadAfterSave") && (await z(500), location.reload());
|
|
254
253
|
}).catch((w) => {
|
|
255
254
|
this.ctx.modal.notify("error", {
|
|
256
255
|
title: "Submission Error",
|
|
@@ -262,8 +261,8 @@ let S = class A extends (B = j) {
|
|
|
262
261
|
0
|
|
263
262
|
), s.setOptions({
|
|
264
263
|
beforeClose: () => {
|
|
265
|
-
const
|
|
266
|
-
return (b.querySelector("textarea")?.value || "") ===
|
|
264
|
+
const n = a.revisions[0]?.content || "";
|
|
265
|
+
return (b.querySelector("textarea")?.value || "") === n ? !0 : (this.ctx.modal.confirm(
|
|
267
266
|
{
|
|
268
267
|
className: "is-primary",
|
|
269
268
|
title: "Unsaved Changes",
|
|
@@ -289,25 +288,25 @@ let S = class A extends (B = j) {
|
|
|
289
288
|
modal: s,
|
|
290
289
|
wikiPage: a
|
|
291
290
|
});
|
|
292
|
-
const P = (
|
|
291
|
+
const P = (n) => b.querySelector("textarea")?.value === v ? !0 : (n.preventDefault(), "You have unsaved changes. Are you sure you want to leave?");
|
|
293
292
|
window.addEventListener("beforeunload", P), s.on(s.Event.Close, () => {
|
|
294
293
|
window.removeEventListener("beforeunload", P);
|
|
295
294
|
});
|
|
296
295
|
}
|
|
297
296
|
async handleSubmit(e) {
|
|
298
|
-
const r = e.wikiPage, d = e.summary || "",
|
|
297
|
+
const r = e.wikiPage, d = e.summary || "", o = e.text || "", u = e.minor, m = e.createonly, c = e.watchlist, s = e.section;
|
|
299
298
|
return this.ctx.emit("quick-edit/submit", {
|
|
300
299
|
ctx: this.ctx,
|
|
301
300
|
wikiPage: r,
|
|
302
301
|
summary: d,
|
|
303
|
-
text:
|
|
302
|
+
text: o,
|
|
304
303
|
minor: u,
|
|
305
304
|
createonly: m,
|
|
306
305
|
watchlist: c
|
|
307
306
|
}), r.edit(
|
|
308
307
|
{
|
|
309
308
|
summary: d,
|
|
310
|
-
text:
|
|
309
|
+
text: o,
|
|
311
310
|
watchlist: c,
|
|
312
311
|
section: s
|
|
313
312
|
},
|
|
@@ -371,10 +370,10 @@ let S = class A extends (B = j) {
|
|
|
371
370
|
},
|
|
372
371
|
tooltip: d ? "Quick Edit" : "Not editable",
|
|
373
372
|
onClick: () => {
|
|
374
|
-
const
|
|
373
|
+
const o = new URLSearchParams(window.location.search).get("oldid");
|
|
375
374
|
this.showModal({
|
|
376
375
|
title: r?.getPrefixedText(),
|
|
377
|
-
revision:
|
|
376
|
+
revision: o ? Number(o) : void 0
|
|
378
377
|
});
|
|
379
378
|
}
|
|
380
379
|
});
|
|
@@ -386,8 +385,8 @@ let S = class A extends (B = j) {
|
|
|
386
385
|
y = H(B);
|
|
387
386
|
S = ee(y, 0, "PluginQuickEdit", M, S);
|
|
388
387
|
Z(y, 1, S);
|
|
389
|
-
let
|
|
388
|
+
let le = S;
|
|
390
389
|
export {
|
|
391
|
-
|
|
390
|
+
le as PluginQuickEdit
|
|
392
391
|
};
|
|
393
|
-
//# sourceMappingURL=index-
|
|
392
|
+
//# sourceMappingURL=index-D5zX93bn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-D5zX93bn.js","sources":["../src/utils/sleep.ts","../src/plugins/quick-edit/index.tsx"],"sourcesContent":["export const sleep = (ms: number = 0) =>\n new Promise((resolve) => setTimeout(resolve, ms))\n","import { Inject, InPageEdit, Schema } from '@/InPageEdit'\nimport { IWikiPage } from '@/models/WikiPage'\nimport { WatchlistAction } from '@/models/WikiPage/types/WatchlistAction'\nimport { IPEModal } from '@inpageedit/modal'\nimport { ReactNode } from 'jsx-dom'\nimport { makeCallable } from '@/utils/makeCallable.js'\n\ndeclare module '@/InPageEdit' {\n interface InPageEdit {\n quickEdit: PluginQuickEdit & {\n (...args: Parameters<PluginQuickEdit['showModal']>): ReturnType<PluginQuickEdit['showModal']>\n }\n }\n interface Events {\n 'quick-edit/init-options'(payload: Omit<QuickEditEventPayload, 'modal' | 'wikiPage'>): void\n 'quick-edit/show-modal'(payload: Omit<QuickEditEventPayload, 'wikiPage'>): void\n 'quick-edit/wiki-page'(payload: QuickEditEventPayload): void\n 'quick-edit/edit-notice'(payload: QuickEditEventPayload & { editNotices: ReactNode[] }): void\n 'quick-edit/submit'(payload: QuickEditSubmitPayload & { ctx: InPageEdit }): void\n }\n interface PreferencesMap {\n 'quickEdit.editSummary': string\n 'quickEdit.editMinor': boolean\n 'quickEdit.outSideClose': boolean\n 'quickEdit.watchList': WatchlistAction\n 'quickEdit.keyshortcut.save': string\n 'quickEdit.editFont': string\n }\n}\n\nexport interface QuickEditOptions {\n title: string\n pageId: number\n revision: number\n /**\n * - `undefined` for full article edit\n * - `0` for the first section\n * - `\"new\"` for a new section\n */\n section: number | 'new' | undefined\n editMinor: boolean\n editSummary: string\n createOnly: boolean\n reloadAfterSave: boolean\n}\n\nexport interface QuickEditEventPayload {\n ctx: InPageEdit\n options: QuickEditOptions\n modal: IPEModal\n wikiPage: IWikiPage\n}\n\nexport interface QuickEditSubmitPayload {\n wikiPage: IWikiPage\n text?: string\n summary?: string\n section?: number | 'new' | undefined\n minor?: boolean\n createonly?: boolean\n watchlist?: WatchlistAction\n}\n\n@Inject(['api', 'wikiPage', 'wikiTitle', 'currentPage', 'wiki', 'modal', 'preferences'])\n@RegisterPreferences(\n Schema.object({\n 'quickEdit.editSummary': Schema.string()\n .description('Default edit summary for quick edits')\n .default('[IPE-NEXT] Quick edit'),\n 'quickEdit.editMinor': Schema.boolean()\n .description('Default to checking \"minor edit\" option')\n .default(false),\n 'quickEdit.outSideClose': Schema.boolean()\n .description('Close editor modal by clicking outside')\n .default(true),\n 'quickEdit.watchList': Schema.union([\n Schema.const(WatchlistAction.preferences).description('Follow MW preferences'),\n Schema.const(WatchlistAction.nochange).description('Keep the current watchlist status'),\n Schema.const(WatchlistAction.watch).description('Add the page to watchlist'),\n Schema.const(WatchlistAction.unwatch).description('Remove the page from watchlist'),\n ])\n .description('Watchlist options')\n .default(WatchlistAction.preferences),\n 'quickEdit.keyshortcut.save': Schema.string()\n .default('ctrl-s')\n .description('save button key shortcut (blank to disable)'),\n 'quickEdit.editFont': Schema.union([\n Schema.const('preferences').description('Follow MW preferences'),\n Schema.const('monospace').description('Monospace'),\n Schema.const('sans-serif').description('Sans-serif'),\n Schema.const('serif').description('Serif'),\n Schema.string().description('Custom font (same as CSS `font-family` property)').default(''),\n ])\n .description(\"Font to use in quick edit's textarea\")\n .default('preferences'),\n })\n .description('Quick edit options')\n .extra('category', 'editor')\n)\nexport class PluginQuickEdit extends BasePlugin {\n private readonly DEFAULT_OPTIONS: QuickEditOptions = {\n title: '',\n pageId: 0,\n revision: 0,\n section: undefined,\n editMinor: false,\n editSummary: '',\n createOnly: false,\n reloadAfterSave: true,\n }\n\n constructor(public ctx: InPageEdit) {\n super(ctx, {}, 'quick-edit')\n this.ctx.root.set('quickEdit', makeCallable(this, 'showModal'))\n }\n\n protected start(): Promise<void> | void {\n this.ctx.inject(['toolbox'], (ctx) => {\n this.injectToolbox(ctx)\n ctx.on('dispose', () => {\n this.removeToolbox(ctx)\n })\n })\n }\n\n async showModal(payload?: string | Partial<QuickEditOptions>) {\n if (typeof payload === 'undefined') {\n payload = {}\n } else if (typeof payload === 'string') {\n payload = {\n title: payload,\n } as Partial<QuickEditOptions>\n }\n\n // @ts-expect-error legacy `page` option\n if (payload?.page) {\n // @ts-expect-error\n payload.title = payload.page\n // @ts-expect-error\n delete payload.page\n }\n\n if (!payload.title && !payload.pageId && !payload.revision) {\n this.logger.warn('None of the title, pageId or revision provided. Using defaults.')\n const searchParams = new URLSearchParams(window.location.search)\n const title = this.ctx.currentPage.wikiTitle\n payload = {\n ...payload,\n title: title?.getPrefixedDBKey(),\n revision: searchParams.has('oldid') ? Number(searchParams.get('oldid')) : undefined,\n pageId: searchParams.has('curid') ? Number(searchParams.get('curid')) : undefined,\n }\n }\n\n if (!payload.revision && !payload.pageId && payload.title) {\n const realTarget = this.ctx.wikiTitle.resolveSpecialPageTarget(payload.title)\n if (realTarget && realTarget.title.getNamespaceId() >= 0) {\n payload.title = realTarget.title.getPrefixedDBKey()\n payload.section ??= realTarget.section\n }\n }\n\n const outSideClose = (await this.ctx.preferences.get('quickEdit.outSideClose'))!\n const watchList = (await this.ctx.preferences.get('quickEdit.watchList'))!\n const editSummary =\n typeof payload.editSummary === 'string'\n ? payload.editSummary\n : (await this.ctx.preferences.get('quickEdit.editSummary'))!\n const editMinor =\n typeof payload.editMinor === 'boolean'\n ? payload.editMinor\n : (await this.ctx.preferences.get('quickEdit.editMinor'))!\n const fontOptions = await this.getEditFontOptions()\n\n const options: QuickEditOptions = {\n ...this.DEFAULT_OPTIONS,\n editSummary,\n editMinor,\n ...payload,\n }\n if (!options.editSummary) {\n options.editSummary = (await this.ctx.preferences.get('quickEdit.editSummary')) || ''\n }\n this.ctx.emit('quick-edit/init-options', { ctx: this.ctx, options })\n\n const modal = this.ctx.modal\n .createObject({\n className: 'ipe-quickEdit',\n sizeClass: 'large',\n // backdrop: false,\n // draggable: true,\n center: false,\n outSideClose,\n })\n .init()\n modal.setTitle(\n (\n <>\n Loading: <u>{options.title}</u>\n </>\n ) as HTMLElement\n )\n modal.setContent(\n (\n <section\n className=\"ipe-quickEdit-loading\"\n style={{\n height: '70vh',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <ProgressBar />\n </section>\n ) as HTMLElement\n )\n modal.addButton({\n side: 'right',\n type: 'button',\n className: 'is-danger is-ghost',\n label: 'Cancel',\n method() {\n modal.close()\n },\n })\n modal.show()\n this.ctx.emit('quick-edit/show-modal', { ctx: this.ctx, modal, options })\n\n let wikiPage: IWikiPage\n try {\n wikiPage = await this.getWikiPageFromPayload(options)\n if (wikiPage.pageInfo.special) {\n throw new Error('Special page is not editable')\n }\n } catch (e) {\n modal.off(modal.Event.Close)\n modal.close()\n this.ctx.modal.notify('error', {\n content: e instanceof Error ? e.message : String(e),\n })\n return\n }\n\n const edittingContent = options.section === 'new' ? '' : wikiPage.revisions[0]?.content || ''\n const edittingRevId = wikiPage.revisions[0]?.revid\n const isEdittingOld = edittingRevId && edittingRevId !== wikiPage.lastrevid\n const isCreatingNewSection = options.section === 'new'\n const isCreatingNewPage = wikiPage.pageid === 0\n\n modal.setTitle(\n (\n <>\n {isCreatingNewSection ? 'New section' : `Quick ${isCreatingNewPage ? 'Create' : 'Edit'}`}:{' '}\n <u>{wikiPage.pageInfo.title}</u>\n {isEdittingOld ? ` (Revision ${edittingRevId})` : ''}\n </>\n ) as HTMLElement\n )\n\n const editNotices = [] as ReactNode[]\n // Page not exists\n if (isCreatingNewPage) {\n editNotices.push(\n <MBox title=\"Attention\" type=\"important\">\n <p>This page does not exist.</p>\n </MBox>\n )\n }\n // Edit based on old revision\n if (isEdittingOld) {\n editNotices.push(\n <MBox title=\"Attention\" type=\"warning\">\n <p>\n You are editing a <em>historical version</em>; the content is not the latest!\n </p>\n </MBox>\n )\n }\n this.ctx.emit('quick-edit/edit-notice', {\n ctx: this.ctx,\n options,\n modal,\n wikiPage,\n editNotices,\n })\n\n const editForm = (\n <form className=\"ipe-quickEdit__form\">\n <div className=\"ipe-quickEdit__notices\">{editNotices}</div>\n <div\n className=\"ipe-quickEdit__content\"\n style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}\n >\n {options.section === 'new' && (\n <>\n <InputBox\n label=\"Section title\"\n id=\"summary\"\n name=\"summary\"\n value={''}\n inputProps={{ placeholder: 'Topic for new section, this will be the h2 heading' }}\n />\n </>\n )}\n <textarea\n className={`ipe-quickEdit__textarea ${fontOptions.className}`}\n style={{ fontFamily: fontOptions.fontFamily }}\n name=\"text\"\n id=\"wpTextbox1\"\n >\n {edittingContent}\n </textarea>\n </div>\n <div\n class=\"ipe-quickEdit__options\"\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n marginTop: '1rem',\n }}\n >\n {!isCreatingNewSection && (\n <InputBox label=\"Summary\" id=\"summary\" name=\"summary\" value={options.editSummary} />\n )}\n <div className=\"ipe-input-box\">\n <label htmlFor=\"watchlist\" style={{ display: 'block' }}>\n Watchlist\n </label>\n <div style={{ display: 'flex', gap: '1rem' }}>\n {[\n WatchlistAction.preferences,\n WatchlistAction.nochange,\n WatchlistAction.watch,\n WatchlistAction.unwatch,\n ].map((action) => (\n <RadioBox\n key={action}\n name=\"watchlist\"\n value={action}\n inputProps={{ checked: watchList === action }}\n >\n {action}\n </RadioBox>\n ))}\n </div>\n </div>\n <div style={{ display: 'flex', gap: '1rem' }}>\n <CheckBox name=\"minor\" id=\"minor\" checked={options.editMinor}>\n Minor edit\n </CheckBox>\n <CheckBox name=\"reloadAfterSave\" id=\"reloadAfterSave\" checked={options.reloadAfterSave}>\n Reload after save\n </CheckBox>\n </div>\n </div>\n {/* Debug Info */}\n {import.meta.env.DEV && (\n <div className=\"debug\" style={{ marginTop: '1rem' }}>\n <details>\n <pre>{JSON.stringify(wikiPage.pageInfo, null, 2)}</pre>\n </details>\n </div>\n )}\n </form>\n ) as HTMLFormElement\n modal.setContent(editForm)\n // shamefully fix: make sure the submit button is always the first\n modal.addButton(\n {\n side: 'left',\n className: 'is-primary submit-btn',\n label: 'Submit',\n keyPress: (await this.ctx.preferences.get('quickEdit.keyshortcut.save')) || undefined,\n method: () => {\n const formData = new FormData(editForm)\n console.info(wikiPage, editForm, {\n text: formData.get('text') as string,\n summary: formData.get('summary') as string,\n minor: formData.get('minor') === 'on',\n })\n modal.setLoadingState(true)\n this.handleSubmit({\n wikiPage,\n text: formData.get('text') as string,\n summary: formData.get('summary') as string,\n minor: formData.get('minor') === 'on',\n section: options.section,\n createonly: wikiPage.pageid === 0,\n watchlist: watchList,\n })\n .then(async () => {\n modal.setOptions({\n beforeClose: noop,\n })\n modal.close()\n this.ctx.modal.notify('success', {\n title: 'Submission Successful',\n content: 'Your changes have been saved.',\n })\n if (formData.get('reloadAfterSave')) {\n await sleep(500)\n location.reload()\n }\n })\n .catch((error) => {\n this.ctx.modal.notify('error', {\n title: 'Submission Error',\n content: error instanceof Error ? error.message : String(error),\n })\n modal.setLoadingState(false)\n })\n },\n },\n 0\n )\n modal.setOptions({\n beforeClose: () => {\n const oldStr = wikiPage.revisions[0]?.content || ''\n const newStr = editForm.querySelector('textarea')?.value || ''\n if (newStr === oldStr) {\n return true\n } else {\n this.ctx.modal.confirm(\n {\n className: 'is-primary',\n title: 'Unsaved Changes',\n content:\n 'All edit contents will be lost after closing the modal. Are you sure you want to close?',\n center: true,\n okBtn: {\n label: 'Give Up',\n className: 'is-danger is-ghost',\n },\n cancelBtn: {\n label: 'Continue Editing',\n className: 'is-primary is-ghost',\n },\n },\n (confirmed) => {\n if (confirmed) {\n modal.setOptions({\n beforeClose: noop,\n })\n modal.close()\n }\n return true\n }\n )\n return false\n }\n },\n })\n this.ctx.emit('quick-edit/wiki-page', {\n ctx: this.ctx,\n options,\n modal,\n wikiPage,\n })\n\n const beforeUnload = (e: BeforeUnloadEvent) => {\n if (editForm.querySelector('textarea')?.value === edittingContent) {\n return true\n }\n e.preventDefault()\n return 'You have unsaved changes. Are you sure you want to leave?'\n }\n window.addEventListener('beforeunload', beforeUnload)\n modal.on(modal.Event.Close, () => {\n window.removeEventListener('beforeunload', beforeUnload)\n })\n }\n\n async handleSubmit(payload: QuickEditSubmitPayload) {\n const wikiPage = payload.wikiPage\n const summary = payload.summary || ''\n const text = payload.text || ''\n const minor = payload.minor\n const createonly = payload.createonly\n const watchlist = payload.watchlist\n const section = payload.section\n\n this.ctx.emit('quick-edit/submit', {\n ctx: this.ctx,\n wikiPage,\n summary,\n text,\n minor,\n createonly,\n watchlist,\n })\n\n return wikiPage.edit(\n {\n summary,\n text,\n watchlist,\n section,\n },\n {\n minor,\n createonly,\n }\n )\n }\n\n static readonly BUILT_IN_FONT_OPTIONS = ['preferences', 'monospace', 'sans-serif', 'serif']\n async getEditFontOptions() {\n const prefEditFont = (await this.ctx.preferences.get('quickEdit.editFont'))!\n if (PluginQuickEdit.BUILT_IN_FONT_OPTIONS.includes(prefEditFont)) {\n const editfont =\n prefEditFont === 'preferences'\n ? this.ctx.wiki.userOptions?.editfont || 'monospace'\n : prefEditFont\n return {\n className: `mw-editfont-${editfont}`,\n fontFamily: '',\n }\n } else {\n return {\n className: 'mw-editfont-custom',\n fontFamily: prefEditFont,\n }\n }\n }\n\n async getWikiPageFromPayload(payload: Partial<QuickEditOptions>) {\n if (payload.revision) {\n return this.ctx.wikiPage.newFromRevision(payload.revision, payload.section)\n } else if (payload.pageId) {\n return this.ctx.wikiPage.newFromPageId(payload.pageId, payload.section)\n } else if (payload.title) {\n return this.ctx.wikiPage.newFromTitle(payload.title, false, payload.section)\n }\n throw new Error('Invalid payload')\n }\n\n private async injectToolbox(ctx: InPageEdit) {\n const title = this.ctx.currentPage.wikiTitle\n const canEdit = this.ctx.wiki.hasRight('edit') && title && title.getNamespaceId() >= 0\n ctx.toolbox.addButton({\n id: 'quick-edit',\n group: 'group1',\n index: 0,\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"icon icon-tabler icons-tabler-outline icon-tabler-edit\"\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1\" />\n <path d=\"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z\" />\n <path d=\"M16 5l3 3\" />\n </svg>\n ) as HTMLElement,\n buttonProps: {\n disabled: !canEdit,\n },\n tooltip: canEdit ? 'Quick Edit' : 'Not editable',\n onClick: () => {\n const revision = new URLSearchParams(window.location.search).get('oldid')\n this.showModal({\n title: title?.getPrefixedText(),\n revision: revision ? Number(revision) : undefined,\n })\n },\n })\n }\n\n protected removeToolbox(ctx: InPageEdit) {\n ctx.toolbox.removeButton('quick-edit')\n }\n}\n"],"names":["sleep","ms","resolve","_PluginQuickEdit_decorators","_init","_a","Inject","RegisterPreferences","Schema","WatchlistAction","_PluginQuickEdit","BasePlugin","ctx","makeCallable","payload","searchParams","title","realTarget","outSideClose","watchList","editSummary","editMinor","fontOptions","options","modal","jsxs","Fragment","jsx","ProgressBar","wikiPage","e","edittingContent","edittingRevId","isEdittingOld","isCreatingNewSection","isCreatingNewPage","editNotices","MBox","editForm","InputBox","action","RadioBox","CheckBox","formData","noop","error","oldStr","confirmed","beforeUnload","summary","text","minor","createonly","watchlist","section","prefEditFont","canEdit","revision","__decoratorStart","__decorateElement","__runInitializers","PluginQuickEdit"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-DD5CVCfD.js","sources":["../src/components/TwinSwapInput/index.tsx"],"sourcesContent":["import { JSX } from 'jsx-dom/jsx-runtime'\
|
|
1
|
+
{"version":3,"file":"index-DD5CVCfD.js","sources":["../src/components/TwinSwapInput/index.tsx"],"sourcesContent":["import { JSX } from 'jsx-dom/jsx-runtime'\nimport styles from './styles.module.sass'\n\nexport type TwinSwapInputProps = {\n inputs: [TwinSwapInputInput, TwinSwapInputInput]\n enableSwap?: boolean\n} & JSX.IntrinsicElements['div']\n\nexport interface TwinSwapInputInput {\n label?: string\n id?: string\n name: string\n value?: string\n disabled?: boolean\n required?: boolean\n inputProps?: Omit<JSX.IntrinsicElements['input'], 'name' | 'value'>\n}\n\nexport type TwinSwapElement = HTMLDivElement & {\n swap: () => void\n toggleEnableSwap: (enable?: boolean) => void\n}\n\nexport const TwinSwapInput = (props: TwinSwapInputProps) => {\n const { inputs, enableSwap = true, ...rest } = props\n\n const normalizedInputs =\n inputs?.length === 2\n ? inputs\n : ([inputs?.[0] ?? {}, inputs?.[1] ?? {}] as [TwinSwapInputInput, TwinSwapInputInput])\n\n // 内部稳定引用\n const inputRefs: [HTMLInputElement | null, HTMLInputElement | null] = [null, null]\n\n let swapCount = 0\n let swapBtnRef: HTMLButtonElement | null = null\n let svgRef: SVGElement | null = null\n\n const checkIfInputDisabled = () => inputRefs.some((el) => el && el.disabled)\n\n const swap = () => {\n if (!inputRefs[0] || !inputRefs[1]) return\n if (checkIfInputDisabled()) return\n\n const a = inputRefs[0]\n const b = inputRefs[1]\n const va = a.value\n const vb = b.value\n a.value = vb\n b.value = va\n\n // 与原实现一致:派发 change(不冒泡)\n a.dispatchEvent(new Event('change'))\n b.dispatchEvent(new Event('change'))\n\n swapCount++\n if (svgRef) {\n svgRef.style.transform = `rotateY(${swapCount * -180}deg)`\n svgRef.style.transition = 'transform 200ms ease'\n }\n }\n\n const toggleEnableSwap = (enable?: boolean) => {\n if (!swapBtnRef) return\n const next = enable ?? !swapBtnRef.disabled\n swapBtnRef.disabled = !next\n if (next) {\n // 与原实现一致:开启时把 inputs 解禁\n inputRefs.forEach((el) => {\n if (el) el.disabled = false\n })\n }\n }\n\n const swapButton = (\n <button\n type=\"button\"\n aria-label=\"Swap values\"\n onClick={swap}\n disabled={checkIfInputDisabled() || !enableSwap}\n ref={(el) => (swapBtnRef = el as HTMLButtonElement)}\n >\n <svg\n ref={(el) => (svgRef = el as unknown as SVGElement)}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"icon-tabler icons-tabler-outline icon-tabler-transfer\"\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M20 10h-16l5.5 -6\" />\n <path d=\"M4 14h16l-5.5 6\" />\n </svg>\n </button>\n ) as HTMLButtonElement\n\n const container = (\n <div className={`twin-swap-input ${styles.twinSwapInput}`} {...rest}>\n {normalizedInputs.map((input, index) => {\n const { label, id, name, value, disabled, required, inputProps } = input\n const isLeft = index === 0\n const inputId = id || name\n\n return (\n <div\n className={`${styles.inputWrapper} ${isLeft ? styles.inputLeft : styles.inputRight}`}\n >\n {label && <label htmlFor={inputId}>{label}</label>}\n <input\n ref={(el) => (inputRefs[index] = el as HTMLInputElement)}\n type=\"text\"\n id={inputId}\n name={name}\n value={value}\n disabled={disabled}\n required={required}\n {...inputProps}\n />\n </div>\n )\n })}\n\n <div className={styles.swapButton}>{swapButton}</div>\n </div>\n ) as TwinSwapElement\n\n container.swap = swap\n container.toggleEnableSwap = toggleEnableSwap\n\n return container\n}\n"],"names":["TwinSwapInput","props","inputs","enableSwap","rest","normalizedInputs","inputRefs","swapCount","swapBtnRef","svgRef","checkIfInputDisabled","el","swap","a","b","va","vb","toggleEnableSwap","enable","next","swapButton","jsx","jsxs","container","styles","input","index","label","id","name","value","disabled","required","inputProps","isLeft","inputId"],"mappings":"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"}
|
|
@@ -5000,8 +5000,10 @@ function us(r) {
|
|
|
5000
5000
|
async delete(i, s) {
|
|
5001
5001
|
return this.api.postWithEditToken({
|
|
5002
5002
|
action: "delete",
|
|
5003
|
-
|
|
5003
|
+
title: this.pageInfo.title || void 0,
|
|
5004
|
+
pageid: this.pageInfo.pageid || void 0,
|
|
5004
5005
|
reason: i,
|
|
5006
|
+
deletetalk: s?.deletetalk,
|
|
5005
5007
|
...s
|
|
5006
5008
|
});
|
|
5007
5009
|
}
|
|
@@ -5615,7 +5617,7 @@ class ce extends F {
|
|
|
5615
5617
|
constructor(e) {
|
|
5616
5618
|
super({
|
|
5617
5619
|
name: "InPageEdit"
|
|
5618
|
-
}), this.version = "0.12.
|
|
5620
|
+
}), this.version = "0.12.1", this.Endpoints = Ce, this.schema = ye, this.config = de(ce.DEFAULT_CONFIG, e), this.logger = Xr({
|
|
5619
5621
|
name: "IPE",
|
|
5620
5622
|
color: "#33aaff",
|
|
5621
5623
|
level: this.config.logLevel
|
|
@@ -5659,25 +5661,24 @@ class ce extends F {
|
|
|
5659
5661
|
// TODO: 这里不应该硬编码,暂时先这样
|
|
5660
5662
|
async #r() {
|
|
5661
5663
|
[
|
|
5662
|
-
import("./index-
|
|
5663
|
-
import("./index-
|
|
5664
|
+
import("./index-B3FUDhxl.js").then(({ PluginAnalytics: t }) => t),
|
|
5665
|
+
import("./index-zHTGCjfF.js").then(
|
|
5664
5666
|
({ PluginInArticleLinks: t }) => t
|
|
5665
5667
|
),
|
|
5666
|
-
import("./index-
|
|
5667
|
-
import("./index-
|
|
5668
|
+
import("./index-B3YJdjxo.js").then(({ PluginPluginStore: t }) => t),
|
|
5669
|
+
import("./index-eARjMi7f.js").then(
|
|
5668
5670
|
({ PluginPreferencesUI: t }) => t
|
|
5669
5671
|
),
|
|
5670
|
-
import("./index-
|
|
5671
|
-
import("./index-
|
|
5672
|
-
import("./index-
|
|
5673
|
-
import("./index-CJFePavo.js").then(
|
|
5672
|
+
import("./index-D5zX93bn.js").then(({ PluginQuickEdit: t }) => t),
|
|
5673
|
+
import("./index-BvuaLEFc.js").then(({ PluginQuickMove: t }) => t),
|
|
5674
|
+
import("./index-Dnmv-xDn.js").then(
|
|
5674
5675
|
({ PluginQuickPreview: t }) => t
|
|
5675
5676
|
),
|
|
5676
|
-
import("./index-
|
|
5677
|
-
import("./index-
|
|
5677
|
+
import("./index-Ccr3YhkP.js").then(({ PluginQuickDiff: t }) => t),
|
|
5678
|
+
import("./index-Bd70aDMT.js").then(
|
|
5678
5679
|
({ PluginQuickRedirect: t }) => t
|
|
5679
5680
|
),
|
|
5680
|
-
import("./index-
|
|
5681
|
+
import("./index-BRjEc8b8.js").then(({ PluginToolbox: t }) => t)
|
|
5681
5682
|
].forEach(async (t) => {
|
|
5682
5683
|
this.plugin(await t);
|
|
5683
5684
|
});
|
|
@@ -5825,4 +5826,4 @@ export {
|
|
|
5825
5826
|
Wr as m,
|
|
5826
5827
|
Ts as p
|
|
5827
5828
|
};
|
|
5828
|
-
//# sourceMappingURL=index-
|
|
5829
|
+
//# sourceMappingURL=index-DgQNTfPR.js.map
|