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 CHANGED
@@ -1 +1,3 @@
1
1
  # Geekplus Digital UI
2
+
3
+ 极智嘉数字化组件库,仅供内部使用。
@@ -1 +1 @@
1
- .d-copy[data-v-b4c0bee4] .el-link__inner{gap:4px}
1
+ .d-copy[data-v-5ec3986a] .el-link__inner{gap:4px}
@@ -1,14 +1,14 @@
1
- import { ref as m, toRef as C, computed as p, onMounted as L, onBeforeUnmount as x, openBlock as a, createBlock as d, unref as f, withModifiers as S, normalizeStyle as M, withCtx as y, createElementBlock as N, normalizeClass as _, createVNode as b, renderSlot as B, createCommentVNode as w } from "vue";
2
- import { useClipboard as R } from "@vueuse/core";
3
- import { ElMessage as $, ElLink as z } from "element-plus";
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 D from "../../icons/copy-light.vue.js";
6
+ import z from "../../icons/copy-light.vue.js";
7
7
  import './copy.css';/* empty css */
8
- import I from "../../../_virtual/_plugin-vue_export-helper.js";
9
- import { useLocale as V } from "../../../hooks/use-locale/index.js";
10
- import { DIcon as j } from "../../icon/index.js";
11
- const H = /* @__PURE__ */ Object.assign({
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(n, { expose: v }) {
32
- const r = n, l = m(null), s = m(!1), g = C(r, "text"), { copy: E } = R({
33
- source: g
34
- }), { t: h } = V(), e = p(() => {
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 (!r.triggerElement || !o)
36
+ if (!n.triggerElement || !o)
37
37
  return null;
38
38
  let t = o.parentNode;
39
39
  for (; t; ) {
40
- if (t.matches(r.triggerElement))
40
+ if (t.matches(n.triggerElement))
41
41
  return t;
42
42
  t = t.parentNode;
43
43
  }
44
44
  return null;
45
- }), k = p(() => ({
46
- display: r.triggerElement && !s.value ? "none" : ""
45
+ }), h = p(() => ({
46
+ display: n.triggerElement && !s.value ? "none" : ""
47
47
  })), i = () => {
48
- E().then(() => {
49
- $.success(h("d.copy.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 L(() => {
56
+ return k(() => {
57
57
  e.value && (e.value.addEventListener("mouseenter", u), e.value.addEventListener("mouseleave", c));
58
- }), x(() => {
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(z), {
63
+ }), (o, t) => (a(), d(f(b), {
64
64
  ref_key: "rootRef",
65
65
  ref: l,
66
66
  class: "d-copy",
67
- type: n.type,
67
+ type: r.type,
68
68
  underline: "never",
69
- style: M(k.value),
70
- onClick: S(i, ["stop"])
69
+ style: S(h.value),
70
+ onClick: L(i, ["stop"])
71
71
  }, {
72
72
  default: y(() => [
73
- n.icon ? (a(), N("i", {
73
+ r.icon ? (a(), x("i", {
74
74
  key: 0,
75
- class: _(n.icon)
76
- }, null, 2)) : (a(), d(f(j), { key: 1 }, {
75
+ class: M(r.icon)
76
+ }, null, 2)) : (a(), d(f(R), { key: 1 }, {
77
77
  default: y(() => [
78
- b(D)
78
+ N(z)
79
79
  ]),
80
80
  _: 1
81
81
  })),
82
- o.$slots.default ? B(o.$slots, "default", { key: 2 }, void 0, !0) : w("", !0)
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
- }), T = /* @__PURE__ */ I(H, [["__scopeId", "data-v-b4c0bee4"]]);
87
+ }), P = /* @__PURE__ */ D(V, [["__scopeId", "data-v-5ec3986a"]]);
88
88
  export {
89
- T as default
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,6 @@
1
+ import o from "./src/editor.vue.js";
2
+ const r = o;
3
+ export {
4
+ r as DEditor,
5
+ r as default
6
+ };
@@ -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)}
@@ -1,5 +1,7 @@
1
1
  export * from './copy';
2
+ export * from './editor';
2
3
  export * from './fold-text';
4
+ export * from './icon';
3
5
  export * from './icon-tip';
6
+ export * from './inline-edit';
4
7
  export * from './upload';
5
- export * from './icon';
@@ -1,12 +1,16 @@
1
1
  import { DCopy as p } from "./copy/index.js";
2
- import { DFoldText as t } from "./fold-text/index.js";
3
- import { DIconTip as f } from "./icon-tip/index.js";
4
- import { DUpload as D } from "./upload/index.js";
5
- import { DIcon as d } from "./icon/index.js";
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
- t as DFoldText,
9
- d as DIcon,
10
- f as DIconTip,
11
- D as DUpload
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,6 @@
1
+ import t from "./src/inline-edit.vue.js";
2
+ const n = t;
3
+ export {
4
+ n as DInlineEdit,
5
+ n as default
6
+ };
@@ -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 n } from "./components/copy/index.js";
6
- import { DFoldText as a } from "./components/fold-text/index.js";
7
- import { DIcon as d } from "./components/icon/index.js";
8
- import { DIconTip as u } from "./components/icon-tip/index.js";
9
- import { DUpload as g } from "./components/upload/index.js";
10
- import { useActivated as I } from "./hooks/use-activated/index.js";
11
- import { useLocale as b } from "./hooks/use-locale/index.js";
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
- n as DCopy,
15
- a as DFoldText,
16
- d as DIcon,
17
- u as DIconTip,
18
- g as DUpload,
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
- I as useActivated,
24
- b as useLocale
27
+ v as useActivated,
28
+ F as useLocale
25
29
  };
@@ -4,9 +4,16 @@ declare namespace _default {
4
4
  namespace copy {
5
5
  let success: string;
6
6
  }
7
- namespace foldText {
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 expand_1: string;
24
- export { expand_1 as expand };
25
- let collapse_1: string;
26
- export { collapse_1 as collapse };
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
@@ -4,6 +4,11 @@ const e = {
4
4
  copy: {
5
5
  success: "Copy successful"
6
6
  },
7
+ editor: {
8
+ expand: "Expand",
9
+ collapse: "Collapse",
10
+ placeholder: "Please input"
11
+ },
7
12
  foldText: {
8
13
  expand: "Expand",
9
14
  collapse: "Collapse"
@@ -4,9 +4,16 @@ declare namespace _default {
4
4
  namespace copy {
5
5
  let success: string;
6
6
  }
7
- namespace foldText {
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 expand_1: string;
24
- export { expand_1 as expand };
25
- let collapse_1: string;
26
- export { collapse_1 as collapse };
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;
@@ -4,6 +4,11 @@ const e = {
4
4
  copy: {
5
5
  success: "复制成功"
6
6
  },
7
+ editor: {
8
+ expand: "展开",
9
+ collapse: "收起",
10
+ placeholder: "请输入"
11
+ },
7
12
  foldText: {
8
13
  expand: "展开",
9
14
  collapse: "收起"
package/package.json CHANGED
@@ -1,31 +1,33 @@
1
- {
2
- "name": "geekplus-digital-ui",
3
- "version": "0.1.25",
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
- "file-saver": "^2.0.5",
24
- "lodash-es": "^4.17.23",
25
- "vue-i18n": "^11.2.8"
26
- },
27
- "peerDependencies": {
28
- "element-plus": "^2.13.2",
29
- "vue": "^3.5.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
+ }