@inpageedit/core 0.17.4 → 0.18.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 (48) hide show
  1. package/dist/InPageEdit.js +2 -2
  2. package/dist/{PluginImagesUsed-DIsW4sQH.js → PluginImagesUsed-D9D4IRJt.js} +2 -2
  3. package/dist/{PluginImagesUsed-DIsW4sQH.js.map → PluginImagesUsed-D9D4IRJt.js.map} +1 -1
  4. package/dist/{PluginPrefSync-BM1-tOBL.js → PluginPrefSync-DzmDUTF-.js} +2 -2
  5. package/dist/{PluginPrefSync-BM1-tOBL.js.map → PluginPrefSync-DzmDUTF-.js.map} +1 -1
  6. package/dist/{PluginStoreApp-By2yV_Kl.js → PluginStoreApp-BifScxOt.js} +2 -2
  7. package/dist/{PluginStoreApp-By2yV_Kl.js.map → PluginStoreApp-BifScxOt.js.map} +1 -1
  8. package/dist/{PluginTemplatesUsed-BhNX1xSY.js → PluginTemplatesUsed-De0Y5yo9.js} +2 -2
  9. package/dist/{PluginTemplatesUsed-BhNX1xSY.js.map → PluginTemplatesUsed-De0Y5yo9.js.map} +1 -1
  10. package/dist/core.js +2 -2
  11. package/dist/{index-BAJiXDPz.js → index-9I-lTJju.js} +153 -143
  12. package/dist/index-9I-lTJju.js.map +1 -0
  13. package/dist/{index-C0spLL-i.js → index-Ay5PsdkH.js} +250 -248
  14. package/dist/{index-C0spLL-i.js.map → index-Ay5PsdkH.js.map} +1 -1
  15. package/dist/{index-B5KNZ_9z.js → index-B5tbjHvN.js} +2 -2
  16. package/dist/{index-B5KNZ_9z.js.map → index-B5tbjHvN.js.map} +1 -1
  17. package/dist/{index-S6Jhp39r.js → index-B6Zxq3gX.js} +2 -2
  18. package/dist/{index-S6Jhp39r.js.map → index-B6Zxq3gX.js.map} +1 -1
  19. package/dist/{index-BFdMEvlW.js → index-BVuMfFbP.js} +3 -3
  20. package/dist/{index-BFdMEvlW.js.map → index-BVuMfFbP.js.map} +1 -1
  21. package/dist/{index-D8_-baBt.js → index-BwGWWeee.js} +2 -2
  22. package/dist/{index-D8_-baBt.js.map → index-BwGWWeee.js.map} +1 -1
  23. package/dist/{index-CoX1x5ls.js → index-Cn0EjRz9.js} +2 -2
  24. package/dist/{index-CoX1x5ls.js.map → index-Cn0EjRz9.js.map} +1 -1
  25. package/dist/{index-DHitL1S2.js → index-D3hnOW_f.js} +8 -8
  26. package/dist/{index-DHitL1S2.js.map → index-D3hnOW_f.js.map} +1 -1
  27. package/dist/{index-QZjXZBoj.js → index-D6AvNjpW.js} +3 -3
  28. package/dist/{index-QZjXZBoj.js.map → index-D6AvNjpW.js.map} +1 -1
  29. package/dist/{index-Bf8jOXlz.js → index-DiWAbu-c.js} +3 -3
  30. package/dist/{index-Bf8jOXlz.js.map → index-DiWAbu-c.js.map} +1 -1
  31. package/dist/{index-BoVgsh8u.js → index-DkyIt0u7.js} +2 -2
  32. package/dist/{index-BoVgsh8u.js.map → index-DkyIt0u7.js.map} +1 -1
  33. package/dist/{index-CZfEZBOj.js → index-JE9-Xotj.js} +246 -221
  34. package/dist/index-JE9-Xotj.js.map +1 -0
  35. package/dist/{index-Bd_cTayA.js → index-b29qTV0M.js} +3 -3
  36. package/dist/{index-Bd_cTayA.js.map → index-b29qTV0M.js.map} +1 -1
  37. package/dist/{index-ruv3nAtX.js → index-mLleTCbq.js} +2 -2
  38. package/dist/{index-ruv3nAtX.js.map → index-mLleTCbq.js.map} +1 -1
  39. package/dist/index.d.ts +16 -10
  40. package/dist/index.js +2 -2
  41. package/dist/models/index.js +1 -1
  42. package/dist/plugins/index.js +12 -12
  43. package/dist/services/index.js +1 -1
  44. package/lib/index.umd.js +18 -18
  45. package/lib/index.umd.js.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/index-BAJiXDPz.js.map +0 -1
  48. package/dist/index-CZfEZBOj.js.map +0 -1
@@ -1,21 +1,21 @@
1
- import { j as t } from "./Promise.withResolvers-C4chhLB1.js";
2
- import { R as de, a as ce, S as z } from "./index-BAJiXDPz.js";
3
- import { BasePlugin as ue } from "./core.js";
4
- import { C as pe } from "./CheckBox-Dx3r3LQz.js";
1
+ import { j as t, F as ue } from "./Promise.withResolvers-C4chhLB1.js";
2
+ import { R as fe, a as he, S as L } from "./index-9I-lTJju.js";
3
+ import { BasePlugin as ge } from "./core.js";
4
+ import { C as me } from "./CheckBox-Dx3r3LQz.js";
5
5
  import { I as M } from "./IconUpload-Bz4BW_nc.js";
