vlite3 1.0.5 → 1.0.7
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/components/AttachmentsList/AttachmentsList.vue.js +13 -13
- package/components/AttachmentsList/types.d.ts +1 -1
- package/components/Avatar.vue.js +2 -2
- package/components/Badge.vue.js +3 -3
- package/components/Chat/ChatBubble.vue.d.ts +6 -0
- package/components/Chat/ChatBubble.vue.js +90 -67
- package/components/Chat/ChatInterface.vue.d.ts +16 -2
- package/components/Chat/ChatInterface.vue.js +251 -145
- package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
- package/components/CommandPalette/{CommandPaletteItem.vue2.js → CommandPaletteItem.vue.js} +1 -1
- package/components/DataTable/DataTable.vue.js +81 -78
- package/components/DataTable/DataTableHeader.vue.js +4 -4
- package/components/DataTable/DataTableRow.vue.js +75 -69
- package/components/Form/utils/form.utils.d.ts +4 -4
- package/components/Form/utils/form.utils.js +128 -118
- package/components/Kanban/Kanban.vue.d.ts +6 -5
- package/components/Kanban/Kanban.vue.js +2 -2
- package/components/Kanban/Kanban.vue2.js +71 -54
- package/components/Kanban/KanbanBoard.vue.d.ts +9 -0
- package/components/Kanban/KanbanBoard.vue.js +1 -1
- package/components/Kanban/KanbanBoard.vue2.js +102 -82
- package/components/Kanban/types.d.ts +17 -4
- package/components/NavbarCommandPalette.vue.js +1 -1
- package/components/Screen/Screen.vue.d.ts +2 -0
- package/components/Screen/Screen.vue.js +130 -129
- package/components/Screen/types.d.ts +8 -2
- package/components/Stats/Stats.vue.js +9 -9
- package/package.json +1 -1
- package/style.css +1 -1
|
@@ -4,9 +4,9 @@ import P from "../Icon.vue.js";
|
|
|
4
4
|
import N from "../Button.vue.js";
|
|
5
5
|
import { $t as w } from "../../utils/i18n.js";
|
|
6
6
|
import { downloadFile as E } from "../../utils/functions.js";
|
|
7
|
-
import
|
|
7
|
+
import b from "../FilePreview/FilePreview.vue.js";
|
|
8
8
|
import { getFileTypeIcon as F } from "./fileTypeIcon.js";
|
|
9
|
-
const G = ["onClick"], K = ["src"], W = ["title"], q = { class: "vl-attachments-list__item-size text-xs text-muted-foreground mt-0.5" }, H = ["onClick"], J = { class: "flex items-center gap-3 overflow-hidden min-w-0" }, O = ["src"], Q = { class: "flex flex-col overflow-hidden leading-tight min-w-0" }, R = ["title"], X = ["aria-label"], Y = ["aria-label", "onClick"], ie = /* @__PURE__ */ S({
|
|
9
|
+
const G = ["onClick"], K = ["src"], W = ["title"], q = { class: "vl-attachments-list__item-size text-xs text-muted-foreground mt-0.5" }, H = ["onClick"], J = { class: "flex items-center gap-3 overflow-hidden min-w-0 flex-1" }, O = ["src"], Q = { class: "flex flex-col overflow-hidden leading-tight min-w-0" }, R = ["title"], X = ["aria-label"], Y = ["aria-label", "onClick"], ie = /* @__PURE__ */ S({
|
|
10
10
|
__name: "AttachmentsList",
|
|
11
11
|
props: {
|
|
12
12
|
attachments: {},
|
|
@@ -31,16 +31,16 @@ const G = ["onClick"], K = ["src"], W = ["title"], q = { class: "vl-attachments-
|
|
|
31
31
|
emptyClass: { default: "" }
|
|
32
32
|
},
|
|
33
33
|
setup(t) {
|
|
34
|
-
const c = t,
|
|
34
|
+
const c = t, g = L(null), k = f(() => c.attachments ? Array.isArray(c.attachments) ? c.attachments : [c.attachments] : []), I = (n) => {
|
|
35
35
|
if (!n) return "0 Bytes";
|
|
36
36
|
const h = 1024, e = ["Bytes", "KB", "MB", "GB"], s = Math.floor(Math.log(n) / Math.log(h));
|
|
37
37
|
return parseFloat((n / Math.pow(h, s)).toFixed(2)) + " " + e[s];
|
|
38
38
|
}, D = async (n) => {
|
|
39
39
|
n.fileUrl && n.fileUrl !== "#" && await E(n.fileUrl, n.fileName || "attachment");
|
|
40
40
|
}, A = (n) => n.fileType && n.fileType.startsWith("image/") ? !0 : /\.(jpg|jpeg|png|gif|webp|svg|bmp)(\?.*)?$/i.test(n.fileUrl || ""), V = (n) => {
|
|
41
|
-
c.clickToPreview && c.canView && (
|
|
41
|
+
c.clickToPreview && c.canView && (g.value = n);
|
|
42
42
|
}, $ = () => {
|
|
43
|
-
|
|
43
|
+
g.value = null;
|
|
44
44
|
}, r = f(() => {
|
|
45
45
|
switch (c.size) {
|
|
46
46
|
case "sm":
|
|
@@ -108,7 +108,7 @@ const G = ["onClick"], K = ["src"], W = ["title"], q = { class: "vl-attachments-
|
|
|
108
108
|
key: 0,
|
|
109
109
|
title: e.fileName || i(w)("common.words.preview", "Preview"),
|
|
110
110
|
"max-width": "max-w-3xl",
|
|
111
|
-
body: i(
|
|
111
|
+
body: i(b),
|
|
112
112
|
bodyProps: { url: e.fileUrl, name: e.fileName, canDownload: t.canDownload }
|
|
113
113
|
}, {
|
|
114
114
|
trigger: T(() => [
|
|
@@ -142,10 +142,10 @@ const G = ["onClick"], K = ["src"], W = ["title"], q = { class: "vl-attachments-
|
|
|
142
142
|
], 2),
|
|
143
143
|
t.clickToPreview && t.canView ? (a(), u(x, {
|
|
144
144
|
key: 0,
|
|
145
|
-
show:
|
|
145
|
+
show: g.value === s,
|
|
146
146
|
title: e.fileName || i(w)("common.words.preview", "Preview"),
|
|
147
147
|
"max-width": "max-w-3xl",
|
|
148
|
-
body: i(
|
|
148
|
+
body: i(b),
|
|
149
149
|
bodyProps: { url: e.fileUrl, name: e.fileName, canDownload: t.canDownload },
|
|
150
150
|
onClose: $
|
|
151
151
|
}, null, 8, ["show", "title", "body", "bodyProps"])) : m("", !0)
|
|
@@ -184,7 +184,7 @@ const G = ["onClick"], K = ["src"], W = ["title"], q = { class: "vl-attachments-
|
|
|
184
184
|
], 2),
|
|
185
185
|
d("div", Q, [
|
|
186
186
|
d("span", {
|
|
187
|
-
class: l(["vl-attachments-list__item-name font-medium truncate", [
|
|
187
|
+
class: l(["vl-attachments-list__item-name font-medium truncate block", [
|
|
188
188
|
r.value.text,
|
|
189
189
|
t.variant === "inline" ? "" : "text-foreground",
|
|
190
190
|
t.itemNameClass
|
|
@@ -211,7 +211,7 @@ const G = ["onClick"], K = ["src"], W = ["title"], q = { class: "vl-attachments-
|
|
|
211
211
|
key: 0,
|
|
212
212
|
title: e.fileName || i(w)("common.words.preview", "Preview"),
|
|
213
213
|
"max-width": "max-w-3xl",
|
|
214
|
-
body: i(
|
|
214
|
+
body: i(b),
|
|
215
215
|
bodyProps: { url: e.fileUrl, name: e.fileName, canDownload: t.canDownload }
|
|
216
216
|
}, {
|
|
217
217
|
trigger: T(() => [
|
|
@@ -245,7 +245,7 @@ const G = ["onClick"], K = ["src"], W = ["title"], q = { class: "vl-attachments-
|
|
|
245
245
|
key: 0,
|
|
246
246
|
title: e.fileName || i(w)("common.words.preview", "Preview"),
|
|
247
247
|
"max-width": "max-w-3xl",
|
|
248
|
-
body: i(
|
|
248
|
+
body: i(b),
|
|
249
249
|
bodyProps: { url: e.fileUrl, name: e.fileName, canDownload: t.canDownload }
|
|
250
250
|
}, {
|
|
251
251
|
trigger: T(() => [
|
|
@@ -271,10 +271,10 @@ const G = ["onClick"], K = ["src"], W = ["title"], q = { class: "vl-attachments-
|
|
|
271
271
|
], 10, H))), 128)),
|
|
272
272
|
t.clickToPreview && t.canView ? (a(!0), o(v, { key: 0 }, U(k.value, (e, s) => (a(), u(x, {
|
|
273
273
|
key: `preview-${s}`,
|
|
274
|
-
show:
|
|
274
|
+
show: g.value === s,
|
|
275
275
|
title: e.fileName || i(w)("common.words.preview", "Preview"),
|
|
276
276
|
"max-width": "max-w-3xl",
|
|
277
|
-
body: i(
|
|
277
|
+
body: i(b),
|
|
278
278
|
bodyProps: { url: e.fileUrl, name: e.fileName, canDownload: t.canDownload },
|
|
279
279
|
onClose: $
|
|
280
280
|
}, null, 8, ["show", "title", "body", "bodyProps"]))), 128)) : m("", !0)
|
package/components/Avatar.vue.js
CHANGED
|
@@ -29,11 +29,11 @@ const y = ["src", "alt"], z = { key: 0 }, A = /* @__PURE__ */ k({
|
|
|
29
29
|
return l.length === 1 ? l[0].slice(0, 2).toUpperCase() : (l[0][0] + l[l.length - 1][0]).toUpperCase();
|
|
30
30
|
}), x = {
|
|
31
31
|
xs: "h-6 w-6 text-[10px]",
|
|
32
|
-
sm: "h-
|
|
32
|
+
sm: "h-7.5 w-7.5 text-xs",
|
|
33
33
|
md: "h-10 w-10 text-sm",
|
|
34
34
|
lg: "h-14 w-14 text-base",
|
|
35
35
|
xl: "h-18 w-18 text-lg",
|
|
36
|
-
"2xl": "h-
|
|
36
|
+
"2xl": "h-22 w-22 text-xl"
|
|
37
37
|
}, h = {
|
|
38
38
|
none: "rounded-none",
|
|
39
39
|
sm: "rounded-sm",
|
package/components/Badge.vue.js
CHANGED
|
@@ -11,9 +11,9 @@ const p = /* @__PURE__ */ b({
|
|
|
11
11
|
const e = o, s = d(() => {
|
|
12
12
|
const r = {
|
|
13
13
|
xs: "px-1.5 h-4 text-[9.8px] font-medium leading-none",
|
|
14
|
-
sm: "px-2 h-5
|
|
15
|
-
md: "px-2.5 h-6
|
|
16
|
-
lg: "px-
|
|
14
|
+
sm: "px-2 h-5 text-xs font-medium",
|
|
15
|
+
md: "px-2.5 h-6 text-xs font-semibold",
|
|
16
|
+
lg: "px-2.5 h-7 text-sm font-semibold"
|
|
17
17
|
}, l = `inline-flex items-center ${e.rounded === "none" ? "rounded-none" : `rounded-${e.rounded}`} border ${r[e.size] || r.md} focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`, t = {
|
|
18
18
|
default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
|
|
19
19
|
outline: "text-foreground border-border",
|
|
@@ -12,6 +12,12 @@ type __VLS_Props = {
|
|
|
12
12
|
* Defaults to true.
|
|
13
13
|
*/
|
|
14
14
|
confirmDelete?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Toggle to show or hide the "edited" status indicator on messages
|
|
17
|
+
*/
|
|
18
|
+
showEditedStatus?: boolean;
|
|
19
|
+
editedText?: string;
|
|
20
|
+
editedTextI18n?: string;
|
|
15
21
|
};
|
|
16
22
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
17
23
|
delete: (id: string | number) => any;
|
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as S, computed as x, ref as T, openBlock as t, createElementBlock as i, normalizeClass as l, createVNode as f, createCommentVNode as a, createElementVNode as d, toDisplayString as u, unref as B, createBlock as E, withModifiers as C } from "vue";
|
|
2
2
|
import D from "../Avatar.vue.js";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
3
|
+
import g from "../Button.vue.js";
|
|
4
|
+
import I from "../AttachmentsList/AttachmentsList.vue.js";
|
|
5
|
+
import { $t as w } from "../../utils/i18n.js";
|
|
6
|
+
const z = {
|
|
6
7
|
key: 0,
|
|
7
8
|
class: "flex-shrink-0 flex flex-col justify-end pb-1"
|
|
8
9
|
}, A = {
|
|
9
10
|
key: 0,
|
|
10
|
-
class: "mb-
|
|
11
|
-
},
|
|
12
|
-
key: 0,
|
|
13
|
-
class: "text-sm whitespace-pre-wrap leading-relaxed"
|
|
14
|
-
}, N = { class: "opacity-0 group-hover/bubble:opacity-100 focus-within:opacity-100 transition-opacity flex gap-1 px-2 pointer-events-none group-hover/bubble:pointer-events-auto focus-within:pointer-events-auto" }, z = {
|
|
11
|
+
class: "mb-0.5 text-[9px] font-medium tracking-wide uppercase opacity-80 truncate text-gray-900/80"
|
|
12
|
+
}, N = {
|
|
15
13
|
key: 1,
|
|
16
|
-
class: "
|
|
17
|
-
},
|
|
14
|
+
class: "text-sm whitespace-pre-wrap leading-relaxed break-words"
|
|
15
|
+
}, j = {
|
|
18
16
|
key: 1,
|
|
19
|
-
class: "
|
|
20
|
-
},
|
|
17
|
+
class: "relative flex items-center"
|
|
18
|
+
}, P = /* @__PURE__ */ S({
|
|
21
19
|
__name: "ChatBubble",
|
|
22
20
|
props: {
|
|
23
21
|
message: {},
|
|
@@ -27,51 +25,62 @@ const p = {
|
|
|
27
25
|
showTimestamp: { type: Boolean },
|
|
28
26
|
allowDeleteAll: { type: Boolean },
|
|
29
27
|
allowEditAll: { type: Boolean },
|
|
30
|
-
confirmDelete: { type: Boolean }
|
|
28
|
+
confirmDelete: { type: Boolean },
|
|
29
|
+
showEditedStatus: { type: Boolean },
|
|
30
|
+
editedText: {},
|
|
31
|
+
editedTextI18n: {}
|
|
31
32
|
},
|
|
32
33
|
emits: ["delete", "edit"],
|
|
33
|
-
setup(e, { emit:
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
setup(e, { emit: v }) {
|
|
35
|
+
const s = e, c = v, h = x(() => s.message.timestamp ? new Date(s.message.timestamp).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }) : ""), y = x(() => {
|
|
36
|
+
if (s.editedTextI18n) {
|
|
37
|
+
const o = w(s.editedTextI18n);
|
|
38
|
+
if (o !== s.editedTextI18n) return o;
|
|
39
|
+
}
|
|
40
|
+
if (s.editedText) return s.editedText;
|
|
41
|
+
const m = w("vlite.chat.edited");
|
|
42
|
+
return m !== "vlite.chat.edited" ? m : "edited";
|
|
43
|
+
}), n = T(!1);
|
|
44
|
+
let r = null;
|
|
45
|
+
const b = () => {
|
|
46
|
+
if (s.confirmDelete === !1) {
|
|
47
|
+
c("delete", s.message.id);
|
|
39
48
|
return;
|
|
40
49
|
}
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
n.value ? (n.value = !1, r && (clearTimeout(r), r = null), c("delete", s.message.id)) : (n.value = !0, r = setTimeout(() => {
|
|
51
|
+
n.value = !1, r = null;
|
|
43
52
|
}, 3e3));
|
|
44
|
-
},
|
|
45
|
-
|
|
53
|
+
}, k = () => {
|
|
54
|
+
n.value = !1, r && (clearTimeout(r), r = null);
|
|
46
55
|
};
|
|
47
|
-
return (
|
|
48
|
-
class:
|
|
56
|
+
return (m, o) => (t(), i("div", {
|
|
57
|
+
class: l(["flex w-full min-w-0 gap-3 group", e.isSender ? "flex-row-reverse" : "flex-row"])
|
|
49
58
|
}, [
|
|
50
|
-
e.showAvatar ? (t(),
|
|
51
|
-
|
|
59
|
+
e.showAvatar ? (t(), i("div", z, [
|
|
60
|
+
f(D, {
|
|
52
61
|
src: e.message.avatar,
|
|
53
62
|
alt: e.message.senderName,
|
|
54
63
|
size: "sm"
|
|
55
64
|
}, null, 8, ["src", "alt"])
|
|
56
|
-
])) :
|
|
57
|
-
|
|
58
|
-
class:
|
|
65
|
+
])) : a("", !0),
|
|
66
|
+
d("div", {
|
|
67
|
+
class: l(["flex flex-col min-w-0 overflow-hidden max-w-[85%]", e.isSender ? "items-end" : "items-start"])
|
|
59
68
|
}, [
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
class: o(["relative flex items-center group/bubble", e.isSender ? "flex-row-reverse" : "flex-row"])
|
|
69
|
+
d("div", {
|
|
70
|
+
class: l(["relative flex items-center min-w-0 max-w-full group/bubble", e.isSender ? "flex-row-reverse" : "flex-row"])
|
|
63
71
|
}, [
|
|
64
|
-
|
|
65
|
-
class:
|
|
72
|
+
d("div", {
|
|
73
|
+
class: l(["px-3.5 py-2.5 rounded-2xl break-words relative min-w-[60px] max-w-full min-w-0 overflow-hidden", [
|
|
66
74
|
e.isSender ? "bg-primary text-primary-foreground rounded-br-sm" : "bg-muted text-foreground rounded-bl-sm"
|
|
67
75
|
]])
|
|
68
76
|
}, [
|
|
69
|
-
e.message.
|
|
70
|
-
e.message.
|
|
71
|
-
|
|
72
|
-
|
|
77
|
+
e.showUserInfo && e.message.senderName && !e.isSender ? (t(), i("div", A, u(e.message.senderName), 1)) : a("", !0),
|
|
78
|
+
e.message.text ? (t(), i("p", N, u(e.message.text), 1)) : a("", !0),
|
|
79
|
+
e.message.attachments && e.message.attachments.length > 0 ? (t(), i("div", {
|
|
80
|
+
key: 2,
|
|
81
|
+
class: l({ "mt-2": e.message.text || e.showUserInfo && !e.isSender })
|
|
73
82
|
}, [
|
|
74
|
-
|
|
83
|
+
f(B(I), {
|
|
75
84
|
attachments: e.message.attachments,
|
|
76
85
|
variant: "inline",
|
|
77
86
|
size: "sm",
|
|
@@ -80,40 +89,55 @@ const p = {
|
|
|
80
89
|
"click-to-preview": !0,
|
|
81
90
|
"show-download-in-list": !1
|
|
82
91
|
}, null, 8, ["attachments"])
|
|
83
|
-
], 2)) :
|
|
84
|
-
e.message.isEdited ? (t(),
|
|
85
|
-
key:
|
|
86
|
-
class:
|
|
87
|
-
},
|
|
92
|
+
], 2)) : a("", !0),
|
|
93
|
+
e.showTimestamp && (e.message.timestamp || e.message.isEdited) ? (t(), i("div", {
|
|
94
|
+
key: 3,
|
|
95
|
+
class: l(["mt-1 flex items-center gap-1", e.isSender ? "justify-end" : "justify-start"])
|
|
96
|
+
}, [
|
|
97
|
+
e.message.isEdited && e.showEditedStatus !== !1 ? (t(), i("span", {
|
|
98
|
+
key: 0,
|
|
99
|
+
class: l(["text-[10px] opacity-60", e.isSender ? "text-primary-foreground" : "text-muted-foreground"])
|
|
100
|
+
}, u(y.value), 3)) : a("", !0),
|
|
101
|
+
e.message.isEdited && e.showEditedStatus !== !1 && e.message.timestamp ? (t(), i("span", {
|
|
102
|
+
key: 1,
|
|
103
|
+
class: l(["text-[10px] opacity-40", e.isSender ? "text-primary-foreground" : "text-muted-foreground"])
|
|
104
|
+
}, " · ", 2)) : a("", !0),
|
|
105
|
+
e.message.timestamp ? (t(), i("span", {
|
|
106
|
+
key: 2,
|
|
107
|
+
class: l(["text-[10px] opacity-60 tabular-nums", e.isSender ? "text-primary-foreground" : "text-muted-foreground"])
|
|
108
|
+
}, u(h.value), 3)) : a("", !0)
|
|
109
|
+
], 2)) : a("", !0)
|
|
88
110
|
], 2),
|
|
89
|
-
|
|
90
|
-
(
|
|
111
|
+
d("div", {
|
|
112
|
+
class: l(["opacity-0 group-hover/bubble:opacity-100 focus-within:opacity-100 transition-opacity flex gap-0 pointer-events-none group-hover/bubble:pointer-events-auto focus-within:pointer-events-auto z-10", e.isSender ? "right-full pr-1" : "left-full pl-1"])
|
|
113
|
+
}, [
|
|
114
|
+
(e.isSender || e.allowEditAll) && e.message.text?.trim() ? (t(), E(g, {
|
|
91
115
|
key: 0,
|
|
92
116
|
variant: "ghost",
|
|
93
117
|
size: "xs",
|
|
94
118
|
icon: "lucide:pencil",
|
|
95
119
|
rounded: "full",
|
|
96
120
|
class: "text-muted-foreground hover:text-foreground h-7 w-7",
|
|
97
|
-
onClick:
|
|
121
|
+
onClick: o[0] || (o[0] = ($) => c("edit", e.message)),
|
|
98
122
|
"aria-label": "Edit message"
|
|
99
|
-
})) :
|
|
100
|
-
e.isSender || e.allowDeleteAll ? (t(),
|
|
101
|
-
|
|
123
|
+
})) : a("", !0),
|
|
124
|
+
e.isSender || e.allowDeleteAll ? (t(), i("div", j, [
|
|
125
|
+
f(g, {
|
|
102
126
|
variant: "ghost",
|
|
103
127
|
size: "xs",
|
|
104
|
-
icon:
|
|
128
|
+
icon: n.value ? "lucide:check" : "lucide:trash-2",
|
|
105
129
|
rounded: "full",
|
|
106
130
|
class: "h-7 w-7 transition-colors",
|
|
107
|
-
onClick:
|
|
108
|
-
"aria-label":
|
|
131
|
+
onClick: b,
|
|
132
|
+
"aria-label": n.value ? "Confirm delete" : "Delete message"
|
|
109
133
|
}, null, 8, ["icon", "aria-label"]),
|
|
110
|
-
|
|
134
|
+
n.value ? (t(), i("button", {
|
|
111
135
|
key: 0,
|
|
112
136
|
class: "absolute -top-1.5 -right-1.5 w-3.5 h-3.5 rounded-full bg-muted border border-border flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors",
|
|
113
|
-
onClick:
|
|
137
|
+
onClick: C(k, ["stop"]),
|
|
114
138
|
"aria-label": "Cancel delete"
|
|
115
|
-
}, [...
|
|
116
|
-
|
|
139
|
+
}, [...o[1] || (o[1] = [
|
|
140
|
+
d("svg", {
|
|
117
141
|
xmlns: "http://www.w3.org/2000/svg",
|
|
118
142
|
viewBox: "0 0 24 24",
|
|
119
143
|
fill: "none",
|
|
@@ -123,28 +147,27 @@ const p = {
|
|
|
123
147
|
"stroke-linejoin": "round",
|
|
124
148
|
class: "w-2 h-2"
|
|
125
149
|
}, [
|
|
126
|
-
|
|
150
|
+
d("line", {
|
|
127
151
|
x1: "18",
|
|
128
152
|
y1: "6",
|
|
129
153
|
x2: "6",
|
|
130
154
|
y2: "18"
|
|
131
155
|
}),
|
|
132
|
-
|
|
156
|
+
d("line", {
|
|
133
157
|
x1: "6",
|
|
134
158
|
y1: "6",
|
|
135
159
|
x2: "18",
|
|
136
160
|
y2: "18"
|
|
137
161
|
})
|
|
138
162
|
], -1)
|
|
139
|
-
])])) :
|
|
140
|
-
])) :
|
|
141
|
-
])
|
|
142
|
-
], 2)
|
|
143
|
-
e.showTimestamp && e.message.timestamp ? (t(), s("div", $, c(x.value), 1)) : l("", !0)
|
|
163
|
+
])])) : a("", !0)
|
|
164
|
+
])) : a("", !0)
|
|
165
|
+
], 2)
|
|
166
|
+
], 2)
|
|
144
167
|
], 2)
|
|
145
168
|
], 2));
|
|
146
169
|
}
|
|
147
170
|
});
|
|
148
171
|
export {
|
|
149
|
-
|
|
172
|
+
P as default
|
|
150
173
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export interface ChatAttachment {
|
|
2
|
-
fileUrl
|
|
2
|
+
fileUrl?: string;
|
|
3
3
|
fileName?: string;
|
|
4
4
|
fileType?: string;
|
|
5
5
|
fileSize?: number;
|
|
@@ -22,10 +22,23 @@ type __VLS_Props = {
|
|
|
22
22
|
showAvatar?: boolean;
|
|
23
23
|
showUserInfo?: boolean;
|
|
24
24
|
showTimestamp?: boolean;
|
|
25
|
+
showEditedStatus?: boolean;
|
|
26
|
+
editedText?: string;
|
|
27
|
+
editedTextI18n?: string;
|
|
25
28
|
placeholder?: string;
|
|
29
|
+
placeholderI18n?: string;
|
|
30
|
+
loadingMoreText?: string;
|
|
31
|
+
loadingMoreTextI18n?: string;
|
|
32
|
+
emptyText?: string;
|
|
33
|
+
emptyTextI18n?: string;
|
|
34
|
+
editingText?: string;
|
|
35
|
+
editingTextI18n?: string;
|
|
36
|
+
cancelEditText?: string;
|
|
37
|
+
cancelEditTextI18n?: string;
|
|
26
38
|
isLoadingMore?: boolean;
|
|
27
39
|
allowDeleteAll?: boolean;
|
|
28
40
|
allowEditAll?: boolean;
|
|
41
|
+
allowFileUpload?: boolean;
|
|
29
42
|
/**
|
|
30
43
|
* When true (default), the delete button requires a second click to confirm deletion.
|
|
31
44
|
* Set to false to delete immediately on first click.
|
|
@@ -45,7 +58,6 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
45
58
|
onRefetch?: () => any;
|
|
46
59
|
onEdit?: (message: ChatMessage) => any;
|
|
47
60
|
}>, {
|
|
48
|
-
placeholder: string;
|
|
49
61
|
isLoadingMore: boolean;
|
|
50
62
|
confirmDelete: boolean;
|
|
51
63
|
showAvatar: boolean;
|
|
@@ -53,6 +65,8 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
53
65
|
showTimestamp: boolean;
|
|
54
66
|
allowDeleteAll: boolean;
|
|
55
67
|
allowEditAll: boolean;
|
|
68
|
+
showEditedStatus: boolean;
|
|
69
|
+
allowFileUpload: boolean;
|
|
56
70
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
57
71
|
messageListRef: HTMLDivElement;
|
|
58
72
|
observerTargetRef: HTMLDivElement;
|