@inpageedit/core 0.2.0 → 0.3.0

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.
Files changed (62) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +55 -55
  3. package/dist/ActionButton-ByMKIthQ.js +24 -0
  4. package/dist/ActionButton-ByMKIthQ.js.map +1 -0
  5. package/dist/{InputBox-B-BAGjgs.js → InputBox-FIzJ-rPN.js} +2 -2
  6. package/dist/InputBox-FIzJ-rPN.js.map +1 -0
  7. package/dist/Preferences-Bg3J5Ur9.js.map +1 -1
  8. package/dist/{RadioBox-CQ9xz5nk.js → RadioBox-BZFhTEo5.js} +2 -2
  9. package/dist/RadioBox-BZFhTEo5.js.map +1 -0
  10. package/dist/components/ActionButton.d.ts +6 -9
  11. package/dist/components/SchemaForm/index.d.ts +142 -0
  12. package/dist/components/index.d.ts +7 -7
  13. package/dist/components/index.js +6 -6
  14. package/dist/components/index.js.map +1 -1
  15. package/dist/{index-Do5exwYg.js → index-BByzm2Fz.js} +172 -171
  16. package/dist/index-BByzm2Fz.js.map +1 -0
  17. package/dist/{index-wYcxrK6G.js → index-BPsDFq9U.js} +2 -2
  18. package/dist/index-BPsDFq9U.js.map +1 -0
  19. package/dist/{index-vjK9PEyV.js → index-BsYzf3Yw.js} +2 -2
  20. package/dist/index-BsYzf3Yw.js.map +1 -0
  21. package/dist/{index-B02kaEy5.js → index-CMqk2ovP.js} +13 -14
  22. package/dist/index-CMqk2ovP.js.map +1 -0
  23. package/dist/{index-CavCnbOz.js → index-Ch5DJDZZ.js} +4 -4
  24. package/dist/index-Ch5DJDZZ.js.map +1 -0
  25. package/dist/index-Cq1Q9Xau.js +4635 -0
  26. package/dist/index-Cq1Q9Xau.js.map +1 -0
  27. package/dist/{index-C6PwuH_U.js → index-Cq9xxVsu.js} +13 -24
  28. package/dist/index-Cq9xxVsu.js.map +1 -0
  29. package/dist/{index-D3QOS3-Q.js → index-CvhkVj_L.js} +81 -68
  30. package/dist/index-CvhkVj_L.js.map +1 -0
  31. package/dist/{index-BIFsoDor.js → index-HyxA2rYz.js} +4 -4
  32. package/dist/index-HyxA2rYz.js.map +1 -0
  33. package/dist/{index-D1nQg-aN.js → index-X1X416tZ.js} +36 -35
  34. package/dist/index-X1X416tZ.js.map +1 -0
  35. package/dist/index.js +2976 -2909
  36. package/dist/index.js.map +1 -1
  37. package/dist/plugins/preferences/{PluginPreferencesUI.d.ts → ui/index.d.ts} +3 -2
  38. package/dist/sleep-DpyIipK-.js.map +1 -1
  39. package/dist/style.css +1 -1
  40. package/dist/{plugins/preferences/components/hooks.d.ts → utils/vueHooks.d.ts} +1 -1
  41. package/lib/index.umd.js +57 -2620
  42. package/lib/index.umd.js.map +1 -0
  43. package/lib/style.css +1 -1
  44. package/package.json +6 -2
  45. package/dist/ActionButton-DkQu8dfH.js +0 -33
  46. package/dist/ActionButton-DkQu8dfH.js.map +0 -1
  47. package/dist/InputBox-B-BAGjgs.js.map +0 -1
  48. package/dist/PluginPreferencesUI-CHdAGK8T.js +0 -33922
  49. package/dist/PluginPreferencesUI-CHdAGK8T.js.map +0 -1
  50. package/dist/RadioBox-CQ9xz5nk.js.map +0 -1
  51. package/dist/i18n/languages.json +0 -1527
  52. package/dist/index-B02kaEy5.js.map +0 -1
  53. package/dist/index-BIFsoDor.js.map +0 -1
  54. package/dist/index-C6PwuH_U.js.map +0 -1
  55. package/dist/index-CavCnbOz.js.map +0 -1
  56. package/dist/index-D1nQg-aN.js.map +0 -1
  57. package/dist/index-D3QOS3-Q.js.map +0 -1
  58. package/dist/index-Do5exwYg.js.map +0 -1
  59. package/dist/index-vjK9PEyV.js.map +0 -1
  60. package/dist/index-wYcxrK6G.js.map +0 -1
  61. package/dist/utils/schemaValidator.d.ts +0 -12
  62. package/lib/i18n/languages.json +0 -1527
