@kungal/editor-vue 0.22.0 → 0.23.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 +32 -0
- package/dist/components/KunEditor.vue.d.ts +9 -1
- package/dist/components/KunEditor.vue.d.ts.map +1 -1
- package/dist/index.js +110 -111
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @kungal/editor-vue
|
|
2
2
|
|
|
3
|
+
## 0.23.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 78e637e: `<KunEditor>` gains a `views` prop to control which view modes the switch offers.
|
|
8
|
+
|
|
9
|
+
The split view is great on a full editor but heavy in a small reply/comment box —
|
|
10
|
+
and there was no way to opt out per-editor (all or nothing). Now pass `views`:
|
|
11
|
+
|
|
12
|
+
```vue
|
|
13
|
+
<!-- edit page: all three (default) -->
|
|
14
|
+
<KunEditor v-model="md" />
|
|
15
|
+
<!-- reply / comment: no split -->
|
|
16
|
+
<KunEditor v-model="md" :views="['wysiwyg', 'source']" />
|
|
17
|
+
<!-- just WYSIWYG: the switch bar is hidden entirely -->
|
|
18
|
+
<KunEditor v-model="md" :views="['wysiwyg']" />
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
- Default `['wysiwyg', 'source', 'split']`. The view switch renders only the
|
|
22
|
+
offered modes, and disappears when a single mode is offered. If `views` changes
|
|
23
|
+
to exclude the active mode, it falls back to the first offered.
|
|
24
|
+
- `KunEditorViewSwitchApi` gains `views`; the default view switch and
|
|
25
|
+
`<KunEditorViewSwitch>` (editor-nuxt) both render from it.
|
|
26
|
+
|
|
27
|
+
Verified in the docs production build: an editor with `:views="['wysiwyg','source']"`
|
|
28
|
+
shows only 预览/Markdown (no 分栏), while default editors still show all three; 0
|
|
29
|
+
console errors.
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- @kungal/editor-core@0.23.0
|
|
34
|
+
|
|
3
35
|
## 0.22.0
|
|
4
36
|
|
|
5
37
|
### Minor Changes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { KunEditorAdapters, KunEditorFeatures, KunEditorLocale } from '@kungal/editor-core';
|
|
2
2
|
import type { KunEditorExpose } from '../types';
|
|
3
|
+
type ViewMode = 'wysiwyg' | 'source' | 'split';
|
|
3
4
|
type __VLS_Props = {
|
|
4
5
|
/** Bound markdown (v-model). */
|
|
5
6
|
modelValue: string;
|
|
@@ -13,13 +14,18 @@ type __VLS_Props = {
|
|
|
13
14
|
readonly?: boolean;
|
|
14
15
|
/** Placeholder text shown while the editor is empty. */
|
|
15
16
|
placeholder?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Which view modes to offer in the switch. Default all three. Drop `'split'`
|
|
19
|
+
* (or use just `['wysiwyg']`) for compact editors like a reply/comment box —
|
|
20
|
+
* a single-mode `views` hides the switch bar entirely.
|
|
21
|
+
*/
|
|
22
|
+
views?: ViewMode[];
|
|
16
23
|
/** Sync scrolling between the split panes. Default `true`; set `false` to
|
|
17
24
|
* disable (or toggle it at runtime via the view-switch API). */
|
|
18
25
|
scrollSync?: boolean;
|
|
19
26
|
/** Show a floating format toolbar on text selection. Default `true`. */
|
|
20
27
|
selectionToolbar?: boolean;
|
|
21
28
|
};
|
|
22
|
-
type ViewMode = 'wysiwyg' | 'source' | 'split';
|
|
23
29
|
declare var __VLS_1: {
|
|
24
30
|
mode: ViewMode;
|
|
25
31
|
setMode: (m: ViewMode) => void;
|
|
@@ -30,6 +36,7 @@ declare var __VLS_1: {
|
|
|
30
36
|
swap: string;
|
|
31
37
|
scrollSync: string;
|
|
32
38
|
};
|
|
39
|
+
views: ViewMode[];
|
|
33
40
|
swapped: boolean;
|
|
34
41
|
swap: () => void;
|
|
35
42
|
scrollSync: boolean;
|
|
@@ -67,6 +74,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, KunEditorEx
|
|
|
67
74
|
readonly: boolean;
|
|
68
75
|
placeholder: string;
|
|
69
76
|
selectionToolbar: boolean;
|
|
77
|
+
views: ViewMode[];
|
|
70
78
|
scrollSync: boolean;
|
|
71
79
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
72
80
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -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":"AAsUA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAM5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,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,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB;oEACgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAC;AA6YJ,QAAA,IAAI,OAAO;;iBAjWS,QAAQ;;;;;;;;;;;;;CAiWP,EAAE,QAAQ;iEAtb/B,CA/S+C;;;;;;;;;;;;;;;CAquBiB,CAAE;AAClE,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;AAQhD,QAAA,MAAM,UAAU;;;;;cA5aD,iBAAiB;cAEjB,iBAAiB;YAEnB,eAAe;cAEb,OAAO;iBAEJ,MAAM;sBAWD,OAAO;WALlB,QAAQ,EAAE;gBAGL,OAAO;6EAgatB,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"}
|
package/dist/index.js
CHANGED
|
@@ -6,9 +6,9 @@ import { listenerCtx as R } from "@milkdown/kit/plugin/listener";
|
|
|
6
6
|
import { SlashProvider as z, slashFactory as B } from "@milkdown/kit/plugin/slash";
|
|
7
7
|
import { TooltipProvider as V, tooltipFactory as H } from "@milkdown/kit/plugin/tooltip";
|
|
8
8
|
import { callCommand as U, replaceAll as W } from "@milkdown/kit/utils";
|
|
9
|
-
import { createKunEditorPlugins as
|
|
10
|
-
import { TextSelection as
|
|
11
|
-
import { createCodeBlockCommand as
|
|
9
|
+
import { createKunEditorPlugins as G, insertKunSpoilerCommand as ee, insertMentionCommand as K, insertQuoteCommand as q, kunCM as te, mentionId as ne, setHeadingCommand as re, startImageUpload as J } from "@kungal/editor-core/preset";
|
|
10
|
+
import { TextSelection as ie } from "@milkdown/kit/prose/state";
|
|
11
|
+
import { createCodeBlockCommand as ae, insertHrCommand as oe, insertImageCommand as se, toggleEmphasisCommand as ce, toggleInlineCodeCommand as le, toggleStrongCommand as ue, wrapInBlockquoteCommand as de, wrapInBulletListCommand as fe, wrapInOrderedListCommand as pe } from "@milkdown/kit/preset/commonmark";
|
|
12
12
|
import { toggleStrikethroughCommand as me } from "@milkdown/kit/preset/gfm";
|
|
13
13
|
import { EditorState as he } from "@codemirror/state";
|
|
14
14
|
import { EditorView as Y } from "@codemirror/view";
|
|
@@ -74,13 +74,13 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
74
74
|
}, I = (e) => {
|
|
75
75
|
let t = d.value;
|
|
76
76
|
if (!t || !O) return;
|
|
77
|
-
let n = t.state.schema.nodes[
|
|
77
|
+
let n = t.state.schema.nodes[ne];
|
|
78
78
|
if (!n) return;
|
|
79
79
|
let r = n.create({
|
|
80
80
|
userId: e.id,
|
|
81
81
|
name: e.name
|
|
82
82
|
}), { from: i, to: a } = O, o = t.state.tr.replaceWith(i, a, r), s = i + r.nodeSize;
|
|
83
|
-
o.insertText(" ", s), o.setSelection(
|
|
83
|
+
o.insertText(" ", s), o.setSelection(ie.create(o.doc, s + 1)), t.dispatch(o.scrollIntoView()), t.focus(), b.hide();
|
|
84
84
|
}, L = (e) => {
|
|
85
85
|
if (!x.value || !w.value.length) {
|
|
86
86
|
x.value && e.key === "Escape" && (e.preventDefault(), b.hide());
|
|
@@ -176,7 +176,7 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
176
176
|
{
|
|
177
177
|
svg: $.italic,
|
|
178
178
|
title: e ? "Italic" : "斜体",
|
|
179
|
-
run: () => v(
|
|
179
|
+
run: () => v(ce.key)
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
svg: $.strike,
|
|
@@ -237,7 +237,7 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
237
237
|
...e,
|
|
238
238
|
editable: () => !i.readonly
|
|
239
239
|
})), l && t.set(c.key, { view: s({ component: Te }) }), d && t.set(u.key, { view: s({ component: Oe }) });
|
|
240
|
-
}).use(
|
|
240
|
+
}).use(G(i.adapters, i.features, {
|
|
241
241
|
locale: i.locale,
|
|
242
242
|
placeholder: i.placeholder
|
|
243
243
|
}));
|
|
@@ -256,10 +256,10 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
256
256
|
};
|
|
257
257
|
return t({
|
|
258
258
|
insertQuote: (e) => {
|
|
259
|
-
f.get()?.action(U(
|
|
259
|
+
f.get()?.action(U(q.key, e)), p();
|
|
260
260
|
},
|
|
261
261
|
insertMention: (e) => {
|
|
262
|
-
f.get()?.action(U(
|
|
262
|
+
f.get()?.action(U(K.key, e)), p();
|
|
263
263
|
},
|
|
264
264
|
focus: p
|
|
265
265
|
}), (e, t) => (m(), n(b(E)));
|
|
@@ -314,7 +314,7 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
314
314
|
n.dispatch(r.tr.insertText(e, r.selection.from));
|
|
315
315
|
});
|
|
316
316
|
}, N = (e, t) => {
|
|
317
|
-
o()?.action(U(
|
|
317
|
+
o()?.action(U(se.key, {
|
|
318
318
|
src: e,
|
|
319
319
|
title: t,
|
|
320
320
|
alt: t
|
|
@@ -416,7 +416,7 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
416
416
|
}));
|
|
417
417
|
}), x = (e) => {
|
|
418
418
|
let t = e.target;
|
|
419
|
-
p(
|
|
419
|
+
p(re.key, Number(t.value)), t.selectedIndex = 0;
|
|
420
420
|
}, S = t(() => [
|
|
421
421
|
[
|
|
422
422
|
{
|
|
@@ -427,7 +427,7 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
427
427
|
{
|
|
428
428
|
svg: $.italic,
|
|
429
429
|
title: h.value.italic,
|
|
430
|
-
run: () => p(
|
|
430
|
+
run: () => p(ce.key)
|
|
431
431
|
},
|
|
432
432
|
{
|
|
433
433
|
svg: $.strike,
|
|
@@ -459,25 +459,25 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
459
459
|
{
|
|
460
460
|
svg: $.codeBlock,
|
|
461
461
|
title: h.value.codeBlock,
|
|
462
|
-
run: () => p(
|
|
462
|
+
run: () => p(ae.key, "")
|
|
463
463
|
},
|
|
464
464
|
{
|
|
465
465
|
svg: $.hr,
|
|
466
466
|
title: h.value.hr,
|
|
467
|
-
run: () => p(
|
|
467
|
+
run: () => p(oe.key)
|
|
468
468
|
}
|
|
469
469
|
],
|
|
470
470
|
[{
|
|
471
471
|
svg: $.spoiler,
|
|
472
472
|
title: h.value.spoiler,
|
|
473
|
-
run: () => p(
|
|
473
|
+
run: () => p(ee.key)
|
|
474
474
|
}]
|
|
475
475
|
]), C = g(null), w = () => C.value?.click(), T = (e) => {
|
|
476
476
|
let t = e.target, n = t.files?.[0];
|
|
477
477
|
t.value = "";
|
|
478
478
|
let r = u.value;
|
|
479
479
|
!n || !r || s()?.action((e) => {
|
|
480
|
-
|
|
480
|
+
J(e.get(F), n, {
|
|
481
481
|
uploadImage: r,
|
|
482
482
|
notify: c?.adapters.notify,
|
|
483
483
|
locale: c?.locale
|
|
@@ -555,7 +555,7 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
555
555
|
uploadImage: (e) => {
|
|
556
556
|
let r = n?.adapters.uploadImage, i = t();
|
|
557
557
|
!r || !i || i.action((t) => {
|
|
558
|
-
|
|
558
|
+
J(t.get(F), e, {
|
|
559
559
|
uploadImage: r,
|
|
560
560
|
notify: n?.adapters.notify,
|
|
561
561
|
locale: n?.locale
|
|
@@ -563,10 +563,10 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
563
563
|
});
|
|
564
564
|
},
|
|
565
565
|
insertQuote: (e) => {
|
|
566
|
-
r(
|
|
566
|
+
r(q.key, e), i();
|
|
567
567
|
},
|
|
568
568
|
insertMention: (e) => {
|
|
569
|
-
r(
|
|
569
|
+
r(K.key, e), i();
|
|
570
570
|
},
|
|
571
571
|
focus: i,
|
|
572
572
|
get adapters() {
|
|
@@ -592,7 +592,7 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
592
592
|
let n = e, r = t, a = g(null), o = null, s = (e) => he.create({
|
|
593
593
|
doc: e,
|
|
594
594
|
extensions: [
|
|
595
|
-
|
|
595
|
+
te(),
|
|
596
596
|
Y.lineWrapping,
|
|
597
597
|
_e,
|
|
598
598
|
ge(),
|
|
@@ -618,13 +618,18 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
618
618
|
}, null, 512));
|
|
619
619
|
}
|
|
620
620
|
}), rt = ["data-mode"], it = {
|
|
621
|
+
key: 0,
|
|
621
622
|
class: "kun-editor__toolbar",
|
|
622
623
|
role: "tablist"
|
|
623
|
-
}, at = [
|
|
624
|
+
}, at = [
|
|
625
|
+
"aria-selected",
|
|
626
|
+
"data-active",
|
|
627
|
+
"onClick"
|
|
628
|
+
], ot = ["title", "aria-label"], st = [
|
|
624
629
|
"data-active",
|
|
625
630
|
"title",
|
|
626
631
|
"aria-pressed"
|
|
627
|
-
],
|
|
632
|
+
], ct = ["data-swap"], lt = { class: "kun-editor__wysiwyg kun-editor__pane" }, ut = /* @__PURE__ */ s({
|
|
628
633
|
__name: "KunEditor",
|
|
629
634
|
props: {
|
|
630
635
|
modelValue: {},
|
|
@@ -636,6 +641,11 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
636
641
|
default: !1
|
|
637
642
|
},
|
|
638
643
|
placeholder: { default: "" },
|
|
644
|
+
views: { default: () => [
|
|
645
|
+
"wysiwyg",
|
|
646
|
+
"source",
|
|
647
|
+
"split"
|
|
648
|
+
] },
|
|
639
649
|
scrollSync: {
|
|
640
650
|
type: Boolean,
|
|
641
651
|
default: !0
|
|
@@ -647,29 +657,33 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
647
657
|
},
|
|
648
658
|
emits: ["update:modelValue"],
|
|
649
659
|
setup(s, { expose: l, emit: p }) {
|
|
650
|
-
let
|
|
660
|
+
let T = s, E = p;
|
|
651
661
|
h(X, {
|
|
652
662
|
get adapters() {
|
|
653
|
-
return
|
|
663
|
+
return T.adapters;
|
|
654
664
|
},
|
|
655
665
|
get features() {
|
|
656
|
-
return
|
|
666
|
+
return T.features;
|
|
657
667
|
},
|
|
658
668
|
get locale() {
|
|
659
|
-
return
|
|
669
|
+
return T.locale;
|
|
660
670
|
}
|
|
661
671
|
});
|
|
662
|
-
let
|
|
663
|
-
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
672
|
+
let O = g(T.views.includes("wysiwyg") ? "wysiwyg" : T.views[0] ?? "wysiwyg"), k = (e) => {
|
|
673
|
+
O.value = e;
|
|
674
|
+
};
|
|
675
|
+
S(() => T.views, (e) => {
|
|
676
|
+
e.includes(O.value) || (O.value = e[0] ?? "wysiwyg");
|
|
677
|
+
});
|
|
678
|
+
let j = g(!1), M = () => {
|
|
679
|
+
j.value = !j.value;
|
|
680
|
+
}, N = g(T.scrollSync);
|
|
681
|
+
S(() => T.scrollSync, (e) => {
|
|
682
|
+
N.value = e;
|
|
669
683
|
});
|
|
670
|
-
let
|
|
671
|
-
|
|
672
|
-
},
|
|
684
|
+
let P = () => {
|
|
685
|
+
N.value = !N.value;
|
|
686
|
+
}, F = t(() => T.locale.toLowerCase().startsWith("en")), I = t(() => F.value ? {
|
|
673
687
|
wysiwyg: "Preview",
|
|
674
688
|
source: "Markdown",
|
|
675
689
|
split: "Split",
|
|
@@ -681,109 +695,94 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
681
695
|
split: "分栏",
|
|
682
696
|
swap: "左右互换",
|
|
683
697
|
scrollSync: "同步滚动"
|
|
684
|
-
}),
|
|
685
|
-
|
|
686
|
-
},
|
|
687
|
-
|
|
688
|
-
let e =
|
|
698
|
+
}), L = g(null), R = null, z = null, B = null, V = () => {
|
|
699
|
+
R?.(), R = null, z = null;
|
|
700
|
+
}, H = () => {
|
|
701
|
+
V();
|
|
702
|
+
let e = L.value;
|
|
689
703
|
if (!e) return;
|
|
690
704
|
let t = e.querySelector(".cm-scroller"), n = e.querySelector(".kun-editor__wysiwyg");
|
|
691
705
|
if (!t || !n) return;
|
|
692
706
|
let r = (e, t) => () => {
|
|
693
|
-
if (
|
|
694
|
-
|
|
707
|
+
if (z && z !== e) return;
|
|
708
|
+
z = e;
|
|
695
709
|
let n = e.scrollHeight - e.clientHeight, r = n > 0 ? e.scrollTop / n : 0, i = t.scrollHeight - t.clientHeight;
|
|
696
|
-
t.scrollTop = r * (i > 0 ? i : 0),
|
|
697
|
-
|
|
710
|
+
t.scrollTop = r * (i > 0 ? i : 0), B && clearTimeout(B), B = setTimeout(() => {
|
|
711
|
+
z = null;
|
|
698
712
|
}, 120);
|
|
699
713
|
}, i = r(t, n), a = r(n, t);
|
|
700
|
-
t.addEventListener("scroll", i, { passive: !0 }), n.addEventListener("scroll", a, { passive: !0 }),
|
|
714
|
+
t.addEventListener("scroll", i, { passive: !0 }), n.addEventListener("scroll", a, { passive: !0 }), R = () => {
|
|
701
715
|
t.removeEventListener("scroll", i), n.removeEventListener("scroll", a);
|
|
702
716
|
};
|
|
703
717
|
};
|
|
704
|
-
S([
|
|
705
|
-
|
|
706
|
-
}), f(
|
|
707
|
-
let
|
|
718
|
+
S([O, N], ([e, t]) => {
|
|
719
|
+
V(), e === "split" && t && u(H);
|
|
720
|
+
}), f(V);
|
|
721
|
+
let U = t(() => T.readonly || O.value === "split"), W = (e) => E("update:modelValue", e), G = g(null);
|
|
708
722
|
return l({
|
|
709
|
-
insertQuote: (e) =>
|
|
710
|
-
insertMention: (e) =>
|
|
711
|
-
focus: () =>
|
|
723
|
+
insertQuote: (e) => G.value?.insertQuote(e),
|
|
724
|
+
insertMention: (e) => G.value?.insertMention(e),
|
|
725
|
+
focus: () => G.value?.focus()
|
|
712
726
|
}), (t, l) => (m(), i("div", {
|
|
713
727
|
ref_key: "rootEl",
|
|
714
|
-
ref:
|
|
728
|
+
ref: L,
|
|
715
729
|
class: "kun-editor",
|
|
716
730
|
"data-kun-editor": "",
|
|
717
|
-
"data-mode":
|
|
731
|
+
"data-mode": O.value
|
|
718
732
|
}, [v(t.$slots, "view-switch", {
|
|
719
|
-
mode:
|
|
720
|
-
setMode:
|
|
721
|
-
labels:
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
E.value === "split" ? (m(), i(e, { key: 0 }, [a("button", {
|
|
749
|
-
type: "button",
|
|
750
|
-
class: "kun-editor__tab kun-editor__swap",
|
|
751
|
-
title: F.value.swap,
|
|
752
|
-
"aria-label": F.value.swap,
|
|
753
|
-
onClick: l[3] ||= (e) => j()
|
|
754
|
-
}, " ⇄ ", 8, ct), a("button", {
|
|
755
|
-
type: "button",
|
|
756
|
-
class: "kun-editor__tab",
|
|
757
|
-
"data-active": M.value,
|
|
758
|
-
title: F.value.scrollSync,
|
|
759
|
-
"aria-pressed": M.value,
|
|
760
|
-
onClick: l[4] ||= (e) => N()
|
|
761
|
-
}, y(F.value.scrollSync), 9, lt)], 64)) : r("", !0)
|
|
762
|
-
])]), o(b(D), null, {
|
|
733
|
+
mode: O.value,
|
|
734
|
+
setMode: k,
|
|
735
|
+
labels: I.value,
|
|
736
|
+
views: s.views,
|
|
737
|
+
swapped: j.value,
|
|
738
|
+
swap: M,
|
|
739
|
+
scrollSync: N.value,
|
|
740
|
+
toggleScrollSync: P
|
|
741
|
+
}, () => [s.views.length > 1 ? (m(), i("div", it, [(m(!0), i(e, null, _(s.views, (e) => (m(), i("button", {
|
|
742
|
+
key: e,
|
|
743
|
+
type: "button",
|
|
744
|
+
class: "kun-editor__tab",
|
|
745
|
+
"aria-selected": O.value === e,
|
|
746
|
+
"data-active": O.value === e,
|
|
747
|
+
onClick: (t) => k(e)
|
|
748
|
+
}, y(I.value[e]), 9, at))), 128)), O.value === "split" ? (m(), i(e, { key: 0 }, [a("button", {
|
|
749
|
+
type: "button",
|
|
750
|
+
class: "kun-editor__tab kun-editor__swap",
|
|
751
|
+
title: I.value.swap,
|
|
752
|
+
"aria-label": I.value.swap,
|
|
753
|
+
onClick: l[0] ||= (e) => M()
|
|
754
|
+
}, " ⇄ ", 8, ot), a("button", {
|
|
755
|
+
type: "button",
|
|
756
|
+
class: "kun-editor__tab",
|
|
757
|
+
"data-active": N.value,
|
|
758
|
+
title: I.value.scrollSync,
|
|
759
|
+
"aria-pressed": N.value,
|
|
760
|
+
onClick: l[1] ||= (e) => P()
|
|
761
|
+
}, y(I.value.scrollSync), 9, st)], 64)) : r("", !0)])) : r("", !0)]), o(b(D), null, {
|
|
763
762
|
default: C(() => [o(b(A), null, {
|
|
764
763
|
default: C(() => [w(a("div", null, [o(tt, null, {
|
|
765
764
|
default: C((e) => [v(t.$slots, "toolbar", d(c(e)), () => [o(et)])]),
|
|
766
765
|
_: 3
|
|
767
|
-
})], 512), [[x,
|
|
766
|
+
})], 512), [[x, O.value === "wysiwyg" && !s.readonly]]), a("div", {
|
|
768
767
|
class: "kun-editor__panes",
|
|
769
|
-
"data-swap":
|
|
770
|
-
}, [
|
|
768
|
+
"data-swap": j.value
|
|
769
|
+
}, [O.value === "source" || O.value === "split" ? (m(), n(nt, {
|
|
771
770
|
key: 0,
|
|
772
771
|
class: "kun-editor__pane",
|
|
773
772
|
"model-value": s.modelValue,
|
|
774
773
|
readonly: s.readonly,
|
|
775
|
-
"onUpdate:modelValue":
|
|
776
|
-
}, null, 8, ["model-value", "readonly"])) : r("", !0), w(a("div",
|
|
774
|
+
"onUpdate:modelValue": W
|
|
775
|
+
}, null, 8, ["model-value", "readonly"])) : r("", !0), w(a("div", lt, [o(ke, {
|
|
777
776
|
ref_key: "inner",
|
|
778
|
-
ref:
|
|
777
|
+
ref: G,
|
|
779
778
|
"model-value": s.modelValue,
|
|
780
779
|
adapters: s.adapters,
|
|
781
780
|
features: s.features,
|
|
782
781
|
locale: s.locale,
|
|
783
|
-
readonly:
|
|
782
|
+
readonly: U.value,
|
|
784
783
|
placeholder: s.placeholder,
|
|
785
784
|
"selection-toolbar": s.selectionToolbar,
|
|
786
|
-
"onUpdate:modelValue":
|
|
785
|
+
"onUpdate:modelValue": W
|
|
787
786
|
}, null, 8, [
|
|
788
787
|
"model-value",
|
|
789
788
|
"adapters",
|
|
@@ -792,14 +791,14 @@ var X = Symbol("kun-editor-context"), ve = [
|
|
|
792
791
|
"readonly",
|
|
793
792
|
"placeholder",
|
|
794
793
|
"selection-toolbar"
|
|
795
|
-
])], 512), [[x,
|
|
794
|
+
])], 512), [[x, O.value === "wysiwyg" || O.value === "split"]])], 8, ct)]),
|
|
796
795
|
_: 3
|
|
797
796
|
})]),
|
|
798
797
|
_: 3
|
|
799
798
|
})], 8, rt));
|
|
800
799
|
}
|
|
801
|
-
}),
|
|
802
|
-
e.component("KunEditor",
|
|
800
|
+
}), dt = { install(e) {
|
|
801
|
+
e.component("KunEditor", ut);
|
|
803
802
|
} };
|
|
804
803
|
//#endregion
|
|
805
|
-
export { Ae as EMOJI,
|
|
804
|
+
export { Ae as EMOJI, ut as KunEditor, dt as KunEditorPlugin };
|
package/dist/types.d.ts
CHANGED
|
@@ -36,6 +36,8 @@ export interface KunEditorViewSwitchApi {
|
|
|
36
36
|
mode: 'wysiwyg' | 'source' | 'split';
|
|
37
37
|
/** Switch the active view. */
|
|
38
38
|
setMode: (mode: 'wysiwyg' | 'source' | 'split') => void;
|
|
39
|
+
/** The view modes offered (from the `views` prop) — render tabs for these. */
|
|
40
|
+
views: ('wysiwyg' | 'source' | 'split')[];
|
|
39
41
|
/** Localized labels (respects the `locale` prop). */
|
|
40
42
|
labels: {
|
|
41
43
|
wysiwyg: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAK5B,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,YAAY,GACZ,aAAa,GACb,OAAO,GACP,WAAW,GACX,IAAI,GACJ,SAAS,GACT,OAAO,GACP,QAAQ,GACR,GAAG,CAAA;AAMP,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;IAC7C,uDAAuD;IACvD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC;;;;OAIG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IACjC,0EAA0E;IAC1E,WAAW,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAChE,6CAA6C;IAC7C,aAAa,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAClE,gCAAgC;IAChC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CACjC;AAMD,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpC,8BAA8B;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAA;IACvD,qDAAqD;IACrD,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,4CAA4C;IAC5C,UAAU,EAAE,OAAO,CAAA;IACnB,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,IAAI,CAAA;CAC7B;AASD,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC5D;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC9D,gCAAgC;IAChC,KAAK,IAAI,IAAI,CAAA;CACd"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAK5B,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,YAAY,GACZ,aAAa,GACb,OAAO,GACP,WAAW,GACX,IAAI,GACJ,SAAS,GACT,OAAO,GACP,QAAQ,GACR,GAAG,CAAA;AAMP,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;IAC7C,uDAAuD;IACvD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC;;;;OAIG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IACjC,0EAA0E;IAC1E,WAAW,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAChE,6CAA6C;IAC7C,aAAa,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAClE,gCAAgC;IAChC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CACjC;AAMD,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpC,8BAA8B;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAA;IACvD,8EAA8E;IAC9E,KAAK,EAAE,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAA;IACzC,qDAAqD;IACrD,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,4CAA4C;IAC5C,UAAU,EAAE,OAAO,CAAA;IACnB,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,IAAI,CAAA;CAC7B;AASD,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC5D;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC9D,gCAAgC;IAChC,KAAK,IAAI,IAAI,CAAA;CACd"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungal/editor-vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.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.23.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.23.0"
|
|
84
84
|
},
|
|
85
85
|
"scripts": {
|
|
86
86
|
"build": "vite build && vue-tsc -p tsconfig.build.json",
|