geekplus-digital-ui 0.1.25 → 0.1.27
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/README.md +2 -0
- package/components/copy/src/copy.css +1 -1
- package/components/copy/src/copy.vue.js +31 -31
- package/components/editor/index.d.ts +26 -0
- package/components/editor/index.js +6 -0
- package/components/editor/src/code-collapse.css +1 -0
- package/components/editor/src/code-collapse.vue.d.ts +10 -0
- package/components/editor/src/code-collapse.vue.js +48 -0
- package/components/editor/src/editor.css +1 -0
- package/components/editor/src/editor.vue.d.ts +26 -0
- package/components/editor/src/editor.vue.js +154 -0
- package/components/editor/src/editor2.css +1 -0
- package/components/index.d.ts +3 -1
- package/components/index.js +12 -8
- package/components/inline-edit/index.d.ts +73 -0
- package/components/inline-edit/index.js +6 -0
- package/components/inline-edit/src/inline-edit.css +1 -0
- package/components/inline-edit/src/inline-edit.vue.d.ts +38 -0
- package/components/inline-edit/src/inline-edit.vue.js +112 -0
- package/index.js +18 -14
- package/locale/lang/en.d.ts +12 -5
- package/locale/lang/en.js +5 -0
- package/locale/lang/zh-cn.d.ts +12 -5
- package/locale/lang/zh-cn.js +5 -0
- package/package.json +33 -31
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.d-copy[data-v-
|
|
1
|
+
.d-copy[data-v-5ec3986a] .el-link__inner{gap:4px}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { ref as m,
|
|
2
|
-
import { useClipboard as
|
|
3
|
-
import { ElMessage as $, ElLink as
|
|
1
|
+
import { ref as m, computed as p, onMounted as k, onBeforeUnmount as C, openBlock as a, createBlock as d, unref as f, withModifiers as L, normalizeStyle as S, withCtx as y, createElementBlock as x, normalizeClass as M, createVNode as N, renderSlot as _, createCommentVNode as B } from "vue";
|
|
2
|
+
import { useClipboard as w } from "@vueuse/core";
|
|
3
|
+
import { ElMessage as $, ElLink as b } from "element-plus";
|
|
4
4
|
import "../../index.js";
|
|
5
5
|
import "../../../hooks/index.js";
|
|
6
|
-
import
|
|
6
|
+
import z from "../../icons/copy-light.vue.js";
|
|
7
7
|
import './copy.css';/* empty css */
|
|
8
|
-
import
|
|
9
|
-
import { useLocale as
|
|
10
|
-
import { DIcon as
|
|
11
|
-
const
|
|
8
|
+
import D from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
9
|
+
import { useLocale as I } from "../../../hooks/use-locale/index.js";
|
|
10
|
+
import { DIcon as R } from "../../icon/index.js";
|
|
11
|
+
const V = /* @__PURE__ */ Object.assign({
|
|
12
12
|
name: "DCopy"
|
|
13
13
|
}, {
|
|
14
14
|
__name: "copy",
|
|
@@ -28,63 +28,63 @@ const H = /* @__PURE__ */ Object.assign({
|
|
|
28
28
|
}
|
|
29
29
|
// 触发元素显示的dom,不设置就一直显示
|
|
30
30
|
},
|
|
31
|
-
setup(
|
|
32
|
-
const
|
|
33
|
-
source:
|
|
34
|
-
}), { t:
|
|
31
|
+
setup(r, { expose: v }) {
|
|
32
|
+
const n = r, l = m(null), s = m(!1), { copy: g } = w({
|
|
33
|
+
source: n.text
|
|
34
|
+
}), { t: E } = I(), e = p(() => {
|
|
35
35
|
const o = l.value?.$el ?? l.value;
|
|
36
|
-
if (!
|
|
36
|
+
if (!n.triggerElement || !o)
|
|
37
37
|
return null;
|
|
38
38
|
let t = o.parentNode;
|
|
39
39
|
for (; t; ) {
|
|
40
|
-
if (t.matches(
|
|
40
|
+
if (t.matches(n.triggerElement))
|
|
41
41
|
return t;
|
|
42
42
|
t = t.parentNode;
|
|
43
43
|
}
|
|
44
44
|
return null;
|
|
45
|
-
}),
|
|
46
|
-
display:
|
|
45
|
+
}), h = p(() => ({
|
|
46
|
+
display: n.triggerElement && !s.value ? "none" : ""
|
|
47
47
|
})), i = () => {
|
|
48
|
-
|
|
49
|
-
$.success(
|
|
48
|
+
g().then(() => {
|
|
49
|
+
$.success(E("d.copy.success"));
|
|
50
50
|
});
|
|
51
51
|
}, u = () => {
|
|
52
52
|
s.value = !0;
|
|
53
53
|
}, c = () => {
|
|
54
54
|
s.value = !1;
|
|
55
55
|
};
|
|
56
|
-
return
|
|
56
|
+
return k(() => {
|
|
57
57
|
e.value && (e.value.addEventListener("mouseenter", u), e.value.addEventListener("mouseleave", c));
|
|
58
|
-
}),
|
|
58
|
+
}), C(() => {
|
|
59
59
|
e.value && (e.value.removeEventListener("mouseenter", u), e.value.removeEventListener("mouseleave", c));
|
|
60
60
|
}), v({
|
|
61
61
|
rootRef: l,
|
|
62
62
|
handleCopy: i
|
|
63
|
-
}), (o, t) => (a(), d(f(
|
|
63
|
+
}), (o, t) => (a(), d(f(b), {
|
|
64
64
|
ref_key: "rootRef",
|
|
65
65
|
ref: l,
|
|
66
66
|
class: "d-copy",
|
|
67
|
-
type:
|
|
67
|
+
type: r.type,
|
|
68
68
|
underline: "never",
|
|
69
|
-
style:
|
|
70
|
-
onClick:
|
|
69
|
+
style: S(h.value),
|
|
70
|
+
onClick: L(i, ["stop"])
|
|
71
71
|
}, {
|
|
72
72
|
default: y(() => [
|
|
73
|
-
|
|
73
|
+
r.icon ? (a(), x("i", {
|
|
74
74
|
key: 0,
|
|
75
|
-
class:
|
|
76
|
-
}, null, 2)) : (a(), d(f(
|
|
75
|
+
class: M(r.icon)
|
|
76
|
+
}, null, 2)) : (a(), d(f(R), { key: 1 }, {
|
|
77
77
|
default: y(() => [
|
|
78
|
-
|
|
78
|
+
N(z)
|
|
79
79
|
]),
|
|
80
80
|
_: 1
|
|
81
81
|
})),
|
|
82
|
-
o.$slots.default ?
|
|
82
|
+
o.$slots.default ? _(o.$slots, "default", { key: 2 }, void 0, !0) : B("", !0)
|
|
83
83
|
]),
|
|
84
84
|
_: 3
|
|
85
85
|
}, 8, ["type", "style"]));
|
|
86
86
|
}
|
|
87
|
-
}),
|
|
87
|
+
}), P = /* @__PURE__ */ D(V, [["__scopeId", "data-v-5ec3986a"]]);
|
|
88
88
|
export {
|
|
89
|
-
|
|
89
|
+
P as default
|
|
90
90
|
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const DEditor: import('vue').DefineComponent<{}, {
|
|
2
|
+
$emit: (event: "add-image" | "update:model-value", ...args: any[]) => void;
|
|
3
|
+
disabled: boolean;
|
|
4
|
+
modelValue: string;
|
|
5
|
+
mode: string;
|
|
6
|
+
showToolbar: boolean;
|
|
7
|
+
minHeight: number;
|
|
8
|
+
border: boolean;
|
|
9
|
+
toolbarConfig: Record<string, any>;
|
|
10
|
+
editorConfig: Record<string, any>;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
$props: {
|
|
13
|
+
readonly disabled?: boolean;
|
|
14
|
+
readonly modelValue?: string;
|
|
15
|
+
readonly mode?: string;
|
|
16
|
+
readonly showToolbar?: boolean;
|
|
17
|
+
readonly minHeight?: number;
|
|
18
|
+
readonly border?: boolean;
|
|
19
|
+
readonly toolbarConfig?: Record<string, any>;
|
|
20
|
+
readonly editorConfig?: Record<string, any>;
|
|
21
|
+
readonly placeholder?: string;
|
|
22
|
+
};
|
|
23
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
24
|
+
rootRef: HTMLDivElement;
|
|
25
|
+
}, HTMLDivElement>;
|
|
26
|
+
export default DEditor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.code-collapse[data-v-04f9af29]{border:1px solid var(--el-border-color);border-radius:4px;background:var(--el-bg-color-overlay);overflow:hidden}.code-collapse summary[data-v-04f9af29]{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;padding:8px 12px;color:var(--el-text-color-primary);line-height:normal;display:flex;justify-content:flex-end;align-items:center;gap:4px}.code-collapse[data-v-04f9af29] .code-collapse-content pre code{margin:0;border:none;border-radius:0}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {
|
|
2
|
+
contentRef: import('vue').Ref<any, any>;
|
|
3
|
+
initialOpen: boolean;
|
|
4
|
+
$props: {
|
|
5
|
+
readonly initialOpen?: boolean;
|
|
6
|
+
};
|
|
7
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
8
|
+
contentRef: HTMLDivElement;
|
|
9
|
+
}, HTMLDetailsElement>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ref as r, computed as u, openBlock as o, createElementBlock as f, createElementVNode as t, toDisplayString as _, createVNode as g, unref as x, withCtx as y, createBlock as c } from "vue";
|
|
2
|
+
import "../../index.js";
|
|
3
|
+
import "../../../hooks/index.js";
|
|
4
|
+
import h from "../../icons/angle-down-light.vue.js";
|
|
5
|
+
import k from "../../icons/angle-up-light.vue.js";
|
|
6
|
+
import './code-collapse.css';/* empty css */
|
|
7
|
+
import v from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
8
|
+
import { useLocale as B } from "../../../hooks/use-locale/index.js";
|
|
9
|
+
import { DIcon as O } from "../../icon/index.js";
|
|
10
|
+
const C = ["open"], D = {
|
|
11
|
+
__name: "code-collapse",
|
|
12
|
+
props: {
|
|
13
|
+
initialOpen: {
|
|
14
|
+
type: Boolean,
|
|
15
|
+
default: !1
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
setup(n, { expose: p }) {
|
|
19
|
+
const s = n, l = r(null), e = r(s.initialOpen), { t: i } = B(), m = u(() => i(e.value ? "d.editor.collapse" : "d.editor.expand")), d = (a) => {
|
|
20
|
+
e.value = a.target.open;
|
|
21
|
+
};
|
|
22
|
+
return p({
|
|
23
|
+
contentRef: l
|
|
24
|
+
}), (a, L) => (o(), f("details", {
|
|
25
|
+
class: "code-collapse",
|
|
26
|
+
open: n.initialOpen,
|
|
27
|
+
onToggle: d
|
|
28
|
+
}, [
|
|
29
|
+
t("summary", null, [
|
|
30
|
+
t("span", null, _(m.value), 1),
|
|
31
|
+
g(x(O), null, {
|
|
32
|
+
default: y(() => [
|
|
33
|
+
e.value ? (o(), c(k, { key: 0 })) : (o(), c(h, { key: 1 }))
|
|
34
|
+
]),
|
|
35
|
+
_: 1
|
|
36
|
+
})
|
|
37
|
+
]),
|
|
38
|
+
t("div", {
|
|
39
|
+
ref_key: "contentRef",
|
|
40
|
+
ref: l,
|
|
41
|
+
class: "code-collapse-content"
|
|
42
|
+
}, null, 512)
|
|
43
|
+
], 40, C));
|
|
44
|
+
}
|
|
45
|
+
}, U = /* @__PURE__ */ v(D, [["__scopeId", "data-v-04f9af29"]]);
|
|
46
|
+
export {
|
|
47
|
+
U as default
|
|
48
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--w-e-textarea-bg-color: transparent;--w-e-textarea-color: var(--el-text-color-primary);--w-e-textarea-border-color: var(--el-border-color);--w-e-textarea-slight-border-color: var(--el-border-color);--w-e-textarea-slight-color: var(--el-text-color-placeholder);--w-e-textarea-slight-bg-color: var(--el-fill-color-light);--w-e-textarea-selected-border-color: var(--el-color-primary-light-5);--w-e-textarea-handler-bg-color: var(--el-color-primary);--w-e-toolbar-color: var(--el-text-color-regular);--w-e-toolbar-bg-color: var(--el-bg-color-overlay);--w-e-toolbar-active-color: var(--el-text-color-primary);--w-e-toolbar-active-bg-color: var(--el-fill-color);--w-e-toolbar-disabled-color: var(--el-text-color-placeholder);--w-e-toolbar-border-color: var(--el-border-color);--w-e-modal-button-bg-color: var(--el-bg-color);--w-e-modal-button-border-color: var(--el-border-color)}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {
|
|
2
|
+
$emit: (event: "add-image" | "update:model-value", ...args: any[]) => void;
|
|
3
|
+
disabled: boolean;
|
|
4
|
+
modelValue: string;
|
|
5
|
+
mode: string;
|
|
6
|
+
showToolbar: boolean;
|
|
7
|
+
minHeight: number;
|
|
8
|
+
border: boolean;
|
|
9
|
+
toolbarConfig: Record<string, any>;
|
|
10
|
+
editorConfig: Record<string, any>;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
$props: {
|
|
13
|
+
readonly disabled?: boolean;
|
|
14
|
+
readonly modelValue?: string;
|
|
15
|
+
readonly mode?: string;
|
|
16
|
+
readonly showToolbar?: boolean;
|
|
17
|
+
readonly minHeight?: number;
|
|
18
|
+
readonly border?: boolean;
|
|
19
|
+
readonly toolbarConfig?: Record<string, any>;
|
|
20
|
+
readonly editorConfig?: Record<string, any>;
|
|
21
|
+
readonly placeholder?: string;
|
|
22
|
+
};
|
|
23
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
24
|
+
rootRef: HTMLDivElement;
|
|
25
|
+
}, HTMLDivElement>;
|
|
26
|
+
export default _default;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { ref as n, computed as s, createApp as $, watch as b, nextTick as F, onBeforeUnmount as M, openBlock as w, createElementBlock as G, normalizeClass as J, withDirectives as K, createVNode as x, unref as C, vShow as Q, normalizeStyle as W, createBlock as X, createCommentVNode as Y } from "vue";
|
|
2
|
+
import { i18nChangeLanguage as Z } from "@wangeditor-next/editor";
|
|
3
|
+
import { Toolbar as _, Editor as ee } from "@wangeditor-next/editor-for-vue";
|
|
4
|
+
import './editor2.css';import './editor.css';import '../../../node_modules/.pnpm/@wangeditor-next_editor@5.6.49/node_modules/@wangeditor-next/editor/dist/css/style.css';/* empty css */
|
|
5
|
+
/* empty css */
|
|
6
|
+
import "../../../hooks/index.js";
|
|
7
|
+
import { useFormItem as te, ElImageViewer as oe } from "element-plus";
|
|
8
|
+
import le from "./code-collapse.vue.js";
|
|
9
|
+
/* empty css */
|
|
10
|
+
import ae from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
11
|
+
import { useLocale as ne } from "../../../hooks/use-locale/index.js";
|
|
12
|
+
const re = /* @__PURE__ */ Object.assign({
|
|
13
|
+
name: "DEditor"
|
|
14
|
+
}, {
|
|
15
|
+
__name: "editor",
|
|
16
|
+
props: {
|
|
17
|
+
modelValue: {
|
|
18
|
+
type: String,
|
|
19
|
+
default: ""
|
|
20
|
+
},
|
|
21
|
+
mode: {
|
|
22
|
+
type: String,
|
|
23
|
+
default: "simple"
|
|
24
|
+
},
|
|
25
|
+
disabled: {
|
|
26
|
+
type: Boolean,
|
|
27
|
+
default: !1
|
|
28
|
+
},
|
|
29
|
+
showToolbar: {
|
|
30
|
+
type: Boolean,
|
|
31
|
+
default: !0
|
|
32
|
+
},
|
|
33
|
+
minHeight: {
|
|
34
|
+
type: Number,
|
|
35
|
+
default: 200
|
|
36
|
+
},
|
|
37
|
+
border: {
|
|
38
|
+
type: Boolean,
|
|
39
|
+
default: !1
|
|
40
|
+
},
|
|
41
|
+
toolbarConfig: {
|
|
42
|
+
type: Object,
|
|
43
|
+
default: () => ({})
|
|
44
|
+
},
|
|
45
|
+
editorConfig: {
|
|
46
|
+
type: Object,
|
|
47
|
+
default: () => ({})
|
|
48
|
+
},
|
|
49
|
+
placeholder: String
|
|
50
|
+
},
|
|
51
|
+
emits: ["add-image", "update:model-value"],
|
|
52
|
+
setup(l, { emit: I }) {
|
|
53
|
+
const o = l, V = I, B = n(null), r = n(null), h = n(""), y = n(0), u = n(!1), m = n([]), f = n(0), p = /* @__PURE__ */ new Map(), { t: S, getLocale: N } = ne(), { formItem: E } = te(), A = s(() => N()), R = (e) => {
|
|
54
|
+
r.value = Object.seal(e);
|
|
55
|
+
}, L = (e) => {
|
|
56
|
+
let t = e;
|
|
57
|
+
t === "<p><br></p>" && (t = ""), t !== h.value && (h.value = t, V("update:model-value", t), E?.validate("change"), E?.validate("blur"));
|
|
58
|
+
}, O = (e) => {
|
|
59
|
+
if (!o.disabled)
|
|
60
|
+
return;
|
|
61
|
+
const t = e?.target?.closest?.("img");
|
|
62
|
+
if (!t)
|
|
63
|
+
return;
|
|
64
|
+
const a = r.value?.getEditableContainer?.(), i = Array.from(a?.querySelectorAll?.("img") || []);
|
|
65
|
+
if (i.length === 0)
|
|
66
|
+
return;
|
|
67
|
+
const g = (d) => d?.currentSrc || d?.src || d?.getAttribute?.("data-src") || "", v = i.map(g).filter(Boolean);
|
|
68
|
+
if (v.length === 0)
|
|
69
|
+
return;
|
|
70
|
+
const P = g(t), k = v.findIndex((d) => d === P);
|
|
71
|
+
m.value = v, f.value = k >= 0 ? k : 0, u.value = !0, e?.stopPropagation?.();
|
|
72
|
+
}, T = (e) => {
|
|
73
|
+
if (o.disabled) {
|
|
74
|
+
O(e);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
r.value?.focus?.();
|
|
78
|
+
}, j = () => {
|
|
79
|
+
u.value = !1, m.value = [], f.value = 0;
|
|
80
|
+
}, c = () => {
|
|
81
|
+
p.forEach(({ app: e, host: t, pre: a }) => {
|
|
82
|
+
t?.isConnected && a?.isConnected && t.parentNode && t.parentNode.insertBefore(a, t), e.unmount(), t?.remove();
|
|
83
|
+
}), p.clear();
|
|
84
|
+
}, z = (e) => {
|
|
85
|
+
const t = document.createElement("div");
|
|
86
|
+
e.parentNode?.insertBefore(t, e);
|
|
87
|
+
const a = $(le), i = a.mount(t);
|
|
88
|
+
(i.contentRef?.value || i.contentRef)?.appendChild(e), p.set(e, {
|
|
89
|
+
app: a,
|
|
90
|
+
host: t,
|
|
91
|
+
pre: e
|
|
92
|
+
});
|
|
93
|
+
}, U = () => {
|
|
94
|
+
const e = r.value?.getEditableContainer?.()?.querySelectorAll("pre");
|
|
95
|
+
e && e.forEach((t) => {
|
|
96
|
+
t.parentElement?.tagName !== "DETAILS" && z(t);
|
|
97
|
+
});
|
|
98
|
+
}, D = s(() => ({
|
|
99
|
+
...o.toolbarConfig
|
|
100
|
+
})), H = s(() => ({
|
|
101
|
+
placeholder: o.disabled ? "" : o.placeholder || S("d.editor.placeholder"),
|
|
102
|
+
readOnly: o.disabled,
|
|
103
|
+
...o.editorConfig
|
|
104
|
+
})), q = s(() => ({
|
|
105
|
+
"--minHeight": o.border ? `${o.minHeight}px` : ""
|
|
106
|
+
}));
|
|
107
|
+
return b(A, (e) => {
|
|
108
|
+
Z(e === "zh-cn" ? "zh-CN" : "en");
|
|
109
|
+
}, { immediate: !0 }), b(() => o.disabled, () => {
|
|
110
|
+
c(), y.value++;
|
|
111
|
+
}), b(() => o.modelValue, () => {
|
|
112
|
+
o.disabled ? F(() => {
|
|
113
|
+
c(), U();
|
|
114
|
+
}) : c();
|
|
115
|
+
}, { immediate: !0 }), M(() => {
|
|
116
|
+
c(), r.value?.destroy?.();
|
|
117
|
+
}), (e, t) => (w(), G("div", {
|
|
118
|
+
ref_key: "rootRef",
|
|
119
|
+
ref: B,
|
|
120
|
+
key: y.value,
|
|
121
|
+
class: J(["d-editor", { "editor-border": l.border, "editor-disabled": l.disabled }])
|
|
122
|
+
}, [
|
|
123
|
+
K(x(C(_), {
|
|
124
|
+
class: "toolbar-container",
|
|
125
|
+
editor: r.value,
|
|
126
|
+
"default-config": D.value,
|
|
127
|
+
mode: l.mode
|
|
128
|
+
}, null, 8, ["editor", "default-config", "mode"]), [
|
|
129
|
+
[Q, l.showToolbar && !l.disabled]
|
|
130
|
+
]),
|
|
131
|
+
x(C(ee), {
|
|
132
|
+
class: "editor-container",
|
|
133
|
+
style: W(q.value),
|
|
134
|
+
"model-value": l.modelValue,
|
|
135
|
+
"default-config": H.value,
|
|
136
|
+
mode: l.mode,
|
|
137
|
+
onOnCreated: R,
|
|
138
|
+
"onUpdate:modelValue": L,
|
|
139
|
+
onClick: T
|
|
140
|
+
}, null, 8, ["style", "model-value", "default-config", "mode"]),
|
|
141
|
+
u.value ? (w(), X(C(oe), {
|
|
142
|
+
key: 0,
|
|
143
|
+
"url-list": m.value,
|
|
144
|
+
"initial-index": f.value,
|
|
145
|
+
"hide-on-click-modal": "",
|
|
146
|
+
teleported: "",
|
|
147
|
+
onClose: j
|
|
148
|
+
}, null, 8, ["url-list", "initial-index"])) : Y("", !0)
|
|
149
|
+
], 2));
|
|
150
|
+
}
|
|
151
|
+
}), Ce = /* @__PURE__ */ ae(re, [["__scopeId", "data-v-3771fd9e"]]);
|
|
152
|
+
export {
|
|
153
|
+
Ce as default
|
|
154
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.d-editor[data-v-3771fd9e]{width:100%}.d-editor.w-e-full-screen-container[data-v-3771fd9e]{z-index:1000}.d-editor .toolbar-container[data-v-3771fd9e]{border-bottom:1px solid var(--el-border-color)}.d-editor .toolbar-container[data-v-3771fd9e] .w-e-toolbar{border-radius:4px}.d-editor .toolbar-container[data-v-3771fd9e] .w-e-drop-panel{z-index:100}.d-editor .editor-container[data-v-3771fd9e]{min-height:var(--minHeight);background:var(--el-fill-color-blank);border-radius:4px}.d-editor .editor-container[data-v-3771fd9e] p[id^=w-e-element-paragraph-]{margin:10px 0}.d-editor .editor-container[data-v-3771fd9e] .w-e-text-placeholder{font-style:normal;font-size:14px;line-height:normal;top:11px}.d-editor .editor-container[data-v-3771fd9e] .w-e-image-container{width:500px}.d-editor .editor-container[data-v-3771fd9e] pre :deep(code){text-shadow:none}.d-editor.editor-disabled[data-v-3771fd9e]:not(.editor-border) div[id^=w-e-textarea-]{padding:0}.d-editor.editor-disabled[data-v-3771fd9e]:not(.editor-border) p[id^=w-e-element-paragraph-]:first-child{margin-top:0}.d-editor.editor-disabled[data-v-3771fd9e]:not(.editor-border) p[id^=w-e-element-paragraph-]:last-child{margin-bottom:0}.editor-border[data-v-3771fd9e]{border:1px solid var(--el-border-color);border-radius:4px;background:var(--el-bg-color);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.editor-border[data-v-3771fd9e]:hover{border-color:var(--el-text-color-disabled)}.editor-disabled .editor-container[data-v-3771fd9e] img{cursor:zoom-in}.el-form-item.is-error .editor-border[data-v-3771fd9e]{border:1px solid var(--el-color-danger)}
|
package/components/index.d.ts
CHANGED
package/components/index.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { DCopy as p } from "./copy/index.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { DEditor as e } from "./editor/index.js";
|
|
3
|
+
import { DFoldText as f } from "./fold-text/index.js";
|
|
4
|
+
import { DIcon as D } from "./icon/index.js";
|
|
5
|
+
import { DIconTip as i } from "./icon-tip/index.js";
|
|
6
|
+
import { DInlineEdit as l } from "./inline-edit/index.js";
|
|
7
|
+
import { DUpload as c } from "./upload/index.js";
|
|
6
8
|
export {
|
|
7
9
|
p as DCopy,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
e as DEditor,
|
|
11
|
+
f as DFoldText,
|
|
12
|
+
D as DIcon,
|
|
13
|
+
i as DIconTip,
|
|
14
|
+
l as DInlineEdit,
|
|
15
|
+
c as DUpload
|
|
12
16
|
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export const DInlineEdit: {
|
|
2
|
+
new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {
|
|
3
|
+
editable: import('vue').Ref<boolean, boolean>;
|
|
4
|
+
$emit: (event: "focus" | "blur", ...args: any[]) => void;
|
|
5
|
+
disabled: boolean;
|
|
6
|
+
trigger: string;
|
|
7
|
+
autofocus: boolean;
|
|
8
|
+
outsideIgnore: unknown[];
|
|
9
|
+
beforeClose?: Function;
|
|
10
|
+
focusTarget?: string | Function;
|
|
11
|
+
$props: {
|
|
12
|
+
readonly disabled?: boolean;
|
|
13
|
+
readonly trigger?: string;
|
|
14
|
+
readonly autofocus?: boolean;
|
|
15
|
+
readonly outsideIgnore?: unknown[];
|
|
16
|
+
readonly beforeClose?: Function;
|
|
17
|
+
readonly focusTarget?: string | Function;
|
|
18
|
+
};
|
|
19
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
|
|
20
|
+
rootRef: HTMLDivElement;
|
|
21
|
+
editorRef: HTMLDivElement;
|
|
22
|
+
}, HTMLDivElement, import('vue').ComponentProvideOptions, {
|
|
23
|
+
P: {};
|
|
24
|
+
B: {};
|
|
25
|
+
D: {};
|
|
26
|
+
C: {};
|
|
27
|
+
M: {};
|
|
28
|
+
Defaults: {};
|
|
29
|
+
}, Readonly<{}> & Readonly<{}>, {
|
|
30
|
+
editable: import('vue').Ref<boolean, boolean>;
|
|
31
|
+
$emit: (event: "focus" | "blur", ...args: any[]) => void;
|
|
32
|
+
disabled: boolean;
|
|
33
|
+
trigger: string;
|
|
34
|
+
autofocus: boolean;
|
|
35
|
+
outsideIgnore: unknown[];
|
|
36
|
+
beforeClose?: Function;
|
|
37
|
+
focusTarget?: string | Function;
|
|
38
|
+
$props: {
|
|
39
|
+
readonly disabled?: boolean;
|
|
40
|
+
readonly trigger?: string;
|
|
41
|
+
readonly autofocus?: boolean;
|
|
42
|
+
readonly outsideIgnore?: unknown[];
|
|
43
|
+
readonly beforeClose?: Function;
|
|
44
|
+
readonly focusTarget?: string | Function;
|
|
45
|
+
};
|
|
46
|
+
}, {}, {}, {}, {}>;
|
|
47
|
+
__isFragment?: never;
|
|
48
|
+
__isTeleport?: never;
|
|
49
|
+
__isSuspense?: never;
|
|
50
|
+
} & import('vue').ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {
|
|
51
|
+
editable: import('vue').Ref<boolean, boolean>;
|
|
52
|
+
$emit: (event: "focus" | "blur", ...args: any[]) => void;
|
|
53
|
+
disabled: boolean;
|
|
54
|
+
trigger: string;
|
|
55
|
+
autofocus: boolean;
|
|
56
|
+
outsideIgnore: unknown[];
|
|
57
|
+
beforeClose?: Function;
|
|
58
|
+
focusTarget?: string | Function;
|
|
59
|
+
$props: {
|
|
60
|
+
readonly disabled?: boolean;
|
|
61
|
+
readonly trigger?: string;
|
|
62
|
+
readonly autofocus?: boolean;
|
|
63
|
+
readonly outsideIgnore?: unknown[];
|
|
64
|
+
readonly beforeClose?: Function;
|
|
65
|
+
readonly focusTarget?: string | Function;
|
|
66
|
+
};
|
|
67
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
|
|
68
|
+
$slots: {
|
|
69
|
+
editor?(_: {}): any;
|
|
70
|
+
default?(_: {}): any;
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
export default DInlineEdit;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.d-inline-edit .text-hover[data-v-db4be4cc]{border-radius:4px;cursor:text}.d-inline-edit .text-hover[data-v-db4be4cc]:hover{box-shadow:0 0 0 1px var(--el-border-color) inset}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
2
|
+
export default _default;
|
|
3
|
+
type __VLS_WithTemplateSlots<T, S> = T & (new () => {
|
|
4
|
+
$slots: S;
|
|
5
|
+
});
|
|
6
|
+
declare const __VLS_component: import('vue').DefineComponent<{}, {
|
|
7
|
+
editable: import('vue').Ref<boolean, boolean>;
|
|
8
|
+
$emit: (event: "focus" | "blur", ...args: any[]) => void;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
trigger: string;
|
|
11
|
+
autofocus: boolean;
|
|
12
|
+
outsideIgnore: unknown[];
|
|
13
|
+
beforeClose?: Function;
|
|
14
|
+
focusTarget?: string | Function;
|
|
15
|
+
$props: {
|
|
16
|
+
readonly disabled?: boolean;
|
|
17
|
+
readonly trigger?: string;
|
|
18
|
+
readonly autofocus?: boolean;
|
|
19
|
+
readonly outsideIgnore?: unknown[];
|
|
20
|
+
readonly beforeClose?: Function;
|
|
21
|
+
readonly focusTarget?: string | Function;
|
|
22
|
+
};
|
|
23
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
24
|
+
rootRef: HTMLDivElement;
|
|
25
|
+
editorRef: HTMLDivElement;
|
|
26
|
+
}, HTMLDivElement>;
|
|
27
|
+
type __VLS_TemplateResult = {
|
|
28
|
+
attrs: Partial<{}>;
|
|
29
|
+
slots: {
|
|
30
|
+
editor?(_: {}): any;
|
|
31
|
+
default?(_: {}): any;
|
|
32
|
+
};
|
|
33
|
+
refs: {
|
|
34
|
+
rootRef: HTMLDivElement;
|
|
35
|
+
editorRef: HTMLDivElement;
|
|
36
|
+
};
|
|
37
|
+
rootEl: HTMLDivElement;
|
|
38
|
+
};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { ref as f, nextTick as k, openBlock as d, createElementBlock as p, renderSlot as C, normalizeClass as x } from "vue";
|
|
2
|
+
import { onClickOutside as R } from "@vueuse/core";
|
|
3
|
+
import { isFunction as n } from "lodash-es";
|
|
4
|
+
import './inline-edit.css';/* empty css */
|
|
5
|
+
import w from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
6
|
+
const v = 'input:not([disabled]), textarea:not([disabled]), [contenteditable="true"], [tabindex]:not([tabindex="-1"])', B = /* @__PURE__ */ Object.assign({
|
|
7
|
+
name: "DInlineEdit"
|
|
8
|
+
}, {
|
|
9
|
+
__name: "inline-edit",
|
|
10
|
+
props: {
|
|
11
|
+
disabled: Boolean,
|
|
12
|
+
trigger: {
|
|
13
|
+
type: String,
|
|
14
|
+
default: "click",
|
|
15
|
+
validator: (s) => ["click", "dblclick"].includes(s)
|
|
16
|
+
},
|
|
17
|
+
beforeClose: {
|
|
18
|
+
type: Function
|
|
19
|
+
},
|
|
20
|
+
autofocus: {
|
|
21
|
+
type: Boolean,
|
|
22
|
+
default: !0
|
|
23
|
+
},
|
|
24
|
+
focusTarget: {
|
|
25
|
+
type: [String, Function]
|
|
26
|
+
},
|
|
27
|
+
outsideIgnore: {
|
|
28
|
+
type: Array,
|
|
29
|
+
default: () => [],
|
|
30
|
+
validator: (s) => s.every((u) => typeof u == "string")
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
emits: ["focus", "blur"],
|
|
34
|
+
setup(s, { expose: u, emit: E }) {
|
|
35
|
+
const _ = [".el-popper"], t = s, b = E, y = f(null), l = f(null), o = f(!1), S = [
|
|
36
|
+
..._,
|
|
37
|
+
...t.outsideIgnore
|
|
38
|
+
], c = (e) => e?.querySelector ? e.querySelector(v) : null, a = (e) => {
|
|
39
|
+
if (!e)
|
|
40
|
+
return !1;
|
|
41
|
+
if (e.$el && n(e.focus))
|
|
42
|
+
return e.focus(), !0;
|
|
43
|
+
const r = e.$el ?? e;
|
|
44
|
+
if (!r)
|
|
45
|
+
return !1;
|
|
46
|
+
const i = c(r);
|
|
47
|
+
return i && n(i.focus) ? (i.focus(), !0) : n(r.matches) && r.matches(v) && n(r.focus) ? (r.focus(), !0) : !1;
|
|
48
|
+
}, g = () => {
|
|
49
|
+
const e = l.value;
|
|
50
|
+
if (!e || !t.focusTarget)
|
|
51
|
+
return null;
|
|
52
|
+
if (n(t.focusTarget))
|
|
53
|
+
return t.focusTarget(e);
|
|
54
|
+
try {
|
|
55
|
+
return e.querySelector(t.focusTarget);
|
|
56
|
+
} catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}, T = async () => {
|
|
60
|
+
if (!t.autofocus)
|
|
61
|
+
return;
|
|
62
|
+
await k();
|
|
63
|
+
const e = g();
|
|
64
|
+
if (a(e))
|
|
65
|
+
return;
|
|
66
|
+
const r = c(l.value);
|
|
67
|
+
if (a(r))
|
|
68
|
+
return;
|
|
69
|
+
await k();
|
|
70
|
+
const i = g() ?? c(l.value);
|
|
71
|
+
a(i);
|
|
72
|
+
}, m = async () => {
|
|
73
|
+
t.disabled || (o.value = !0, b("focus"), await T());
|
|
74
|
+
}, F = () => {
|
|
75
|
+
t.trigger === "click" && m();
|
|
76
|
+
}, h = () => {
|
|
77
|
+
t.trigger === "dblclick" && m();
|
|
78
|
+
}, I = async () => n(t.beforeClose) ? await t.beforeClose() !== !1 : !0, O = async () => {
|
|
79
|
+
o.value && await I() && (o.value = !1, b("blur"));
|
|
80
|
+
};
|
|
81
|
+
return R(y, async () => {
|
|
82
|
+
o.value && await O();
|
|
83
|
+
}, {
|
|
84
|
+
ignore: S
|
|
85
|
+
}), u({
|
|
86
|
+
editable: o
|
|
87
|
+
}), (e, r) => (d(), p("div", {
|
|
88
|
+
ref_key: "rootRef",
|
|
89
|
+
ref: y,
|
|
90
|
+
class: "d-inline-edit"
|
|
91
|
+
}, [
|
|
92
|
+
o.value ? (d(), p("div", {
|
|
93
|
+
key: 0,
|
|
94
|
+
ref_key: "editorRef",
|
|
95
|
+
ref: l,
|
|
96
|
+
class: "editor"
|
|
97
|
+
}, [
|
|
98
|
+
C(e.$slots, "editor", {}, void 0, !0)
|
|
99
|
+
], 512)) : (d(), p("div", {
|
|
100
|
+
key: 1,
|
|
101
|
+
class: x(["text", { "text-hover": !t.disabled }]),
|
|
102
|
+
onClick: F,
|
|
103
|
+
onDblclick: h
|
|
104
|
+
}, [
|
|
105
|
+
C(e.$slots, "default", {}, void 0, !0)
|
|
106
|
+
], 34))
|
|
107
|
+
], 512));
|
|
108
|
+
}
|
|
109
|
+
}), j = /* @__PURE__ */ w(B, [["__scopeId", "data-v-db4be4cc"]]);
|
|
110
|
+
export {
|
|
111
|
+
j as default
|
|
112
|
+
};
|
package/index.js
CHANGED
|
@@ -2,24 +2,28 @@ import { install as o } from "./install.js";
|
|
|
2
2
|
import "./components/index.js";
|
|
3
3
|
import "./hooks/index.js";
|
|
4
4
|
import { setComponentRegistry as x, setGlobalConfig as i } from "./config/index.js";
|
|
5
|
-
import { DCopy as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
5
|
+
import { DCopy as l } from "./components/copy/index.js";
|
|
6
|
+
import { DEditor as a } from "./components/editor/index.js";
|
|
7
|
+
import { DFoldText as D } from "./components/fold-text/index.js";
|
|
8
|
+
import { DIcon as u } from "./components/icon/index.js";
|
|
9
|
+
import { DIconTip as I } from "./components/icon-tip/index.js";
|
|
10
|
+
import { DInlineEdit as y } from "./components/inline-edit/index.js";
|
|
11
|
+
import { DUpload as T } from "./components/upload/index.js";
|
|
12
|
+
import { useActivated as v } from "./hooks/use-activated/index.js";
|
|
13
|
+
import { useLocale as F } from "./hooks/use-locale/index.js";
|
|
12
14
|
const p = { install: o };
|
|
13
15
|
export {
|
|
14
|
-
|
|
15
|
-
a as
|
|
16
|
-
|
|
17
|
-
u as
|
|
18
|
-
|
|
16
|
+
l as DCopy,
|
|
17
|
+
a as DEditor,
|
|
18
|
+
D as DFoldText,
|
|
19
|
+
u as DIcon,
|
|
20
|
+
I as DIconTip,
|
|
21
|
+
y as DInlineEdit,
|
|
22
|
+
T as DUpload,
|
|
19
23
|
p as default,
|
|
20
24
|
o as install,
|
|
21
25
|
x as setComponentRegistry,
|
|
22
26
|
i as setGlobalConfig,
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
v as useActivated,
|
|
28
|
+
F as useLocale
|
|
25
29
|
};
|
package/locale/lang/en.d.ts
CHANGED
|
@@ -4,9 +4,16 @@ declare namespace _default {
|
|
|
4
4
|
namespace copy {
|
|
5
5
|
let success: string;
|
|
6
6
|
}
|
|
7
|
-
namespace
|
|
7
|
+
namespace editor {
|
|
8
8
|
let expand: string;
|
|
9
9
|
let collapse: string;
|
|
10
|
+
let placeholder: string;
|
|
11
|
+
}
|
|
12
|
+
namespace foldText {
|
|
13
|
+
let expand_1: string;
|
|
14
|
+
export { expand_1 as expand };
|
|
15
|
+
let collapse_1: string;
|
|
16
|
+
export { collapse_1 as collapse };
|
|
10
17
|
}
|
|
11
18
|
namespace upload {
|
|
12
19
|
export let lessThan: string;
|
|
@@ -20,10 +27,10 @@ declare namespace _default {
|
|
|
20
27
|
export let comma: string;
|
|
21
28
|
export let preview: string;
|
|
22
29
|
export let close: string;
|
|
23
|
-
let
|
|
24
|
-
export {
|
|
25
|
-
let
|
|
26
|
-
export {
|
|
30
|
+
let expand_2: string;
|
|
31
|
+
export { expand_2 as expand };
|
|
32
|
+
let collapse_2: string;
|
|
33
|
+
export { collapse_2 as collapse };
|
|
27
34
|
let upload_1: string;
|
|
28
35
|
export { upload_1 as upload };
|
|
29
36
|
export let downloadAll: string;
|
package/locale/lang/en.js
CHANGED
package/locale/lang/zh-cn.d.ts
CHANGED
|
@@ -4,9 +4,16 @@ declare namespace _default {
|
|
|
4
4
|
namespace copy {
|
|
5
5
|
let success: string;
|
|
6
6
|
}
|
|
7
|
-
namespace
|
|
7
|
+
namespace editor {
|
|
8
8
|
let expand: string;
|
|
9
9
|
let collapse: string;
|
|
10
|
+
let placeholder: string;
|
|
11
|
+
}
|
|
12
|
+
namespace foldText {
|
|
13
|
+
let expand_1: string;
|
|
14
|
+
export { expand_1 as expand };
|
|
15
|
+
let collapse_1: string;
|
|
16
|
+
export { collapse_1 as collapse };
|
|
10
17
|
}
|
|
11
18
|
namespace upload {
|
|
12
19
|
export let lessThan: string;
|
|
@@ -20,10 +27,10 @@ declare namespace _default {
|
|
|
20
27
|
export let comma: string;
|
|
21
28
|
export let preview: string;
|
|
22
29
|
export let close: string;
|
|
23
|
-
let
|
|
24
|
-
export {
|
|
25
|
-
let
|
|
26
|
-
export {
|
|
30
|
+
let expand_2: string;
|
|
31
|
+
export { expand_2 as expand };
|
|
32
|
+
let collapse_2: string;
|
|
33
|
+
export { collapse_2 as collapse };
|
|
27
34
|
let upload_1: string;
|
|
28
35
|
export { upload_1 as upload };
|
|
29
36
|
export let downloadAll: string;
|
package/locale/lang/zh-cn.js
CHANGED
package/package.json
CHANGED
|
@@ -1,31 +1,33 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "geekplus-digital-ui",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"module": "index.js",
|
|
7
|
-
"types": "index.d.ts",
|
|
8
|
-
"exports": {
|
|
9
|
-
".": {
|
|
10
|
-
"types": "./index.d.ts",
|
|
11
|
-
"import": "./index.js"
|
|
12
|
-
},
|
|
13
|
-
"./*": {
|
|
14
|
-
"types": "./*.d.ts",
|
|
15
|
-
"import": "./*.js"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"sideEffects": [
|
|
19
|
-
"**/*.css"
|
|
20
|
-
],
|
|
21
|
-
"dependencies": {
|
|
22
|
-
"@vueuse/core": "^14.2.1",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "geekplus-digital-ui",
|
|
3
|
+
"version": "0.1.27",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"module": "index.js",
|
|
7
|
+
"types": "index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./index.d.ts",
|
|
11
|
+
"import": "./index.js"
|
|
12
|
+
},
|
|
13
|
+
"./*": {
|
|
14
|
+
"types": "./*.d.ts",
|
|
15
|
+
"import": "./*.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"sideEffects": [
|
|
19
|
+
"**/*.css"
|
|
20
|
+
],
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@vueuse/core": "^14.2.1",
|
|
23
|
+
"@wangeditor-next/editor": "^5.6.49",
|
|
24
|
+
"@wangeditor-next/editor-for-vue": "^5.1.14",
|
|
25
|
+
"file-saver": "^2.0.5",
|
|
26
|
+
"lodash-es": "^4.17.23",
|
|
27
|
+
"vue-i18n": "^11.2.8"
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"element-plus": "^2.13.2",
|
|
31
|
+
"vue": "^3.5.29"
|
|
32
|
+
}
|
|
33
|
+
}
|