@@ -1,17 +1,20 @@
1
- import { j as e, P as h } from "./index-D3QOS3-Q.js";
2
- import { BasePlugin as m } from "./index.js";
3
- import { T as u } from "./index-wYcxrK6G.js";
4
- import { I as w, C as f } from "./InputBox-B-BAGjgs.js";
5
- import { A as g } from "./ActionButton-DkQu8dfH.js";
6
- const l = class l extends m {
1
+ import { j as e, P as l } from "./index-CvhkVj_L.js";
2
+ import { BasePlugin as d } from "./index.js";
3
+ import { T as h } from "./index-BPsDFq9U.js";
4
+ import { I as m, C as u } from "./InputBox-FIzJ-rPN.js";
5
+ import { A as g } from "./ActionButton-ByMKIthQ.js";
6
+ class b extends d {
7
7
  constructor(t) {
8
8
  super(t, {}, "quick-redirect"), this.ctx = t;
9
9
  }
10
+ static {
11
+ this.inject = ["api", "wikiPage", "modal"];
12
+ }
10
13
  start() {
11
14
  this.ctx.set("quickRedirect", this.quickRedirect.bind(this)), this.ctx.set("redirectPage", this.redirectPage.bind(this));
12
15
  const t = window.mw?.config.get("wgPageName") || "", r = window.mw?.config.get("wgIsProbablyEditable");
13
- this.ctx.inject(["toolbox"], (o) => {
14
- this.ctx = o, o.toolbox.addButton({
16
+ this.ctx.inject(["toolbox"], (i) => {
17
+ this.ctx = i, i.toolbox.addButton({
15
18
  id: "quick-redirect",
16
19
  icon: /* @__PURE__ */ e(
17
20
  "svg",
@@ -44,8 +47,8 @@ const l = class l extends m {
44
47
  } : {}
45
48
  );
46
49
  }
47
- }), this.addDisposeHandler((i) => {
48
- i.toolbox.removeButton("quick-redirect");
50
+ }), this.addDisposeHandler((o) => {
51
+ o.toolbox.removeButton("quick-redirect");
49
52
  });
50
53
  });
51
54
  }
@@ -54,45 +57,45 @@ const l = class l extends m {
54
57
  quickRedirect(t) {
55
58
  const r = this.ctx.modal.createObject({
56
59
  title: "Quick Redirect",
57
- content: /* @__PURE__ */ e(h, {}),
60
+ content: /* @__PURE__ */ e(l, {}),
58
61
  className: "quick-redirect",
59
62
  sizeClass: "medium",
60
63
  center: !0
61
64
  }).init();
62
- let o = null;
65
+ let i = null;
63
66
  return r.setContent(
64
67
  /* @__PURE__ */ e(
65
68
  "form",
66
69
  {
67
- ref: (i) => o = i,
70
+ ref: (o) => i = o,
68
71
  style: {
69
72
  display: "flex",
70
73
  flexDirection: "column",
71
74
  gap: "1rem"
72
75
  },
73
- onSubmit: (i) => {
74
- i.preventDefault();
75
- const a = new FormData(o), c = {
76
+ onSubmit: (o) => {
77
+ o.preventDefault();
78
+ const a = new FormData(i), c = {
76
79
  from: a.get("from"),
77
80
  to: a.get("to"),
78
81
  reason: a.get("reason") || "",
79
82
  overwrite: a.get("overwrite") === "on"
80
83
  };
81
- r.setLoadingState(!0), this.redirectPage(c).then((s) => {
84
+ r.setLoadingState(!0), this.redirectPage(c).then((n) => {
82
85
  r.close(), this.ctx.modal.notify("success", {
83
86
  title: "Redirect successful",
84
87
  content: "The redirect has been created."
85
88
  });
86
- }).catch((s) => {
89
+ }).catch((n) => {
87
90
  r.setLoadingState(!1), this.ctx.modal.notify("error", {
88
91
  title: "Failed to redirect",
89
- content: s instanceof Error ? s.message : String(s)
92
+ content: n instanceof Error ? n.message : String(n)
90
93
  });
91
94
  });
92
95
  },
93
96
  children: [
94
97
  /* @__PURE__ */ e(
95
- u,
98
+ h,
96
99
  {
97
100
  inputs: [
98
101
  {
@@ -108,34 +111,32 @@ const l = class l extends m {
108
111
  ]
109
112
  }
110
113
  ),
111
- /* @__PURE__ */ e(w, { label: "Reason", id: "reason", name: "reason", value: t?.reason }),
112
- /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(f, { name: "overwrite", id: "overwrite", checked: t?.overwrite, children: "Force create redirect even if the from page already exists" }) }),
113
- /* @__PURE__ */ e(g, { type: "primary", buttonProps: { style: { width: "100%" } }, children: "Create Redirect" })
114
+ /* @__PURE__ */ e(m, { label: "Reason", id: "reason", name: "reason", value: t?.reason }),
115
+ /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(u, { name: "overwrite", id: "overwrite", checked: t?.overwrite, children: "Force create redirect even if the from page already exists" }) }),
116
+ /* @__PURE__ */ e(g, { type: "primary", style: { width: "100%" }, children: "Create Redirect" })
114
117
  ]
115
118
  }
116
119
  )
117
120
  ), r.show();
118
121
  }
119
122
  async redirectPage(t) {
120
- const { from: r, to: o, reason: i = "", overwrite: a = !1 } = t, c = await this.ctx.wikiPage.newBlankPage({
123
+ const { from: r, to: i, reason: o = "", overwrite: a = !1 } = t, c = await this.ctx.wikiPage.newBlankPage({
121
124
  title: r
122
- }), s = `#REDIRECT [[:${o}]]`, n = await c.edit(
125
+ }), n = `#REDIRECT [[:${i}]]`, s = await c.edit(
123
126
  {
124
- text: s,
125
- summary: i
127
+ text: n,
128
+ summary: o
126
129
  },
127
130
  {
128
131
  createonly: !a
129
132
  }
130
133
  );
131
- if (n.data?.errors)
132
- throw new Error(n.data.errors[0].text, { cause: n });
133
- return n;
134
+ if (s.data?.errors)
135
+ throw new Error(s.data.errors[0].text, { cause: s });
136
+ return s;
134
137
  }
135
- };
136
- l.inject = ["api", "wikiPage", "modal"];
137
- let d = l;
138
+ }
138
139
  export {
139
- d as PluginQuickRedirect
140
+ b as PluginQuickRedirect
140
141
  };
141
- //# sourceMappingURL=index-D1nQg-aN.js.map
142
+ //# sourceMappingURL=index-X1X416tZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-X1X416tZ.js","sources":["../src/plugins/quick-redirect/index.tsx"],"sourcesContent":["import { InPageEdit } from '@/InPageEdit'\r\n\r\ndeclare module '@/InPageEdit' {\r\n interface InPageEdit {\r\n quickRedirect: PluginQuickRedirect['quickRedirect']\r\n redirectPage: PluginQuickRedirect['redirectPage']\r\n }\r\n}\r\n\r\nexport interface RedirectPageOptions {\r\n from: string\r\n to: string\r\n reason?: string\r\n overwrite?: boolean\r\n}\r\nexport interface QuickRedirectOptions extends Partial<RedirectPageOptions> {}\r\n\r\nexport class PluginQuickRedirect extends BasePlugin {\r\n static readonly inject = ['api', 'wikiPage', 'modal']\r\n\r\n constructor(public ctx: InPageEdit) {\r\n super(ctx, {}, 'quick-redirect')\r\n }\r\n\r\n protected start(): Promise<void> | void {\r\n this.ctx.set('quickRedirect', this.quickRedirect.bind(this))\r\n this.ctx.set('redirectPage', this.redirectPage.bind(this))\r\n\r\n const curPageName = window.mw?.config.get('wgPageName') || ''\r\n const canEdit = window.mw?.config.get('wgIsProbablyEditable')\r\n this.ctx.inject(['toolbox'], (ctx) => {\r\n this.ctx = ctx\r\n ctx.toolbox.addButton({\r\n id: 'quick-redirect',\r\n icon: (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n class=\"icon icon-tabler icons-tabler-outline icon-tabler-file-symlink\"\r\n >\r\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n <path d=\"M4 21v-4a3 3 0 0 1 3 -3h5\" />\r\n <path d=\"M9 17l3 -3l-3 -3\" />\r\n <path d=\"M14 3v4a1 1 0 0 0 1 1h4\" />\r\n <path d=\"M5 11v-6a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-9.5\" />\r\n </svg>\r\n ) as HTMLElement,\r\n tooltip: 'Quick Redirect',\r\n group: 'group1',\r\n onClick: () => {\r\n this.quickRedirect(\r\n canEdit\r\n ? {\r\n to: curPageName,\r\n }\r\n : {}\r\n )\r\n },\r\n })\r\n this.addDisposeHandler((ctx) => {\r\n ctx.toolbox.removeButton('quick-redirect')\r\n })\r\n })\r\n }\r\n\r\n protected stop(): Promise<void> | void {}\r\n\r\n quickRedirect(options?: Partial<QuickRedirectOptions>) {\r\n const modal = this.ctx.modal\r\n .createObject({\r\n title: 'Quick Redirect',\r\n content: (<ProgressBar />) as HTMLElement,\r\n className: 'quick-redirect',\r\n sizeClass: 'medium',\r\n center: true,\r\n })\r\n .init()\r\n\r\n let formRef: HTMLFormElement | null = null\r\n modal.setContent(\r\n (\r\n <form\r\n ref={(el) => (formRef = el)}\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '1rem',\r\n }}\r\n onSubmit={(e) => {\r\n e.preventDefault()\r\n const formData = new FormData(formRef!)\r\n const options = {\r\n from: formData.get('from') as string,\r\n to: formData.get('to') as string,\r\n reason: (formData.get('reason') as string) || '',\r\n overwrite: formData.get('overwrite') === 'on',\r\n }\r\n modal.setLoadingState(true)\r\n this.redirectPage(options)\r\n .then((res) => {\r\n modal.close()\r\n this.ctx.modal.notify('success', {\r\n title: 'Redirect successful',\r\n content: 'The redirect has been created.',\r\n })\r\n })\r\n .catch((error) => {\r\n modal.setLoadingState(false)\r\n this.ctx.modal.notify('error', {\r\n title: 'Failed to redirect',\r\n content: error instanceof Error ? error.message : String(error),\r\n })\r\n })\r\n }}\r\n >\r\n <TwinSwapInput\r\n inputs={[\r\n {\r\n label: 'From',\r\n name: 'from',\r\n value: options?.from,\r\n },\r\n {\r\n label: 'To',\r\n name: 'to',\r\n value: options?.to,\r\n },\r\n ]}\r\n />\r\n <InputBox label=\"Reason\" id=\"reason\" name=\"reason\" value={options?.reason} />\r\n <div>\r\n <CheckBox name=\"overwrite\" id=\"overwrite\" checked={options?.overwrite}>\r\n Force create redirect even if the from page already exists\r\n </CheckBox>\r\n </div>\r\n <ActionButton type=\"primary\" style={{ width: '100%' }}>\r\n Create Redirect\r\n </ActionButton>\r\n </form>\r\n ) as HTMLFormElement\r\n )\r\n\r\n return modal.show()\r\n }\r\n\r\n async redirectPage(options: RedirectPageOptions) {\r\n const { from, to, reason = '', overwrite = false } = options\r\n const wikiPage = await this.ctx.wikiPage.newBlankPage({\r\n title: from,\r\n })\r\n const content = `#REDIRECT [[:${to}]]`\r\n const res = await wikiPage.edit(\r\n {\r\n text: content,\r\n summary: reason,\r\n },\r\n {\r\n createonly: !overwrite,\r\n }\r\n )\r\n if (res.data?.errors) {\r\n throw new Error(res.data.errors[0].text, { cause: res })\r\n }\r\n return res\r\n }\r\n}\r\n"],"names":["PluginQuickRedirect","BasePlugin","ctx","curPageName","canEdit","jsxs","jsx","options","modal","ProgressBar","formRef","el","e","formData","res","error","TwinSwapInput","InputBox","CheckBox","ActionButton","from","to","reason","overwrite","wikiPage","content"],"mappings":"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"}