@damiro/stylo 0.21.0 → 0.22.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.
- package/dist/{InPlaceView-BIdyqlek.js → InPlaceView-CKPumo8B.js} +556 -525
- package/dist/InPlaceView-CKPumo8B.js.map +1 -0
- package/dist/inplace/table-marks-plugin.d.ts.map +1 -1
- package/dist/inplace/table-static-paint.d.ts +13 -0
- package/dist/inplace/table-static-paint.d.ts.map +1 -0
- package/dist/inplace/tables.d.ts.map +1 -1
- package/dist/stylo.js +1 -1
- package/dist/types/inplace.d.ts +7 -5
- package/dist/types/inplace.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/InPlaceView-BIdyqlek.js.map +0 -1
|
@@ -3,15 +3,15 @@ import { C as r, D as i, E as a, O as o, S as s, T as c, _ as l, a as u, b as d,
|
|
|
3
3
|
import { a as x, i as S } from "./config-DTBxVhtH.js";
|
|
4
4
|
import { a as de, n as fe, o as pe, r as me, t as C } from "./embed-DJAydn-v.js";
|
|
5
5
|
import { t as he } from "./katex-BfiLlqfN.js";
|
|
6
|
-
import { useRef as w, useState as
|
|
7
|
-
import { Decoration as
|
|
8
|
-
import { createPortal as
|
|
9
|
-
import { Annotation as
|
|
10
|
-
import { syntaxTree as
|
|
11
|
-
import { jsx as
|
|
12
|
-
import { createRoot as
|
|
6
|
+
import { useRef as w, useState as ge, useSyncExternalStore as _e } from "react";
|
|
7
|
+
import { Decoration as T, EditorView as E, ViewPlugin as D, WidgetType as O, hoverTooltip as ve, keymap as k, showPanel as ye } from "@codemirror/view";
|
|
8
|
+
import { createPortal as be, flushSync as xe } from "react-dom";
|
|
9
|
+
import { Annotation as Se, EditorSelection as Ce, EditorState as we, Facet as A, Prec as j, StateEffect as Te, StateField as M } from "@codemirror/state";
|
|
10
|
+
import { syntaxTree as N } from "@codemirror/language";
|
|
11
|
+
import { jsx as Ee, jsxs as De } from "react/jsx-runtime";
|
|
12
|
+
import { createRoot as Oe } from "react-dom/client";
|
|
13
13
|
//#region src/inplace/embed-registry.ts
|
|
14
|
-
var
|
|
14
|
+
var ke = class {
|
|
15
15
|
slots = /* @__PURE__ */ new Map();
|
|
16
16
|
listeners = /* @__PURE__ */ new Set();
|
|
17
17
|
snapshot = [];
|
|
@@ -34,7 +34,7 @@ var Oe = class {
|
|
|
34
34
|
for (let e of this.listeners) e();
|
|
35
35
|
}));
|
|
36
36
|
}
|
|
37
|
-
},
|
|
37
|
+
}, Ae = {
|
|
38
38
|
headings: !0,
|
|
39
39
|
emphasis: !0,
|
|
40
40
|
links: !0,
|
|
@@ -49,20 +49,20 @@ var Oe = class {
|
|
|
49
49
|
tables: !0,
|
|
50
50
|
embeds: !0
|
|
51
51
|
};
|
|
52
|
-
function
|
|
52
|
+
function je(e) {
|
|
53
53
|
return {
|
|
54
|
-
...
|
|
54
|
+
...Ae,
|
|
55
55
|
...e?.decorations
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
-
var
|
|
58
|
+
var P = A.define({ combine: (e) => e[0] ?? Ae }), F = A.define({ combine: (e) => e[0] ?? null }), I = A.define({ combine: (e) => e[0] ?? "source" }), L = A.define({ combine: (e) => e[0] ?? "caret" }), Me = A.define({ combine: (e) => e[0] ?? null }), Ne = A.define({ combine: (e) => e[0] ?? !0 }), Pe = [
|
|
59
59
|
"host",
|
|
60
60
|
"link",
|
|
61
61
|
"format",
|
|
62
62
|
"paragraph",
|
|
63
63
|
"insert",
|
|
64
64
|
"clipboard"
|
|
65
|
-
],
|
|
65
|
+
], R = [
|
|
66
66
|
"bold",
|
|
67
67
|
"italic",
|
|
68
68
|
"strike",
|
|
@@ -71,57 +71,57 @@ var F = j.define({ combine: (e) => e[0] ?? ke }), I = j.define({ combine: (e) =>
|
|
|
71
71
|
"wikilink",
|
|
72
72
|
"math"
|
|
73
73
|
];
|
|
74
|
-
function
|
|
74
|
+
function Fe(e) {
|
|
75
75
|
return e === !1 ? {
|
|
76
76
|
enabled: !1,
|
|
77
77
|
groups: [],
|
|
78
78
|
items: []
|
|
79
79
|
} : e == null || e === !0 ? {
|
|
80
80
|
enabled: !0,
|
|
81
|
-
groups:
|
|
81
|
+
groups: Pe,
|
|
82
82
|
items: []
|
|
83
83
|
} : {
|
|
84
84
|
enabled: !0,
|
|
85
|
-
groups: e.groups?.length ? e.groups :
|
|
85
|
+
groups: e.groups?.length ? e.groups : Pe,
|
|
86
86
|
items: e.items ?? []
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
|
-
var
|
|
90
|
-
function
|
|
91
|
-
if (!e?.length) return
|
|
92
|
-
let t = e.filter((e) =>
|
|
93
|
-
return t.length ? t :
|
|
89
|
+
var Ie = A.define({ combine: (e) => e[0] ?? (() => []) }), Le = A.define({ combine: (e) => e[0] ?? (() => []) }), Re = A.define({ combine: (e) => e[0] ?? (() => []) }), z = A.define({ combine: (e) => e[0] ?? Pe });
|
|
90
|
+
function ze(e) {
|
|
91
|
+
if (!e?.length) return R;
|
|
92
|
+
let t = e.filter((e) => R.includes(e));
|
|
93
|
+
return t.length ? t : R;
|
|
94
94
|
}
|
|
95
|
-
var
|
|
95
|
+
var Be = A.define({ combine: (e) => e[0] ?? R }), Ve = A.define({ combine: (e) => e[0] ?? "menu" });
|
|
96
96
|
//#endregion
|
|
97
97
|
//#region src/inplace/frontmatter.ts
|
|
98
|
-
function
|
|
99
|
-
if (!e.facet(
|
|
98
|
+
function He(e) {
|
|
99
|
+
if (!e.facet(P).frontmatter) return T.none;
|
|
100
100
|
let n = t(e.doc);
|
|
101
|
-
if (!n) return
|
|
101
|
+
if (!n) return T.none;
|
|
102
102
|
let r = e.doc.lineAt(n.from).number, i = e.doc.lineAt(n.to).number, a = e.selection.ranges.some((t) => {
|
|
103
103
|
let n = e.doc.lineAt(t.from).number;
|
|
104
104
|
return n >= r && n <= i;
|
|
105
105
|
}), o = [];
|
|
106
106
|
for (let t = r; t <= i; t++) {
|
|
107
107
|
let n = e.doc.line(t), s = t === r ? "cm-inplace-fm cm-inplace-fm-first" : "cm-inplace-fm";
|
|
108
|
-
o.push(
|
|
108
|
+
o.push(T.line({ class: s }).range(n.from)), (t === r || t === i) && !a && n.to > n.from && o.push(T.replace({}).range(n.from, n.to));
|
|
109
109
|
}
|
|
110
|
-
return
|
|
110
|
+
return T.set(o, !0);
|
|
111
111
|
}
|
|
112
|
-
var
|
|
113
|
-
create:
|
|
114
|
-
update: (e, t) => t.docChanged || t.selection ?
|
|
115
|
-
provide: (e) =>
|
|
112
|
+
var Ue = M.define({
|
|
113
|
+
create: He,
|
|
114
|
+
update: (e, t) => t.docChanged || t.selection ? He(t.state) : e,
|
|
115
|
+
provide: (e) => E.decorations.from(e)
|
|
116
116
|
});
|
|
117
117
|
//#endregion
|
|
118
118
|
//#region src/inplace/list-guides.ts
|
|
119
|
-
function
|
|
119
|
+
function We(e) {
|
|
120
120
|
let t = 1;
|
|
121
121
|
for (let n = e.node.parent; n; n = n.parent) n.name === "ListItem" && t++;
|
|
122
122
|
return t;
|
|
123
123
|
}
|
|
124
|
-
function
|
|
124
|
+
function Ge(e, t, n, r, i, a) {
|
|
125
125
|
if (!i.lists) return;
|
|
126
126
|
let o = /* @__PURE__ */ new Set();
|
|
127
127
|
n.iterate({
|
|
@@ -129,17 +129,17 @@ function We(e, t, n, r, i, a) {
|
|
|
129
129
|
to: t,
|
|
130
130
|
enter: (e) => {
|
|
131
131
|
if (e.name !== "ListItem") return;
|
|
132
|
-
let t =
|
|
133
|
-
for (let e = i; e <= s; e++) c && e >= l && e <= u || (n >= 1 && !o.has(e) && (o.add(e), a.push(
|
|
132
|
+
let t = We(e), n = t - 1, i = r.lineAt(e.from).number, s = r.lineAt(Math.min(e.to, r.length)).number, c = e.node.getChild("BulletList") ?? e.node.getChild("OrderedList"), l = c ? r.lineAt(c.from).number : -1, u = c ? r.lineAt(Math.max(c.from, c.to - 1)).number : -1, d = e.node.prevSibling ? "cm-inplace-item-gap" : t > 1 ? "cm-inplace-item-gap-nested" : null;
|
|
133
|
+
for (let e = i; e <= s; e++) c && e >= l && e <= u || (n >= 1 && !o.has(e) && (o.add(e), a.push(T.line({
|
|
134
134
|
class: "cm-inplace-li",
|
|
135
135
|
attributes: { style: `--sl-li-depth:${n}` }
|
|
136
|
-
}).range(r.line(e).from))), e === i && d && a.push(
|
|
136
|
+
}).range(r.line(e).from))), e === i && d && a.push(T.line({ class: d }).range(r.line(e).from)));
|
|
137
137
|
}
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
140
|
//#endregion
|
|
141
141
|
//#region src/inplace/reveal.ts
|
|
142
|
-
function
|
|
142
|
+
function B(e) {
|
|
143
143
|
let t = /* @__PURE__ */ new Set();
|
|
144
144
|
for (let n of e.selection.ranges) {
|
|
145
145
|
let r = e.doc.lineAt(n.from).number, i = e.doc.lineAt(n.to).number;
|
|
@@ -149,22 +149,22 @@ function V(e) {
|
|
|
149
149
|
}
|
|
150
150
|
//#endregion
|
|
151
151
|
//#region src/inplace/scan.ts
|
|
152
|
-
var
|
|
152
|
+
var Ke = /* @__PURE__ */ new Set([
|
|
153
153
|
"InlineCode",
|
|
154
154
|
"FencedCode",
|
|
155
155
|
"CodeBlock",
|
|
156
156
|
"CodeText"
|
|
157
157
|
]);
|
|
158
|
-
function
|
|
158
|
+
function V(e, t) {
|
|
159
159
|
let n = e.resolveInner(t, 1);
|
|
160
160
|
for (;;) {
|
|
161
|
-
if (
|
|
161
|
+
if (Ke.has(n.name)) return !0;
|
|
162
162
|
let e = n.parent;
|
|
163
163
|
if (!e) return !1;
|
|
164
164
|
n = e;
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
-
function
|
|
167
|
+
function qe(e, t) {
|
|
168
168
|
let n = e.resolveInner(t, 1);
|
|
169
169
|
for (;;) {
|
|
170
170
|
if (n.name === "Table") return !0;
|
|
@@ -173,16 +173,16 @@ function Ke(e, t) {
|
|
|
173
173
|
n = e;
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
|
-
function
|
|
176
|
+
function Je(e, t, n, r) {
|
|
177
177
|
let i = t.lineAt(n).number, a = t.lineAt(r).number;
|
|
178
178
|
for (let t = i; t <= a; t++) if (e.has(t)) return !0;
|
|
179
179
|
return !1;
|
|
180
180
|
}
|
|
181
181
|
//#endregion
|
|
182
182
|
//#region src/inplace/math.ts
|
|
183
|
-
var
|
|
184
|
-
function
|
|
185
|
-
for (let n of e.matchAll(
|
|
183
|
+
var Ye = /(?<![\w$])\$(?!\s)([^\n$]+?)(?<!\s)\$(?![\w$])/g, Xe = /(?<![\w$])\$\$([^\n$]+?)\$\$(?![\w$])/g, Ze = /(?<![\w$])\$\$([^]+?)\$\$/g;
|
|
184
|
+
function Qe(e, t) {
|
|
185
|
+
for (let n of e.matchAll(Xe)) {
|
|
186
186
|
let e = n.index ?? 0, r = e + (n[0] ?? "").length;
|
|
187
187
|
if (t >= e && t <= r) return {
|
|
188
188
|
from: e,
|
|
@@ -191,7 +191,7 @@ function Ze(e, t) {
|
|
|
191
191
|
block: !0
|
|
192
192
|
};
|
|
193
193
|
}
|
|
194
|
-
for (let n of e.matchAll(
|
|
194
|
+
for (let n of e.matchAll(Ye)) {
|
|
195
195
|
let e = n.index ?? 0, r = e + (n[0] ?? "").length;
|
|
196
196
|
if (t >= e && t <= r) return {
|
|
197
197
|
from: e,
|
|
@@ -202,7 +202,7 @@ function Ze(e, t) {
|
|
|
202
202
|
}
|
|
203
203
|
return null;
|
|
204
204
|
}
|
|
205
|
-
var
|
|
205
|
+
var $e = class extends O {
|
|
206
206
|
src;
|
|
207
207
|
block;
|
|
208
208
|
constructor(e, t) {
|
|
@@ -228,19 +228,19 @@ var Qe = class extends k {
|
|
|
228
228
|
return !1;
|
|
229
229
|
}
|
|
230
230
|
};
|
|
231
|
-
function
|
|
231
|
+
function et(e, t, n, r, i, a, o) {
|
|
232
232
|
if (!r.includes("$")) return;
|
|
233
233
|
let { doc: s } = e.state, c = [];
|
|
234
|
-
for (let e of r.matchAll(
|
|
234
|
+
for (let e of r.matchAll(Xe)) {
|
|
235
235
|
let n = (e[1] ?? "").trim(), r = t + (e.index ?? 0), l = r + (e[0] ?? "").length;
|
|
236
|
-
!n ||
|
|
236
|
+
!n || V(a, r + 2) || (c.push([r, l]), !Je(i, s, r, l) && o.push(T.replace({ widget: new $e(n, !0) }).range(r, l)));
|
|
237
237
|
}
|
|
238
|
-
for (let e of r.matchAll(
|
|
238
|
+
for (let e of r.matchAll(Ye)) {
|
|
239
239
|
let n = (e[1] ?? "").trim(), r = t + (e.index ?? 0), l = r + (e[0] ?? "").length;
|
|
240
|
-
!n ||
|
|
240
|
+
!n || V(a, r + 1) || c.some(([e, t]) => r >= e && l <= t) || Je(i, s, r, l) || o.push(T.replace({ widget: new $e(n, !1) }).range(r, l));
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
|
-
function
|
|
243
|
+
function tt(e, t, n) {
|
|
244
244
|
let r = n.map((t) => ({
|
|
245
245
|
first: e.doc.lineAt(t.from).number,
|
|
246
246
|
last: e.doc.lineAt(t.to).number
|
|
@@ -251,44 +251,44 @@ function et(e, t, n) {
|
|
|
251
251
|
}
|
|
252
252
|
return !1;
|
|
253
253
|
}
|
|
254
|
-
var
|
|
255
|
-
create:
|
|
254
|
+
var nt = M.define({
|
|
255
|
+
create: rt,
|
|
256
256
|
update(e, t) {
|
|
257
|
-
return t.docChanged || t.selection && (
|
|
257
|
+
return t.docChanged || t.selection && (tt(t.state, t.startState.selection, e.ranges) || tt(t.state, t.state.selection, e.ranges)) ? rt(t.state) : e;
|
|
258
258
|
},
|
|
259
|
-
provide: (e) => [
|
|
259
|
+
provide: (e) => [E.decorations.from(e, (e) => e.decorations), E.atomicRanges.of((t) => t.state.field(e).decorations)]
|
|
260
260
|
});
|
|
261
|
-
function
|
|
262
|
-
if (!e.facet(
|
|
263
|
-
decorations:
|
|
261
|
+
function rt(e) {
|
|
262
|
+
if (!e.facet(P).math) return {
|
|
263
|
+
decorations: T.none,
|
|
264
264
|
ranges: []
|
|
265
265
|
};
|
|
266
266
|
let t = e.doc.toString();
|
|
267
267
|
if (!t.includes("$$")) return {
|
|
268
|
-
decorations:
|
|
268
|
+
decorations: T.none,
|
|
269
269
|
ranges: []
|
|
270
270
|
};
|
|
271
|
-
let n = [], r = [], i =
|
|
272
|
-
for (let o of t.matchAll(
|
|
271
|
+
let n = [], r = [], i = B(e), a = N(e);
|
|
272
|
+
for (let o of t.matchAll(Ze)) {
|
|
273
273
|
let t = o[0] ?? "", s = (o[1] ?? "").trim();
|
|
274
274
|
if (!s || !t.includes("\n")) continue;
|
|
275
275
|
let c = o.index ?? 0, l = c + t.length, u = e.doc.lineAt(c), d = e.doc.lineAt(l), f = e.doc.sliceString(u.from, c).trim(), p = e.doc.sliceString(l, d.to).trim();
|
|
276
|
-
f === "" && p === "" && (
|
|
276
|
+
f === "" && p === "" && (V(a, c + 2) || (r.push({
|
|
277
277
|
from: c,
|
|
278
278
|
to: l
|
|
279
|
-
}), !
|
|
280
|
-
widget: new
|
|
279
|
+
}), !Je(i, e.doc, c, l) && n.push(T.replace({
|
|
280
|
+
widget: new $e(s, !0),
|
|
281
281
|
block: !0
|
|
282
282
|
}).range(c, l))));
|
|
283
283
|
}
|
|
284
284
|
return {
|
|
285
|
-
decorations:
|
|
285
|
+
decorations: T.set(n, !0),
|
|
286
286
|
ranges: r
|
|
287
287
|
};
|
|
288
288
|
}
|
|
289
289
|
//#endregion
|
|
290
290
|
//#region src/inplace/nodes-inline.ts
|
|
291
|
-
var
|
|
291
|
+
var it = {
|
|
292
292
|
StrongEmphasis: {
|
|
293
293
|
mark: "EmphasisMark",
|
|
294
294
|
className: "cm-inplace-strong",
|
|
@@ -310,13 +310,13 @@ var rt = {
|
|
|
310
310
|
toggle: "code"
|
|
311
311
|
}
|
|
312
312
|
};
|
|
313
|
-
function
|
|
313
|
+
function at(e, t, n) {
|
|
314
314
|
let { doc: r, revealed: i, out: a, toggles: o } = t;
|
|
315
315
|
if (!o[n.toggle]) return;
|
|
316
316
|
let s = e.node.getChildren(n.mark), c = s[0], l = s[s.length - 1], u = c && l && c !== l, d = u ? c.to : e.from, f = u ? l.from : e.to;
|
|
317
|
-
f > d && a.push(
|
|
317
|
+
f > d && a.push(T.mark({ class: n.className }).range(d, f)), u && !i.has(r.lineAt(e.from).number) && (a.push(T.replace({}).range(c.from, c.to)), a.push(T.replace({}).range(l.from, l.to)));
|
|
318
318
|
}
|
|
319
|
-
function
|
|
319
|
+
function ot(e, t) {
|
|
320
320
|
let { doc: n, revealed: r, out: i, toggles: a } = t, o = n.sliceString(Math.max(0, e.from - 1), e.from), s = n.sliceString(e.to, e.to + 1);
|
|
321
321
|
if (o === "[" && s === "]" || !a.links) return !1;
|
|
322
322
|
let c = n.lineAt(e.from), l = me.exec(c.text);
|
|
@@ -324,12 +324,12 @@ function at(e, t) {
|
|
|
324
324
|
let u = e.node.getChildren("LinkMark");
|
|
325
325
|
if (u.length >= 2) {
|
|
326
326
|
let t = u[0], a = u[1];
|
|
327
|
-
a.from > t.to && i.push(
|
|
327
|
+
a.from > t.to && i.push(T.mark({ class: "cm-inplace-link" }).range(t.to, a.from)), r.has(n.lineAt(e.from).number) || (i.push(T.replace({}).range(e.from, t.to)), i.push(T.replace({}).range(a.from, e.to)));
|
|
328
328
|
}
|
|
329
329
|
}
|
|
330
330
|
//#endregion
|
|
331
331
|
//#region src/inplace/widgets.ts
|
|
332
|
-
var
|
|
332
|
+
var st = class extends O {
|
|
333
333
|
eq() {
|
|
334
334
|
return !0;
|
|
335
335
|
}
|
|
@@ -340,7 +340,7 @@ var ot = class extends k {
|
|
|
340
340
|
ignoreEvent() {
|
|
341
341
|
return !1;
|
|
342
342
|
}
|
|
343
|
-
},
|
|
343
|
+
}, ct = class extends O {
|
|
344
344
|
eq() {
|
|
345
345
|
return !0;
|
|
346
346
|
}
|
|
@@ -351,7 +351,7 @@ var ot = class extends k {
|
|
|
351
351
|
ignoreEvent() {
|
|
352
352
|
return !1;
|
|
353
353
|
}
|
|
354
|
-
},
|
|
354
|
+
}, lt = class extends O {
|
|
355
355
|
checked;
|
|
356
356
|
constructor(e) {
|
|
357
357
|
super(), this.checked = e;
|
|
@@ -373,14 +373,14 @@ var ot = class extends k {
|
|
|
373
373
|
ignoreEvent() {
|
|
374
374
|
return !0;
|
|
375
375
|
}
|
|
376
|
-
},
|
|
377
|
-
function
|
|
376
|
+
}, ut = /^[-*+]$/;
|
|
377
|
+
function dt(e, t) {
|
|
378
378
|
let { doc: n, revealed: r, out: i, toggles: a } = t;
|
|
379
379
|
if (!a.horizontalRule) return !1;
|
|
380
380
|
let o = n.lineAt(e.from);
|
|
381
|
-
return r.has(o.number) || (i.push(
|
|
381
|
+
return r.has(o.number) || (i.push(T.line({ class: "cm-inplace-hr-line" }).range(o.from)), i.push(T.replace({ widget: new st() }).range(o.from, o.to))), !1;
|
|
382
382
|
}
|
|
383
|
-
function
|
|
383
|
+
function ft(e, t) {
|
|
384
384
|
let { doc: n, revealed: r, caretRevealed: i, out: a, toggles: o, quoteRevealed: s } = t;
|
|
385
385
|
if (o.blockquote) {
|
|
386
386
|
let t = n.lineAt(e.from).number, o = n.lineAt(Math.min(e.to, n.length)).number, c = n.line(t), l = me.exec(c.text), u = l ? de(l[3]) : null, d = !1;
|
|
@@ -390,41 +390,41 @@ function dt(e, t) {
|
|
|
390
390
|
let r = u ? `cm-inplace-callout cm-inplace-callout-${u}` : "cm-inplace-quote";
|
|
391
391
|
u && e === t && (r += " cm-inplace-callout-head"), u && e === o && (r += " cm-inplace-callout-foot");
|
|
392
392
|
let i = {};
|
|
393
|
-
u && (i["data-callout"] = l[3].toLowerCase()), u && d && (i["data-revealed"] = ""), a.push(
|
|
393
|
+
u && (i["data-callout"] = l[3].toLowerCase()), u && d && (i["data-revealed"] = ""), a.push(T.line({
|
|
394
394
|
class: r,
|
|
395
395
|
attributes: i
|
|
396
396
|
}).range(n.line(e).from));
|
|
397
397
|
}
|
|
398
398
|
if (u && !d && !r.has(t)) {
|
|
399
399
|
let e = c.from + l[1].length;
|
|
400
|
-
a.push(
|
|
400
|
+
a.push(T.replace({}).range(e, e + l[2].length));
|
|
401
401
|
}
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
|
-
function
|
|
404
|
+
function pt(e, t) {
|
|
405
405
|
let { doc: n, revealed: r, out: i, toggles: a, quoteRevealed: o } = t;
|
|
406
406
|
if (!a.blockquote) return !1;
|
|
407
407
|
let s = n.lineAt(e.from);
|
|
408
408
|
if (!r.has(s.number) && !o.has(s.number)) {
|
|
409
409
|
let t = Math.min(e.to + 1, s.to), n = me.exec(s.text), r = n ? s.text.slice(n[1].length + n[2].length) : s.text.slice(t - s.from);
|
|
410
|
-
i.push(
|
|
410
|
+
i.push(T.replace({}).range(e.from, r.trim() === "" ? e.to : t));
|
|
411
411
|
}
|
|
412
412
|
return !1;
|
|
413
413
|
}
|
|
414
|
-
function
|
|
414
|
+
function mt(e, t) {
|
|
415
415
|
let { doc: n, revealed: r, out: i, toggles: a } = t, o = n.sliceString(e.from, e.to), s = n.lineAt(e.from), c = e.node.parent, l = !!(c?.getChild("Task") ?? c?.getChild("TaskMarker"));
|
|
416
|
-
return r.has(s.number) || (l ? a.tasks && i.push(
|
|
416
|
+
return r.has(s.number) || (l ? a.tasks && i.push(T.replace({}).range(e.from, Math.min(e.to + 1, s.to))) : a.lists && ut.test(o) && i.push(T.replace({ widget: new ct() }).range(e.from, e.to))), !1;
|
|
417
417
|
}
|
|
418
|
-
function
|
|
418
|
+
function ht(e, t) {
|
|
419
419
|
let { doc: n, revealed: r, out: i, toggles: a } = t;
|
|
420
420
|
if (!a.tasks) return !1;
|
|
421
421
|
if (!r.has(n.lineAt(e.from).number)) {
|
|
422
422
|
let t = n.sliceString(e.from + 1, e.to - 1).toLowerCase() === "x";
|
|
423
|
-
i.push(
|
|
423
|
+
i.push(T.replace({ widget: new lt(t) }).range(e.from, e.to));
|
|
424
424
|
}
|
|
425
425
|
return !1;
|
|
426
426
|
}
|
|
427
|
-
function
|
|
427
|
+
function gt(e, t) {
|
|
428
428
|
let { doc: n, revealed: r, caretRevealed: i, out: a, toggles: o } = t;
|
|
429
429
|
if (!o.code) return !1;
|
|
430
430
|
let s = e.name === "FencedCode", c = n.lineAt(e.from).number, l = n.lineAt(e.to > e.from ? e.to - 1 : e.to).number, u = l > c + 1, d = !1;
|
|
@@ -434,18 +434,18 @@ function ht(e, t) {
|
|
|
434
434
|
let t = s && (e === c || e === l), r = "cm-inplace-mono";
|
|
435
435
|
e === c && (r += " cm-inplace-code-top"), e === l && (r += " cm-inplace-code-bottom"), t && (r += f ? " cm-inplace-code-pad" : " cm-inplace-fence");
|
|
436
436
|
let i = n.line(e);
|
|
437
|
-
a.push(
|
|
437
|
+
a.push(T.line({ class: r }).range(i.from)), t && f && i.to > i.from && a.push(T.replace({}).range(i.from, i.to));
|
|
438
438
|
}
|
|
439
439
|
return !1;
|
|
440
440
|
}
|
|
441
441
|
//#endregion
|
|
442
442
|
//#region src/inplace/nodes.ts
|
|
443
|
-
var
|
|
444
|
-
function
|
|
443
|
+
var _t = /^ATXHeading([1-6])$/, vt = /^SetextHeading([12])$/;
|
|
444
|
+
function yt(e, t, n) {
|
|
445
445
|
let { doc: r, revealed: i, out: a, toggles: o } = t;
|
|
446
446
|
if (o.headings) {
|
|
447
447
|
let t = r.lineAt(e.from);
|
|
448
|
-
if (a.push(
|
|
448
|
+
if (a.push(T.line({
|
|
449
449
|
class: `cm-inplace-heading cm-inplace-h${n}`,
|
|
450
450
|
attributes: {
|
|
451
451
|
role: "heading",
|
|
@@ -453,15 +453,15 @@ function vt(e, t, n) {
|
|
|
453
453
|
}
|
|
454
454
|
}).range(t.from)), !i.has(t.number)) {
|
|
455
455
|
let n = e.node.firstChild;
|
|
456
|
-
n?.name === "HeaderMark" && a.push(
|
|
456
|
+
n?.name === "HeaderMark" && a.push(T.replace({}).range(n.from, Math.min(n.to + 1, t.to)));
|
|
457
457
|
}
|
|
458
458
|
}
|
|
459
459
|
}
|
|
460
|
-
function
|
|
460
|
+
function bt(e, t, n) {
|
|
461
461
|
let { doc: r, caretRevealed: i, out: a, toggles: o } = t;
|
|
462
462
|
if (o.headings) {
|
|
463
463
|
let t = r.lineAt(e.from);
|
|
464
|
-
a.push(
|
|
464
|
+
a.push(T.line({
|
|
465
465
|
class: `cm-inplace-heading cm-inplace-h${n}`,
|
|
466
466
|
attributes: {
|
|
467
467
|
role: "heading",
|
|
@@ -471,46 +471,46 @@ function yt(e, t, n) {
|
|
|
471
471
|
let o = e.node.getChild("HeaderMark");
|
|
472
472
|
if (o) {
|
|
473
473
|
let e = r.lineAt(o.from);
|
|
474
|
-
!i.has(t.number) && !i.has(e.number) && (a.push(
|
|
474
|
+
!i.has(t.number) && !i.has(e.number) && (a.push(T.line({ class: "cm-inplace-setext-rule" }).range(e.from)), a.push(T.replace({}).range(o.from, o.to)));
|
|
475
475
|
}
|
|
476
476
|
}
|
|
477
477
|
}
|
|
478
|
-
function
|
|
478
|
+
function xt(e, t) {
|
|
479
479
|
if (e.to <= t.fmEnd) return !1;
|
|
480
|
-
let n =
|
|
481
|
-
if (n) return
|
|
482
|
-
let r =
|
|
483
|
-
if (r) return
|
|
484
|
-
let i =
|
|
485
|
-
if (i) return
|
|
486
|
-
if (e.name === "Link") return
|
|
487
|
-
if (e.name === "HorizontalRule") return
|
|
488
|
-
if (e.name === "Blockquote") return
|
|
489
|
-
if (e.name === "QuoteMark") return
|
|
490
|
-
if (e.name === "ListMark") return
|
|
491
|
-
if (e.name === "TaskMarker") return
|
|
492
|
-
if (e.name === "FencedCode" || e.name === "CodeBlock") return
|
|
480
|
+
let n = _t.exec(e.name);
|
|
481
|
+
if (n) return yt(e, t, n[1]);
|
|
482
|
+
let r = vt.exec(e.name);
|
|
483
|
+
if (r) return bt(e, t, r[1]);
|
|
484
|
+
let i = it[e.name];
|
|
485
|
+
if (i) return at(e, t, i);
|
|
486
|
+
if (e.name === "Link") return ot(e, t);
|
|
487
|
+
if (e.name === "HorizontalRule") return dt(e, t);
|
|
488
|
+
if (e.name === "Blockquote") return ft(e, t);
|
|
489
|
+
if (e.name === "QuoteMark") return pt(e, t);
|
|
490
|
+
if (e.name === "ListMark") return mt(e, t);
|
|
491
|
+
if (e.name === "TaskMarker") return ht(e, t);
|
|
492
|
+
if (e.name === "FencedCode" || e.name === "CodeBlock") return gt(e, t);
|
|
493
493
|
}
|
|
494
494
|
//#endregion
|
|
495
495
|
//#region src/inplace/wikilinks.ts
|
|
496
|
-
function
|
|
496
|
+
function St(t, n, r, i, a, o, s) {
|
|
497
497
|
if (!i.includes("[[")) return;
|
|
498
|
-
let c = t.state.facet(
|
|
498
|
+
let c = t.state.facet(F) != null;
|
|
499
499
|
for (let r of i.matchAll(e)) {
|
|
500
500
|
let [e = "", i = "", l] = r, u = i.trim(), d = n + (r.index ?? 0);
|
|
501
|
-
if (!u ||
|
|
501
|
+
if (!u || V(o, d + 1) || c && d > 0 && t.state.doc.sliceString(d - 1, d) === "!") continue;
|
|
502
502
|
let f = d + e.length, p = l == null ? d + 2 : d + 2 + i.length + 1, m = f - 2;
|
|
503
|
-
s.push(
|
|
503
|
+
s.push(T.mark({
|
|
504
504
|
class: "cm-inplace-link cm-inplace-wikilink",
|
|
505
505
|
attributes: { "data-stylo-wikilink": u }
|
|
506
|
-
}).range(p, m)), a.has(t.state.doc.lineAt(d).number) || (s.push(
|
|
506
|
+
}).range(p, m)), a.has(t.state.doc.lineAt(d).number) || (s.push(T.replace({}).range(d, p)), s.push(T.replace({}).range(m, f)));
|
|
507
507
|
}
|
|
508
508
|
}
|
|
509
509
|
//#endregion
|
|
510
510
|
//#region src/inplace/decorate.ts
|
|
511
|
-
var
|
|
512
|
-
function
|
|
513
|
-
let n = [], r =
|
|
511
|
+
var Ct = /* @__PURE__ */ new Set(), wt = T.replace({});
|
|
512
|
+
function Tt(e) {
|
|
513
|
+
let n = [], r = B(e.state), i = e.state.facet(L) === "never" ? Ct : r, a = N(e.state), { doc: o } = e.state, s = e.state.facet(P), c = {
|
|
514
514
|
doc: o,
|
|
515
515
|
revealed: i,
|
|
516
516
|
caretRevealed: r,
|
|
@@ -523,10 +523,10 @@ function wt(e) {
|
|
|
523
523
|
a.iterate({
|
|
524
524
|
from: t.from,
|
|
525
525
|
to: t.to,
|
|
526
|
-
enter: (e) =>
|
|
526
|
+
enter: (e) => xt(e, c)
|
|
527
527
|
});
|
|
528
528
|
let r = e.state.doc.sliceString(t.from, t.to);
|
|
529
|
-
s.wikilinks &&
|
|
529
|
+
s.wikilinks && St(e, t.from, t.to, r, i, a, n), s.math && et(e, t.from, t.to, r, i, a, n), Ge(t.from, t.to, a, o, s, n);
|
|
530
530
|
}
|
|
531
531
|
let l = n.filter((e) => e.from < e.to && !e.value.spec.class).sort((e, t) => e.from - t.from || e.to - t.to), u = [];
|
|
532
532
|
for (let e of l) {
|
|
@@ -535,38 +535,38 @@ function wt(e) {
|
|
|
535
535
|
if (e.from === t.from && e.to === t.to) continue;
|
|
536
536
|
}
|
|
537
537
|
let t = u[u.length - 1];
|
|
538
|
-
t && e.from <= t.to ? e.to > t.to && (u[u.length - 1] =
|
|
538
|
+
t && e.from <= t.to ? e.to > t.to && (u[u.length - 1] = wt.range(t.from, e.to)) : u.push(wt.range(e.from, e.to));
|
|
539
539
|
}
|
|
540
540
|
return {
|
|
541
|
-
decorations:
|
|
542
|
-
atomic:
|
|
541
|
+
decorations: T.set(n, !0),
|
|
542
|
+
atomic: T.set(u, !0)
|
|
543
543
|
};
|
|
544
544
|
}
|
|
545
545
|
//#endregion
|
|
546
546
|
//#region src/inplace/plugin.ts
|
|
547
|
-
var
|
|
547
|
+
var Et = D.fromClass(class {
|
|
548
548
|
decorations;
|
|
549
549
|
atomic;
|
|
550
550
|
constructor(e) {
|
|
551
|
-
let t =
|
|
551
|
+
let t = Tt(e);
|
|
552
552
|
this.decorations = t.decorations, this.atomic = t.atomic;
|
|
553
553
|
}
|
|
554
554
|
update(e) {
|
|
555
555
|
if (e.docChanged || e.viewportChanged || e.selectionSet) {
|
|
556
|
-
let t =
|
|
556
|
+
let t = Tt(e.view);
|
|
557
557
|
this.decorations = t.decorations, this.atomic = t.atomic;
|
|
558
558
|
}
|
|
559
559
|
}
|
|
560
560
|
}, {
|
|
561
561
|
decorations: (e) => e.decorations,
|
|
562
|
-
provide: (e) =>
|
|
562
|
+
provide: (e) => E.atomicRanges.of((t) => t.plugin(e)?.atomic ?? T.none)
|
|
563
563
|
});
|
|
564
|
-
function
|
|
565
|
-
return
|
|
564
|
+
function Dt() {
|
|
565
|
+
return Et;
|
|
566
566
|
}
|
|
567
567
|
//#endregion
|
|
568
568
|
//#region src/inplace/wrap-at.ts
|
|
569
|
-
var
|
|
569
|
+
var Ot = {
|
|
570
570
|
StrongEmphasis: {
|
|
571
571
|
markType: "EmphasisMark",
|
|
572
572
|
toggle: "emphasis"
|
|
@@ -584,15 +584,15 @@ var Dt = {
|
|
|
584
584
|
toggle: "code"
|
|
585
585
|
}
|
|
586
586
|
};
|
|
587
|
-
function
|
|
588
|
-
return e.facet(
|
|
587
|
+
function H(e, t) {
|
|
588
|
+
return e.facet(L) === "never" || !B(e).has(t);
|
|
589
589
|
}
|
|
590
|
-
function
|
|
590
|
+
function U(t, n, r = !1, i = !1) {
|
|
591
591
|
let a = t.doc.lineAt(n);
|
|
592
|
-
if (!i && !
|
|
593
|
-
let o = t.facet(
|
|
592
|
+
if (!i && !H(t, a.number)) return null;
|
|
593
|
+
let o = t.facet(P), s = N(t);
|
|
594
594
|
for (let e of [-1, 1]) for (let i = s.resolveInner(n, e); i; i = i.parent) {
|
|
595
|
-
let e =
|
|
595
|
+
let e = Ot[i.name];
|
|
596
596
|
if (e) {
|
|
597
597
|
if (!o[e.toggle]) break;
|
|
598
598
|
let t = i.getChildren(e.markType), n = t[0], r = t[t.length - 1];
|
|
@@ -634,8 +634,8 @@ function W(t, n, r = !1, i = !1) {
|
|
|
634
634
|
}
|
|
635
635
|
//#endregion
|
|
636
636
|
//#region src/inplace/edit-boundaries.ts
|
|
637
|
-
function
|
|
638
|
-
let r = e.plugin(
|
|
637
|
+
function kt(e, t, n) {
|
|
638
|
+
let r = e.plugin(Et)?.decorations;
|
|
639
639
|
if (!r) return t;
|
|
640
640
|
let i = n < 0 ? 0 : e.state.doc.length, a = t;
|
|
641
641
|
for (let e = !0; e;) e = !1, r.between(Math.min(a, i), Math.max(a, i), (t, r, i) => {
|
|
@@ -643,18 +643,18 @@ function Ot(e, t, n) {
|
|
|
643
643
|
});
|
|
644
644
|
return a;
|
|
645
645
|
}
|
|
646
|
-
var
|
|
646
|
+
var At = (e) => (t) => {
|
|
647
647
|
if (h(t)) return !1;
|
|
648
648
|
let n = t.state.selection.main;
|
|
649
649
|
if (!n.empty) return !1;
|
|
650
650
|
let { state: r } = t;
|
|
651
|
-
if (!
|
|
652
|
-
let i =
|
|
651
|
+
if (!H(r, r.doc.lineAt(n.head).number)) return !1;
|
|
652
|
+
let i = kt(t, n.head, e);
|
|
653
653
|
if (i === n.head) return !1;
|
|
654
654
|
let a = r.doc;
|
|
655
655
|
if (e < 0 ? i <= 0 : i >= a.length) return !0;
|
|
656
656
|
let o = e < 0 ? i - 1 : i, s = e < 0 ? i : i + 1;
|
|
657
|
-
for (let e =
|
|
657
|
+
for (let e = U(r, o); e && o <= e.contentFrom && s >= e.contentTo && e.contentTo > e.contentFrom && !(e.from >= o && e.to <= s); e = U(r, o)) o = Math.min(o, e.from), s = Math.max(s, e.to);
|
|
658
658
|
return t.dispatch({
|
|
659
659
|
changes: {
|
|
660
660
|
from: o,
|
|
@@ -665,56 +665,56 @@ var kt = (e) => (t) => {
|
|
|
665
665
|
userEvent: e < 0 ? "delete.backward" : "delete.forward",
|
|
666
666
|
scrollIntoView: !0
|
|
667
667
|
}), !0;
|
|
668
|
-
},
|
|
669
|
-
function
|
|
668
|
+
}, jt = At(-1), Mt = At(1);
|
|
669
|
+
function Nt(e, t, n) {
|
|
670
670
|
if (n <= t) return !1;
|
|
671
|
-
let r = e.plugin(
|
|
671
|
+
let r = e.plugin(Et)?.decorations;
|
|
672
672
|
if (!r) return !1;
|
|
673
673
|
let i = t;
|
|
674
674
|
return r.between(t, n, (e, t, n) => {
|
|
675
675
|
n.spec.widget || n.spec.class || t <= e || e <= i && (i = Math.max(i, t));
|
|
676
676
|
}), i >= n;
|
|
677
677
|
}
|
|
678
|
-
var
|
|
678
|
+
var W = (e, t) => (n) => {
|
|
679
679
|
if (h(n)) return !1;
|
|
680
680
|
let r = n.state.selection.main;
|
|
681
|
-
if (!t && !r.empty || !
|
|
681
|
+
if (!t && !r.empty || !H(n.state, n.state.doc.lineAt(r.head).number)) return !1;
|
|
682
682
|
let i = n.moveByChar(r, e);
|
|
683
|
-
if (
|
|
684
|
-
let a = t ?
|
|
683
|
+
if (Nt(n, Math.min(r.head, i.head), Math.max(r.head, i.head)) && (i = n.moveByChar(i, e)), i.head === r.head) return !1;
|
|
684
|
+
let a = t ? Ce.range(r.anchor, i.head) : Ce.cursor(i.head);
|
|
685
685
|
return n.dispatch({
|
|
686
686
|
selection: a,
|
|
687
687
|
userEvent: "select"
|
|
688
688
|
}), !0;
|
|
689
|
-
},
|
|
689
|
+
}, Pt = W(!1, !1), Ft = W(!0, !1), It = W(!1, !0), Lt = W(!0, !0), Rt = j.high(k.of([
|
|
690
690
|
{
|
|
691
691
|
key: "Backspace",
|
|
692
|
-
run:
|
|
692
|
+
run: jt
|
|
693
693
|
},
|
|
694
694
|
{
|
|
695
695
|
key: "Delete",
|
|
696
|
-
run:
|
|
696
|
+
run: Mt
|
|
697
697
|
},
|
|
698
698
|
{
|
|
699
699
|
key: "ArrowLeft",
|
|
700
|
-
run:
|
|
700
|
+
run: Pt
|
|
701
701
|
},
|
|
702
702
|
{
|
|
703
703
|
key: "ArrowRight",
|
|
704
|
-
run:
|
|
704
|
+
run: Ft
|
|
705
705
|
},
|
|
706
706
|
{
|
|
707
707
|
key: "Shift-ArrowLeft",
|
|
708
|
-
run:
|
|
708
|
+
run: It
|
|
709
709
|
},
|
|
710
710
|
{
|
|
711
711
|
key: "Shift-ArrowRight",
|
|
712
|
-
run:
|
|
712
|
+
run: Lt
|
|
713
713
|
}
|
|
714
714
|
]));
|
|
715
715
|
//#endregion
|
|
716
716
|
//#region src/inplace/table-cell-align.ts
|
|
717
|
-
function
|
|
717
|
+
function zt(e, t) {
|
|
718
718
|
let n = [], r = 0, i = (e) => {
|
|
719
719
|
for (let a of e.childNodes) if (a instanceof Text) {
|
|
720
720
|
let e = t.indexOf(a.data, r);
|
|
@@ -741,7 +741,7 @@ function Rt(e, t) {
|
|
|
741
741
|
}
|
|
742
742
|
//#endregion
|
|
743
743
|
//#region src/inplace/table-cell-widgets.ts
|
|
744
|
-
function
|
|
744
|
+
function Bt(e, t, n, r, i) {
|
|
745
745
|
return e.filter((e) => e.pos >= n && e.pos <= n + i).map((e) => ({
|
|
746
746
|
at: e.pos - n + r,
|
|
747
747
|
key: e.key,
|
|
@@ -749,11 +749,11 @@ function zt(e, t, n, r, i) {
|
|
|
749
749
|
build: () => e.toDOM(t)
|
|
750
750
|
}));
|
|
751
751
|
}
|
|
752
|
-
function
|
|
752
|
+
function Vt(e) {
|
|
753
753
|
let t = e.build();
|
|
754
754
|
return t.setAttribute("contenteditable", "false"), t.dataset.styloCellWidget = "", t;
|
|
755
755
|
}
|
|
756
|
-
function
|
|
756
|
+
function Ht(e, t) {
|
|
757
757
|
let n = null, r = Infinity;
|
|
758
758
|
for (let i of e) {
|
|
759
759
|
let e = i.start + i.node.data.length;
|
|
@@ -768,10 +768,10 @@ function Vt(e, t) {
|
|
|
768
768
|
}
|
|
769
769
|
return n;
|
|
770
770
|
}
|
|
771
|
-
function
|
|
771
|
+
function Ut(e, t) {
|
|
772
772
|
let n = /* @__PURE__ */ new Map(), r = [];
|
|
773
773
|
for (let i of t) {
|
|
774
|
-
let t = e &&
|
|
774
|
+
let t = e && Ht(e, i.at);
|
|
775
775
|
t ? n.set(t.piece, [...n.get(t.piece) ?? [], {
|
|
776
776
|
...i,
|
|
777
777
|
at: t.at
|
|
@@ -784,7 +784,7 @@ function Ht(e, t) {
|
|
|
784
784
|
}
|
|
785
785
|
//#endregion
|
|
786
786
|
//#region src/inplace/table-cell-marks.ts
|
|
787
|
-
function
|
|
787
|
+
function Wt(e, t, n, r) {
|
|
788
788
|
let i = {
|
|
789
789
|
marks: [],
|
|
790
790
|
widgets: [],
|
|
@@ -795,13 +795,13 @@ function Ut(e, t, n, r) {
|
|
|
795
795
|
to: Math.min(a.to - t, r) + n,
|
|
796
796
|
class: a.class,
|
|
797
797
|
attributes: a.attributes
|
|
798
|
-
}),
|
|
798
|
+
}), Gt(i, a.cellClass));
|
|
799
799
|
return i.marks.length || i.cellClass.length ? i : null;
|
|
800
800
|
}
|
|
801
|
-
var
|
|
801
|
+
var Gt = (e, t) => {
|
|
802
802
|
for (let n of t?.split(/\s+/) ?? []) n && !e.cellClass.includes(n) && e.cellClass.push(n);
|
|
803
803
|
};
|
|
804
|
-
function
|
|
804
|
+
function Kt(e, t) {
|
|
805
805
|
let n = document.createElement("span");
|
|
806
806
|
n.className = e.class, n.dataset.styloCellMark = "";
|
|
807
807
|
for (let [t, r] of Object.entries(e.attributes ?? {})) try {
|
|
@@ -809,30 +809,30 @@ function Gt(e, t) {
|
|
|
809
809
|
} catch {}
|
|
810
810
|
return n.append(t), n;
|
|
811
811
|
}
|
|
812
|
-
function
|
|
812
|
+
function qt(e, t, n) {
|
|
813
813
|
let r = e.node.data, i = e.start + r.length, a = t.filter((t) => t.from < i && t.to > e.start);
|
|
814
814
|
if (!a.length && !n.length) return !1;
|
|
815
815
|
let o = /* @__PURE__ */ new Set([e.start, i]);
|
|
816
816
|
for (let e of n) o.add(e.at);
|
|
817
817
|
for (let t of a) o.add(Math.max(t.from, e.start)), o.add(Math.min(t.to, i));
|
|
818
818
|
let s = [...o].sort((e, t) => e - t), c = document.createDocumentFragment(), l = (e) => {
|
|
819
|
-
for (let t of n) t.at === e && c.append(
|
|
819
|
+
for (let t of n) t.at === e && c.append(Vt(t));
|
|
820
820
|
};
|
|
821
821
|
l(e.start);
|
|
822
822
|
for (let t = 0; t < s.length - 1; t++) {
|
|
823
823
|
let [n, i] = [s[t], s[t + 1]], o = document.createTextNode(r.slice(n - e.start, i - e.start));
|
|
824
|
-
for (let e of a) e.from <= n && e.to >= i && (o =
|
|
824
|
+
for (let e of a) e.from <= n && e.to >= i && (o = Kt(e, o));
|
|
825
825
|
c.append(o), l(i);
|
|
826
826
|
}
|
|
827
827
|
return e.node.replaceWith(c), !0;
|
|
828
828
|
}
|
|
829
|
-
function
|
|
829
|
+
function Jt(e, t) {
|
|
830
830
|
for (let n of t) {
|
|
831
|
-
let t =
|
|
831
|
+
let t = Kt(n, e.ownerDocument.createDocumentFragment());
|
|
832
832
|
t.append(...e.childNodes), e.append(t);
|
|
833
833
|
}
|
|
834
834
|
}
|
|
835
|
-
function
|
|
835
|
+
function Yt(e, t, n, r) {
|
|
836
836
|
let i = n.marks, a = [], o = [], s;
|
|
837
837
|
if (r) s = e.firstChild instanceof Text ? [{
|
|
838
838
|
node: e.firstChild,
|
|
@@ -840,7 +840,7 @@ function Jt(e, t, n, r) {
|
|
|
840
840
|
}] : null;
|
|
841
841
|
else {
|
|
842
842
|
let r = [...t.matchAll(/\\\|/g)].map((e) => e.index), o = (e) => e - r.filter((t) => t < e).length;
|
|
843
|
-
s =
|
|
843
|
+
s = zt(e, t.replace(/\\\|/g, "|")), i = i.map((e) => ({
|
|
844
844
|
...e,
|
|
845
845
|
from: o(e.from),
|
|
846
846
|
to: o(e.to)
|
|
@@ -849,21 +849,21 @@ function Jt(e, t, n, r) {
|
|
|
849
849
|
at: o(e.at)
|
|
850
850
|
}));
|
|
851
851
|
}
|
|
852
|
-
let { placed: c, loose: l } =
|
|
853
|
-
if (!s) return
|
|
852
|
+
let { placed: c, loose: l } = Ut(s, a), u = () => e.append(...l.map(Vt));
|
|
853
|
+
if (!s) return Jt(e, i), u();
|
|
854
854
|
let d = /* @__PURE__ */ new Set();
|
|
855
855
|
for (let e of s) for (let t of i) t.from < e.start + e.node.data.length && t.to > e.start && d.add(t);
|
|
856
856
|
for (let e of i) d.has(e) || o.push(e);
|
|
857
|
-
for (let e of s)
|
|
858
|
-
|
|
857
|
+
for (let e of s) qt(e, i, c.get(e) ?? []);
|
|
858
|
+
Jt(e, o), u();
|
|
859
859
|
}
|
|
860
|
-
function
|
|
860
|
+
function Xt(e) {
|
|
861
861
|
let t = null;
|
|
862
862
|
return (n, r) => {
|
|
863
863
|
let i = e.view();
|
|
864
864
|
if (!i || !e.mounted()) return null;
|
|
865
865
|
if (t?.state !== i.state) {
|
|
866
|
-
let n = i.state.facet(
|
|
866
|
+
let n = i.state.facet(Le)(i.state), r = i.state.facet(Re)(i.state);
|
|
867
867
|
t = {
|
|
868
868
|
state: i.state,
|
|
869
869
|
marks: n,
|
|
@@ -874,7 +874,7 @@ function Yt(e) {
|
|
|
874
874
|
if (!t.marks.length && !t.widgets.length) return null;
|
|
875
875
|
let a = v(i.state.doc, t.from, n, r), o = e.raw(n, r);
|
|
876
876
|
if (a == null) return null;
|
|
877
|
-
let s = o.length - o.trimStart().length, c = o.trim().length, l =
|
|
877
|
+
let s = o.length - o.trimStart().length, c = o.trim().length, l = Wt(t.marks, a, s, c), u = Bt(t.widgets, i, a, s, c);
|
|
878
878
|
if (!u.length) return l;
|
|
879
879
|
let d = l ?? {
|
|
880
880
|
marks: [],
|
|
@@ -882,49 +882,49 @@ function Yt(e) {
|
|
|
882
882
|
cellClass: []
|
|
883
883
|
};
|
|
884
884
|
d.widgets = u;
|
|
885
|
-
for (let e of u)
|
|
885
|
+
for (let e of u) Gt(d, e.cellClass);
|
|
886
886
|
return d;
|
|
887
887
|
};
|
|
888
888
|
}
|
|
889
889
|
//#endregion
|
|
890
890
|
//#region src/inplace/context-menu-helpers.ts
|
|
891
|
-
var
|
|
891
|
+
var Zt = (e) => e === "h1" || e === "h2" || e === "h3" ? S.heading : S[e], Qt = [
|
|
892
892
|
"bold",
|
|
893
893
|
"italic",
|
|
894
894
|
"strike"
|
|
895
|
-
],
|
|
895
|
+
], $t = ["code", "math"], en = [
|
|
896
896
|
"bulletList",
|
|
897
897
|
"orderedList",
|
|
898
898
|
"task"
|
|
899
|
-
],
|
|
899
|
+
], tn = [
|
|
900
900
|
"h1",
|
|
901
901
|
"h2",
|
|
902
902
|
"h3"
|
|
903
|
-
],
|
|
903
|
+
], nn = ["table", "hr"], rn = [
|
|
904
904
|
"codeBlock",
|
|
905
905
|
"mathBlock",
|
|
906
906
|
"frontmatter"
|
|
907
|
-
],
|
|
907
|
+
], an = (e, t, n = !1) => {
|
|
908
908
|
let r = g[t];
|
|
909
909
|
if (!r) return null;
|
|
910
910
|
let { disabled: i, active: a } = re(e.state, r, n);
|
|
911
911
|
return {
|
|
912
912
|
label: r.title,
|
|
913
|
-
icon:
|
|
913
|
+
icon: Zt(t),
|
|
914
914
|
active: a,
|
|
915
915
|
disabled: i,
|
|
916
916
|
onSelect: () => {
|
|
917
917
|
r.run(e), e.focus();
|
|
918
918
|
}
|
|
919
919
|
};
|
|
920
|
-
},
|
|
920
|
+
}, G = (e, t, n = !1, r = !1) => {
|
|
921
921
|
let i = [];
|
|
922
922
|
for (let a of t) {
|
|
923
|
-
let t =
|
|
923
|
+
let t = an(e, a, r);
|
|
924
924
|
t && !(n && t.disabled) && i.push(t);
|
|
925
925
|
}
|
|
926
926
|
return i;
|
|
927
|
-
},
|
|
927
|
+
}, K = (e) => {
|
|
928
928
|
let t = e.contentDOM.ownerDocument, n = (n) => () => {
|
|
929
929
|
e.focus();
|
|
930
930
|
try {
|
|
@@ -959,36 +959,36 @@ var Xt = (e) => e === "h1" || e === "h2" || e === "h3" ? S.heading : S[e], Zt =
|
|
|
959
959
|
onSelect: () => {}
|
|
960
960
|
}
|
|
961
961
|
];
|
|
962
|
-
},
|
|
962
|
+
}, q = (e, t, n, r = !1) => ({
|
|
963
963
|
label: e,
|
|
964
964
|
icon: t,
|
|
965
965
|
rows: n,
|
|
966
966
|
disabled: r
|
|
967
967
|
});
|
|
968
|
-
function
|
|
968
|
+
function J(e, t) {
|
|
969
969
|
t.length && (e.length && e.push("separator"), e.push(...t));
|
|
970
970
|
}
|
|
971
971
|
//#endregion
|
|
972
972
|
//#region src/inplace/edit-divider.ts
|
|
973
|
-
function
|
|
973
|
+
function on(e) {
|
|
974
974
|
let t = e.selection.main;
|
|
975
975
|
if (!t.empty) return !1;
|
|
976
976
|
let n = e.doc.lineAt(t.head);
|
|
977
|
-
if (!
|
|
978
|
-
for (let t =
|
|
977
|
+
if (!H(e, n.number)) return !1;
|
|
978
|
+
for (let t = N(e).resolveInner(n.from, 1); t; t = t.parent) {
|
|
979
979
|
if (t.name === "HorizontalRule") return !0;
|
|
980
980
|
if (!t.parent) break;
|
|
981
981
|
}
|
|
982
982
|
return !1;
|
|
983
983
|
}
|
|
984
|
-
var
|
|
984
|
+
var sn = (e) => h(e) || !on(e.state) ? !1 : oe(e), cn = j.high(k.of([{
|
|
985
985
|
key: "Backspace",
|
|
986
|
-
run:
|
|
986
|
+
run: sn
|
|
987
987
|
}, {
|
|
988
988
|
key: "Delete",
|
|
989
|
-
run:
|
|
989
|
+
run: sn
|
|
990
990
|
}]));
|
|
991
|
-
function
|
|
991
|
+
function ln(e) {
|
|
992
992
|
return {
|
|
993
993
|
label: "Remove divider",
|
|
994
994
|
icon: S.hr,
|
|
@@ -999,66 +999,66 @@ function cn(e) {
|
|
|
999
999
|
}
|
|
1000
1000
|
//#endregion
|
|
1001
1001
|
//#region src/inplace/inline-md.ts
|
|
1002
|
-
function
|
|
1002
|
+
function un(e, t = !1) {
|
|
1003
1003
|
let n = document.createDocumentFragment();
|
|
1004
|
-
return
|
|
1004
|
+
return pn(n, e, t), n;
|
|
1005
1005
|
}
|
|
1006
|
-
var
|
|
1006
|
+
var dn = /!\[\[[^\]\n]+?\]\]/, fn = [
|
|
1007
1007
|
{
|
|
1008
1008
|
re: /`([^`\n]+)`/,
|
|
1009
|
-
build: (e) =>
|
|
1009
|
+
build: (e) => Y("code", "cm-inplace-code", document.createTextNode(e[1]))
|
|
1010
1010
|
},
|
|
1011
1011
|
{
|
|
1012
|
-
re: new RegExp(
|
|
1012
|
+
re: new RegExp(Ye.source),
|
|
1013
1013
|
build: (e) => {
|
|
1014
|
-
let t =
|
|
1014
|
+
let t = Y("span", "cm-inplace-math");
|
|
1015
1015
|
return he.render(e[1], t, { throwOnError: !1 }), t;
|
|
1016
1016
|
}
|
|
1017
1017
|
},
|
|
1018
1018
|
{
|
|
1019
1019
|
re: new RegExp(e.source),
|
|
1020
1020
|
build: (e) => {
|
|
1021
|
-
let t =
|
|
1021
|
+
let t = Y("span", "cm-inplace-wikilink", document.createTextNode(e[2] || e[1] || ""));
|
|
1022
1022
|
return t.dataset.styloWikilink = e[1] ?? "", t;
|
|
1023
1023
|
}
|
|
1024
1024
|
},
|
|
1025
1025
|
{
|
|
1026
1026
|
re: /\[([^\]\n]*)\]\(([^)\n]*)\)/,
|
|
1027
1027
|
build: (e, t) => {
|
|
1028
|
-
let n =
|
|
1029
|
-
return n.href = e[2] ?? "", n.append(
|
|
1028
|
+
let n = Y("a", "cm-inplace-link");
|
|
1029
|
+
return n.href = e[2] ?? "", n.append(X(e[1] ?? "", t)), n;
|
|
1030
1030
|
}
|
|
1031
1031
|
},
|
|
1032
1032
|
{
|
|
1033
1033
|
re: /\*\*\*([^*\n]+?)\*\*\*/,
|
|
1034
|
-
build: (e, t) =>
|
|
1034
|
+
build: (e, t) => Y("strong", "cm-inplace-strong", Y("em", "cm-inplace-em", X(e[1], t)))
|
|
1035
1035
|
},
|
|
1036
1036
|
{
|
|
1037
1037
|
re: /\*\*([^\n]+?)\*\*/,
|
|
1038
|
-
build: (e, t) =>
|
|
1038
|
+
build: (e, t) => Y("strong", "cm-inplace-strong", X(e[1], t))
|
|
1039
1039
|
},
|
|
1040
1040
|
{
|
|
1041
1041
|
re: /~~([^\n]+?)~~/,
|
|
1042
|
-
build: (e, t) =>
|
|
1042
|
+
build: (e, t) => Y("span", "cm-inplace-strike", X(e[1], t))
|
|
1043
1043
|
},
|
|
1044
1044
|
{
|
|
1045
1045
|
re: /(?<!\*)\*(?!\*|\s)([^\n]+?)(?<!\s)\*(?!\*)/,
|
|
1046
|
-
build: (e, t) =>
|
|
1046
|
+
build: (e, t) => Y("em", "cm-inplace-em", X(e[1], t))
|
|
1047
1047
|
}
|
|
1048
1048
|
];
|
|
1049
|
-
function
|
|
1049
|
+
function Y(e, t, ...n) {
|
|
1050
1050
|
let r = document.createElement(e);
|
|
1051
1051
|
return r.className = t, r.append(...n), r;
|
|
1052
1052
|
}
|
|
1053
|
-
function
|
|
1053
|
+
function X(e, t) {
|
|
1054
1054
|
let n = document.createDocumentFragment();
|
|
1055
|
-
return
|
|
1055
|
+
return pn(n, e, t), n;
|
|
1056
1056
|
}
|
|
1057
|
-
function
|
|
1057
|
+
function pn(e, t, n) {
|
|
1058
1058
|
for (; t;) {
|
|
1059
|
-
let r = -1, i = null, a = n ?
|
|
1059
|
+
let r = -1, i = null, a = n ? dn.exec(t) : null;
|
|
1060
1060
|
a && (r = a.index, i = { literal: a[0] });
|
|
1061
|
-
for (let e of
|
|
1061
|
+
for (let e of fn) {
|
|
1062
1062
|
let n = e.re.exec(t);
|
|
1063
1063
|
n && (r < 0 || n.index < r) && (r = n.index, i = {
|
|
1064
1064
|
rule: e,
|
|
@@ -1073,8 +1073,69 @@ function fn(e, t, n) {
|
|
|
1073
1073
|
}
|
|
1074
1074
|
}
|
|
1075
1075
|
//#endregion
|
|
1076
|
+
//#region src/inplace/table-widget-render.ts
|
|
1077
|
+
var mn = /* @__PURE__ */ new WeakMap(), hn = (e) => JSON.stringify(e), gn = (e, t) => (mn.get(e)?.sig ?? "null") === hn(t);
|
|
1078
|
+
function _n(e, t, n) {
|
|
1079
|
+
let r = Number(e.dataset.r ?? e.dataset.styloRow), i = Number(e.dataset.c ?? e.dataset.styloCol), a = t.rows[r]?.[i] ?? "";
|
|
1080
|
+
e.replaceChildren(n ? e.ownerDocument.createTextNode(a) : un(c(a), t.embeds));
|
|
1081
|
+
let o = mn.get(e);
|
|
1082
|
+
o && e.classList.remove(...o.cellClass);
|
|
1083
|
+
let s = t.paintOf?.(r, i) ?? null;
|
|
1084
|
+
s && (Yt(e, a, s, n), e.classList.add(...s.cellClass)), mn.set(e, {
|
|
1085
|
+
sig: hn(s),
|
|
1086
|
+
cellClass: s?.cellClass ?? []
|
|
1087
|
+
});
|
|
1088
|
+
}
|
|
1089
|
+
function vn(e, t, n, r) {
|
|
1090
|
+
let i = document.createElement(r ? "th" : "td");
|
|
1091
|
+
i.className = "cm-inplace-tcell", i.setAttribute("contenteditable", "true"), i.dataset.r = String(t), i.dataset.c = String(n);
|
|
1092
|
+
let a = e.aligns[n];
|
|
1093
|
+
return a && (i.style.textAlign = a), _n(i, e, !1), i;
|
|
1094
|
+
}
|
|
1095
|
+
function yn(e, t) {
|
|
1096
|
+
e.replaceChildren();
|
|
1097
|
+
let n = t.aligns.length, r = e.createTHead().insertRow();
|
|
1098
|
+
for (let e = 0; e < n; e++) r.appendChild(vn(t, 0, e, !0));
|
|
1099
|
+
let i = e.createTBody();
|
|
1100
|
+
for (let e = 1; e < t.rows.length; e++) {
|
|
1101
|
+
let r = i.insertRow();
|
|
1102
|
+
for (let i = 0; i < n; i++) r.appendChild(vn(t, e, i, !1));
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1105
|
+
//#endregion
|
|
1106
|
+
//#region src/inplace/table-static-paint.ts
|
|
1107
|
+
var bn = /* @__PURE__ */ new WeakMap(), xn = "[data-stylo-cell-widget], [data-stylo-cell-mark]";
|
|
1108
|
+
function Sn(e, t, n, r, i) {
|
|
1109
|
+
let a = Xt({
|
|
1110
|
+
view: () => t,
|
|
1111
|
+
mounted: () => e.isConnected,
|
|
1112
|
+
from: (t) => {
|
|
1113
|
+
let n = t.posAtDOM(e), r = n;
|
|
1114
|
+
return t.state.field(i).between(n, n, (e) => (r = e, !1)), r;
|
|
1115
|
+
},
|
|
1116
|
+
raw: (e, t) => n[e]?.[t] ?? ""
|
|
1117
|
+
}), o = {
|
|
1118
|
+
rows: n,
|
|
1119
|
+
aligns: [],
|
|
1120
|
+
embeds: r,
|
|
1121
|
+
paintOf: a
|
|
1122
|
+
}, s = () => {
|
|
1123
|
+
for (let t of e.querySelectorAll("td, th")) {
|
|
1124
|
+
let [e, n] = [Number(t.dataset.styloRow), Number(t.dataset.styloCol)];
|
|
1125
|
+
gn(t, a(e, n)) || _n(t, o, !1);
|
|
1126
|
+
}
|
|
1127
|
+
};
|
|
1128
|
+
bn.set(e, s), t.requestMeasure({
|
|
1129
|
+
read: () => null,
|
|
1130
|
+
write: s,
|
|
1131
|
+
key: e
|
|
1132
|
+
}), e.addEventListener("mousedown", (e) => {
|
|
1133
|
+
e.target.closest(xn) && (e.preventDefault(), e.stopPropagation());
|
|
1134
|
+
});
|
|
1135
|
+
}
|
|
1136
|
+
//#endregion
|
|
1076
1137
|
//#region src/inplace/tables.ts
|
|
1077
|
-
var
|
|
1138
|
+
var Cn = class extends O {
|
|
1078
1139
|
table;
|
|
1079
1140
|
embeds;
|
|
1080
1141
|
constructor(e, t) {
|
|
@@ -1083,31 +1144,31 @@ var pn = class extends k {
|
|
|
1083
1144
|
eq(e) {
|
|
1084
1145
|
return JSON.stringify(this.table) === JSON.stringify(e.table);
|
|
1085
1146
|
}
|
|
1086
|
-
toDOM() {
|
|
1087
|
-
let { head:
|
|
1088
|
-
|
|
1089
|
-
let
|
|
1090
|
-
|
|
1091
|
-
let
|
|
1092
|
-
|
|
1147
|
+
toDOM(e) {
|
|
1148
|
+
let { head: t, body: n, aligns: r } = this.table, i = document.createElement("table");
|
|
1149
|
+
i.className = "cm-inplace-table";
|
|
1150
|
+
let a = (e) => un(e.replace(/\\\|/g, "|"), this.embeds), o = i.createTHead().insertRow();
|
|
1151
|
+
t.forEach((e, t) => {
|
|
1152
|
+
let n = document.createElement("th");
|
|
1153
|
+
n.appendChild(a(e)), n.dataset.styloRow = "0", n.dataset.styloCol = String(t), wn(n, r[t]), o.appendChild(n);
|
|
1093
1154
|
});
|
|
1094
|
-
let
|
|
1095
|
-
return
|
|
1096
|
-
let
|
|
1097
|
-
for (let o = 0; o <
|
|
1098
|
-
let
|
|
1099
|
-
|
|
1155
|
+
let s = i.createTBody();
|
|
1156
|
+
return n.forEach((e, n) => {
|
|
1157
|
+
let i = s.insertRow();
|
|
1158
|
+
for (let o = 0; o < t.length; o++) {
|
|
1159
|
+
let t = i.insertCell();
|
|
1160
|
+
t.appendChild(a(e[o] ?? "")), t.dataset.styloRow = String(n + 1), t.dataset.styloCol = String(o), wn(t, r[o]);
|
|
1100
1161
|
}
|
|
1101
|
-
}),
|
|
1162
|
+
}), Sn(i, e, [t, ...n], this.embeds, Z), i;
|
|
1102
1163
|
}
|
|
1103
1164
|
ignoreEvent() {
|
|
1104
1165
|
return !1;
|
|
1105
1166
|
}
|
|
1106
1167
|
};
|
|
1107
|
-
function
|
|
1168
|
+
function wn(e, t) {
|
|
1108
1169
|
t && (e.style.textAlign = t);
|
|
1109
1170
|
}
|
|
1110
|
-
function
|
|
1171
|
+
function Tn(e, t) {
|
|
1111
1172
|
let n = t.lineAt(e.from).number, r = t.lineAt(e.to).number, i = [];
|
|
1112
1173
|
for (let e = n; e <= r; e++) i.push(t.line(e).text);
|
|
1113
1174
|
let a = p(i);
|
|
@@ -1117,17 +1178,17 @@ function hn(e, t) {
|
|
|
1117
1178
|
aligns: a.aligns
|
|
1118
1179
|
};
|
|
1119
1180
|
}
|
|
1120
|
-
function
|
|
1121
|
-
let n =
|
|
1181
|
+
function En(e, t) {
|
|
1182
|
+
let n = N(e);
|
|
1122
1183
|
for (let e of [-1, 1]) for (let r = n.resolveInner(t, e); r; r = r.parent) if (r.name === "Table") return !0;
|
|
1123
1184
|
return !1;
|
|
1124
1185
|
}
|
|
1125
|
-
function
|
|
1126
|
-
return t.ranges.some((t) =>
|
|
1186
|
+
function Dn(e, t) {
|
|
1187
|
+
return t.ranges.some((t) => En(e, t.from) || En(e, t.to));
|
|
1127
1188
|
}
|
|
1128
|
-
function
|
|
1129
|
-
if (!e.facet(
|
|
1130
|
-
let n = e.facet(
|
|
1189
|
+
function On(e) {
|
|
1190
|
+
if (!e.facet(P).tables) return T.none;
|
|
1191
|
+
let n = e.facet(I) === "cells" && !e.readOnly, r = e.facet(F) != null && e.facet(P).embeds, i = N(e), a = t(e.doc), o = n ? null : B(e), s = [];
|
|
1131
1192
|
return i.iterate({ enter: (t) => {
|
|
1132
1193
|
if (t.name !== "Table") return;
|
|
1133
1194
|
if (a && t.from < a.to) return !1;
|
|
@@ -1135,33 +1196,33 @@ function vn(e) {
|
|
|
1135
1196
|
let n = e.doc.lineAt(t.from).number, r = e.doc.lineAt(t.to).number;
|
|
1136
1197
|
for (let e = n; e <= r; e++) if (o.has(e)) return !1;
|
|
1137
1198
|
}
|
|
1138
|
-
let i =
|
|
1199
|
+
let i = Tn(t.node, e.doc);
|
|
1139
1200
|
if (i) {
|
|
1140
|
-
let e = n ? new
|
|
1141
|
-
s.push(
|
|
1201
|
+
let e = n ? new vr(i, r) : new Cn(i, r);
|
|
1202
|
+
s.push(T.replace({
|
|
1142
1203
|
widget: e,
|
|
1143
1204
|
block: !0
|
|
1144
1205
|
}).range(t.from, t.to));
|
|
1145
1206
|
}
|
|
1146
1207
|
return !1;
|
|
1147
|
-
} }),
|
|
1208
|
+
} }), T.set(s, !0);
|
|
1148
1209
|
}
|
|
1149
|
-
var
|
|
1150
|
-
create:
|
|
1210
|
+
var Z = M.define({
|
|
1211
|
+
create: On,
|
|
1151
1212
|
update: (e, t) => {
|
|
1152
|
-
if (t.annotation(
|
|
1213
|
+
if (t.annotation(gr)) return e.map(t.changes);
|
|
1153
1214
|
let n = t.startState.readOnly !== t.state.readOnly;
|
|
1154
|
-
return t.state.facet(
|
|
1215
|
+
return t.state.facet(I) === "cells" ? t.docChanged || n ? On(t.state) : e.map(t.changes) : t.docChanged || n || t.selection && (Dn(t.state, t.startState.selection) || Dn(t.state, t.state.selection)) ? On(t.state) : e;
|
|
1155
1216
|
},
|
|
1156
|
-
provide: (e) => [
|
|
1217
|
+
provide: (e) => [E.decorations.from(e), E.atomicRanges.of((t) => t.state.field(e))]
|
|
1157
1218
|
});
|
|
1158
1219
|
//#endregion
|
|
1159
1220
|
//#region src/inplace/host-cell.ts
|
|
1160
|
-
function
|
|
1221
|
+
function kn(e, t, n) {
|
|
1161
1222
|
let i = t.closest("table");
|
|
1162
1223
|
if (!i) return;
|
|
1163
1224
|
let a = e.posAtDOM(i), o = a;
|
|
1164
|
-
e.state.field(
|
|
1225
|
+
e.state.field(Z).between(a, a, (e) => (o = e, !1));
|
|
1165
1226
|
let s = v(e.state.doc, o, Number(t.dataset.r), Number(t.dataset.c));
|
|
1166
1227
|
if (s == null) return;
|
|
1167
1228
|
let { from: c, to: l } = n ? r(t) : {
|
|
@@ -1175,7 +1236,7 @@ function bn(e, t, n) {
|
|
|
1175
1236
|
}
|
|
1176
1237
|
//#endregion
|
|
1177
1238
|
//#region src/inplace/selection-rect.ts
|
|
1178
|
-
var
|
|
1239
|
+
var An = (e, t, n, r) => {
|
|
1179
1240
|
let i = {
|
|
1180
1241
|
x: e,
|
|
1181
1242
|
y: t,
|
|
@@ -1191,39 +1252,39 @@ var xn = (e, t, n, r) => {
|
|
|
1191
1252
|
toJSON: () => i
|
|
1192
1253
|
};
|
|
1193
1254
|
};
|
|
1194
|
-
function
|
|
1255
|
+
function jn(e) {
|
|
1195
1256
|
let { from: t, to: n } = e.state.selection.main, r = e.coordsAtPos(t), i = t === n ? r : e.coordsAtPos(n, -1);
|
|
1196
|
-
return !r || !i ? e.dom.getBoundingClientRect() :
|
|
1257
|
+
return !r || !i ? e.dom.getBoundingClientRect() : An(Math.min(r.left, i.left), Math.min(r.top, i.top), Math.max(r.right, i.right), Math.max(r.bottom, i.bottom));
|
|
1197
1258
|
}
|
|
1198
|
-
function
|
|
1259
|
+
function Mn(e, t) {
|
|
1199
1260
|
let n = e?.ownerDocument.getSelection();
|
|
1200
1261
|
if (e && t && n && n.rangeCount > 0) {
|
|
1201
1262
|
let e = n.getRangeAt(0).getBoundingClientRect?.();
|
|
1202
1263
|
if (e && (e.width > 0 || e.height > 0)) return e;
|
|
1203
1264
|
}
|
|
1204
|
-
return e?.getBoundingClientRect() ??
|
|
1265
|
+
return e?.getBoundingClientRect() ?? An(0, 0, 0, 0);
|
|
1205
1266
|
}
|
|
1206
1267
|
//#endregion
|
|
1207
1268
|
//#region src/inplace/host-items.ts
|
|
1208
|
-
var
|
|
1209
|
-
function
|
|
1269
|
+
var Nn = /* @__PURE__ */ new WeakMap();
|
|
1270
|
+
function Pn(e, t) {
|
|
1210
1271
|
if (e == null || typeof e == "string") return null;
|
|
1211
|
-
if (
|
|
1212
|
-
let n = document.createElement("span"), r =
|
|
1272
|
+
if (Nn.has(t)) return Nn.get(t) ?? null;
|
|
1273
|
+
let n = document.createElement("span"), r = Oe(n), i = null;
|
|
1213
1274
|
try {
|
|
1214
|
-
|
|
1275
|
+
xe(() => r.render(e)), i = n.firstElementChild;
|
|
1215
1276
|
} catch {}
|
|
1216
|
-
return r.unmount(),
|
|
1277
|
+
return r.unmount(), Nn.set(t, i), i;
|
|
1217
1278
|
}
|
|
1218
|
-
var
|
|
1219
|
-
function
|
|
1220
|
-
if (!
|
|
1279
|
+
var Fn = (e) => e.state.facet(z).includes("host"), In = (e) => Fn(e) && e.state.facet(Ie)().some((e) => e.readOnlySafe);
|
|
1280
|
+
function Ln(e, t) {
|
|
1281
|
+
if (!Fn(e)) return [];
|
|
1221
1282
|
let n = e.state.readOnly, r = [], i;
|
|
1222
|
-
for (let a of e.state.facet(
|
|
1283
|
+
for (let a of e.state.facet(Ie)()) {
|
|
1223
1284
|
if (n && !a.readOnlySafe) continue;
|
|
1224
1285
|
let o = a.when ?? "always";
|
|
1225
1286
|
if (o === "selection" && !t.selected || o === "no-selection" && t.selected) continue;
|
|
1226
|
-
let s =
|
|
1287
|
+
let s = Pn(a.icon, a);
|
|
1227
1288
|
r.push({
|
|
1228
1289
|
id: a.id,
|
|
1229
1290
|
label: a.title,
|
|
@@ -1235,15 +1296,15 @@ function On(e, t) {
|
|
|
1235
1296
|
}
|
|
1236
1297
|
});
|
|
1237
1298
|
}
|
|
1238
|
-
return r.length && (i = t.rect?.() ??
|
|
1299
|
+
return r.length && (i = t.rect?.() ?? jn(e)), r;
|
|
1239
1300
|
}
|
|
1240
1301
|
//#endregion
|
|
1241
1302
|
//#region src/inplace/link-row.ts
|
|
1242
|
-
var
|
|
1303
|
+
var Rn = (e) => {
|
|
1243
1304
|
let t = e.trim().replace(/^<([^]*)>$/, "$1");
|
|
1244
1305
|
return /[\s()]/.test(t) ? `<${t.replace(/[<>]/g, "")}>` : t;
|
|
1245
|
-
},
|
|
1246
|
-
function
|
|
1306
|
+
}, zn = (e) => e.replace(/^<([^]*)>$/, "$1");
|
|
1307
|
+
function Bn(e, t) {
|
|
1247
1308
|
let n = e.doc.lineAt(t.from);
|
|
1248
1309
|
if (e.doc.lineAt(t.to).number !== n.number) return null;
|
|
1249
1310
|
let r = t.from - n.from, i = t.to - n.from, s = o(n.text, r) ?? o(n.text, i);
|
|
@@ -1259,7 +1320,7 @@ function jn(e, t) {
|
|
|
1259
1320
|
text: c.label
|
|
1260
1321
|
} : null;
|
|
1261
1322
|
}
|
|
1262
|
-
function
|
|
1323
|
+
function Vn(e, t) {
|
|
1263
1324
|
let { state: n } = e, r = n.selection.main, i = n.doc.lineAt(r.head), a = t.partsIn(i.text, r.head - i.from);
|
|
1264
1325
|
if (a) {
|
|
1265
1326
|
let n = i.from + a.from, r = i.from + a.to, o = t.editActions?.(e, a) ?? [];
|
|
@@ -1288,7 +1349,7 @@ function Mn(e, t) {
|
|
|
1288
1349
|
actions: o
|
|
1289
1350
|
};
|
|
1290
1351
|
}
|
|
1291
|
-
let o =
|
|
1352
|
+
let o = Bn(n, r), s = o ? o.from : r.from, c = o ? o.to : r.to, l = o ? o.text : n.sliceDoc(r.from, r.to);
|
|
1292
1353
|
return {
|
|
1293
1354
|
field: !0,
|
|
1294
1355
|
label: t.addLabel,
|
|
@@ -1298,15 +1359,15 @@ function Mn(e, t) {
|
|
|
1298
1359
|
onSubmit: (n) => t.onAdd(e, s, c, l, n)
|
|
1299
1360
|
};
|
|
1300
1361
|
}
|
|
1301
|
-
var
|
|
1362
|
+
var Hn = {
|
|
1302
1363
|
icon: S.link,
|
|
1303
1364
|
placeholder: "https://…",
|
|
1304
1365
|
editLabel: "Edit external link",
|
|
1305
1366
|
addLabel: "Add external link",
|
|
1306
1367
|
partsIn: o,
|
|
1307
|
-
editValue: (e) =>
|
|
1368
|
+
editValue: (e) => zn(e.url),
|
|
1308
1369
|
editActions: (e, t) => {
|
|
1309
|
-
let n = e.state.facet(
|
|
1370
|
+
let n = e.state.facet(Me);
|
|
1310
1371
|
return !n || !t.url ? [] : [{
|
|
1311
1372
|
label: "Open link",
|
|
1312
1373
|
icon: S.link,
|
|
@@ -1317,7 +1378,7 @@ var Nn = {
|
|
|
1317
1378
|
e.dispatch({ changes: {
|
|
1318
1379
|
from: t.urlFrom,
|
|
1319
1380
|
to: t.urlTo,
|
|
1320
|
-
insert:
|
|
1381
|
+
insert: Rn(n)
|
|
1321
1382
|
} }), e.focus();
|
|
1322
1383
|
},
|
|
1323
1384
|
onAdd: (e, t, n, r, i) => {
|
|
@@ -1326,7 +1387,7 @@ var Nn = {
|
|
|
1326
1387
|
changes: {
|
|
1327
1388
|
from: t,
|
|
1328
1389
|
to: n,
|
|
1329
|
-
insert: `[${a}](${
|
|
1390
|
+
insert: `[${a}](${Rn(i)})`
|
|
1330
1391
|
},
|
|
1331
1392
|
selection: {
|
|
1332
1393
|
anchor: t + 1,
|
|
@@ -1334,7 +1395,7 @@ var Nn = {
|
|
|
1334
1395
|
}
|
|
1335
1396
|
}), e.focus();
|
|
1336
1397
|
}
|
|
1337
|
-
},
|
|
1398
|
+
}, Un = {
|
|
1338
1399
|
icon: S.wikilink,
|
|
1339
1400
|
placeholder: "note or path",
|
|
1340
1401
|
editLabel: "Edit link",
|
|
@@ -1363,27 +1424,27 @@ var Nn = {
|
|
|
1363
1424
|
}), e.focus();
|
|
1364
1425
|
}
|
|
1365
1426
|
};
|
|
1366
|
-
function
|
|
1367
|
-
return
|
|
1427
|
+
function Wn(e) {
|
|
1428
|
+
return Vn(e, Hn);
|
|
1368
1429
|
}
|
|
1369
|
-
function
|
|
1370
|
-
return
|
|
1430
|
+
function Gn(e) {
|
|
1431
|
+
return Vn(e, Un);
|
|
1371
1432
|
}
|
|
1372
1433
|
//#endregion
|
|
1373
1434
|
//#region src/inplace/context-menu-shell.ts
|
|
1374
|
-
function
|
|
1435
|
+
function Kn(e, t, n, r) {
|
|
1375
1436
|
let i = r?.innerWidth ?? 0, a = r?.innerHeight ?? 0;
|
|
1376
1437
|
e.style.left = "0", e.style.top = "0";
|
|
1377
1438
|
let { width: o, height: s } = e.getBoundingClientRect();
|
|
1378
1439
|
e.style.left = `${Math.max(4, Math.min(t, i - o - 4))}px`, e.style.top = `${Math.max(4, Math.min(n, a - s - 4))}px`;
|
|
1379
1440
|
}
|
|
1380
|
-
function
|
|
1441
|
+
function qn(e, t, n) {
|
|
1381
1442
|
let r = n?.innerWidth ?? 0, i = n?.innerHeight ?? 0;
|
|
1382
1443
|
e.style.left = "0", e.style.top = "0";
|
|
1383
1444
|
let { width: a, height: o } = e.getBoundingClientRect(), s = t.right - 4, c = s + a > r - 4 ? t.left - a + 4 : s;
|
|
1384
1445
|
e.style.left = `${Math.max(4, c)}px`, e.style.top = `${Math.max(4, Math.min(t.top - 4, i - o - 4))}px`;
|
|
1385
1446
|
}
|
|
1386
|
-
function
|
|
1447
|
+
function Jn(e, t, n, r = 350) {
|
|
1387
1448
|
let i = Date.now(), a = (e) => !t.contains(e.target), o = (e) => {
|
|
1388
1449
|
a(e) && n();
|
|
1389
1450
|
}, s = (e) => {
|
|
@@ -1397,7 +1458,7 @@ function zn(e, t, n, r = 350) {
|
|
|
1397
1458
|
}
|
|
1398
1459
|
//#endregion
|
|
1399
1460
|
//#region src/inplace/context-menu-types.ts
|
|
1400
|
-
var
|
|
1461
|
+
var Yn = (e) => typeof e != "string" && "rows" in e, Xn = (e) => typeof e != "string" && "field" in e;
|
|
1401
1462
|
//#endregion
|
|
1402
1463
|
//#region src/inplace/context-menu.ts
|
|
1403
1464
|
function Q(e, t = "cm-inplace-menu", n) {
|
|
@@ -1428,7 +1489,7 @@ function Q(e, t = "cm-inplace-menu", n) {
|
|
|
1428
1489
|
if (a?.dataset.for === n) return;
|
|
1429
1490
|
s();
|
|
1430
1491
|
let e = c();
|
|
1431
|
-
e.dataset.for = n, i.appendChild(e),
|
|
1492
|
+
e.dataset.for = n, i.appendChild(e), qn(e, f.getBoundingClientRect(), r), a = e, e.querySelector("input")?.focus({ preventScroll: !0 });
|
|
1432
1493
|
};
|
|
1433
1494
|
return f.addEventListener("pointerenter", p), f.addEventListener("click", (e) => {
|
|
1434
1495
|
e.stopPropagation(), p();
|
|
@@ -1451,7 +1512,7 @@ function Q(e, t = "cm-inplace-menu", n) {
|
|
|
1451
1512
|
for (let i of n) if (i === "separator") {
|
|
1452
1513
|
let n = e.createElement("div");
|
|
1453
1514
|
n.className = `${t}-sep`, r.appendChild(n);
|
|
1454
|
-
} else
|
|
1515
|
+
} else Yn(i) ? r.appendChild(f(i.label, i.icon, () => m(i.rows), i.disabled)) : Xn(i) ? r.appendChild(f(i.label, i.icon, () => p(i))) : r.appendChild(d(i));
|
|
1455
1516
|
return r;
|
|
1456
1517
|
};
|
|
1457
1518
|
return {
|
|
@@ -1462,12 +1523,12 @@ function Q(e, t = "cm-inplace-menu", n) {
|
|
|
1462
1523
|
show: (t, a, s) => {
|
|
1463
1524
|
c();
|
|
1464
1525
|
let l = m(t);
|
|
1465
|
-
i.appendChild(l), i.hidden = !1,
|
|
1526
|
+
i.appendChild(l), i.hidden = !1, Kn(l, a, s, r), o = Jn(e, i, c), n?.(!0);
|
|
1466
1527
|
},
|
|
1467
1528
|
showField: (t, a, s) => {
|
|
1468
1529
|
c();
|
|
1469
1530
|
let l = p(t);
|
|
1470
|
-
i.appendChild(l), i.hidden = !1,
|
|
1531
|
+
i.appendChild(l), i.hidden = !1, Kn(l, a, s, r), l.querySelector("input")?.focus({ preventScroll: !0 }), o = Jn(e, i, c), n?.(!0);
|
|
1471
1532
|
},
|
|
1472
1533
|
hide: c,
|
|
1473
1534
|
destroy: () => {
|
|
@@ -1477,8 +1538,8 @@ function Q(e, t = "cm-inplace-menu", n) {
|
|
|
1477
1538
|
}
|
|
1478
1539
|
//#endregion
|
|
1479
1540
|
//#region src/inplace/math-edit.ts
|
|
1480
|
-
function
|
|
1481
|
-
let { state: t } = e, n = t.selection.main, r = t.doc.lineAt(n.head), i =
|
|
1541
|
+
function Zn(e) {
|
|
1542
|
+
let { state: t } = e, n = t.selection.main, r = t.doc.lineAt(n.head), i = Qe(r.text, n.head - r.from);
|
|
1482
1543
|
if (i) {
|
|
1483
1544
|
let t = r.from + i.from, n = r.from + i.to, a = i.block ? "$$" : "$";
|
|
1484
1545
|
return {
|
|
@@ -1536,27 +1597,27 @@ function Hn(e) {
|
|
|
1536
1597
|
}
|
|
1537
1598
|
};
|
|
1538
1599
|
}
|
|
1539
|
-
var
|
|
1600
|
+
var Qn = class {
|
|
1540
1601
|
menu;
|
|
1541
1602
|
contentDOM;
|
|
1542
1603
|
onClick;
|
|
1543
1604
|
constructor(e) {
|
|
1544
1605
|
this.menu = Q(e.dom.ownerDocument), e.dom.appendChild(this.menu.el), this.contentDOM = e.contentDOM, this.onClick = (t) => {
|
|
1545
|
-
if (!e.state.facet(
|
|
1606
|
+
if (!e.state.facet(P).math) return;
|
|
1546
1607
|
let n = t.target?.closest(".cm-inplace-math");
|
|
1547
1608
|
if (!n) return;
|
|
1548
1609
|
let r = e.posAtDOM(n);
|
|
1549
1610
|
if (r < 0) return;
|
|
1550
1611
|
let i = e.state.doc.lineAt(r);
|
|
1551
|
-
|
|
1612
|
+
Qe(i.text, r - i.from) && (e.dispatch({ selection: { anchor: r } }), this.menu.showField(Zn(e), t.clientX, t.clientY));
|
|
1552
1613
|
}, this.contentDOM.addEventListener("click", this.onClick);
|
|
1553
1614
|
}
|
|
1554
1615
|
destroy() {
|
|
1555
1616
|
this.contentDOM.removeEventListener("click", this.onClick), this.menu.destroy();
|
|
1556
1617
|
}
|
|
1557
|
-
},
|
|
1558
|
-
if (!e.state.facet(
|
|
1559
|
-
let n = e.state.doc.lineAt(t), r =
|
|
1618
|
+
}, $n = D.fromClass(Qn), er = ve((e, t) => {
|
|
1619
|
+
if (!e.state.facet(P).math) return null;
|
|
1620
|
+
let n = e.state.doc.lineAt(t), r = Qe(n.text, t - n.from);
|
|
1560
1621
|
return r ? {
|
|
1561
1622
|
pos: n.from + r.from,
|
|
1562
1623
|
end: n.from + r.to,
|
|
@@ -1569,13 +1630,13 @@ var Un = class {
|
|
|
1569
1630
|
});
|
|
1570
1631
|
//#endregion
|
|
1571
1632
|
//#region src/inplace/context-menu-actions.ts
|
|
1572
|
-
function
|
|
1633
|
+
function tr(e) {
|
|
1573
1634
|
let t = h(e);
|
|
1574
1635
|
if (!t) return !1;
|
|
1575
1636
|
let { from: n, to: i } = r(t);
|
|
1576
1637
|
return i > n;
|
|
1577
1638
|
}
|
|
1578
|
-
function
|
|
1639
|
+
function nr(e) {
|
|
1579
1640
|
let t = ie(e.state);
|
|
1580
1641
|
return {
|
|
1581
1642
|
field: !0,
|
|
@@ -1598,49 +1659,49 @@ function qn(e) {
|
|
|
1598
1659
|
}]
|
|
1599
1660
|
};
|
|
1600
1661
|
}
|
|
1601
|
-
var
|
|
1602
|
-
...
|
|
1662
|
+
var rr = (e, t = !1) => [
|
|
1663
|
+
...G(e, Qt, !1, t),
|
|
1603
1664
|
"separator",
|
|
1604
|
-
...t ?
|
|
1665
|
+
...t ? G(e, $t, !1, !0) : [an(e, "code", !1), Zn(e)]
|
|
1605
1666
|
];
|
|
1606
|
-
function
|
|
1607
|
-
let n = e.state.facet(
|
|
1608
|
-
return
|
|
1667
|
+
function ir(e, t) {
|
|
1668
|
+
let n = e.state.facet(z), r = t ?? h(e), i = tr(e) && r === h(e), a = [];
|
|
1669
|
+
return J(a, Ln(e, {
|
|
1609
1670
|
selected: i,
|
|
1610
|
-
prepare: () => r &&
|
|
1611
|
-
rect: () =>
|
|
1612
|
-
})), i ? (n.includes("format") &&
|
|
1671
|
+
prepare: () => r && kn(e, r, i),
|
|
1672
|
+
rect: () => Mn(r, i)
|
|
1673
|
+
})), i ? (n.includes("format") && J(a, [q("Format", S.format, rr(e, !0))]), n.includes("clipboard") && J(a, K(e)), a) : a;
|
|
1613
1674
|
}
|
|
1614
|
-
var
|
|
1615
|
-
...
|
|
1675
|
+
var ar = (e) => [
|
|
1676
|
+
...G(e, en),
|
|
1616
1677
|
"separator",
|
|
1617
|
-
...
|
|
1678
|
+
...G(e, [...tn, "body"]),
|
|
1618
1679
|
"separator",
|
|
1619
|
-
...
|
|
1620
|
-
],
|
|
1621
|
-
...
|
|
1680
|
+
...G(e, ["quote"])
|
|
1681
|
+
], or = (e) => [
|
|
1682
|
+
...G(e, nn),
|
|
1622
1683
|
"separator",
|
|
1623
|
-
...
|
|
1684
|
+
...G(e, rn)
|
|
1624
1685
|
];
|
|
1625
|
-
function
|
|
1626
|
-
let { state: t } = e, n = t.facet(
|
|
1627
|
-
if (
|
|
1628
|
-
let i =
|
|
1686
|
+
function sr(e) {
|
|
1687
|
+
let { state: t } = e, n = t.facet(z), r = (e) => n.includes(e);
|
|
1688
|
+
if (tr(e)) return ir(e);
|
|
1689
|
+
let i = Ln(e, { selected: !t.selection.main.empty });
|
|
1629
1690
|
if (ee(t)) {
|
|
1630
1691
|
let t = [];
|
|
1631
|
-
return
|
|
1692
|
+
return J(t, i), J(t, [nr(e)]), r("clipboard") && J(t, K(e)), t;
|
|
1632
1693
|
}
|
|
1633
|
-
if (
|
|
1694
|
+
if (on(t)) {
|
|
1634
1695
|
let t = [];
|
|
1635
|
-
return
|
|
1696
|
+
return J(t, i), J(t, [ln(e)]), r("clipboard") && J(t, K(e)), t;
|
|
1636
1697
|
}
|
|
1637
|
-
let a = t.selection.main, o = t.doc.lineAt(a.head).text.trim() === "", s = !a.empty || !!t.wordAt(a.head), c = t.facet(
|
|
1638
|
-
for (let t of n) t === "host" ?
|
|
1698
|
+
let a = t.selection.main, o = t.doc.lineAt(a.head).text.trim() === "", s = !a.empty || !!t.wordAt(a.head), c = t.facet(Ve) === "menu", l = [];
|
|
1699
|
+
for (let t of n) t === "host" ? J(l, i) : t === "link" && c ? J(l, [Gn(e), Wn(e)]) : t === "format" && c ? J(l, [q("Format", S.format, rr(e), !s)]) : t === "paragraph" ? J(l, [q("Paragraph", S.paragraph, ar(e))]) : t === "insert" ? J(l, [q("Insert", S.insert, or(e), !o)]) : t === "clipboard" && J(l, K(e));
|
|
1639
1700
|
return l;
|
|
1640
1701
|
}
|
|
1641
1702
|
//#endregion
|
|
1642
1703
|
//#region src/inplace/long-press.ts
|
|
1643
|
-
function
|
|
1704
|
+
function cr(e, t) {
|
|
1644
1705
|
let n = t.delay ?? 450, r = t.slop ?? 20, i = null, a = 0, o = 0, s = () => {
|
|
1645
1706
|
i != null && (clearTimeout(i), i = null);
|
|
1646
1707
|
}, c = (e) => {
|
|
@@ -1662,7 +1723,7 @@ function $n(e, t) {
|
|
|
1662
1723
|
}
|
|
1663
1724
|
//#endregion
|
|
1664
1725
|
//#region src/inplace/table-gizmos.ts
|
|
1665
|
-
function
|
|
1726
|
+
function lr(e, t) {
|
|
1666
1727
|
let n = e.createElement("div");
|
|
1667
1728
|
n.className = "cm-inplace-table-gizmos", n.setAttribute("contenteditable", "false");
|
|
1668
1729
|
let r = Q(e), i = (t, n, r) => {
|
|
@@ -1748,7 +1809,7 @@ function er(e, t) {
|
|
|
1748
1809
|
}
|
|
1749
1810
|
//#endregion
|
|
1750
1811
|
//#region src/inplace/table-widget-keys.ts
|
|
1751
|
-
function
|
|
1812
|
+
function ur(e, t, n) {
|
|
1752
1813
|
let r = e.target.closest("td, th");
|
|
1753
1814
|
if (!r) return;
|
|
1754
1815
|
if (l(e, r)) {
|
|
@@ -1816,62 +1877,32 @@ function tr(e, t, n) {
|
|
|
1816
1877
|
}
|
|
1817
1878
|
}
|
|
1818
1879
|
//#endregion
|
|
1819
|
-
//#region src/inplace/table-widget-render.ts
|
|
1820
|
-
var nr = /* @__PURE__ */ new WeakMap(), rr = (e) => JSON.stringify(e), ir = (e, t) => (nr.get(e)?.sig ?? "null") === rr(t);
|
|
1821
|
-
function ar(e, t, n) {
|
|
1822
|
-
let r = Number(e.dataset.r), i = Number(e.dataset.c), a = t.rows[r]?.[i] ?? "";
|
|
1823
|
-
e.replaceChildren(n ? e.ownerDocument.createTextNode(a) : ln(c(a), t.embeds));
|
|
1824
|
-
let o = nr.get(e);
|
|
1825
|
-
o && e.classList.remove(...o.cellClass);
|
|
1826
|
-
let s = t.paintOf?.(r, i) ?? null;
|
|
1827
|
-
s && (Jt(e, a, s, n), e.classList.add(...s.cellClass)), nr.set(e, {
|
|
1828
|
-
sig: rr(s),
|
|
1829
|
-
cellClass: s?.cellClass ?? []
|
|
1830
|
-
});
|
|
1831
|
-
}
|
|
1832
|
-
function or(e, t, n, r) {
|
|
1833
|
-
let i = document.createElement(r ? "th" : "td");
|
|
1834
|
-
i.className = "cm-inplace-tcell", i.setAttribute("contenteditable", "true"), i.dataset.r = String(t), i.dataset.c = String(n);
|
|
1835
|
-
let a = e.aligns[n];
|
|
1836
|
-
return a && (i.style.textAlign = a), ar(i, e, !1), i;
|
|
1837
|
-
}
|
|
1838
|
-
function sr(e, t) {
|
|
1839
|
-
e.replaceChildren();
|
|
1840
|
-
let n = t.aligns.length, r = e.createTHead().insertRow();
|
|
1841
|
-
for (let e = 0; e < n; e++) r.appendChild(or(t, 0, e, !0));
|
|
1842
|
-
let i = e.createTBody();
|
|
1843
|
-
for (let e = 1; e < t.rows.length; e++) {
|
|
1844
|
-
let r = i.insertRow();
|
|
1845
|
-
for (let i = 0; i < n; i++) r.appendChild(or(t, e, i, !1));
|
|
1846
|
-
}
|
|
1847
|
-
}
|
|
1848
|
-
//#endregion
|
|
1849
1880
|
//#region src/inplace/table-structure.ts
|
|
1850
1881
|
var $ = (e) => e.aligns.length;
|
|
1851
|
-
function
|
|
1882
|
+
function dr(e, t) {
|
|
1852
1883
|
let n = Math.max(0, Math.min(t, $(e)));
|
|
1853
1884
|
for (let t of e.rows) t.splice(n, 0, "");
|
|
1854
1885
|
e.aligns.splice(n, 0, "");
|
|
1855
1886
|
}
|
|
1856
|
-
function
|
|
1887
|
+
function fr(e, t) {
|
|
1857
1888
|
if (!($(e) <= 1 || t < 0 || t >= $(e))) {
|
|
1858
1889
|
for (let n of e.rows) n.splice(t, 1);
|
|
1859
1890
|
e.aligns.splice(t, 1);
|
|
1860
1891
|
}
|
|
1861
1892
|
}
|
|
1862
|
-
function
|
|
1893
|
+
function pr(e, t) {
|
|
1863
1894
|
let n = Math.max(1, Math.min(t, e.rows.length));
|
|
1864
1895
|
e.rows.splice(n, 0, Array($(e)).fill(""));
|
|
1865
1896
|
}
|
|
1866
|
-
function
|
|
1897
|
+
function mr(e, t) {
|
|
1867
1898
|
t <= 0 || t >= e.rows.length || e.rows.length <= 2 || e.rows.splice(t, 1);
|
|
1868
1899
|
}
|
|
1869
|
-
function
|
|
1900
|
+
function hr(e, t, n) {
|
|
1870
1901
|
t >= 0 && t < $(e) && (e.aligns[t] = n);
|
|
1871
1902
|
}
|
|
1872
1903
|
//#endregion
|
|
1873
1904
|
//#region src/inplace/table-widget.ts
|
|
1874
|
-
var
|
|
1905
|
+
var gr = Se.define(), _r = /* @__PURE__ */ new WeakMap(), vr = class extends O {
|
|
1875
1906
|
data;
|
|
1876
1907
|
embeds;
|
|
1877
1908
|
table = null;
|
|
@@ -1898,7 +1929,7 @@ var pr = xe.define(), mr = /* @__PURE__ */ new WeakMap(), hr = class extends k {
|
|
|
1898
1929
|
}
|
|
1899
1930
|
bounds(e) {
|
|
1900
1931
|
let t = e.posAtDOM(this.table), n = null;
|
|
1901
|
-
return e.state.field(
|
|
1932
|
+
return e.state.field(Z).between(t, t, (e, t) => (n = {
|
|
1902
1933
|
from: e,
|
|
1903
1934
|
to: t
|
|
1904
1935
|
}, !1)), n ?? e.state.doc.lineAt(t);
|
|
@@ -1912,7 +1943,7 @@ var pr = xe.define(), mr = /* @__PURE__ */ new WeakMap(), hr = class extends k {
|
|
|
1912
1943
|
c: Number(e.dataset.c)
|
|
1913
1944
|
};
|
|
1914
1945
|
}
|
|
1915
|
-
paintOf =
|
|
1946
|
+
paintOf = Xt({
|
|
1916
1947
|
view: () => this.view,
|
|
1917
1948
|
mounted: () => !!this.table?.isConnected,
|
|
1918
1949
|
from: (e) => this.bounds(e).from,
|
|
@@ -1927,19 +1958,19 @@ var pr = xe.define(), mr = /* @__PURE__ */ new WeakMap(), hr = class extends k {
|
|
|
1927
1958
|
};
|
|
1928
1959
|
}
|
|
1929
1960
|
paint(e, t) {
|
|
1930
|
-
|
|
1961
|
+
_n(e, this.grid(), t);
|
|
1931
1962
|
}
|
|
1932
1963
|
repaintMarks() {
|
|
1933
1964
|
for (let e of this.table?.querySelectorAll("td, th") ?? []) {
|
|
1934
1965
|
let { r: t, c: n } = this.coords(e);
|
|
1935
|
-
e !== this.editing && !
|
|
1966
|
+
e !== this.editing && !gn(e, this.paintOf(t, n)) && this.paint(e, !1);
|
|
1936
1967
|
}
|
|
1937
1968
|
}
|
|
1938
1969
|
renderCells() {
|
|
1939
|
-
|
|
1970
|
+
yn(this.table, this.grid());
|
|
1940
1971
|
}
|
|
1941
1972
|
appendRow() {
|
|
1942
|
-
|
|
1973
|
+
pr(this.model(), this.rows.length), this.renderCells(), this.gizmos?.layout(this.table);
|
|
1943
1974
|
}
|
|
1944
1975
|
model() {
|
|
1945
1976
|
return {
|
|
@@ -1950,7 +1981,7 @@ var pr = xe.define(), mr = /* @__PURE__ */ new WeakMap(), hr = class extends k {
|
|
|
1950
1981
|
runOp(e, t) {
|
|
1951
1982
|
if (!this.table) return;
|
|
1952
1983
|
let n = this.model();
|
|
1953
|
-
if (t.kind === "insertColumn" ?
|
|
1984
|
+
if (t.kind === "insertColumn" ? dr(n, t.at) : t.kind === "deleteColumn" ? fr(n, t.at) : t.kind === "insertRow" ? pr(n, t.at) : t.kind === "deleteRow" ? mr(n, t.at) : hr(n, t.at, n.aligns[t.at] === t.value ? "" : t.value), this.editing = null, this.sync(e), this.renderCells(), this.gizmos?.layout(this.table), t.kind !== "align") {
|
|
1954
1985
|
let e = Math.max(0, Math.min(t.focus[0], this.rows.length - 1)), n = Math.max(0, Math.min(t.focus[1], this.cols() - 1));
|
|
1955
1986
|
this.cellAt(e, n)?.focus();
|
|
1956
1987
|
}
|
|
@@ -2007,14 +2038,14 @@ var pr = xe.define(), mr = /* @__PURE__ */ new WeakMap(), hr = class extends k {
|
|
|
2007
2038
|
to: i,
|
|
2008
2039
|
insert: n
|
|
2009
2040
|
},
|
|
2010
|
-
annotations:
|
|
2041
|
+
annotations: gr.of(!0),
|
|
2011
2042
|
userEvent: "input"
|
|
2012
2043
|
}), this.syncing = !1, t && (this.writeCaret(t), requestAnimationFrame(() => {
|
|
2013
2044
|
this.table && t && this.writeCaret(t);
|
|
2014
2045
|
})));
|
|
2015
2046
|
}
|
|
2016
2047
|
onKey(e, t) {
|
|
2017
|
-
this.table &&
|
|
2048
|
+
this.table && ur(e, t, {
|
|
2018
2049
|
coords: (e) => this.coords(e),
|
|
2019
2050
|
rows: () => this.rows.length,
|
|
2020
2051
|
cols: () => this.cols(),
|
|
@@ -2037,15 +2068,15 @@ var pr = xe.define(), mr = /* @__PURE__ */ new WeakMap(), hr = class extends k {
|
|
|
2037
2068
|
openCellMenuAt(e, t, n, r) {
|
|
2038
2069
|
let i = r?.closest("td, th");
|
|
2039
2070
|
if (!i) return;
|
|
2040
|
-
this.editing === i && !
|
|
2041
|
-
let a =
|
|
2071
|
+
this.editing === i && !tr(e) && s(i, t, n);
|
|
2072
|
+
let a = ir(e, i);
|
|
2042
2073
|
this.gizmos?.openFor(i, t, n, a);
|
|
2043
2074
|
}
|
|
2044
2075
|
toDOM(e) {
|
|
2045
2076
|
let t = document.createElement("div");
|
|
2046
2077
|
t.className = "cm-inplace-table-wrap";
|
|
2047
2078
|
let n = document.createElement("table");
|
|
2048
|
-
this.table = n, this.view = e, this.editing = null,
|
|
2079
|
+
this.table = n, this.view = e, this.editing = null, _r.set(n, this), n.className = "cm-inplace-table cm-inplace-table-edit", this.renderCells(), e.requestMeasure({
|
|
2049
2080
|
read: () => null,
|
|
2050
2081
|
write: () => this.repaintMarks(),
|
|
2051
2082
|
key: this
|
|
@@ -2068,9 +2099,9 @@ var pr = xe.define(), mr = /* @__PURE__ */ new WeakMap(), hr = class extends k {
|
|
|
2068
2099
|
document.execCommand("insertText", !1, t);
|
|
2069
2100
|
}), n.addEventListener("contextmenu", (t) => {
|
|
2070
2101
|
t.target.closest("td, th") && (t.preventDefault(), t.stopPropagation(), this.longPress?.cancel(), !(Date.now() - this.longPressAt < 700) && this.openCellMenuAt(e, t.clientX, t.clientY, t.target));
|
|
2071
|
-
}), this.longPress =
|
|
2102
|
+
}), this.longPress = cr(n, { onLongPress: (t, n, r) => {
|
|
2072
2103
|
this.longPressAt = Date.now(), this.openCellMenuAt(e, t, n, r);
|
|
2073
|
-
} }), this.gizmos =
|
|
2104
|
+
} }), this.gizmos = lr(document, {
|
|
2074
2105
|
dims: () => ({
|
|
2075
2106
|
cols: this.cols(),
|
|
2076
2107
|
rows: this.rows.length,
|
|
@@ -2082,12 +2113,12 @@ var pr = xe.define(), mr = /* @__PURE__ */ new WeakMap(), hr = class extends k {
|
|
|
2082
2113
|
destroy() {
|
|
2083
2114
|
this.longPress?.dispose(), this.longPress = null, this.gizmos?.destroy(), this.gizmos = null, this.table = null, this.view = null, this.editing = null;
|
|
2084
2115
|
}
|
|
2085
|
-
},
|
|
2116
|
+
}, yr = /* @__PURE__ */ new Set([
|
|
2086
2117
|
"-",
|
|
2087
2118
|
"*",
|
|
2088
2119
|
"_"
|
|
2089
|
-
]),
|
|
2090
|
-
if (!e.docChanged || e.isUserEvent("undo") || e.isUserEvent("redo") || e.annotation(
|
|
2120
|
+
]), br = we.transactionFilter.of((e) => {
|
|
2121
|
+
if (!e.docChanged || e.isUserEvent("undo") || e.isUserEvent("redo") || e.annotation(gr) || !e.startState.selection.main.empty) return e;
|
|
2091
2122
|
let t = e.startState.selection.main.head, n = "", r = 0;
|
|
2092
2123
|
if (e.changes.iterChanges((e, i, a, o, s) => {
|
|
2093
2124
|
r += 1, e === i && e === t && (n = s.toString());
|
|
@@ -2117,7 +2148,7 @@ var pr = xe.define(), mr = /* @__PURE__ */ new WeakMap(), hr = class extends k {
|
|
|
2117
2148
|
},
|
|
2118
2149
|
anchor: a + 1
|
|
2119
2150
|
};
|
|
2120
|
-
else if (
|
|
2151
|
+
else if (yr.has(n) && RegExp(`^\\${n}{3,}$`).test(s)) {
|
|
2121
2152
|
let e = o.number === 1 || i.line(o.number - 1).text.trim() === "", t = n === "-" && !e, r = o.number === i.lines;
|
|
2122
2153
|
if (t || r) {
|
|
2123
2154
|
let e = [];
|
|
@@ -2140,38 +2171,38 @@ var pr = xe.define(), mr = /* @__PURE__ */ new WeakMap(), hr = class extends k {
|
|
|
2140
2171
|
scrollIntoView: !0,
|
|
2141
2172
|
userEvent: "input.autoformat"
|
|
2142
2173
|
}] : e;
|
|
2143
|
-
}),
|
|
2174
|
+
}), xr = /* @__PURE__ */ new Set([
|
|
2144
2175
|
"EmphasisMark",
|
|
2145
2176
|
"CodeMark",
|
|
2146
2177
|
"StrikethroughMark"
|
|
2147
2178
|
]);
|
|
2148
|
-
function
|
|
2179
|
+
function Sr(e, t, n) {
|
|
2149
2180
|
let r = t;
|
|
2150
2181
|
for (;;) {
|
|
2151
2182
|
let t = e.resolveInner(r, n);
|
|
2152
|
-
if (!
|
|
2183
|
+
if (!xr.has(t.name) || t.from >= t.to) return r;
|
|
2153
2184
|
let i = n < 0 ? t.from : t.to;
|
|
2154
2185
|
if (i === r) return r;
|
|
2155
2186
|
r = i;
|
|
2156
2187
|
}
|
|
2157
2188
|
}
|
|
2158
|
-
function
|
|
2159
|
-
let n =
|
|
2189
|
+
function Cr(e, t) {
|
|
2190
|
+
let n = U(e, t, !0);
|
|
2160
2191
|
if (!n) return t;
|
|
2161
|
-
let r =
|
|
2162
|
-
return t === n.contentTo ?
|
|
2192
|
+
let r = N(e);
|
|
2193
|
+
return t === n.contentTo ? Sr(r, t, 1) : t === n.contentFrom ? Sr(r, t, -1) : t;
|
|
2163
2194
|
}
|
|
2164
|
-
var
|
|
2165
|
-
if (!e.docChanged || e.isUserEvent("undo") || e.isUserEvent("redo") || e.annotation(
|
|
2195
|
+
var wr = we.transactionFilter.of((e) => {
|
|
2196
|
+
if (!e.docChanged || e.isUserEvent("undo") || e.isUserEvent("redo") || e.annotation(gr)) return e;
|
|
2166
2197
|
let t = e.startState, n = t.selection.main;
|
|
2167
|
-
if (!n.empty || !
|
|
2198
|
+
if (!n.empty || !H(t, t.doc.lineAt(n.head).number)) return e;
|
|
2168
2199
|
let r = [], i = 0;
|
|
2169
2200
|
e.changes.iterChanges((e, t, a, o, s) => {
|
|
2170
2201
|
i++, e === t && e === n.head && s.length > 0 && r.push(s.toString());
|
|
2171
2202
|
});
|
|
2172
2203
|
let a = r[0];
|
|
2173
2204
|
if (i !== 1 || a === void 0) return e;
|
|
2174
|
-
let o =
|
|
2205
|
+
let o = Cr(t, n.head);
|
|
2175
2206
|
return o === n.head ? e : {
|
|
2176
2207
|
changes: {
|
|
2177
2208
|
from: o,
|
|
@@ -2181,23 +2212,23 @@ var xr = Ce.transactionFilter.of((e) => {
|
|
|
2181
2212
|
scrollIntoView: !0,
|
|
2182
2213
|
userEvent: "input.type"
|
|
2183
2214
|
};
|
|
2184
|
-
}),
|
|
2185
|
-
function
|
|
2215
|
+
}), Tr = RegExp(`^(?:${se.match.source.replace(/^\^/, "")})+`);
|
|
2216
|
+
function Er(e, t) {
|
|
2186
2217
|
let n = e.doc.lineAt(t).number;
|
|
2187
|
-
for (let r =
|
|
2218
|
+
for (let r = N(e).resolveInner(t, 1); r; r = r.parent) {
|
|
2188
2219
|
if (r.name !== "ListItem" || e.doc.lineAt(r.from).number === n) continue;
|
|
2189
2220
|
let t = u.exec(e.doc.lineAt(r.from).text);
|
|
2190
2221
|
if (t) return t[0].length;
|
|
2191
2222
|
}
|
|
2192
2223
|
return null;
|
|
2193
2224
|
}
|
|
2194
|
-
function
|
|
2225
|
+
function Dr(e, t) {
|
|
2195
2226
|
let n = t.text, r = _.exec(n);
|
|
2196
2227
|
if (r) return {
|
|
2197
2228
|
prefixLen: r[0].length,
|
|
2198
2229
|
drop: [0, r[0].length]
|
|
2199
2230
|
};
|
|
2200
|
-
let i =
|
|
2231
|
+
let i = Tr.exec(n);
|
|
2201
2232
|
if (i) {
|
|
2202
2233
|
let e = se.match.exec(n)[0].length;
|
|
2203
2234
|
return {
|
|
@@ -2214,7 +2245,7 @@ function wr(e, t) {
|
|
|
2214
2245
|
if (o) {
|
|
2215
2246
|
let n = o[1] ?? "", r = o[0].length - n.length;
|
|
2216
2247
|
if (n) {
|
|
2217
|
-
let r =
|
|
2248
|
+
let r = Er(e, t.from) ?? 2, i = n.startsWith(" ") ? 1 : Math.min(r, n.length);
|
|
2218
2249
|
return {
|
|
2219
2250
|
prefixLen: o[0].length,
|
|
2220
2251
|
drop: [0, i]
|
|
@@ -2227,15 +2258,15 @@ function wr(e, t) {
|
|
|
2227
2258
|
}
|
|
2228
2259
|
return null;
|
|
2229
2260
|
}
|
|
2230
|
-
var
|
|
2261
|
+
var Or = j.high(k.of([{
|
|
2231
2262
|
key: "Backspace",
|
|
2232
2263
|
run: (e) => {
|
|
2233
2264
|
if (h(e)) return !1;
|
|
2234
2265
|
let { state: t } = e, n = t.selection.main;
|
|
2235
2266
|
if (!n.empty) return !1;
|
|
2236
2267
|
let r = t.doc.lineAt(n.head);
|
|
2237
|
-
if (!
|
|
2238
|
-
let i =
|
|
2268
|
+
if (!H(t, r.number)) return !1;
|
|
2269
|
+
let i = Dr(t, r);
|
|
2239
2270
|
if (!i || n.head < r.from || n.head > r.from + i.prefixLen) return !1;
|
|
2240
2271
|
let [a, o] = i.drop;
|
|
2241
2272
|
return e.dispatch({
|
|
@@ -2249,13 +2280,13 @@ var Tr = M.high(A.of([{
|
|
|
2249
2280
|
scrollIntoView: !0
|
|
2250
2281
|
}), !0;
|
|
2251
2282
|
}
|
|
2252
|
-
}])),
|
|
2283
|
+
}])), kr = class {
|
|
2253
2284
|
menu;
|
|
2254
2285
|
contentDOM;
|
|
2255
2286
|
onClick;
|
|
2256
2287
|
constructor(e) {
|
|
2257
2288
|
this.menu = Q(e.dom.ownerDocument), e.dom.appendChild(this.menu.el), this.contentDOM = e.contentDOM, this.onClick = (t) => {
|
|
2258
|
-
if (e.state.facet(
|
|
2289
|
+
if (e.state.facet(L) !== "never" || !e.state.facet(P).links) return;
|
|
2259
2290
|
let n = t.target?.closest(".cm-inplace-link");
|
|
2260
2291
|
if (!n || n.classList.contains("cm-inplace-wikilink")) return;
|
|
2261
2292
|
let r = e.posAtDOM(n);
|
|
@@ -2267,13 +2298,13 @@ var Tr = M.high(A.of([{
|
|
|
2267
2298
|
if (n == null) return;
|
|
2268
2299
|
r = n;
|
|
2269
2300
|
}
|
|
2270
|
-
e.dispatch({ selection: { anchor: r } }), this.menu.showField(
|
|
2301
|
+
e.dispatch({ selection: { anchor: r } }), this.menu.showField(Wn(e), t.clientX, t.clientY);
|
|
2271
2302
|
}, this.contentDOM.addEventListener("click", this.onClick);
|
|
2272
2303
|
}
|
|
2273
2304
|
destroy() {
|
|
2274
2305
|
this.contentDOM.removeEventListener("click", this.onClick), this.menu.destroy();
|
|
2275
2306
|
}
|
|
2276
|
-
},
|
|
2307
|
+
}, Ar = D.fromClass(kr), jr = (e) => e.replace(/^<([^]*)>$/, "$1").trim(), Mr = (e, t, n) => n ? {
|
|
2277
2308
|
pos: e,
|
|
2278
2309
|
end: t,
|
|
2279
2310
|
above: !0,
|
|
@@ -2282,27 +2313,27 @@ var Tr = M.high(A.of([{
|
|
|
2282
2313
|
return e.className = "cm-inplace-href-tip", e.textContent = n, { dom: e };
|
|
2283
2314
|
}
|
|
2284
2315
|
} : null;
|
|
2285
|
-
function
|
|
2286
|
-
for (let n =
|
|
2316
|
+
function Nr(e, t) {
|
|
2317
|
+
for (let n = N(e.state).resolveInner(t, -1); n; n = n.parent) {
|
|
2287
2318
|
if (n.name !== "Link") continue;
|
|
2288
2319
|
if (e.state.doc.sliceString(Math.max(0, n.from - 1), n.from) === "[") break;
|
|
2289
2320
|
let t = n.getChild("URL"), r = t ? e.state.sliceDoc(t.from, t.to) : e.state.sliceDoc(n.from, n.to);
|
|
2290
|
-
return
|
|
2321
|
+
return Mr(n.from, n.to, jr(r));
|
|
2291
2322
|
}
|
|
2292
2323
|
return null;
|
|
2293
2324
|
}
|
|
2294
|
-
function
|
|
2325
|
+
function Pr(t, n) {
|
|
2295
2326
|
let r = t.state.doc.lineAt(n);
|
|
2296
2327
|
for (let t of r.text.matchAll(e)) {
|
|
2297
2328
|
let e = r.from + (t.index ?? 0), i = e + t[0].length;
|
|
2298
|
-
if (!(n < e || n > i)) return
|
|
2329
|
+
if (!(n < e || n > i)) return Mr(e, i, (t[1] ?? "").trim());
|
|
2299
2330
|
}
|
|
2300
2331
|
return null;
|
|
2301
2332
|
}
|
|
2302
|
-
var
|
|
2303
|
-
let n = e.state.facet(
|
|
2304
|
-
return (n.links ?
|
|
2305
|
-
}),
|
|
2333
|
+
var Fr = ve((e, t) => {
|
|
2334
|
+
let n = e.state.facet(P);
|
|
2335
|
+
return (n.links ? Nr(e, t) : null) ?? (n.wikilinks ? Pr(e, t) : null);
|
|
2336
|
+
}), Ir = class extends O {
|
|
2306
2337
|
ref;
|
|
2307
2338
|
inline;
|
|
2308
2339
|
registry;
|
|
@@ -2329,19 +2360,19 @@ var Mr = _e((e, t) => {
|
|
|
2329
2360
|
return !1;
|
|
2330
2361
|
}
|
|
2331
2362
|
};
|
|
2332
|
-
function
|
|
2333
|
-
let t = e.facet(
|
|
2334
|
-
if (!t || !e.facet(
|
|
2335
|
-
let n =
|
|
2363
|
+
function Lr(e) {
|
|
2364
|
+
let t = e.facet(F);
|
|
2365
|
+
if (!t || !e.facet(P).embeds || !e.doc.toString().includes("![[")) return T.none;
|
|
2366
|
+
let n = B(e), r = N(e), i = [];
|
|
2336
2367
|
for (let a = 1; a <= e.doc.lines; a++) {
|
|
2337
2368
|
let o = e.doc.line(a);
|
|
2338
2369
|
if (!(!o.text.includes("![[") || n.has(a))) {
|
|
2339
2370
|
if (fe(o.text)) {
|
|
2340
2371
|
C.lastIndex = 0;
|
|
2341
2372
|
let e = (C.exec(o.text.trim())?.[1] ?? "").trim();
|
|
2342
|
-
if (!e ||
|
|
2343
|
-
i.push(
|
|
2344
|
-
widget: new
|
|
2373
|
+
if (!e || V(r, o.from + o.text.indexOf("!["))) continue;
|
|
2374
|
+
i.push(T.replace({
|
|
2375
|
+
widget: new Ir(e, !1, t),
|
|
2345
2376
|
block: !0
|
|
2346
2377
|
}).range(o.from, o.to));
|
|
2347
2378
|
continue;
|
|
@@ -2351,30 +2382,30 @@ function Pr(e) {
|
|
|
2351
2382
|
let n = (e[1] ?? "").trim();
|
|
2352
2383
|
if (!n) continue;
|
|
2353
2384
|
let a = o.from + (e.index ?? 0);
|
|
2354
|
-
|
|
2385
|
+
V(r, a + 2) || qe(r, a + 2) || i.push(T.replace({ widget: new Ir(n, !0, t) }).range(a, a + e[0].length));
|
|
2355
2386
|
}
|
|
2356
2387
|
}
|
|
2357
2388
|
}
|
|
2358
|
-
return
|
|
2389
|
+
return T.set(i, !0);
|
|
2359
2390
|
}
|
|
2360
|
-
function
|
|
2391
|
+
function Rr(e, t) {
|
|
2361
2392
|
for (let n of t.ranges) {
|
|
2362
2393
|
let t = e.doc.lineAt(n.from).number, r = e.doc.lineAt(n.to).number;
|
|
2363
2394
|
for (let n = t; n <= r; n++) if (e.doc.line(n).text.includes("![[")) return !0;
|
|
2364
2395
|
}
|
|
2365
2396
|
return !1;
|
|
2366
2397
|
}
|
|
2367
|
-
var
|
|
2368
|
-
create:
|
|
2369
|
-
update: (e, t) => t.docChanged || t.selection && (
|
|
2370
|
-
provide: (e) => [
|
|
2371
|
-
}),
|
|
2398
|
+
var zr = M.define({
|
|
2399
|
+
create: Lr,
|
|
2400
|
+
update: (e, t) => t.docChanged || t.selection && (Rr(t.state, t.startState.selection) || Rr(t.state, t.state.selection)) ? Lr(t.state) : e,
|
|
2401
|
+
provide: (e) => [E.decorations.from(e), E.atomicRanges.of((t) => t.state.field(e))]
|
|
2402
|
+
}), Br = Te.define(), Vr = M.define({
|
|
2372
2403
|
create: () => !1,
|
|
2373
2404
|
update(e, t) {
|
|
2374
|
-
for (let n of t.effects) n.is(
|
|
2405
|
+
for (let n of t.effects) n.is(Br) && (e = n.value);
|
|
2375
2406
|
return e;
|
|
2376
2407
|
}
|
|
2377
|
-
}),
|
|
2408
|
+
}), Hr = class {
|
|
2378
2409
|
view;
|
|
2379
2410
|
menu;
|
|
2380
2411
|
onContextMenu;
|
|
@@ -2386,7 +2417,7 @@ var Ir = N.define({
|
|
|
2386
2417
|
destroyed = !1;
|
|
2387
2418
|
constructor(e) {
|
|
2388
2419
|
this.view = e, this.menu = Q(e.dom.ownerDocument, "cm-inplace-menu", (t) => {
|
|
2389
|
-
this.destroyed || e.dispatch({ effects:
|
|
2420
|
+
this.destroyed || e.dispatch({ effects: Br.of(t) });
|
|
2390
2421
|
}), e.dom.appendChild(this.menu.el), this.contentDOM = e.contentDOM, this.onPointerDown = () => {
|
|
2391
2422
|
let t = e.state.selection.main;
|
|
2392
2423
|
this.stashed = t.empty ? null : {
|
|
@@ -2396,17 +2427,17 @@ var Ir = N.define({
|
|
|
2396
2427
|
}, this.contentDOM.addEventListener("pointerdown", this.onPointerDown, !0), this.onContextMenu = (e) => {
|
|
2397
2428
|
let t = e.target;
|
|
2398
2429
|
this.canOpen() && (t?.closest(".cm-inplace-table-edit") || (this.longPress.cancel(), (Date.now() - this.longPressAt < 700 || this.openMenuAt(e.clientX, e.clientY, t)) && e.preventDefault()));
|
|
2399
|
-
}, this.contentDOM.addEventListener("contextmenu", this.onContextMenu), this.longPress =
|
|
2430
|
+
}, this.contentDOM.addEventListener("contextmenu", this.onContextMenu), this.longPress = cr(this.contentDOM, { onLongPress: (e, t, n) => {
|
|
2400
2431
|
this.longPressAt = Date.now(), this.openMenuAt(e, t, n);
|
|
2401
2432
|
} });
|
|
2402
2433
|
}
|
|
2403
2434
|
canOpen() {
|
|
2404
2435
|
let { state: e } = this.view;
|
|
2405
|
-
return e.facet(
|
|
2436
|
+
return e.facet(Ne) && (!e.readOnly || In(this.view));
|
|
2406
2437
|
}
|
|
2407
2438
|
rows() {
|
|
2408
2439
|
let e = this.view;
|
|
2409
|
-
return e.state.readOnly ?
|
|
2440
|
+
return e.state.readOnly ? Ln(e, { selected: !e.state.selection.main.empty }) : sr(e);
|
|
2410
2441
|
}
|
|
2411
2442
|
openMenuAt(e, t, n) {
|
|
2412
2443
|
let r = this.view;
|
|
@@ -2423,7 +2454,7 @@ var Ir = N.define({
|
|
|
2423
2454
|
y: t
|
|
2424
2455
|
});
|
|
2425
2456
|
if (n != null) {
|
|
2426
|
-
let e =
|
|
2457
|
+
let e = U(r.state, n, !1, !0), t = r.state.wordAt(n) ?? { anchor: n };
|
|
2427
2458
|
e?.kind === "link" ? t = {
|
|
2428
2459
|
anchor: e.from,
|
|
2429
2460
|
head: e.to
|
|
@@ -2442,10 +2473,10 @@ var Ir = N.define({
|
|
|
2442
2473
|
destroy() {
|
|
2443
2474
|
this.destroyed = !0, this.contentDOM.removeEventListener("pointerdown", this.onPointerDown, !0), this.contentDOM.removeEventListener("contextmenu", this.onContextMenu), this.longPress.dispose(), this.menu.destroy();
|
|
2444
2475
|
}
|
|
2445
|
-
},
|
|
2476
|
+
}, Ur = D.fromClass(Hr);
|
|
2446
2477
|
//#endregion
|
|
2447
2478
|
//#region src/inplace/selection-bar-position.ts
|
|
2448
|
-
function
|
|
2479
|
+
function Wr(e) {
|
|
2449
2480
|
let t = e.state.selection.main;
|
|
2450
2481
|
if (!t.empty) {
|
|
2451
2482
|
let n = e.coordsAtPos(t.from), r = e.coordsAtPos(t.to);
|
|
@@ -2459,7 +2490,7 @@ function Vr(e) {
|
|
|
2459
2490
|
}
|
|
2460
2491
|
};
|
|
2461
2492
|
}
|
|
2462
|
-
if (!
|
|
2493
|
+
if (!tr(e)) return null;
|
|
2463
2494
|
let n = e.dom.ownerDocument.getSelection();
|
|
2464
2495
|
if (!n || n.rangeCount === 0) return null;
|
|
2465
2496
|
let r = n.getRangeAt(0).getBoundingClientRect();
|
|
@@ -2473,9 +2504,9 @@ function Vr(e) {
|
|
|
2473
2504
|
}
|
|
2474
2505
|
};
|
|
2475
2506
|
}
|
|
2476
|
-
function
|
|
2477
|
-
if (e.state.facet(
|
|
2478
|
-
let r =
|
|
2507
|
+
function Gr(e, t, n) {
|
|
2508
|
+
if (e.state.facet(Ve) !== "bar" || e.state.readOnly || e.state.field(Vr, !1)) return null;
|
|
2509
|
+
let r = Wr(e);
|
|
2479
2510
|
if (!r) return null;
|
|
2480
2511
|
let { box: i, inCell: a } = r;
|
|
2481
2512
|
if (!a && !e.hasFocus) return null;
|
|
@@ -2493,7 +2524,7 @@ function Hr(e, t, n) {
|
|
|
2493
2524
|
}
|
|
2494
2525
|
//#endregion
|
|
2495
2526
|
//#region src/inplace/selection-bar.ts
|
|
2496
|
-
var
|
|
2527
|
+
var Kr = class {
|
|
2497
2528
|
view;
|
|
2498
2529
|
bar;
|
|
2499
2530
|
ids;
|
|
@@ -2508,12 +2539,12 @@ var Ur = class {
|
|
|
2508
2539
|
constructor(e) {
|
|
2509
2540
|
this.view = e;
|
|
2510
2541
|
let t = e.dom.ownerDocument;
|
|
2511
|
-
this.ids = e.state.facet(
|
|
2542
|
+
this.ids = e.state.facet(Be), this.linkMenu = Q(t), e.dom.appendChild(this.linkMenu.el), this.bar = t.createElement("div"), this.bar.className = "cm-inplace-selbar", this.bar.setAttribute("contenteditable", "false"), this.bar.hidden = !0;
|
|
2512
2543
|
for (let n of this.ids) {
|
|
2513
2544
|
let r = g[n], i = t.createElement("button");
|
|
2514
2545
|
i.type = "button", i.className = "cm-inplace-selbar-btn", i.title = r.title, i.setAttribute("aria-label", r.title), i.appendChild(x(t, S[n] ?? "")), i.addEventListener("mousedown", (e) => e.preventDefault()), i.addEventListener("click", (t) => {
|
|
2515
2546
|
t.preventDefault();
|
|
2516
|
-
let a = !!h(e), o = !a && n === "link" ?
|
|
2547
|
+
let a = !!h(e), o = !a && n === "link" ? Wn(e) : !a && n === "wikilink" ? Gn(e) : null;
|
|
2517
2548
|
if (o) {
|
|
2518
2549
|
let e = i.getBoundingClientRect();
|
|
2519
2550
|
this.linkMenu.showField(o, e.left, e.bottom + 6);
|
|
@@ -2525,7 +2556,7 @@ var Ur = class {
|
|
|
2525
2556
|
e.dom.appendChild(this.bar), t.addEventListener("scroll", this.onScroll, !0), t.addEventListener("selectionchange", this.onSelectionChange);
|
|
2526
2557
|
}
|
|
2527
2558
|
update(e) {
|
|
2528
|
-
let t = e.startState.field(
|
|
2559
|
+
let t = e.startState.field(Vr, !1) !== e.state.field(Vr, !1), n = e.startState.readOnly !== e.state.readOnly;
|
|
2529
2560
|
(e.selectionSet || e.docChanged || e.focusChanged || t || n) && this.schedule();
|
|
2530
2561
|
}
|
|
2531
2562
|
schedule() {
|
|
@@ -2536,7 +2567,7 @@ var Ur = class {
|
|
|
2536
2567
|
});
|
|
2537
2568
|
}
|
|
2538
2569
|
measure() {
|
|
2539
|
-
return
|
|
2570
|
+
return Gr(this.view, this.bar, this.ids);
|
|
2540
2571
|
}
|
|
2541
2572
|
apply(e) {
|
|
2542
2573
|
if (!e) {
|
|
@@ -2550,46 +2581,46 @@ var Ur = class {
|
|
|
2550
2581
|
let e = this.view.dom.ownerDocument;
|
|
2551
2582
|
e.removeEventListener("scroll", this.onScroll, !0), e.removeEventListener("selectionchange", this.onSelectionChange), this.linkMenu.destroy(), this.bar.remove();
|
|
2552
2583
|
}
|
|
2553
|
-
},
|
|
2584
|
+
}, qr = D.fromClass(Kr), Jr = (e) => (t) => {
|
|
2554
2585
|
if (h(t)) return !1;
|
|
2555
2586
|
let n = t.state.selection.main;
|
|
2556
2587
|
if (!n.empty) return !1;
|
|
2557
2588
|
let { doc: r } = t.state, i = r.lineAt(n.head), a = e ? i.number + 1 : i.number - 1;
|
|
2558
2589
|
if (a < 1 || a > r.lines) return !1;
|
|
2559
2590
|
let o = r.line(a), s = -1, c = -1, l;
|
|
2560
|
-
if (t.state.field(
|
|
2591
|
+
if (t.state.field(Z).between(o.from, o.to, (t, n, r) => {
|
|
2561
2592
|
if (e ? t === o.from : n === o.to) return s = t, c = n, l = r.spec.widget, !1;
|
|
2562
2593
|
}), s < 0) return !1;
|
|
2563
|
-
if (t.state.facet(
|
|
2594
|
+
if (t.state.facet(I) === "cells") return l instanceof vr && l.focusEdge(e ? "first" : "last");
|
|
2564
2595
|
let u = e ? r.lineAt(s).from : r.lineAt(c).to;
|
|
2565
2596
|
return t.dispatch({
|
|
2566
2597
|
selection: { anchor: u },
|
|
2567
2598
|
userEvent: "select",
|
|
2568
2599
|
scrollIntoView: !0
|
|
2569
2600
|
}), !0;
|
|
2570
|
-
},
|
|
2601
|
+
}, Yr = Jr(!0), Xr = Jr(!1), Zr = j.high(k.of([{
|
|
2571
2602
|
key: "ArrowDown",
|
|
2572
|
-
run:
|
|
2603
|
+
run: Yr
|
|
2573
2604
|
}, {
|
|
2574
2605
|
key: "ArrowUp",
|
|
2575
|
-
run:
|
|
2576
|
-
}])),
|
|
2577
|
-
last =
|
|
2606
|
+
run: Xr
|
|
2607
|
+
}])), Qr = "[[],[]]", $r = D.fromClass(class {
|
|
2608
|
+
last = Qr;
|
|
2578
2609
|
update(e) {
|
|
2579
|
-
let { state: t } = e, n = JSON.stringify([t.facet(
|
|
2610
|
+
let { state: t } = e, n = JSON.stringify([t.facet(Le)(t), t.facet(Re)(t).map((e) => [
|
|
2580
2611
|
e.pos,
|
|
2581
2612
|
e.key,
|
|
2582
2613
|
e.cellClass
|
|
2583
2614
|
])]);
|
|
2584
|
-
n === this.last && !e.docChanged || (n !==
|
|
2615
|
+
n === this.last && !e.docChanged || (n !== Qr || this.last !== Qr) && (this.last = n, e.view.requestMeasure({
|
|
2585
2616
|
read: () => null,
|
|
2586
2617
|
write: (e, t) => {
|
|
2587
|
-
for (let e of t.dom.querySelectorAll(".cm-inplace-table
|
|
2618
|
+
for (let e of t.dom.querySelectorAll(".cm-inplace-table")) _r.get(e)?.repaintMarks(), bn.get(e)?.();
|
|
2588
2619
|
},
|
|
2589
2620
|
key: this
|
|
2590
2621
|
}));
|
|
2591
2622
|
}
|
|
2592
|
-
}),
|
|
2623
|
+
}), ei = {
|
|
2593
2624
|
".cm-inplace-callout": {
|
|
2594
2625
|
borderLeft: "0.25rem solid var(--stylo-callout-accent, var(--stylo-border))",
|
|
2595
2626
|
padding: "0 var(--stylo-rhythm-callout-padding-x, 1rem)",
|
|
@@ -2623,9 +2654,9 @@ var Ur = class {
|
|
|
2623
2654
|
content: "\"\"",
|
|
2624
2655
|
display: "none"
|
|
2625
2656
|
}
|
|
2626
|
-
},
|
|
2657
|
+
}, ti = "var(--stylo-font-family-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)", ni = "var(--stylo-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif)", ri = {
|
|
2627
2658
|
"& .cm-content": {
|
|
2628
|
-
fontFamily:
|
|
2659
|
+
fontFamily: ni,
|
|
2629
2660
|
lineHeight: "1.75",
|
|
2630
2661
|
padding: "0.75rem",
|
|
2631
2662
|
WebkitTouchCallout: "none"
|
|
@@ -2668,14 +2699,14 @@ var Ur = class {
|
|
|
2668
2699
|
".cm-inplace-em": { fontStyle: "italic" },
|
|
2669
2700
|
".cm-inplace-strike": { textDecoration: "line-through" },
|
|
2670
2701
|
".cm-inplace-code": {
|
|
2671
|
-
fontFamily:
|
|
2702
|
+
fontFamily: ti,
|
|
2672
2703
|
fontSize: "0.9em",
|
|
2673
2704
|
padding: "0.1em 0.35em",
|
|
2674
2705
|
borderRadius: "3px",
|
|
2675
2706
|
background: "color-mix(in srgb, var(--stylo-border) 45%, transparent)"
|
|
2676
2707
|
},
|
|
2677
2708
|
".cm-inplace-mono": {
|
|
2678
|
-
fontFamily:
|
|
2709
|
+
fontFamily: ti,
|
|
2679
2710
|
fontSize: "0.9em",
|
|
2680
2711
|
background: "color-mix(in srgb, var(--stylo-border) 35%, transparent)",
|
|
2681
2712
|
padding: "0 0.9rem"
|
|
@@ -2753,21 +2784,21 @@ var Ur = class {
|
|
|
2753
2784
|
cursor: "pointer"
|
|
2754
2785
|
},
|
|
2755
2786
|
".cm-inplace-fm": {
|
|
2756
|
-
fontFamily:
|
|
2787
|
+
fontFamily: ti,
|
|
2757
2788
|
fontSize: "0.85em",
|
|
2758
2789
|
color: "var(--stylo-text-muted)"
|
|
2759
2790
|
},
|
|
2760
2791
|
".cm-inplace-fm-first::before": {
|
|
2761
2792
|
content: "\"Frontmatter\"",
|
|
2762
2793
|
marginRight: "0.6em",
|
|
2763
|
-
fontFamily:
|
|
2794
|
+
fontFamily: ni,
|
|
2764
2795
|
fontSize: "0.8rem",
|
|
2765
2796
|
fontWeight: "600",
|
|
2766
2797
|
textTransform: "uppercase",
|
|
2767
2798
|
letterSpacing: "0.04em",
|
|
2768
2799
|
color: "var(--stylo-text-muted)"
|
|
2769
2800
|
}
|
|
2770
|
-
},
|
|
2801
|
+
}, ii = {
|
|
2771
2802
|
".cm-inplace-menu": {
|
|
2772
2803
|
position: "fixed",
|
|
2773
2804
|
inset: "0",
|
|
@@ -2841,7 +2872,7 @@ var Ur = class {
|
|
|
2841
2872
|
outline: "none"
|
|
2842
2873
|
},
|
|
2843
2874
|
".cm-inplace-menu-input:focus": { borderColor: "var(--stylo-ring)" }
|
|
2844
|
-
},
|
|
2875
|
+
}, ai = {
|
|
2845
2876
|
".cm-inplace-selbar": {
|
|
2846
2877
|
position: "fixed",
|
|
2847
2878
|
zIndex: "20",
|
|
@@ -2926,7 +2957,7 @@ var Ur = class {
|
|
|
2926
2957
|
lineHeight: "1.4",
|
|
2927
2958
|
wordBreak: "break-all"
|
|
2928
2959
|
}
|
|
2929
|
-
},
|
|
2960
|
+
}, oi = {
|
|
2930
2961
|
".cm-inplace-table": {
|
|
2931
2962
|
borderCollapse: "collapse",
|
|
2932
2963
|
padding: "1em 0 1.4em",
|
|
@@ -2949,7 +2980,7 @@ var Ur = class {
|
|
|
2949
2980
|
outline: "none"
|
|
2950
2981
|
},
|
|
2951
2982
|
".cm-inplace-table-edit .cm-inplace-tcell:focus": { boxShadow: "inset 0 0 0 2px var(--stylo-ring)" }
|
|
2952
|
-
},
|
|
2983
|
+
}, si = {
|
|
2953
2984
|
".cm-inplace-table-wrap": {
|
|
2954
2985
|
position: "relative",
|
|
2955
2986
|
display: "inline-block",
|
|
@@ -2991,54 +3022,54 @@ var Ur = class {
|
|
|
2991
3022
|
},
|
|
2992
3023
|
".cm-inplace-tg-edge:hover .cm-inplace-tg-plus": { color: "var(--stylo-text)" },
|
|
2993
3024
|
"@media (hover: none)": { ".cm-inplace-tg-edge": { opacity: "0.5" } }
|
|
2994
|
-
},
|
|
2995
|
-
...ei,
|
|
2996
|
-
...Zr,
|
|
3025
|
+
}, ci = E.theme({
|
|
2997
3026
|
...ri,
|
|
3027
|
+
...ei,
|
|
3028
|
+
...oi,
|
|
3029
|
+
...si,
|
|
2998
3030
|
...ii,
|
|
2999
|
-
...
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
let t = Pe(e.inPlace?.contextMenu);
|
|
3031
|
+
...ai
|
|
3032
|
+
}), li = ".cm-inplace-math, .cm-inplace-hr, .cm-inplace-table, .cm-inplace-embed, .cm-inplace-embed-inline";
|
|
3033
|
+
function ui(e = {}) {
|
|
3034
|
+
let t = Fe(e.inPlace?.contextMenu);
|
|
3004
3035
|
return [
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3036
|
+
P.of(je(e.inPlace)),
|
|
3037
|
+
F.of(e.embedRegistry ?? null),
|
|
3038
|
+
I.of(e.inPlace?.table ?? "source"),
|
|
3039
|
+
L.of(e.inPlace?.reveal ?? "caret"),
|
|
3040
|
+
Me.of(e.onLinkClick ?? null),
|
|
3041
|
+
Ne.of(t.enabled),
|
|
3042
|
+
z.of(t.groups),
|
|
3043
|
+
Ie.of(e.hostItems ?? (() => t.items)),
|
|
3044
|
+
Le.of(e.cellMarks ?? e.inPlace?.cellMarks ?? (() => [])),
|
|
3045
|
+
Re.of(e.cellWidgets ?? e.inPlace?.cellWidgets ?? (() => [])),
|
|
3046
|
+
Ve.of(e.inPlace?.selectionUI ?? "menu"),
|
|
3047
|
+
Be.of(ze(e.inPlace?.selectionBarItems)),
|
|
3048
|
+
Dt(),
|
|
3049
|
+
Or,
|
|
3050
|
+
cn,
|
|
3051
|
+
Rt,
|
|
3052
|
+
Zr,
|
|
3053
|
+
wr,
|
|
3054
|
+
br,
|
|
3055
|
+
nt,
|
|
3056
|
+
zr,
|
|
3057
|
+
Ue,
|
|
3058
|
+
Z,
|
|
3059
|
+
$r,
|
|
3060
|
+
Vr,
|
|
3061
|
+
Ur,
|
|
3062
|
+
qr,
|
|
3063
|
+
Ar,
|
|
3064
|
+
Fr,
|
|
3065
|
+
$n,
|
|
3066
|
+
er,
|
|
3067
|
+
j.high(ci),
|
|
3068
|
+
E.domEventHandlers({
|
|
3038
3069
|
mousedown(e, t) {
|
|
3039
3070
|
let n = e.target;
|
|
3040
3071
|
if (n?.closest(".cm-inplace-table-edit") || n?.closest(".stylo-embed-content")) return !1;
|
|
3041
|
-
let r = n?.closest(
|
|
3072
|
+
let r = n?.closest(li);
|
|
3042
3073
|
if (!r) return !1;
|
|
3043
3074
|
let i = t.posAtDOM(r);
|
|
3044
3075
|
if (i < 0) return !1;
|
|
@@ -3059,8 +3090,8 @@ function si(e = {}) {
|
|
|
3059
3090
|
}
|
|
3060
3091
|
//#endregion
|
|
3061
3092
|
//#region src/inplace/InPlaceView.tsx
|
|
3062
|
-
var
|
|
3063
|
-
function
|
|
3093
|
+
var di = () => () => {}, fi = () => null;
|
|
3094
|
+
function pi({ value: e, onChange: t, readOnly: r, placeholder: i, onWikiLinkClick: a, onLinkClick: o, inPlace: s, codeLanguages: c, wikiLinkSource: l, tagSource: u, embedSource: d, onResolveError: f, onSave: p, onViewChange: m, canvasHeader: h, hostExtensions: ee }) {
|
|
3064
3095
|
let te = w(a);
|
|
3065
3096
|
te.current = a;
|
|
3066
3097
|
let re = w(o);
|
|
@@ -3071,13 +3102,13 @@ function ui({ value: e, onChange: t, readOnly: r, placeholder: i, onWikiLinkClic
|
|
|
3071
3102
|
g.current = s?.cellMarks;
|
|
3072
3103
|
let ae = w(s?.cellWidgets);
|
|
3073
3104
|
ae.current = s?.cellWidgets;
|
|
3074
|
-
let [_] =
|
|
3105
|
+
let [_] = ge(() => new ke()), oe = _e(_.subscribe, _.getSnapshot, _.getSnapshot), [se, v] = ge(null), le = w(m);
|
|
3075
3106
|
le.current = m;
|
|
3076
3107
|
let ue = w((e) => {
|
|
3077
3108
|
v(e), le.current?.(e);
|
|
3078
3109
|
}).current, y = w(h);
|
|
3079
3110
|
y.current = h;
|
|
3080
|
-
let [b] =
|
|
3111
|
+
let [b] = ge(() => h ? new ne() : null), x = _e(b?.subscribe ?? di, b?.getSnapshot ?? fi), [S] = ge(() => [ui({
|
|
3081
3112
|
onWikiLinkClick: (e) => te.current?.(e),
|
|
3082
3113
|
onLinkClick: (e) => re.current?.(e),
|
|
3083
3114
|
inPlace: s,
|
|
@@ -3088,7 +3119,7 @@ function ui({ value: e, onChange: t, readOnly: r, placeholder: i, onWikiLinkClic
|
|
|
3088
3119
|
cellMarks: (e) => g.current?.(e) ?? [],
|
|
3089
3120
|
cellWidgets: (e) => ae.current?.(e) ?? [],
|
|
3090
3121
|
embedRegistry: d ? _ : void 0
|
|
3091
|
-
}), ...b ? [
|
|
3122
|
+
}), ...b ? [ye.of(b.panel)] : []]), de = ce({
|
|
3092
3123
|
value: e,
|
|
3093
3124
|
onChange: t,
|
|
3094
3125
|
readOnly: r,
|
|
@@ -3102,18 +3133,18 @@ function ui({ value: e, onChange: t, readOnly: r, placeholder: i, onWikiLinkClic
|
|
|
3102
3133
|
onViewChange: ue,
|
|
3103
3134
|
hostExtensions: ee
|
|
3104
3135
|
});
|
|
3105
|
-
return /* @__PURE__ */
|
|
3136
|
+
return /* @__PURE__ */ De("div", {
|
|
3106
3137
|
className: n.inplace,
|
|
3107
3138
|
ref: de,
|
|
3108
|
-
children: [d && oe.map((e) =>
|
|
3139
|
+
children: [d && oe.map((e) => be(/* @__PURE__ */ Ee(pe, {
|
|
3109
3140
|
reference: e.ref,
|
|
3110
3141
|
source: d,
|
|
3111
3142
|
onError: f,
|
|
3112
3143
|
inline: e.inline
|
|
3113
|
-
}), e.el, String(e.id))), x && y.current &&
|
|
3144
|
+
}), e.el, String(e.id))), x && y.current && be(y.current({ view: se }), x)]
|
|
3114
3145
|
});
|
|
3115
3146
|
}
|
|
3116
3147
|
//#endregion
|
|
3117
|
-
export {
|
|
3148
|
+
export { pi as InPlaceView };
|
|
3118
3149
|
|
|
3119
|
-
//# sourceMappingURL=InPlaceView-
|
|
3150
|
+
//# sourceMappingURL=InPlaceView-CKPumo8B.js.map
|