@inpageedit/core 0.4.1 → 0.5.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/dist/ActionButton-BgbTKTg7.js +24 -0
- package/dist/ActionButton-BgbTKTg7.js.map +1 -0
- package/dist/{RadioBox-BZFhTEo5.js → RadioBox-CaA8VgLu.js} +16 -16
- package/dist/{RadioBox-BZFhTEo5.js.map → RadioBox-CaA8VgLu.js.map} +1 -1
- package/dist/components/TwinSwapInput/index.d.ts +1 -0
- package/dist/components/index.js +21 -22
- package/dist/components/index.js.map +1 -1
- package/dist/index-BIgWRk98.js +4826 -0
- package/dist/index-BIgWRk98.js.map +1 -0
- package/dist/index-BMmKF_kG.js +165 -0
- package/dist/index-BMmKF_kG.js.map +1 -0
- package/dist/{index-BPsDFq9U.js → index-Bh70Udzi.js} +14 -13
- package/dist/index-Bh70Udzi.js.map +1 -0
- package/dist/index-CBphMyYJ.js +5170 -0
- package/dist/index-CBphMyYJ.js.map +1 -0
- package/dist/{index-X1X416tZ.js → index-CJLKdEqr.js} +41 -25
- package/dist/index-CJLKdEqr.js.map +1 -0
- package/dist/{index-BsYzf3Yw.js → index-CX5H4xCe.js} +12 -12
- package/dist/index-CX5H4xCe.js.map +1 -0
- package/dist/{index-BByzm2Fz.js → index-DNm9SNqM.js} +128 -120
- package/dist/{index-BByzm2Fz.js.map → index-DNm9SNqM.js.map} +1 -1
- package/dist/{index-Ch5DJDZZ.js → index-Djd6Ddcm.js} +125 -121
- package/dist/index-Djd6Ddcm.js.map +1 -0
- package/dist/index-Dk3xR25y.js +96 -0
- package/dist/index-Dk3xR25y.js.map +1 -0
- package/dist/{index-D-zQLFuZ.js → index-QF8lvEam.js} +14 -21
- package/dist/index-QF8lvEam.js.map +1 -0
- package/dist/index.js +9 -4639
- package/dist/index.js.map +1 -1
- package/dist/models/WikiPage/index.d.ts +5 -4
- package/dist/plugins/BasePlugin.d.ts +12 -4
- package/dist/plugins/_debug/index.d.ts +1 -1
- package/dist/plugins/quick-diff/PluginQuickDiffCore.d.ts +2 -1
- package/dist/plugins/quick-edit/index.d.ts +2 -1
- package/dist/plugins/quick-move/index.d.ts +1 -1
- package/dist/plugins/quick-preview/index.d.ts +4 -3
- package/dist/plugins/quick-redirect/index.d.ts +1 -1
- package/dist/plugins/toolbox/index.d.ts +2 -2
- package/dist/services/ModalService/IPEModal.d.ts +235 -0
- package/dist/services/ModalService/index.d.ts +35 -0
- package/dist/style.css +1 -1
- package/dist/utils/interpolate.d.ts +20 -0
- package/dist/utils/interpolate.spec.d.ts +1 -0
- package/lib/index.umd.js +32 -32
- package/lib/index.umd.js.map +1 -1
- package/lib/style.css +1 -1
- package/package.json +24 -25
- package/dist/ActionButton-ByMKIthQ.js +0 -24
- package/dist/ActionButton-ByMKIthQ.js.map +0 -1
- package/dist/index-BPsDFq9U.js.map +0 -1
- package/dist/index-BTngTj1f.js +0 -4682
- package/dist/index-BTngTj1f.js.map +0 -1
- package/dist/index-BsYzf3Yw.js.map +0 -1
- package/dist/index-Ch5DJDZZ.js.map +0 -1
- package/dist/index-Cq9xxVsu.js +0 -149
- package/dist/index-Cq9xxVsu.js.map +0 -1
- package/dist/index-D-zQLFuZ.js.map +0 -1
- package/dist/index-HyxA2rYz.js +0 -87
- package/dist/index-HyxA2rYz.js.map +0 -1
- package/dist/index-X1X416tZ.js.map +0 -1
- package/dist/services/SsiModalService.d.ts +0 -36
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { j as s } from "./index-CvhkVj_L.js";
|
|
2
|
-
import {
|
|
3
|
-
import { A as P } from "./ActionButton-
|
|
2
|
+
import { B as I, S as b, I as v, a as S } from "./index-CBphMyYJ.js";
|
|
3
|
+
import { A as P } from "./ActionButton-BgbTKTg7.js";
|
|
4
4
|
var j = Object.create, h = Object.defineProperty, A = Object.getOwnPropertyDescriptor, y = (r, e) => (e = Symbol[r]) ? e : Symbol.for("Symbol." + r), x = (r) => {
|
|
5
5
|
throw TypeError(r);
|
|
6
|
-
}, O = (r, e, t) => e in r ? h(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, R = (r, e) => h(r, "name", { value: e, configurable: !0 }), V = (r) => [, , , j(r?.[y("metadata")] ?? null)], z = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], C = (r) => r !== void 0 && typeof r != "function" ? x("Function expected") : r, G = (r, e, t, n, i) => ({ kind: z[r], name: e, metadata: n, addInitializer: (a) => t._ ? x("Already initialized") : i.push(C(a || null)) }),
|
|
6
|
+
}, O = (r, e, t) => e in r ? h(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, R = (r, e) => h(r, "name", { value: e, configurable: !0 }), V = (r) => [, , , j(r?.[y("metadata")] ?? null)], z = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], C = (r) => r !== void 0 && typeof r != "function" ? x("Function expected") : r, G = (r, e, t, n, i) => ({ kind: z[r], name: e, metadata: n, addInitializer: (a) => t._ ? x("Already initialized") : i.push(C(a || null)) }), N = (r, e) => O(e, y("metadata"), r[3]), k = (r, e, t, n) => {
|
|
7
7
|
for (var i = 0, a = r[e >> 1], o = a && a.length; i < o; i++) a[i].call(t);
|
|
8
8
|
return n;
|
|
9
|
-
},
|
|
9
|
+
}, B = (r, e, t, n, i, a) => {
|
|
10
10
|
var o, g, p, l = e & 7, m = !1, _ = 0, E = r[_] || (r[_] = []), d = l && (i = i.prototype, l < 5 && (l > 3 || !m) && A(i, t));
|
|
11
11
|
R(i, t);
|
|
12
12
|
for (var c = n.length - 1; c >= 0; c--)
|
|
13
13
|
p = G(l, t, g = {}, r[3], E), o = (0, n[c])(i, p), g._ = 1, C(o) && (i = o);
|
|
14
|
-
return
|
|
14
|
+
return N(r, i), d && h(i, t, d), m ? l ^ 4 ? a : d : i;
|
|
15
15
|
}, D, f, w;
|
|
16
16
|
D = [S(["sitemeta", "storage"])];
|
|
17
17
|
class u extends (w = I) {
|
|
@@ -35,8 +35,8 @@ class u extends (w = I) {
|
|
|
35
35
|
}), this.registerCustomConfig(
|
|
36
36
|
"about",
|
|
37
37
|
b.object({
|
|
38
|
-
about: b.
|
|
39
|
-
|
|
38
|
+
about: b.const(
|
|
39
|
+
/* @__PURE__ */ s("div", { className: "prose", children: [
|
|
40
40
|
/* @__PURE__ */ s("h2", { children: "✏️ InPageEdit NEXT" }),
|
|
41
41
|
/* @__PURE__ */ s("i", { children: [
|
|
42
42
|
"v",
|
|
@@ -44,14 +44,7 @@ class u extends (w = I) {
|
|
|
44
44
|
] }),
|
|
45
45
|
/* @__PURE__ */ s("h2", { children: "Portal" }),
|
|
46
46
|
/* @__PURE__ */ s("div", { style: "display: flex; flex-direction: column; gap: 1rem", children: [
|
|
47
|
-
/* @__PURE__ */ s(
|
|
48
|
-
P,
|
|
49
|
-
{
|
|
50
|
-
href: "https://www.ipe.wiki",
|
|
51
|
-
style: { display: "block", width: "100%" },
|
|
52
|
-
children: "Official Website & Help Center"
|
|
53
|
-
}
|
|
54
|
-
),
|
|
47
|
+
/* @__PURE__ */ s(P, { href: "https://www.ipe.wiki", style: { display: "block", width: "100%" }, children: "Official Website & Help Center" }),
|
|
55
48
|
/* @__PURE__ */ s(
|
|
56
49
|
P,
|
|
57
50
|
{
|
|
@@ -77,12 +70,12 @@ class u extends (w = I) {
|
|
|
77
70
|
/* @__PURE__ */ s("hr", {}),
|
|
78
71
|
/* @__PURE__ */ s("p", { children: "🚀 Modular, Extensible Supercharged Plugin for MediaWiki." }),
|
|
79
72
|
/* @__PURE__ */ s("p", { children: "InPageEdit-NEXT Copyright © 2025-present dragon-fish" })
|
|
80
|
-
] })
|
|
81
|
-
).
|
|
73
|
+
] })
|
|
74
|
+
).role("raw-html")
|
|
82
75
|
}).description(""),
|
|
83
76
|
"about",
|
|
84
77
|
{}
|
|
85
|
-
), import("./index-
|
|
78
|
+
), import("./index-BIgWRk98.js").then((e) => {
|
|
86
79
|
const t = this.ctx.plugin(e.PluginPreferencesUI);
|
|
87
80
|
this.addDisposeHandler(() => {
|
|
88
81
|
t.dispose();
|
|
@@ -147,9 +140,9 @@ class u extends (w = I) {
|
|
|
147
140
|
}
|
|
148
141
|
}
|
|
149
142
|
f = V(w);
|
|
150
|
-
u =
|
|
151
|
-
|
|
143
|
+
u = B(f, 0, "PluginPreferences", D, u);
|
|
144
|
+
k(f, 1, u);
|
|
152
145
|
export {
|
|
153
146
|
u as PluginPreferences
|
|
154
147
|
};
|
|
155
|
-
//# sourceMappingURL=index-
|
|
148
|
+
//# sourceMappingURL=index-QF8lvEam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-QF8lvEam.js","sources":["../src/plugins/preferences/index.tsx"],"sourcesContent":["import { Inject, InPageEdit, Schema } from '@/InPageEdit'\r\nimport { IPEStorageItem, IPEStorageManager } from '@/services/StorageService'\r\n\r\ndeclare module '@/InPageEdit' {\r\n export interface InPageEdit {\r\n preferences: PluginPreferences\r\n }\r\n}\r\n\r\nexport interface InPageEditPreferenceUICategory {\r\n name: string\r\n label: string\r\n description?: string\r\n index?: number\r\n}\r\n\r\nexport interface InPageEditPreferenceUIRegistryItem {\r\n name: string\r\n schema: Schema\r\n defaults: Record<string, any>\r\n category: string\r\n}\r\n\r\n@Inject(['sitemeta', 'storage'])\r\nexport class PluginPreferences extends BasePlugin {\r\n private db: IPEStorageManager<any>\r\n public customRegistries: InPageEditPreferenceUIRegistryItem[] = []\r\n public categoryDefinitions: InPageEditPreferenceUICategory[] = []\r\n private _defaultPreferences: Record<string, any> = {}\r\n\r\n constructor(public ctx: InPageEdit) {\r\n super(ctx, {}, 'preferences')\r\n this.db = ctx.storage.createDatabse<any>('preferences', Infinity)\r\n this.ctx.set('preferences', this)\r\n }\r\n\r\n async start() {\r\n this.defineCategory({\r\n name: 'general',\r\n label: 'General',\r\n description: 'General settings',\r\n })\r\n this.defineCategory({\r\n name: 'edit',\r\n label: 'Editing',\r\n description: 'Settings related to editing content',\r\n })\r\n this.defineCategory({\r\n name: 'about',\r\n label: 'About',\r\n description: 'About InPageEdit',\r\n index: 99,\r\n })\r\n\r\n this.registerCustomConfig(\r\n 'about',\r\n Schema.object({\r\n about: Schema.const(\r\n <div className=\"prose\">\r\n <h2>✏️ InPageEdit NEXT</h2>\r\n <i>v{this.ctx.version}</i>\r\n <h2>Portal</h2>\r\n <div style=\"display: flex; flex-direction: column; gap: 1rem\">\r\n <ActionButton href=\"https://www.ipe.wiki\" style={{ display: 'block', width: '100%' }}>\r\n Official Website & Help Center\r\n </ActionButton>\r\n <ActionButton\r\n href=\"https://www.ipe.wiki/update/\"\r\n style={{ display: 'block', width: '100%' }}\r\n >\r\n Update Logs\r\n </ActionButton>\r\n </div>\r\n <h2>Join us</h2>\r\n <ul>\r\n <li>\r\n <strong>GitHub</strong>:{' '}\r\n <a href=\"https://github.com/inpageedit/inpageedit-next\" target=\"_blank\">\r\n inpageedit/inpageedit-next\r\n </a>\r\n </li>\r\n <li>\r\n <strong>QQ Group</strong>: 1026023666\r\n </li>\r\n </ul>\r\n <hr />\r\n <p>🚀 Modular, Extensible Supercharged Plugin for MediaWiki.</p>\r\n <p>InPageEdit-NEXT Copyright © 2025-present dragon-fish</p>\r\n </div>\r\n ).role('raw-html'),\r\n }).description(''),\r\n 'about',\r\n {}\r\n )\r\n\r\n import('./ui/index').then((module) => {\r\n const fork = this.ctx.plugin(module.PluginPreferencesUI)\r\n this.addDisposeHandler(() => {\r\n fork.dispose()\r\n })\r\n })\r\n }\r\n\r\n get<T = any>(key: string, fallback?: () => T | Promise<T>): Promise<T | null> {\r\n fallback ||= () => {\r\n const defaultValue = this.getDefaultValue(key)\r\n this.logger.info('default value used', defaultValue)\r\n return defaultValue as T\r\n }\r\n const value = this.db.get(key, undefined, fallback)\r\n return value\r\n }\r\n\r\n getDefaultValue(key: string) {\r\n return (this._defaultPreferences[key] ??= this.loadDefaultConfigs()[key])\r\n }\r\n\r\n set<T = any>(key: string, value: T): Promise<IPEStorageItem<T> | void> {\r\n const defaultValue = this.getDefaultValue(key)\r\n if (value === defaultValue) {\r\n return this.db.delete(key)\r\n } else {\r\n return this.db.set(key, value)\r\n }\r\n }\r\n\r\n async getAll() {\r\n const data = this.loadDefaultConfigs()\r\n await this.db.iterate((value: IPEStorageItem, key: string) => {\r\n data[key] = value\r\n })\r\n return data\r\n }\r\n\r\n private loadDefaultConfigs() {\r\n const data = {} as Record<string, any>\r\n this.getConfigRegistries().forEach((item) => {\r\n item.defaults &&\r\n Object.entries(item.defaults).forEach(([key, val]) => {\r\n data[key] = val\r\n this._defaultPreferences[key] = val\r\n })\r\n })\r\n return data\r\n }\r\n\r\n registerCustomConfig(\r\n name: string,\r\n schema: Schema,\r\n category: string,\r\n defaults: Record<string, any>\r\n ) {\r\n this.customRegistries.push({\r\n name,\r\n schema,\r\n category,\r\n defaults,\r\n })\r\n return this\r\n }\r\n\r\n getConfigRegistries(category?: string): InPageEditPreferenceUIRegistryItem[] {\r\n return Array.from(this.ctx.registry.entries())\r\n .map<{\r\n name: string\r\n schema: Schema\r\n defaults: Record<string, any>\r\n }>(([plugin, fork]) => {\r\n if (plugin === null) {\r\n return {\r\n name: 'root',\r\n schema: (InPageEdit as any)?.PreferencesSchema || null,\r\n defaults: (InPageEdit as any)?.PreferencesDefaults || {},\r\n }\r\n } else {\r\n return {\r\n name: plugin.name,\r\n schema: (plugin as any)?.PreferencesSchema || null,\r\n defaults: (plugin as any)?.PreferencesDefaults || {},\r\n }\r\n }\r\n })\r\n .filter((item) => item.schema !== null)\r\n .map((item) => {\r\n return {\r\n ...item,\r\n category: item.schema.meta.category || 'general',\r\n }\r\n })\r\n .concat(this.customRegistries)\r\n .filter((item) => !category || item.category === category)\r\n }\r\n\r\n defineCategory(category: InPageEditPreferenceUICategory) {\r\n const index = this.categoryDefinitions.findIndex((tab) => tab.name === category.name)\r\n if (index < 0) {\r\n this.categoryDefinitions.push(category)\r\n } else {\r\n this.categoryDefinitions[index] = category\r\n }\r\n this.categoryDefinitions.sort((a, b) => {\r\n return (a.index ?? 0) - (b.index ?? 0)\r\n })\r\n return this\r\n }\r\n\r\n getConfigCategories() {\r\n return this.categoryDefinitions\r\n }\r\n}\r\n"],"names":["_PluginPreferences_decorators","_init","_a","Inject","PluginPreferences","BasePlugin","ctx","Schema","jsxs","jsx","ActionButton","module","fork","key","fallback","defaultValue","value","data","item","val","name","schema","category","defaults","plugin","InPageEdit","index","tab","a","b","__decoratorStart","__decorateElement","__runInitializers"],"mappings":"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"}
|