@kungal/editor-vue 0.28.0 → 0.29.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/CHANGELOG.md +31 -0
- package/dist/components/KunEditor.vue.d.ts +5 -0
- package/dist/components/KunEditor.vue.d.ts.map +1 -1
- package/dist/components/MilkdownEditor.vue.d.ts.map +1 -1
- package/dist/components/ToolbarHost.vue.d.ts +5 -0
- package/dist/components/ToolbarHost.vue.d.ts.map +1 -1
- package/dist/index.js +98 -72
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# @kungal/editor-vue
|
|
2
2
|
|
|
3
|
+
## 0.29.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8609e53: Add an `insertImage({ src })` primitive so hosts can build a rich image dialog.
|
|
8
|
+
|
|
9
|
+
The editor already had `uploadImage(file)` (adapter-backed, in-document
|
|
10
|
+
"uploading…" placeholder). The missing piece for a custom image dialog — insert by
|
|
11
|
+
URL, or re-insert from an upload history — was a way to insert an image from a
|
|
12
|
+
ready URL. Added:
|
|
13
|
+
|
|
14
|
+
- `KunEditorToolbarApi.insertImage({ src, alt?, title? })` — for a dialog dropped
|
|
15
|
+
into the `#toolbar` slot.
|
|
16
|
+
- `KunEditorExpose.insertImage(...)` and `KunEditorExpose.uploadImage(file)` — the
|
|
17
|
+
same two, on the `<KunEditor>` template ref, to drive image insertion from
|
|
18
|
+
anywhere.
|
|
19
|
+
|
|
20
|
+
The dialog UI (KunPopover, drag-drop, "recent" history) stays entirely the host's,
|
|
21
|
+
matching the headless design and how TipTap/ProseMirror split this
|
|
22
|
+
(`setImage(url)` command + host-provided upload UI). Drop the built-in image
|
|
23
|
+
button with `:items` and render your own next to `<KunEditorToolbar>`.
|
|
24
|
+
|
|
25
|
+
Verified in a new docs example (`/examples/image-dialog`): a host dialog inserts
|
|
26
|
+
by URL (`api.insertImage`), uploads one or many picked files via the host's own
|
|
27
|
+
uploader then inserts each, keeps a "recent" history, and re-inserts on click; the
|
|
28
|
+
built-in image button is dropped via `:items`; 0 console errors.
|
|
29
|
+
|
|
30
|
+
### Patch Changes
|
|
31
|
+
|
|
32
|
+
- @kungal/editor-core@0.29.0
|
|
33
|
+
|
|
3
34
|
## 0.28.0
|
|
4
35
|
|
|
5
36
|
### Minor Changes
|
|
@@ -56,6 +56,11 @@ declare var __VLS_1: {
|
|
|
56
56
|
run: <T>(key: import("@milkdown/kit/core").CmdKey<T>, payload?: T) => void;
|
|
57
57
|
insertText: (text: string) => void;
|
|
58
58
|
uploadImage: (file: File) => void;
|
|
59
|
+
insertImage: (payload: {
|
|
60
|
+
src: string;
|
|
61
|
+
alt?: string;
|
|
62
|
+
title?: string;
|
|
63
|
+
}) => void;
|
|
59
64
|
insertLink: (payload: {
|
|
60
65
|
href: string;
|
|
61
66
|
text?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KunEditor.vue.d.ts","sourceRoot":"","sources":["../../src/components/KunEditor.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KunEditor.vue.d.ts","sourceRoot":"","sources":["../../src/components/KunEditor.vue"],"names":[],"mappings":"AAkYA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACX,MAAM,qBAAqB,CAAA;AAO5B,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAUjE,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE9C,KAAK,WAAW,GAAG;IACf,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,qDAAqD;IACrD,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,OAAO,CAAA;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB;oEACgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAAA;CAChD,CAAC;AA0bJ,QAAA,IAAI,OAAO;;iBAtXS,QAAQ;;;;;;;;;;;;;CAsXP,EAAE,QAAQ;iEAxf/B,CAnWE;;;;;WAmWF,CA5UQ;aA4UR,CA5UwB;;;;YA4UxB,CAxUkD;;;;;;;;;;;;;;CAg0BmC,CAAE;AACvF,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAClD;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAShD,QAAA,MAAM,UAAU;;;;;;;cAreD,iBAAiB;cAEjB,iBAAiB;YAEnB,eAAe;cAEb,OAAO;iBAEJ,MAAM;qBAMF,KAAK,GAAG,OAAO;sBAgBd,OAAO,GAAG,gBAAgB,EAAE;WAVvC,QAAQ,EAAE;gBAGL,OAAO;6EAmdtB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MilkdownEditor.vue.d.ts","sourceRoot":"","sources":["../../src/components/MilkdownEditor.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MilkdownEditor.vue.d.ts","sourceRoot":"","sources":["../../src/components/MilkdownEditor.vue"],"names":[],"mappings":"AAwSA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAI5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,KAAK,GAAG,OAAO,CAAA;IAChC,gBAAgB,EAAE,OAAO,CAAA;IACzB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAA;CAChB,CAAC;AA2OF,QAAA,MAAM,YAAY;;;;kFAIhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -3,6 +3,11 @@ declare var __VLS_1: {
|
|
|
3
3
|
run: <T>(key: CmdKey<T>, payload?: T) => void;
|
|
4
4
|
insertText: (text: string) => void;
|
|
5
5
|
uploadImage: (file: File) => void;
|
|
6
|
+
insertImage: (payload: {
|
|
7
|
+
src: string;
|
|
8
|
+
alt?: string;
|
|
9
|
+
title?: string;
|
|
10
|
+
}) => void;
|
|
6
11
|
insertLink: (payload: {
|
|
7
12
|
href: string;
|
|
8
13
|
text?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarHost.vue.d.ts","sourceRoot":"","sources":["../../src/components/ToolbarHost.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToolbarHost.vue.d.ts","sourceRoot":"","sources":["../../src/components/ToolbarHost.vue"],"names":[],"mappings":"AAyGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAuGhD,QAAA,IAAI,OAAO;oCAxGX,CAvEmB;;;;;WAuEnB,CA9CE;aA8CF,CA9CkB;;;;YA8ClB,CAtCc;;;;;;;;;;;;;;CA8IQ,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAG/C,QAAA,MAAM,UAAU,+QACd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,14 +2,14 @@ import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r
|
|
|
2
2
|
import { Milkdown as E, MilkdownProvider as D, useEditor as O, useInstance as k } from "@milkdown/vue";
|
|
3
3
|
import { ProsemirrorAdapterProvider as A, usePluginViewContext as j, usePluginViewFactory as M } from "@prosemirror-adapter/vue";
|
|
4
4
|
import { parseHeadings as N, parseHeadings as ee } from "@kungal/editor-core";
|
|
5
|
-
import { Editor as P, defaultValueCtx as F, editorViewCtx as I, editorViewOptionsCtx as
|
|
6
|
-
import { listenerCtx as
|
|
7
|
-
import { SlashProvider as
|
|
8
|
-
import { TooltipProvider as
|
|
9
|
-
import { callCommand as
|
|
10
|
-
import { TextSelection as
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
5
|
+
import { Editor as P, defaultValueCtx as F, editorViewCtx as I, editorViewOptionsCtx as te, rootCtx as L } from "@milkdown/kit/core";
|
|
6
|
+
import { listenerCtx as R } from "@milkdown/kit/plugin/listener";
|
|
7
|
+
import { SlashProvider as z, slashFactory as B } from "@milkdown/kit/plugin/slash";
|
|
8
|
+
import { TooltipProvider as V, tooltipFactory as H } from "@milkdown/kit/plugin/tooltip";
|
|
9
|
+
import { callCommand as U, replaceAll as ne } from "@milkdown/kit/utils";
|
|
10
|
+
import { TextSelection as W } from "@milkdown/kit/prose/state";
|
|
11
|
+
import { createCodeBlockCommand as G, insertHrCommand as K, insertImageCommand as q, toggleEmphasisCommand as re, toggleInlineCodeCommand as ie, toggleStrongCommand as ae, wrapInBlockquoteCommand as oe, wrapInBulletListCommand as se, wrapInOrderedListCommand as ce } from "@milkdown/kit/preset/commonmark";
|
|
12
|
+
import { createKunEditorPlugins as le, insertKunSpoilerCommand as ue, insertLinkCommand as J, insertMentionCommand as de, insertQuoteCommand as fe, kunCM as pe, mentionId as me, setHeadingCommand as he, startImageUpload as ge } from "@kungal/editor-core/preset";
|
|
13
13
|
import { toggleStrikethroughCommand as _e } from "@milkdown/kit/preset/gfm";
|
|
14
14
|
import { Annotation as ve, EditorState as ye } from "@codemirror/state";
|
|
15
15
|
import { EditorView as Y } from "@codemirror/view";
|
|
@@ -75,13 +75,13 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
75
75
|
}, F = (e) => {
|
|
76
76
|
let t = d.value;
|
|
77
77
|
if (!t || !O) return;
|
|
78
|
-
let n = t.state.schema.nodes[
|
|
78
|
+
let n = t.state.schema.nodes[me];
|
|
79
79
|
if (!n) return;
|
|
80
80
|
let r = n.create({
|
|
81
81
|
userId: e.id,
|
|
82
82
|
name: e.name
|
|
83
83
|
}), { from: i, to: a } = O, o = t.state.tr.replaceWith(i, a, r), s = i + r.nodeSize;
|
|
84
|
-
o.insertText(" ", s), o.setSelection(
|
|
84
|
+
o.insertText(" ", s), o.setSelection(W.create(o.doc, s + 1)), t.dispatch(o.scrollIntoView()), t.focus(), b.hide();
|
|
85
85
|
}, I = (e) => {
|
|
86
86
|
if (!x.value || !w.value.length) {
|
|
87
87
|
x.value && e.key === "Escape" && (e.preventDefault(), b.hide());
|
|
@@ -107,7 +107,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
107
107
|
}
|
|
108
108
|
};
|
|
109
109
|
return p(() => {
|
|
110
|
-
b = new
|
|
110
|
+
b = new z({
|
|
111
111
|
content: v.value,
|
|
112
112
|
trigger: "@",
|
|
113
113
|
shouldShow: P,
|
|
@@ -170,7 +170,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
170
170
|
__name: "SelectionTooltip",
|
|
171
171
|
setup(n) {
|
|
172
172
|
let { view: r, prevState: o } = j(), [, s] = k(), c = l(X), u = t(() => (c?.locale ?? "zh-cn").toLowerCase().startsWith("en")), d = g(null), h, v = (e, t) => {
|
|
173
|
-
s()?.action(
|
|
173
|
+
s()?.action(U(e, t));
|
|
174
174
|
}, y = async () => {
|
|
175
175
|
let e = r.value, { from: t, to: n } = e?.state.selection ?? {
|
|
176
176
|
from: 0,
|
|
@@ -183,12 +183,12 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
183
183
|
bold: {
|
|
184
184
|
svg: $.bold,
|
|
185
185
|
title: e ? "Bold" : "加粗",
|
|
186
|
-
run: () => v(
|
|
186
|
+
run: () => v(ae.key)
|
|
187
187
|
},
|
|
188
188
|
italic: {
|
|
189
189
|
svg: $.italic,
|
|
190
190
|
title: e ? "Italic" : "斜体",
|
|
191
|
-
run: () => v(
|
|
191
|
+
run: () => v(re.key)
|
|
192
192
|
},
|
|
193
193
|
strike: {
|
|
194
194
|
svg: $.strike,
|
|
@@ -198,7 +198,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
198
198
|
code: {
|
|
199
199
|
svg: $.code,
|
|
200
200
|
title: e ? "Inline code" : "行内代码",
|
|
201
|
-
run: () => v(
|
|
201
|
+
run: () => v(ie.key)
|
|
202
202
|
},
|
|
203
203
|
link: {
|
|
204
204
|
svg: $.link,
|
|
@@ -222,7 +222,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
222
222
|
return n;
|
|
223
223
|
});
|
|
224
224
|
return p(() => {
|
|
225
|
-
h = new
|
|
225
|
+
h = new V({
|
|
226
226
|
content: d.value,
|
|
227
227
|
offset: 8
|
|
228
228
|
}), h.update(r.value, o.value);
|
|
@@ -262,15 +262,15 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
262
262
|
},
|
|
263
263
|
emits: ["update:modelValue"],
|
|
264
264
|
setup(e, { expose: t, emit: r }) {
|
|
265
|
-
let i = e, a = r, o = i.modelValue, s = !1, c = M(), l =
|
|
265
|
+
let i = e, a = r, o = i.modelValue, s = !1, c = M(), l = B("kunMention"), u = i.features.mention !== !1 && !!i.adapters.searchMentionUsers && !!c, d = H("kunSelectionTooltip"), f = i.selectionToolbar && !!c, p = O((e) => {
|
|
266
266
|
let t = P.make().config((t) => {
|
|
267
|
-
t.set(
|
|
267
|
+
t.set(L, e), t.set(F, i.modelValue), t.get(R).markdownUpdated((e, t, n) => {
|
|
268
268
|
!i.active || s || t === n || (o = t, a("update:modelValue", t));
|
|
269
|
-
}), t.update(
|
|
269
|
+
}), t.update(te, (e) => ({
|
|
270
270
|
...e,
|
|
271
271
|
editable: () => !i.readonly
|
|
272
272
|
})), u && t.set(l.key, { view: c({ component: ke }) }), f && t.set(d.key, { view: c({ component: Ne }) });
|
|
273
|
-
}).use(
|
|
273
|
+
}).use(le(i.adapters, i.features, {
|
|
274
274
|
locale: i.locale,
|
|
275
275
|
placeholder: i.placeholder,
|
|
276
276
|
placeholderMode: i.placeholderMode
|
|
@@ -281,7 +281,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
281
281
|
if (e === o) return;
|
|
282
282
|
o = e;
|
|
283
283
|
let t = p.get();
|
|
284
|
-
t && (s = !0, t.action(
|
|
284
|
+
t && (s = !0, t.action(ne(e)), s = !1);
|
|
285
285
|
}), S(() => i.readonly, () => {
|
|
286
286
|
p.get()?.action((e) => {
|
|
287
287
|
let t = e.get(I);
|
|
@@ -293,10 +293,27 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
293
293
|
};
|
|
294
294
|
return t({
|
|
295
295
|
insertQuote: (e) => {
|
|
296
|
-
p.get()?.action(
|
|
296
|
+
p.get()?.action(U(fe.key, e)), h();
|
|
297
297
|
},
|
|
298
298
|
insertMention: (e) => {
|
|
299
|
-
p.get()?.action(
|
|
299
|
+
p.get()?.action(U(de.key, e)), h();
|
|
300
|
+
},
|
|
301
|
+
insertImage: (e) => {
|
|
302
|
+
p.get()?.action(U(q.key, {
|
|
303
|
+
src: e.src,
|
|
304
|
+
alt: e.alt ?? "",
|
|
305
|
+
title: e.title ?? ""
|
|
306
|
+
})), h();
|
|
307
|
+
},
|
|
308
|
+
uploadImage: (e) => {
|
|
309
|
+
let t = i.adapters.uploadImage, n = p.get();
|
|
310
|
+
!t || !n || n.action((n) => {
|
|
311
|
+
ge(n.get(I), e, {
|
|
312
|
+
uploadImage: t,
|
|
313
|
+
notify: i.adapters.notify,
|
|
314
|
+
locale: i.locale
|
|
315
|
+
});
|
|
316
|
+
});
|
|
300
317
|
},
|
|
301
318
|
focus: h,
|
|
302
319
|
scrollToHeading: (e) => {
|
|
@@ -308,7 +325,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
308
325
|
behavior: "smooth",
|
|
309
326
|
block: "start"
|
|
310
327
|
}), n.editable)) {
|
|
311
|
-
let e =
|
|
328
|
+
let e = W.near(n.state.doc.resolve(i + 1));
|
|
312
329
|
n.dispatch(n.state.tr.setSelection(e)), n.focus();
|
|
313
330
|
}
|
|
314
331
|
});
|
|
@@ -365,7 +382,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
365
382
|
n.dispatch(r.tr.insertText(e, r.selection.from));
|
|
366
383
|
});
|
|
367
384
|
}, N = (e, t) => {
|
|
368
|
-
o()?.action(
|
|
385
|
+
o()?.action(U(q.key, {
|
|
369
386
|
src: e,
|
|
370
387
|
title: t,
|
|
371
388
|
alt: t
|
|
@@ -434,7 +451,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
434
451
|
__name: "EditorToolbar",
|
|
435
452
|
setup(n) {
|
|
436
453
|
let [, s] = k(), c = l(X), u = t(() => c?.adapters.uploadImage), d = t(() => c?.features.sticker !== !1), f = t(() => (c?.locale ?? "zh-cn").toLowerCase().startsWith("en")), p = (e, t) => {
|
|
437
|
-
s()?.action(
|
|
454
|
+
s()?.action(U(e, t));
|
|
438
455
|
}, h = async () => {
|
|
439
456
|
let e = "";
|
|
440
457
|
s()?.action((t) => {
|
|
@@ -476,18 +493,18 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
476
493
|
}));
|
|
477
494
|
}), S = (e) => {
|
|
478
495
|
let t = e.target;
|
|
479
|
-
p(
|
|
496
|
+
p(he.key, Number(t.value)), t.selectedIndex = 0;
|
|
480
497
|
}, C = t(() => [
|
|
481
498
|
[
|
|
482
499
|
{
|
|
483
500
|
svg: $.bold,
|
|
484
501
|
title: v.value.bold,
|
|
485
|
-
run: () => p(
|
|
502
|
+
run: () => p(ae.key)
|
|
486
503
|
},
|
|
487
504
|
{
|
|
488
505
|
svg: $.italic,
|
|
489
506
|
title: v.value.italic,
|
|
490
|
-
run: () => p(
|
|
507
|
+
run: () => p(re.key)
|
|
491
508
|
},
|
|
492
509
|
{
|
|
493
510
|
svg: $.strike,
|
|
@@ -497,7 +514,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
497
514
|
{
|
|
498
515
|
svg: $.code,
|
|
499
516
|
title: v.value.code,
|
|
500
|
-
run: () => p(
|
|
517
|
+
run: () => p(ie.key)
|
|
501
518
|
},
|
|
502
519
|
{
|
|
503
520
|
svg: $.link,
|
|
@@ -509,40 +526,40 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
509
526
|
{
|
|
510
527
|
svg: $.bulletList,
|
|
511
528
|
title: v.value.bulletList,
|
|
512
|
-
run: () => p(
|
|
529
|
+
run: () => p(se.key)
|
|
513
530
|
},
|
|
514
531
|
{
|
|
515
532
|
svg: $.orderedList,
|
|
516
533
|
title: v.value.orderedList,
|
|
517
|
-
run: () => p(
|
|
534
|
+
run: () => p(ce.key)
|
|
518
535
|
},
|
|
519
536
|
{
|
|
520
537
|
svg: $.quote,
|
|
521
538
|
title: v.value.quote,
|
|
522
|
-
run: () => p(
|
|
539
|
+
run: () => p(oe.key)
|
|
523
540
|
},
|
|
524
541
|
{
|
|
525
542
|
svg: $.codeBlock,
|
|
526
543
|
title: v.value.codeBlock,
|
|
527
|
-
run: () => p(
|
|
544
|
+
run: () => p(G.key, "")
|
|
528
545
|
},
|
|
529
546
|
{
|
|
530
547
|
svg: $.hr,
|
|
531
548
|
title: v.value.hr,
|
|
532
|
-
run: () => p(
|
|
549
|
+
run: () => p(K.key)
|
|
533
550
|
}
|
|
534
551
|
],
|
|
535
552
|
[{
|
|
536
553
|
svg: $.spoiler,
|
|
537
554
|
title: v.value.spoiler,
|
|
538
|
-
run: () => p(
|
|
555
|
+
run: () => p(ue.key)
|
|
539
556
|
}]
|
|
540
557
|
]), w = g(null), T = () => w.value?.click(), E = (e) => {
|
|
541
558
|
let t = e.target, n = t.files?.[0];
|
|
542
559
|
t.value = "";
|
|
543
560
|
let r = u.value;
|
|
544
561
|
!n || !r || s()?.action((e) => {
|
|
545
|
-
|
|
562
|
+
ge(e.get(I), n, {
|
|
546
563
|
uploadImage: r,
|
|
547
564
|
notify: c?.adapters.notify,
|
|
548
565
|
locale: c?.locale
|
|
@@ -606,7 +623,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
606
623
|
__name: "ToolbarHost",
|
|
607
624
|
setup(e) {
|
|
608
625
|
let [, t] = k(), n = l(X, void 0), r = (e, n) => {
|
|
609
|
-
t()?.action(
|
|
626
|
+
t()?.action(U(e, n));
|
|
610
627
|
}, i = () => {
|
|
611
628
|
t()?.action((e) => e.get(I).focus());
|
|
612
629
|
}, a = {
|
|
@@ -620,7 +637,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
620
637
|
uploadImage: (e) => {
|
|
621
638
|
let r = n?.adapters.uploadImage, i = t();
|
|
622
639
|
!r || !i || i.action((t) => {
|
|
623
|
-
|
|
640
|
+
ge(t.get(I), e, {
|
|
624
641
|
uploadImage: r,
|
|
625
642
|
notify: n?.adapters.notify,
|
|
626
643
|
locale: n?.locale
|
|
@@ -630,11 +647,18 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
630
647
|
insertLink: (e) => {
|
|
631
648
|
r(J.key, e), i();
|
|
632
649
|
},
|
|
650
|
+
insertImage: (e) => {
|
|
651
|
+
r(q.key, {
|
|
652
|
+
src: e.src,
|
|
653
|
+
alt: e.alt ?? "",
|
|
654
|
+
title: e.title ?? ""
|
|
655
|
+
}), i();
|
|
656
|
+
},
|
|
633
657
|
insertQuote: (e) => {
|
|
634
|
-
r(
|
|
658
|
+
r(fe.key, e), i();
|
|
635
659
|
},
|
|
636
660
|
insertMention: (e) => {
|
|
637
|
-
r(
|
|
661
|
+
r(de.key, e), i();
|
|
638
662
|
},
|
|
639
663
|
focus: i,
|
|
640
664
|
get adapters() {
|
|
@@ -660,7 +684,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
660
684
|
let r = e, a = n, o = g(null), s = null, c = ve.define(), l = (e) => ye.create({
|
|
661
685
|
doc: e,
|
|
662
686
|
extensions: [
|
|
663
|
-
|
|
687
|
+
pe(),
|
|
664
688
|
Y.lineWrapping,
|
|
665
689
|
xe,
|
|
666
690
|
be(),
|
|
@@ -797,7 +821,7 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
797
821
|
});
|
|
798
822
|
let I = () => {
|
|
799
823
|
F.value = !F.value;
|
|
800
|
-
},
|
|
824
|
+
}, te = t(() => E.locale.toLowerCase().startsWith("en")), L = t(() => te.value ? {
|
|
801
825
|
wysiwyg: "Preview",
|
|
802
826
|
source: "Markdown",
|
|
803
827
|
split: "Split",
|
|
@@ -809,47 +833,49 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
809
833
|
split: "分栏",
|
|
810
834
|
swap: "左右互换",
|
|
811
835
|
scrollSync: "同步滚动"
|
|
812
|
-
}),
|
|
813
|
-
|
|
814
|
-
},
|
|
815
|
-
|
|
816
|
-
let e =
|
|
836
|
+
}), R = g(null), z = null, B = null, V = null, H = () => {
|
|
837
|
+
z?.(), z = null, B = null;
|
|
838
|
+
}, U = () => {
|
|
839
|
+
H();
|
|
840
|
+
let e = R.value;
|
|
817
841
|
if (!e) return;
|
|
818
842
|
let t = e.querySelector(".cm-scroller"), n = e.querySelector(".kun-editor__wysiwyg");
|
|
819
843
|
if (!t || !n) return;
|
|
820
844
|
let r = (e, t) => () => {
|
|
821
|
-
if (
|
|
822
|
-
|
|
845
|
+
if (B && B !== e) return;
|
|
846
|
+
B = e;
|
|
823
847
|
let n = e.scrollHeight - e.clientHeight, r = n > 0 ? e.scrollTop / n : 0, i = t.scrollHeight - t.clientHeight;
|
|
824
|
-
t.scrollTop = r * (i > 0 ? i : 0),
|
|
825
|
-
|
|
848
|
+
t.scrollTop = r * (i > 0 ? i : 0), V && clearTimeout(V), V = setTimeout(() => {
|
|
849
|
+
B = null;
|
|
826
850
|
}, 120);
|
|
827
851
|
}, i = r(t, n), a = r(n, t);
|
|
828
|
-
t.addEventListener("scroll", i, { passive: !0 }), n.addEventListener("scroll", a, { passive: !0 }),
|
|
852
|
+
t.addEventListener("scroll", i, { passive: !0 }), n.addEventListener("scroll", a, { passive: !0 }), z = () => {
|
|
829
853
|
t.removeEventListener("scroll", i), n.removeEventListener("scroll", a);
|
|
830
854
|
};
|
|
831
855
|
};
|
|
832
856
|
S([j, F], ([e, t]) => {
|
|
833
|
-
|
|
834
|
-
}), f(
|
|
835
|
-
let
|
|
857
|
+
H(), e === "split" && t && u(U);
|
|
858
|
+
}), f(H);
|
|
859
|
+
let ne = t(() => E.readonly || j.value === "split"), W = (e) => O("update:modelValue", e), G = g(null), K = g(null);
|
|
836
860
|
return l({
|
|
837
|
-
insertQuote: (e) =>
|
|
838
|
-
insertMention: (e) =>
|
|
839
|
-
|
|
861
|
+
insertQuote: (e) => G.value?.insertQuote(e),
|
|
862
|
+
insertMention: (e) => G.value?.insertMention(e),
|
|
863
|
+
insertImage: (e) => G.value?.insertImage(e),
|
|
864
|
+
uploadImage: (e) => G.value?.uploadImage(e),
|
|
865
|
+
focus: () => G.value?.focus(),
|
|
840
866
|
scrollToHeading: (e) => {
|
|
841
|
-
j.value === "source" || j.value === "split" ?
|
|
867
|
+
j.value === "source" || j.value === "split" ? K.value?.scrollToHeading(e) : G.value?.scrollToHeading(e);
|
|
842
868
|
}
|
|
843
869
|
}), (t, l) => (m(), i("div", {
|
|
844
870
|
ref_key: "rootEl",
|
|
845
|
-
ref:
|
|
871
|
+
ref: R,
|
|
846
872
|
class: "kun-editor",
|
|
847
873
|
"data-kun-editor": "",
|
|
848
874
|
"data-mode": j.value
|
|
849
875
|
}, [v(t.$slots, "view-switch", {
|
|
850
876
|
mode: j.value,
|
|
851
877
|
setMode: M,
|
|
852
|
-
labels:
|
|
878
|
+
labels: L.value,
|
|
853
879
|
views: s.views,
|
|
854
880
|
swapped: N.value,
|
|
855
881
|
swap: P,
|
|
@@ -862,20 +888,20 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
862
888
|
"aria-selected": j.value === e,
|
|
863
889
|
"data-active": j.value === e,
|
|
864
890
|
onClick: (t) => M(e)
|
|
865
|
-
}, y(
|
|
891
|
+
}, y(L.value[e]), 9, ut))), 128)), j.value === "split" ? (m(), i(e, { key: 0 }, [a("button", {
|
|
866
892
|
type: "button",
|
|
867
893
|
class: "kun-editor__tab kun-editor__swap",
|
|
868
|
-
title:
|
|
869
|
-
"aria-label":
|
|
894
|
+
title: L.value.swap,
|
|
895
|
+
"aria-label": L.value.swap,
|
|
870
896
|
onClick: l[0] ||= (e) => P()
|
|
871
897
|
}, " ⇄ ", 8, dt), a("button", {
|
|
872
898
|
type: "button",
|
|
873
899
|
class: "kun-editor__tab",
|
|
874
900
|
"data-active": F.value,
|
|
875
|
-
title:
|
|
901
|
+
title: L.value.scrollSync,
|
|
876
902
|
"aria-pressed": F.value,
|
|
877
903
|
onClick: l[1] ||= (e) => I()
|
|
878
|
-
}, y(
|
|
904
|
+
}, y(L.value.scrollSync), 9, ft)], 64)) : r("", !0)])) : r("", !0)]), o(b(D), null, {
|
|
879
905
|
default: C(() => [o(b(A), null, {
|
|
880
906
|
default: C(() => [w(a("div", null, [o(ot, null, {
|
|
881
907
|
default: C((e) => [v(t.$slots, "toolbar", d(c(e)), () => [o(at)])]),
|
|
@@ -886,24 +912,24 @@ var X = Symbol("kun-editor-context"), Se = [
|
|
|
886
912
|
}, [j.value === "source" || j.value === "split" ? (m(), n(st, {
|
|
887
913
|
key: 0,
|
|
888
914
|
ref_key: "source",
|
|
889
|
-
ref:
|
|
915
|
+
ref: K,
|
|
890
916
|
class: "kun-editor__pane",
|
|
891
917
|
"model-value": s.modelValue,
|
|
892
918
|
readonly: s.readonly,
|
|
893
|
-
"onUpdate:modelValue":
|
|
919
|
+
"onUpdate:modelValue": W
|
|
894
920
|
}, null, 8, ["model-value", "readonly"])) : r("", !0), w(a("div", mt, [o(Pe, {
|
|
895
921
|
ref_key: "inner",
|
|
896
|
-
ref:
|
|
922
|
+
ref: G,
|
|
897
923
|
"model-value": s.modelValue,
|
|
898
924
|
adapters: s.adapters,
|
|
899
925
|
features: s.features,
|
|
900
926
|
locale: s.locale,
|
|
901
|
-
readonly:
|
|
927
|
+
readonly: ne.value,
|
|
902
928
|
placeholder: s.placeholder,
|
|
903
929
|
"placeholder-mode": s.placeholderMode,
|
|
904
930
|
active: j.value === "wysiwyg" && !s.readonly,
|
|
905
931
|
"selection-toolbar": k.value,
|
|
906
|
-
"onUpdate:modelValue":
|
|
932
|
+
"onUpdate:modelValue": W
|
|
907
933
|
}, null, 8, [
|
|
908
934
|
"model-value",
|
|
909
935
|
"adapters",
|
package/dist/types.d.ts
CHANGED
|
@@ -13,6 +13,16 @@ export interface KunEditorToolbarApi {
|
|
|
13
13
|
* removing it + notifying on failure. No-op without an `uploadImage` adapter.
|
|
14
14
|
*/
|
|
15
15
|
uploadImage: (file: File) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Insert an image node at the cursor from a ready URL — for a host-built image
|
|
18
|
+
* dialog (paste a URL, or re-insert from an upload history). For the upload path
|
|
19
|
+
* use `uploadImage`, or call your own upload adapter then this.
|
|
20
|
+
*/
|
|
21
|
+
insertImage: (payload: {
|
|
22
|
+
src: string;
|
|
23
|
+
alt?: string;
|
|
24
|
+
title?: string;
|
|
25
|
+
}) => void;
|
|
16
26
|
/**
|
|
17
27
|
* Apply a link to the selection, or (empty selection) insert linked text.
|
|
18
28
|
* `text` defaults to the href. Standard markdown `[text](href)`.
|
|
@@ -81,6 +91,17 @@ export interface KunEditorExpose {
|
|
|
81
91
|
userId: number;
|
|
82
92
|
name: string;
|
|
83
93
|
}): void;
|
|
94
|
+
/** Insert an image at the cursor from a ready URL (a host-built image dialog). */
|
|
95
|
+
insertImage(payload: {
|
|
96
|
+
src: string;
|
|
97
|
+
alt?: string;
|
|
98
|
+
title?: string;
|
|
99
|
+
}): void;
|
|
100
|
+
/**
|
|
101
|
+
* Upload an image File via the `uploadImage` adapter (in-document "uploading…"
|
|
102
|
+
* placeholder, then the image). No-op without the adapter.
|
|
103
|
+
*/
|
|
104
|
+
uploadImage(file: File): void;
|
|
84
105
|
/** Focus the WYSIWYG editor. */
|
|
85
106
|
focus(): void;
|
|
86
107
|
/**
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungal/editor-vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "KunEditor Vue 3 layer — the headless <KunEditor> component (dual WYSIWYG / markdown-source), toolbar and plugin views. Ships zero CSS and no UI-kit dependency; consumes @kungal/editor-core, and pairs with @kungal/editor-nuxt for optional KunUI chrome.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@prosemirror-adapter/vue": "^0.4.6",
|
|
43
|
-
"@kungal/editor-core": "0.
|
|
43
|
+
"@kungal/editor-core": "0.29.0"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"@codemirror/lang-markdown": "^6.0.0",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"vite": "^8.0.16",
|
|
81
81
|
"vue": "^3.5.35",
|
|
82
82
|
"vue-tsc": "^3.3.3",
|
|
83
|
-
"@kungal/editor-core": "0.
|
|
83
|
+
"@kungal/editor-core": "0.29.0"
|
|
84
84
|
},
|
|
85
85
|
"scripts": {
|
|
86
86
|
"build": "vite build && vue-tsc -p tsconfig.build.json",
|