6
- var fe = Object.create, q = Object.defineProperty, ge = Object.getOwnPropertyDescriptor, L = (d, a) => (a = Symbol[d]) ? a : /* @__PURE__ */ Symbol.for("Symbol." + d), R = (d) => {
7
- throw TypeError(d);
8
- }, he = (d, a, s) => a in d ? q(d, a, { enumerable: !0, configurable: !0, writable: !0, value: s }) : d[a] = s, me = (d, a) => q(d, "name", { value: a, configurable: !0 }), ve = (d) => [, , , fe(d?.[L("metadata")] ?? null)], ye = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], O = (d) => d !== void 0 && typeof d != "function" ? R("Function expected") : d, we = (d, a, s, p, c) => ({ kind: ye[d], name: a, metadata: p, addInitializer: (m) => s._ ? R("Already initialized") : c.push(O(m || null)) }), be = (d, a) => he(a, L("metadata"), d[3]), xe = (d, a, s, p) => {
9
- for (var c = 0, m = d[a >> 1], g = m && m.length; c < g; c++) m[c].call(s);
10
- return p;
11
- }, ke = (d, a, s, p, c, m) => {
12
- var g, _, N, o = a & 7, w = !1, l = 0, b = d[l] || (d[l] = []), I = o && (c = c.prototype, o < 5 && (o > 3 || !w) && ge(c, s));
13
- me(c, s);
14
- for (var S = p.length - 1; S >= 0; S--)
15
- N = we(o, s, _ = {}, d[3], b), g = (0, p[S])(c, N), _._ = 1, O(g) && (c = g);
16
- return be(d, c), I && q(c, s, I), w ? o ^ 4 ? m : I : c;
17
- }, Q, B, X;
18
- const _e = ({ $: d }) => /* @__PURE__ */ t("div", { className: "ipe-quickUpload__preview-placeholder is-na", children: /* @__PURE__ */ t("span", { children: [
6
+ var ve = Object.create, B = Object.defineProperty, ye = Object.getOwnPropertyDescriptor, O = (o, a) => (a = Symbol[o]) ? a : /* @__PURE__ */ Symbol.for("Symbol." + o), Q = (o) => {
7
+ throw TypeError(o);
8
+ }, we = (o, a, l) => a in o ? B(o, a, { enumerable: !0, configurable: !0, writable: !0, value: l }) : o[a] = l, xe = (o, a) => B(o, "name", { value: a, configurable: !0 }), be = (o) => [, , , ve(o?.[O("metadata")] ?? null)], ke = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], X = (o) => o !== void 0 && typeof o != "function" ? Q("Function expected") : o, _e = (o, a, l, u, d) => ({ kind: ke[o], name: a, metadata: u, addInitializer: (v) => l._ ? Q("Already initialized") : d.push(X(v || null)) }), Se = (o, a) => we(a, O("metadata"), o[3]), Ue = (o, a, l, u) => {
9
+ for (var d = 0, v = o[a >> 1], g = v && v.length; d < g; d++) v[d].call(l);
10
+ return u;
11
+ }, Pe = (o, a, l, u, d, v) => {
12
+ var g, _, T, P = a & 7, S = !1, N = 0, c = o[N] || (o[N] = []), w = P && (d = d.prototype, P < 5 && (P > 3 || !S) && ye(d, l));
13
+ xe(d, l);
14
+ for (var s = u.length - 1; s >= 0; s--)
15
+ T = _e(P, l, _ = {}, o[3], c), g = (0, u[s])(d, T), _._ = 1, X(g) && (d = g);
16
+ return Se(o, d), w && B(d, l, w), S ? P ^ 4 ? v : w : d;
17
+ }, H, $, Y;
18
+ const Fe = ({ $: o }) => /* @__PURE__ */ t("div", { className: "ipe-quickUpload__preview-placeholder is-na", children: /* @__PURE__ */ t("span", { children: [
19
19
  /* @__PURE__ */ t(
20
20
  "svg",
21
21
  {
@@ -32,14 +32,23 @@ const _e = ({ $: d }) => /* @__PURE__ */ t("div", { className: "ipe-quickUpload_
32
32
  ]
33
33
  }
34
34
  ),
35
- /* @__PURE__ */ t("p", { children: d`No preview available` })
35
+ /* @__PURE__ */ t("p", { children: o`No preview available` })
36
36
  ] }) });
37
- Q = [de(
38
- z.object({
39
- "quickUpload.summary": z.string().description("Default summary of the quick upload").default("[IPE-NEXT] Quick upload")
37
+ H = [fe(
38
+ L.object({
39
+ "quickUpload.summary": L.string().description("Default summary of the quick upload").default("[IPE-NEXT] Quick upload")
40
40
  })
41
- ), ce(["modal", "$", "wikiTitle", "wikiFile", "quickPreview", "preferences"])];
42
- class W extends (X = ue) {
41
+ ), he([
42
+ "modal",
43
+ "$",
44
+ "wikiTitle",
45
+ "wikiFile",
46
+ "quickPreview",
47
+ "preferences",
48
+ "wiki",
49
+ "apiService"
50
+ ])];
51
+ class q extends (Y = ge) {
43
52
  constructor(a) {
44
53
  super(a, {}, "quick-upload"), this.ctx = a;
45
54
  }
@@ -50,42 +59,42 @@ class W extends (X = ue) {
50
59
  }
51
60
  injectToolbox() {
52
61
  const { $: a } = this.ctx;
53
- this.ctx.inject(["toolbox"], (s) => {
54
- s.toolbox.addButton({
62
+ this.ctx.inject(["toolbox"], (l) => {
63
+ l.toolbox.addButton({
55
64
  id: "quick-upload",
56
65
  group: "group2",
57
66
  index: 2,
58
67
  icon: /* @__PURE__ */ t(M, {}),
59
68
  tooltip: () => a`Quick Upload`,
60
- onClick: (p) => {
61
- p.preventDefault(), this.showModal();
69
+ onClick: (u) => {
70
+ u.preventDefault(), this.showModal();
62
71
  }
63
- }), s.on("dispose", () => {
64
- s.toolbox.removeButton("quick-upload");
72
+ }), l.on("dispose", () => {
73
+ l.toolbox.removeButton("quick-upload");
65
74
  });
66
75
  });
67
76
  }
68
77
  formatFileSize(a = 0) {
69
78
  if (a = Number(a), !Number.isFinite(a) || a < 0) return "0 B";
70
- const s = ["B", "KB", "MB", "GB", "TB"];
71
- let p = 0;
72
- for (; a >= 1024 && p < s.length - 1; )
73
- a /= 1024, p++;
74
- return `${new Intl.NumberFormat(void 0, { maximumFractionDigits: 2 }).format(a)} ${s[p]}`;
79
+ const l = ["B", "KB", "MB", "GB", "TB"];
80
+ let u = 0;
81
+ for (; a >= 1024 && u < l.length - 1; )
82
+ a /= 1024, u++;
83
+ return `${new Intl.NumberFormat(void 0, { maximumFractionDigits: 2 }).format(a)} ${l[u]}`;
75
84
  }
76
- isFileAccepted(a, s) {
77
- if (!s) return !0;
78
- const p = s.split(",").map((g) => g.trim()).filter(Boolean);
79
- if (!p.length) return !0;
80
- const c = a.type || "", m = a.name || "";
81
- return p.some((g) => {
85
+ isFileAccepted(a, l) {
86
+ if (!l) return !0;
87
+ const u = l.split(",").map((g) => g.trim()).filter(Boolean);
88
+ if (!u.length) return !0;
89
+ const d = a.type || "", v = a.name || "";
90
+ return u.some((g) => {
82
91
  if (g.startsWith("."))
83
- return m.toLowerCase().endsWith(g.toLowerCase());
92
+ return v.toLowerCase().endsWith(g.toLowerCase());
84
93
  if (g.endsWith("/*")) {
85
94
  const _ = g.slice(0, -1);
86
- return c.startsWith(_);
95
+ return d.startsWith(_);
87
96
  }
88
- return c === g;
97
+ return d === g;
89
98
  });
90
99
  }
91
100
  getDefaultPreviewPlaceholder() {
@@ -100,24 +109,24 @@ class W extends (X = ue) {
100
109
  }
101
110
  async showModal() {
102
111
  const { $: a } = this.ctx;
103
- let s = !1, p = !1;
104
- const c = (e, r, i) => {
112
+ let l = !1, u = !1;
113
+ const d = (e, r, i) => {
105
114
  this.ctx.modal.notify(e, {
106
115
  title: r,
107
116
  content: i,
108
117
  closeAfter: e === "success" ? 3e3 : 8e3
109
118
  });
110
- }, m = this.ctx.modal.show({
119
+ }, v = this.ctx.modal.show({
111
120
  className: "ipe-quickUpload compact-buttons",
112
121
  sizeClass: "mediumToLarge",
113
122
  center: !1,
114
123
  title: a`Quick Upload`,
115
124
  content: a`Quick Upload`,
116
125
  outSideClose: !1,
117
- beforeClose: () => s ? (c("warning", a`Upload in progress`, a`Please pause or wait for it to finish.`), !1) : !0
118
- }), g = await this.ctx.preferences.get("quickUpload.summary") || "", _ = "image/*,video/*,audio/*,application/pdf", N = 20;
119
- let o = [], w = null;
120
- const l = {
126
+ beforeClose: () => l ? (d("warning", a`Upload in progress`, a`Please pause or wait for it to finish.`), !1) : !0
127
+ }), g = await this.ctx.preferences.get("quickUpload.summary") || "", _ = this.ctx.wikiFile.writableFileRepo, T = _ ? this.ctx.apiService.getClientByFileRepo(_) : void 0, S = (await this.ctx.wiki.getAllowedFileExtensions(T)).map((e) => `.${e}`).join(","), N = 20;
128
+ let c = [], w = null;
129
+ const s = {
121
130
  fileInput: null,
122
131
  listEl: null,
123
132
  previewWrapper: null,
@@ -125,13 +134,13 @@ class W extends (X = ue) {
125
134
  progressTextEl: null,
126
135
  summaryInput: null,
127
136
  ignoreWarnings: null
128
- }, b = (e, r) => {
129
- o = o.map((i) => i.id === e ? { ...i, ...r } : i);
130
- }, I = (e) => {
131
- o = o.filter((r) => r.id !== e), w === e && (w = o[0]?.id ?? null);
132
- }, S = (e, r) => {
133
- o = o.map((i) => e.has(i.id) ? r(i) : i);
134
- }, H = (e) => {
137
+ }, x = (e, r) => {
138
+ c = c.map((i) => i.id === e ? { ...i, ...r } : i);
139
+ }, G = (e) => {
140
+ c = c.filter((r) => r.id !== e), w === e && (w = c[0]?.id ?? null);
141
+ }, D = (e, r) => {
142
+ c = c.map((i) => e.has(i.id) ? r(i) : i);
143
+ }, K = (e) => {
135
144
  const r = [], i = (n) => n == null ? "" : String(n);
136
145
  if (e instanceof Error) {
137
146
  r.push(e.message);
@@ -140,52 +149,56 @@ class W extends (X = ue) {
140
149
  r.push(n.message);
141
150
  } else e?.data?.error?.info ? r.push(i(e.data.error.info)) : e?.error?.info ? r.push(i(e.error.info)) : e?.message && r.push(i(e.message));
142
151
  return r.filter(Boolean);
143
- }, D = (e) => {
144
- let r = H(e);
152
+ }, A = (e) => {
153
+ let r = K(e);
145
154
  r.length === 0 && (r = ["Upload failed with unknown error."]);
146
155
  const i = r.join(`
147
156
  `), n = i.toLowerCase();
148
157
  return n.includes("file is larger") || n.includes("files larger than") || n.includes("maximum upload size") ? { message: `File too large
149
158
  ${i}`, retryable: !1 } : n.includes("network") || n.includes("timeout") || n.includes("timed out") ? { message: `Network issue
150
159
  ${i}`, retryable: !0 } : { message: i, retryable: !0 };
151
- }, Y = (e) => e.status === "warning" ? !0 : e.status === "error" ? e.retryable !== !1 : !1, $ = (e, r) => e === "retry" ? r.filter((i) => Y(i)) : e === "resume" ? r.filter(
160
+ }, J = (e) => e.status === "warning" ? !0 : e.status === "error" ? e.retryable !== !1 : !1, j = (e, r) => e === "retry" ? r.filter((i) => J(i)) : e === "resume" ? r.filter(
152
161
  (i) => (i.status === "queued" || i.status === "paused") && i.retryable !== !1
153
- ) : r.filter((i) => i.status === "queued" || i.status === "paused"), G = (e) => {
162
+ ) : r.filter((i) => i.status === "queued" || i.status === "paused"), V = (e) => {
154
163
  const r = new Set(e.map((i) => i.id));
155
- S(
164
+ D(
156
165
  r,
157
166
  (i) => i.retryable === !1 ? i : { ...i, status: "queued", message: void 0 }
158
167
  );
159
- }, K = () => o.find((e) => e.id === w) || null, J = (e) => {
160
- w = e, h(), v();
161
- }, A = () => {
168
+ }, Z = () => c.find((e) => e.id === w) || null, ee = (e) => {
169
+ w = e, m(), y();
170
+ }, z = () => {
162
171
  const e = { ok: 0, warn: 0, err: 0, paused: 0 };
163
- for (const r of o)
172
+ for (const r of c)
164
173
  r.status === "success" ? e.ok++ : r.status === "warning" ? e.warn++ : r.status === "error" ? e.err++ : r.status === "paused" && e.paused++;
165
174
  return e;
166
175
  }, E = (e, r) => {
167
176
  const i = r > 0 ? Math.floor(e / r * 100) : 0;
168
- l.progressTextEl && (l.progressTextEl.textContent = `${e}/${r} (${i}%)`), l.progressEl && (l.progressEl.style.width = `${Math.max(0, Math.min(100, i))}%`);
169
- }, V = (e) => (e || "").replace(/\s+/g, " ").trim(), Z = () => {
170
- o = [], w = null, E(0, 0), l.summaryInput && (l.summaryInput.value = String(g || "")), l.ignoreWarnings && (l.ignoreWarnings.checked = !1), h(), v();
171
- }, j = (e) => {
172
- const r = e.filter((n) => this.isFileAccepted(n, String(_)));
173
- if (!r.length) return;
174
- const i = r.map((n) => ({
177
+ s.progressTextEl && (s.progressTextEl.textContent = `${e}/${r} (${i}%)`), s.progressEl && (s.progressEl.style.width = `${Math.max(0, Math.min(100, i))}%`);
178
+ }, te = (e) => (e || "").replace(/\s+/g, " ").trim(), re = () => {
179
+ c = [], w = null, E(0, 0), s.summaryInput && (s.summaryInput.value = String(g || "")), s.ignoreWarnings && (s.ignoreWarnings.checked = !1), m(), y();
180
+ }, R = (e) => {
181
+ const r = e.filter((h) => this.isFileAccepted(h, String(S || ""))), i = e.length - r.length;
182
+ if (i > 0 && d(
183
+ "warning",
184
+ a`File type not allowed`,
185
+ /* @__PURE__ */ t("span", { style: { wordWrap: "break-word" }, children: i === 1 ? a`1 file skipped! Only ${S} are allowed by this wiki.` : a`${i} files skipped! Only ${S} are allowed by this wiki.` })
186
+ ), !r.length) return;
187
+ const n = r.map((h) => ({
175
188
  id: this.safeId(),
176
- file: n,
177
- filename: n.name,
189
+ file: h,
190
+ filename: h.name,
178
191
  text: "",
179
192
  status: "queued",
180
193
  retryable: !0
181
194
  }));
182
- o = [...o, ...i], !w && o.length && (w = o[0].id), h(), v();
183
- }, ee = (e) => {
195
+ c = [...c, ...n], !w && c.length && (w = c[0].id), m(), y();
196
+ }, ie = (e) => {
184
197
  const r = {};
185
- r.filename = V(e.filename || e.file.name), r.file = e.file;
186
- const i = (l.summaryInput?.value || "").trim() || "";
187
- return r.comment = i, r.text = e.text || "", l.ignoreWarnings?.checked && (r.ignorewarnings = "1"), r;
188
- }, te = (e) => {
198
+ r.filename = te(e.filename || e.file.name), r.file = e.file;
199
+ const i = (s.summaryInput?.value || "").trim() || "";
200
+ return r.comment = i, r.text = e.text || "", s.ignoreWarnings?.checked && (r.ignorewarnings = "1"), r;
201
+ }, ae = (e) => {
189
202
  switch (e) {
190
203
  case "queued":
191
204
  return "Queued";
@@ -202,9 +215,9 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
202
215
  default:
203
216
  return e;
204
217
  }
205
- }, h = () => {
206
- if (l.listEl) {
207
- if (l.listEl.innerHTML = "", s || E(0, o.length), o.length) {
218
+ }, m = () => {
219
+ if (s.listEl) {
220
+ if (s.listEl.innerHTML = "", l || E(0, c.length), c.length) {
208
221
  const e = /* @__PURE__ */ t(
209
222
  "ul",
210
223
  {
@@ -217,7 +230,7 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
217
230
  }
218
231
  }
219
232
  );
220
- o.forEach((r) => {
233
+ c.forEach((r) => {
221
234
  const i = r.id === w, n = /* @__PURE__ */ t(
222
235
  "li",
223
236
  {
@@ -229,7 +242,7 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
229
242
  background: i ? "rgba(59,130,246,.08)" : "transparent",
230
243
  minWidth: 0
231
244
  },
232
- onClick: () => J(r.id),
245
+ onClick: () => ee(r.id),
233
246
  children: [
234
247
  /* @__PURE__ */ t("div", { style: { display: "flex", alignItems: "center", gap: "10px" }, children: [
235
248
  /* @__PURE__ */ t("div", { style: { flex: 1, minWidth: 0, overflow: "hidden" }, children: [
@@ -246,7 +259,7 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
246
259
  children: /* @__PURE__ */ t("strong", { style: { fontWeight: 600 }, children: r.filename })
247
260
  }
248
261
  ),
249
- /* @__PURE__ */ t("div", { style: { fontSize: "12px", opacity: 0.75 }, children: te(r.status) })
262
+ /* @__PURE__ */ t("div", { style: { fontSize: "12px", opacity: 0.75 }, children: ae(r.status) })
250
263
  ] }),
251
264
  /* @__PURE__ */ t("div", { style: { display: "flex", alignItems: "center", gap: "6px" }, children: /* @__PURE__ */ t(
252
265
  "button",
@@ -254,8 +267,8 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
254
267
  type: "button",
255
268
  className: "ipe-btn is-text",
256
269
  title: "Remove",
257
- onClick: (y) => {
258
- y.preventDefault(), y.stopPropagation(), I(r.id), h(), v();
270
+ onClick: (h) => {
271
+ h.preventDefault(), h.stopPropagation(), G(r.id), m(), y();
259
272
  },
260
273
  children: "×"
261
274
  }
@@ -277,21 +290,21 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
277
290
  }
278
291
  );
279
292
  e.appendChild(n);
280
- }), l.listEl.appendChild(e);
293
+ }), s.listEl.appendChild(e);
281
294
  } else {
282
- l.listEl.appendChild(
295
+ s.listEl.appendChild(
283
296
  /* @__PURE__ */ t("div", { style: { opacity: 0.75, padding: "8px 0" }, children: /* @__PURE__ */ t("p", { children: "No files selected." }) })
284
- ), C();
297
+ ), I();
285
298
  return;
286
299
  }
287
- C();
300
+ I();
288
301
  }
289
- }, v = async () => {
290
- if (!l.previewWrapper) return;
291
- l.previewWrapper.innerHTML = "";
292
- const e = K();
302
+ }, y = async () => {
303
+ if (!s.previewWrapper) return;
304
+ s.previewWrapper.innerHTML = "";
305
+ const e = Z();
293
306
  if (!e) {
294
- l.previewWrapper.appendChild(this.getDefaultPreviewPlaceholder());
307
+ s.previewWrapper.appendChild(this.getDefaultPreviewPlaceholder());
295
308
  return;
296
309
  }
297
310
  const r = e.file, i = /* @__PURE__ */ t("section", { style: { display: "grid", gap: "6px" }, children: [
@@ -312,18 +325,30 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
312
325
  ),
313
326
  /* @__PURE__ */ t("div", { style: { display: "flex", gap: "10px", alignItems: "center", flexWrap: "wrap" }, children: [
314
327
  /* @__PURE__ */ t("span", { style: { fontSize: "12px", opacity: 0.8 }, children: r.type || a`Unknown type` }),
315
- e.fileUrl ? /* @__PURE__ */ t(
316
- "a",
317
- {
318
- href: e.fileUrl,
319
- target: "_blank",
320
- rel: "noopener noreferrer",
321
- style: { fontSize: "12px" },
322
- children: a`Open file page`
323
- }
324
- ) : null
328
+ e.fileUrl ? /* @__PURE__ */ t(ue, { children: [
329
+ /* @__PURE__ */ t(
330
+ "a",
331
+ {
332
+ href: e.fileUrl,
333
+ target: "_blank",
334
+ rel: "noopener noreferrer",
335
+ style: { fontSize: "12px" },
336
+ children: a`Open file URL`
337
+ }
338
+ ),
339
+ /* @__PURE__ */ t(
340
+ "a",
341
+ {
342
+ href: this.ctx.wiki.getUrl(`File:${e.filename}`),
343
+ target: "_blank",
344
+ rel: "noopener noreferrer",
345
+ style: { fontSize: "12px" },
346
+ children: a`Open file page`
347
+ }
348
+ )
349
+ ] }) : null
325
350
  ] })
326
- ] }), n = await this.ctx.quickPreview.getPreviewElement(r) || /* @__PURE__ */ t(_e, { $: a }), y = /* @__PURE__ */ t("div", { className: "ipe-quickUpload__preview-content", style: { marginTop: "10px" }, children: n }), f = e.status === "success", u = /* @__PURE__ */ t(
351
+ ] }), n = await this.ctx.quickPreview.getPreviewElement(r) || /* @__PURE__ */ t(Fe, { $: a }), h = /* @__PURE__ */ t("div", { className: "ipe-quickUpload__preview-content", style: { marginTop: "10px" }, children: n }), f = e.status === "success", p = /* @__PURE__ */ t(
327
352
  "div",
328
353
  {
329
354
  className: "ipe-input-box",
@@ -342,16 +367,16 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
342
367
  name: "mu_filename",
343
368
  type: "text",
344
369
  value: e.filename,
345
- disabled: s || f,
370
+ disabled: l || f,
346
371
  onInput: (U) => {
347
372
  const k = U.target.value;
348
- b(e.id, { filename: k }), h();
373
+ x(e.id, { filename: k }), m();
349
374
  }
350
375
  }
351
376
  )
352
377
  ]
353
378
  }
354
- ), x = /* @__PURE__ */ t(
379
+ ), b = /* @__PURE__ */ t(
355
380
  "div",
356
381
  {
357
382
  className: "ipe-input-box",
@@ -369,21 +394,21 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
369
394
  id: "mu_text",
370
395
  placeholder: `This file is for...
371
396
  [[Category:XXX]]`,
372
- disabled: s || f,
397
+ disabled: l || f,
373
398
  value: e.text || "",
374
399
  onInput: (U) => {
375
400
  const k = U.target.value;
376
- b(e.id, { text: k }), h();
401
+ x(e.id, { text: k }), m();
377
402
  }
378
403
  }
379
404
  )
380
405
  ]
381
406
  }
382
407
  );
383
- l.previewWrapper.appendChild(i), l.previewWrapper.appendChild(y), l.previewWrapper.appendChild(u), l.previewWrapper.appendChild(x);
384
- }, re = async (e) => {
385
- b(e.id, { status: "uploading", message: void 0 }), h(), await v();
386
- const r = ee(e);
408
+ s.previewWrapper.appendChild(i), s.previewWrapper.appendChild(h), s.previewWrapper.appendChild(p), s.previewWrapper.appendChild(b);
409
+ }, ne = async (e) => {
410
+ x(e.id, { status: "uploading", message: void 0 }), m(), await y();
411
+ const r = ie(e);
387
412
  this.ctx.emit("analytics/event", {
388
413
  feature: "quick-upload",
389
414
  page: r.filename?.toString() || void 0
@@ -392,62 +417,62 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
392
417
  const i = await this.ctx.wikiFile.upload(r);
393
418
  if (i.data?.upload?.result === "Success") {
394
419
  const n = this.ctx.wikiFile.getFileUrl(`File:${i.data.upload.filename}`);
395
- b(e.id, {
420
+ x(e.id, {
396
421
  status: "success",
397
422
  fileUrl: n,
398
423
  result: i.data.upload,
399
424
  retryable: !0
400
- }), h(), await v();
425
+ }), m(), await y();
401
426
  return;
402
427
  }
403
428
  throw i;
404
429
  } catch (i) {
405
430
  let n = [];
406
431
  if (i?.data?.upload) {
407
- const u = i.data.upload;
408
- if (u.result === "Success") {
409
- const k = u.filename || r.filename, T = this.ctx.wikiFile.getFileUrl(`File:${k}`);
410
- b(e.id, {
432
+ const p = i.data.upload;
433
+ if (p.result === "Success") {
434
+ const k = p.filename || r.filename, C = this.ctx.wikiFile.getFileUrl(`File:${k}`);
435
+ x(e.id, {
411
436
  status: "success",
412
- fileUrl: T,
413
- result: u,
437
+ fileUrl: C,
438
+ result: p,
414
439
  retryable: !0
415
- }), h(), await v();
440
+ }), m(), await y();
416
441
  return;
417
442
  }
418
- if (Array.isArray(u.warnings?.duplicate) && u.warnings.duplicate.length > 0) {
419
- n.push(`Duplicate of: ${u.warnings.duplicate.join(", ")}`), b(e.id, {
443
+ if (Array.isArray(p.warnings?.duplicate) && p.warnings.duplicate.length > 0) {
444
+ n.push(`Duplicate of: ${p.warnings.duplicate.join(", ")}`), x(e.id, {
420
445
  status: "warning",
421
446
  message: n.join(`
422
447
  `),
423
- result: u,
448
+ result: p,
424
449
  retryable: !0
425
- }), h(), await v();
450
+ }), m(), await y();
426
451
  return;
427
452
  }
428
- if (u.warnings?.exists) {
429
- n.push("A file with the same name already exists."), b(e.id, {
453
+ if (p.warnings?.exists) {
454
+ n.push("A file with the same name already exists."), x(e.id, {
430
455
  status: "warning",
431
456
  message: n.join(`
432
457
  `),
433
- result: u,
458
+ result: p,
434
459
  retryable: !0
435
- }), h(), await v();
460
+ }), m(), await y();
436
461
  return;
437
462
  }
438
- const { message: x, retryable: U } = D(i);
439
- b(e.id, { status: "error", message: x, retryable: U }), h(), await v();
463
+ const { message: b, retryable: U } = A(i);
464
+ x(e.id, { status: "error", message: b, retryable: U }), m(), await y();
440
465
  return;
441
466
  }
442
- const { message: y, retryable: f } = D(i);
443
- b(e.id, { status: "error", message: y, retryable: f }), h(), await v();
467
+ const { message: h, retryable: f } = A(i);
468
+ x(e.id, { status: "error", message: h, retryable: f }), m(), await y();
444
469
  }
445
- }, F = async (e = "all") => {
446
- if (s) return;
447
- let r = $(e, o);
470
+ }, W = async (e = "all") => {
471
+ if (l) return;
472
+ let r = j(e, c);
448
473
  if (e === "retry") {
449
474
  if (r.length === 0) {
450
- c(
475
+ d(
451
476
  "warning",
452
477
  "Nothing to retry",
453
478
  /* @__PURE__ */ t("div", { children: "There are no retryable failed/warning items." })
@@ -456,7 +481,7 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
456
481
  }
457
482
  } else if (e === "resume") {
458
483
  if (r.length === 0) {
459
- c(
484
+ d(
460
485
  "warning",
461
486
  "Nothing to resume",
462
487
  /* @__PURE__ */ t("div", { children: "There are no queued paused items to continue." })
@@ -464,22 +489,22 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
464
489
  return;
465
490
  }
466
491
  } else {
467
- if (o.length === 0) {
468
- c(
492
+ if (c.length === 0) {
493
+ d(
469
494
  "warning",
470
495
  a`No files selected`,
471
496
  /* @__PURE__ */ t("div", { children: a`Please select one or more files.` })
472
497
  );
473
498
  return;
474
499
  }
475
- if (o.length > N) {
500
+ if (e !== "confirmed" && c.length > N) {
476
501
  this.ctx.modal.confirm(
477
502
  {
478
503
  title: a`Confirm bulk upload`,
479
504
  content: /* @__PURE__ */ t("div", { children: [
480
505
  a`You are about to upload`,
481
506
  " ",
482
- /* @__PURE__ */ t("strong", { children: o.length }),
507
+ /* @__PURE__ */ t("strong", { children: c.length }),
483
508
  " ",
484
509
  a`files at once. Are you sure?`
485
510
  ] }),
@@ -487,40 +512,40 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
487
512
  okBtn: { label: a`Upload`, className: "is-primary is-ghost" },
488
513
  cancelBtn: { label: a`Cancel`, className: "is-danger is-ghost" }
489
514
  },
490
- (i) => (i && F("all"), !0)
515
+ (i) => (i && W("confirmed"), !0)
491
516
  );
492
517
  return;
493
518
  }
494
519
  }
495
- e === "retry" && (G(r), h(), await v(), r = $("retry", o)), s = !0, p = !1, C();
520
+ e === "retry" && (V(r), m(), await y(), r = j("retry", c)), l = !0, u = !1, I();
496
521
  try {
497
522
  const i = r.length;
498
523
  let n = 0;
499
524
  E(0, i);
500
525
  for (const U of r) {
501
- if (p) {
502
- const T = new Set(r.slice(n).map((P) => P.id));
503
- S(
504
- T,
505
- (P) => P.status === "queued" || P.status === "uploading" ? { ...P, status: "paused", message: "Paused by user", retryable: !0 } : P
506
- ), h(), await v();
526
+ if (u) {
527
+ const C = new Set(r.slice(n).map((F) => F.id));
528
+ D(
529
+ C,
530
+ (F) => F.status === "queued" || F.status === "uploading" ? { ...F, status: "paused", message: "Paused by user", retryable: !0 } : F
531
+ ), m(), await y();
507
532
  break;
508
533
  }
509
- const k = o.find((T) => T.id === U.id);
534
+ const k = c.find((C) => C.id === U.id);
510
535
  if (!k) {
511
536
  n++, E(n, i);
512
537
  continue;
513
538
  }
514
- await re(k), n++, E(n, i);
539
+ await ne(k), n++, E(n, i);
515
540
  }
516
- const { ok: y, warn: f, err: u, paused: x } = A();
517
- x > 0 ? c(
541
+ const { ok: h, warn: f, err: p, paused: b } = z();
542
+ b > 0 ? d(
518
543
  "warning",
519
544
  "Upload paused",
520
545
  /* @__PURE__ */ t("div", { children: [
521
546
  /* @__PURE__ */ t("div", { children: [
522
547
  "Uploaded: ",
523
- /* @__PURE__ */ t("strong", { children: y })
548
+ /* @__PURE__ */ t("strong", { children: h })
524
549
  ] }),
525
550
  /* @__PURE__ */ t("div", { children: [
526
551
  "Warnings: ",
@@ -528,55 +553,55 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
528
553
  ] }),
529
554
  /* @__PURE__ */ t("div", { children: [
530
555
  "Errors: ",
531
- /* @__PURE__ */ t("strong", { children: u })
556
+ /* @__PURE__ */ t("strong", { children: p })
532
557
  ] }),
533
558
  /* @__PURE__ */ t("div", { children: [
534
559
  "Paused: ",
535
- /* @__PURE__ */ t("strong", { children: x })
560
+ /* @__PURE__ */ t("strong", { children: b })
536
561
  ] })
537
562
  ] })
538
- ) : u === 0 && f === 0 ? c(
563
+ ) : p === 0 && f === 0 ? d(
539
564
  "success",
540
565
  "Upload completed",
541
566
  /* @__PURE__ */ t("div", { children: [
542
567
  /* @__PURE__ */ t("strong", { children: "All files uploaded successfully." }),
543
568
  /* @__PURE__ */ t("div", { children: [
544
569
  "Uploaded: ",
545
- /* @__PURE__ */ t("strong", { children: y })
570
+ /* @__PURE__ */ t("strong", { children: h })
546
571
  ] })
547
572
  ] })
548
- ) : c(
573
+ ) : d(
549
574
  "warning",
550
575
  "Upload completed with issues",
551
576
  /* @__PURE__ */ t("div", { children: [
552
577
  /* @__PURE__ */ t("div", { children: [
553
578
  "Uploaded: ",
554
- /* @__PURE__ */ t("strong", { children: y })
579
+ /* @__PURE__ */ t("strong", { children: h })
555
580
  ] }),
556
581
  f ? /* @__PURE__ */ t("div", { children: [
557
582
  "Warnings: ",
558
583
  /* @__PURE__ */ t("strong", { children: f })
559
584
  ] }) : null,
560
- u ? /* @__PURE__ */ t("div", { children: [
585
+ p ? /* @__PURE__ */ t("div", { children: [
561
586
  "Errors: ",
562
- /* @__PURE__ */ t("strong", { children: u })
587
+ /* @__PURE__ */ t("strong", { children: p })
563
588
  ] }) : null
564
589
  ] })
565
590
  );
566
591
  } finally {
567
- s = !1, C();
592
+ l = !1, I();
568
593
  }
569
- }, ie = (e) => {
594
+ }, se = (e) => {
570
595
  e.preventDefault(), e.stopPropagation(), e.currentTarget?.classList.remove("is-dragover");
571
596
  const i = Array.from(e.dataTransfer?.files || []);
572
- i.length && j(i);
573
- }, ae = (e) => {
597
+ i.length && R(i);
598
+ }, le = (e) => {
574
599
  e.preventDefault(), e.stopPropagation();
575
600
  const r = e.currentTarget;
576
601
  e.dataTransfer && (e.dataTransfer.dropEffect = "copy"), r?.classList.add("is-dragover");
577
- }, ne = (e) => {
602
+ }, oe = (e) => {
578
603
  e.preventDefault(), e.stopPropagation(), e.currentTarget?.classList.remove("is-dragover");
579
- }, se = /* @__PURE__ */ t("div", { style: { marginBottom: "10px" }, children: [
604
+ }, de = /* @__PURE__ */ t("div", { style: { marginBottom: "10px" }, children: [
580
605
  /* @__PURE__ */ t(
581
606
  "div",
582
607
  {
@@ -590,7 +615,7 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
590
615
  "div",
591
616
  {
592
617
  ref: (e) => {
593
- l.progressEl = e;
618
+ s.progressEl = e;
594
619
  },
595
620
  style: {
596
621
  height: "100%",
@@ -616,7 +641,7 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
616
641
  "div",
617
642
  {
618
643
  ref: (e) => {
619
- l.progressTextEl = e;
644
+ s.progressTextEl = e;
620
645
  },
621
646
  style: { fontSize: "12px", opacity: 0.8 },
622
647
  children: "0/0 (0%)"
@@ -624,14 +649,14 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
624
649
  )
625
650
  }
626
651
  )
627
- ] }), le = /* @__PURE__ */ t("section", { style: { display: "grid", gap: "10px", minWidth: 0 }, children: [
652
+ ] }), ce = /* @__PURE__ */ t("section", { style: { display: "grid", gap: "10px", minWidth: 0 }, children: [
628
653
  /* @__PURE__ */ t("div", { className: "ipe-input-box", children: [
629
654
  /* @__PURE__ */ t("label", { htmlFor: "mu_files", children: [
630
655
  "Files",
631
656
  " ",
632
- o.length > 0 ? /* @__PURE__ */ t("span", { style: { opacity: 0.85 }, children: [
657
+ c.length > 0 ? /* @__PURE__ */ t("span", { style: { opacity: 0.85 }, children: [
633
658
  "(",
634
- o.length,
659
+ c.length,
635
660
  " selected)"
636
661
  ] }) : null
637
662
  ] }),
@@ -641,14 +666,14 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
641
666
  id: "mu_files",
642
667
  type: "file",
643
668
  multiple: !0,
644
- accept: String(_),
645
- disabled: s,
669
+ accept: String(S || ""),
670
+ disabled: l,
646
671
  ref: (e) => {
647
- l.fileInput = e;
672
+ s.fileInput = e;
648
673
  },
649
674
  onChange: (e) => {
650
675
  const r = Array.from(e.target.files || []);
651
- j(r), e.target.value = "";
676
+ R(r), e.target.value = "";
652
677
  }
653
678
  }
654
679
  )
@@ -657,32 +682,32 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
657
682
  "div",
658
683
  {
659
684
  ref: (e) => {
660
- l.listEl = e;
685
+ s.listEl = e;
661
686
  }
662
687
  }
663
688
  )
664
- ] }), oe = /* @__PURE__ */ t(
689
+ ] }), pe = /* @__PURE__ */ t(
665
690
  "section",
666
691
  {
667
692
  className: "ipe-quickUpload__container",
668
- onDrop: ie,
669
- onDragOver: ae,
670
- onDragLeave: ne,
693
+ onDrop: se,
694
+ onDragOver: le,
695
+ onDragLeave: oe,
671
696
  style: { display: "grid", gap: "12px" },
672
697
  children: [
673
- se,
698
+ de,
674
699
  /* @__PURE__ */ t("div", { className: "ipe-quickUpload__layout", children: [
675
- le,
700
+ ce,
676
701
  /* @__PURE__ */ t("section", { style: { display: "grid", gap: "10px" }, children: /* @__PURE__ */ t(
677
702
  "div",
678
703
  {
679
704
  className: "ipe-quickUpload__preview",
680
705
  ref: (e) => {
681
- l.previewWrapper = e;
706
+ s.previewWrapper = e;
682
707
  },
683
708
  onClick: (e) => {
684
709
  const r = e.target;
685
- r && r.closest("img, .ipe-quickUpload__preview-placeholder") && (e.preventDefault(), l.fileInput?.click());
710
+ r && r.closest("img, .ipe-quickUpload__preview-placeholder") && (e.preventDefault(), s.fileInput?.click());
686
711
  },
687
712
  style: {
688
713
  border: "1px solid var(--ipe-border-color, rgba(0,0,0,.12))",
@@ -709,9 +734,9 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
709
734
  "textarea",
710
735
  {
711
736
  id: "mu_summary",
712
- disabled: s,
737
+ disabled: l,
713
738
  ref: (e) => {
714
- l.summaryInput = e;
739
+ s.summaryInput = e;
715
740
  },
716
741
  onInput: () => {
717
742
  }
@@ -719,14 +744,14 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
719
744
  )
720
745
  ] }),
721
746
  /* @__PURE__ */ t(
722
- pe,
747
+ me,
723
748
  {
724
749
  name: "ignorewarnings",
725
750
  label: a`Ignore warnings and upload anyway`,
726
751
  inputProps: {
727
- disabled: s,
752
+ disabled: l,
728
753
  ref: (e) => {
729
- l.ignoreWarnings = e;
754
+ s.ignoreWarnings = e;
730
755
  }
731
756
  }
732
757
  }
@@ -737,45 +762,45 @@ ${i}`, retryable: !0 } : { message: i, retryable: !0 };
737
762
  ]
738
763
  }
739
764
  );
740
- m.setContent(oe), l.summaryInput && (l.summaryInput.value = String(g || ""));
741
- const C = () => {
742
- const { warn: e, err: r, paused: i } = A(), n = r > 0 || e > 0, y = i > 0;
743
- let f = a`Upload`, u = () => {
744
- F("all");
745
- }, x = "is-primary is-text";
746
- s ? (f = p ? "Pausing..." : "Pause after current", u = () => {
747
- p = !0, C();
748
- }) : y ? (f = "Resume", u = () => {
749
- F("resume");
750
- }) : n && (f = "Retry failed/warnings", u = () => {
751
- F("retry");
752
- }), m.setButtons([
765
+ v.setContent(pe), s.summaryInput && (s.summaryInput.value = String(g || ""));
766
+ const I = () => {
767
+ const { warn: e, err: r, paused: i } = z(), n = r > 0 || e > 0, h = i > 0;
768
+ let f = a`Upload`, p = () => {
769
+ W("all");
770
+ }, b = "is-primary is-text";
771
+ l ? (f = u ? "Pausing..." : "Pause after current", p = () => {
772
+ u = !0, I();
773
+ }) : h ? (f = "Resume", p = () => {
774
+ W("resume");
775
+ }) : n && (f = "Retry failed/warnings", p = () => {
776
+ W("retry");
777
+ }), v.setButtons([
753
778
  {
754
779
  label: a`Cancel`,
755
780
  className: "is-danger is-text",
756
- method: () => m.close()
781
+ method: () => v.close()
757
782
  },
758
783
  {
759
784
  label: "Reset",
760
785
  className: "is-text",
761
786
  method: () => {
762
- s || Z();
787
+ l || re();
763
788
  }
764
789
  },
765
790
  {
766
791
  label: f,
767
- className: x,
768
- method: u
792
+ className: b,
793
+ method: p
769
794
  }
770
795
  ]);
771
796
  };
772
- return h(), await v(), m;
797
+ return m(), await y(), v;
773
798
  }
774
799
  }
775
- B = ve(X);
776
- W = ke(B, 0, "PluginQuickUpload", Q, W);
777
- xe(B, 1, W);
800
+ $ = be(Y);
801
+ q = Pe($, 0, "PluginQuickUpload", H, q);
802
+ Ue($, 1, q);
778
803
  export {
779
- W as PluginQuickUpload
804
+ q as PluginQuickUpload
780
805
  };
781
- //# sourceMappingURL=index-CZfEZBOj.js.map
806
+ //# sourceMappingURL=index-JE9-Xotj.js.map