@mobilon-dev/chotto 0.0.1 → 0.0.2
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 +6 -3
- package/dist/style.css +1 -1
- package/dist/vuessages.es.js +317 -80
- package/dist/vuessages.umd.js +1 -1
- package/package.json +13 -14
package/README.md
CHANGED
@@ -5,7 +5,7 @@ Vue3 Chat UI - собери свой интерфейс чата
|
|
5
5
|
|
6
6
|
## документация
|
7
7
|
|
8
|
-
-
|
8
|
+
- [storybook](https://mobilon-dev.github.io/chotto/)
|
9
9
|
|
10
10
|
## схема
|
11
11
|
|
@@ -13,14 +13,13 @@ Vue3 Chat UI - собери свой интерфейс чата
|
|
13
13
|
|
14
14
|
## пример
|
15
15
|
|
16
|
-
-
|
16
|
+
[пример](https://github.com/antirek/chotto-sample)
|
17
17
|
|
18
18
|
## скриншот
|
19
19
|
|
20
20
|

|
21
21
|
|
22
22
|
|
23
|
-
|
24
23
|
# разработка
|
25
24
|
|
26
25
|
|
@@ -32,6 +31,10 @@ Vue3 Chat UI - собери свой интерфейс чата
|
|
32
31
|
|
33
32
|
> npm run storybook
|
34
33
|
|
34
|
+
## run dev
|
35
|
+
|
36
|
+
> npm run dev
|
37
|
+
|
35
38
|
## build
|
36
39
|
|
37
40
|
> npm run build
|
package/dist/style.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
.chat[data-v-77b8ac34]{cursor:pointer;padding:8px;border-bottom:1px solid #ccc}.file-message a[data-v-
|
1
|
+
.chat[data-v-77b8ac34]{cursor:pointer;padding:8px;border-bottom:1px solid #ccc}.chat-item[data-v-b194d366]{display:flex;align-items:center;padding:15px;border-bottom:1px solid #eee;cursor:pointer}.chat-item-selected[data-v-b194d366]{display:flex;align-items:center;padding:15px;background:#bbb;border-bottom:1px solid #a09d9d;cursor:pointer}.avatar[data-v-b194d366]{width:50px;height:50px;border-radius:50%;background-size:cover;margin-right:15px}.chat-info[data-v-b194d366]{flex-grow:1;margin-right:15px}.name[data-v-b194d366]{font-weight:700;font-size:16px;margin-bottom:5px}.last-message[data-v-b194d366]{font-size:14px;color:#888}.chat-details[data-v-b194d366]{display:flex;align-items:center}.unread[data-v-b194d366]{background-color:red;color:#fff;padding:5px 8px;border-radius:50%;font-size:12px;margin-right:10px}.time[data-v-b194d366]{font-size:12px;color:#888}.file-message a[data-v-18efd407]{color:#00f;text-decoration:underline}.image-message[data-v-1f459534]{max-width:300px;max-height:240px;height:auto;border-radius:5px}.image-message-left[data-v-1f459534]{background-color:#c3e8ba;max-height:50px;min-width:300px;border-radius:10px;padding:10px;margin-bottom:10px;max-width:70%;text-align:left;position:relative;justify-content:flex-start;flex-basis:200px;flex-grow:2;align-self:flex-start}.image-message-right[data-v-1f459534]{background-color:#f5f5f5;max-height:50px;min-width:300px;border-radius:10px;padding:10px;margin-bottom:10px;max-width:70%;position:relative;justify-content:flex-end;flex-basis:500px;flex-grow:2;align-self:flex-end}.message-time[data-v-1f459534]{font-size:12px;color:#777;margin-left:10px}.text-message-left[data-v-c807c835]{background-color:#c3e8ba;max-height:50px;min-width:300px;border-radius:10px;padding:10px;margin-bottom:10px;max-width:70%;text-align:left;position:relative;justify-content:flex-start;flex-basis:200px;flex-grow:2;align-self:flex-start}.text-message-right[data-v-c807c835]{background-color:#f5f5f5;max-height:50px;min-width:300px;border-radius:10px;padding:10px;margin-bottom:10px;max-width:70%;position:relative;justify-content:flex-end;flex-basis:500px;flex-grow:2;align-self:flex-end}.message-time[data-v-c807c835]{font-size:12px;color:#777;margin-left:10px}.chat-info[data-v-7ca4835c]{padding:16px}.chat-input[data-v-07719b64]{padding:10px}.chat-input input[data-v-07719b64]{flex:1;width:500px;padding:10px;border:1px solid #ece5dd;border-radius:20px}.chat-input button[data-v-07719b64]{padding:10px;margin-left:10px;border:none;background-color:#25d366;color:#fff;border-radius:20px;cursor:pointer}.chat-input button[data-v-07719b64]:hover{background-color:#128c7e}.chat-list[data-v-fafd9097],.chat-list[data-v-1fd0e46c]{max-height:400px;overflow-y:auto;grid-column:span 1}.message-container{display:flex;align-items:center;margin-bottom:10px;padding:8px 12px;border-radius:10px}.message-container.sent{background-color:#e0f2f7;color:#333;margin-left:auto}.message-container.received{background-color:#f5f5f5;color:#000;margin-right:auto}.message-content{margin-right:10px}.chat-image{max-width:200px;max-height:150px;cursor:pointer}.preview-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fff;padding:20px;border-radius:10px;z-index:100}.preview-image{max-width:80%;max-height:80vh}.message-info{display:flex;align-items:center;margin-left:10px}.message-status{font-size:12px}.status{margin-left:5px}.status.read{color:#34a853}.status.delivered{color:#333}.status.sending{color:#777}.message-time{font-size:12px;color:#777;margin-left:10px}.dateMessage[data-v-2d53fb22]{display:flex;align-items:center;justify-content:center;margin:0 auto;padding:15px 0;width:150px;height:40px}.dateMessage__text[data-v-2d53fb22]{width:100%;padding:10px 15px;border-radius:15px;background-color:#fff;-webkit-box-shadow:0 2px 5px 0 rgba(193,193,193,.26),0 2px 10px 0 rgba(193,193,193,.16);-moz-box-shadow:0 2px 5px 0 rgba(193,193,193,.26),0 2px 10px 0 rgba(193,193,193,.16);box-shadow:0 2px 5px #c1c1c142,0 2px 10px #c1c1c129;font-size:16px;font-weight:600;color:#000000b3;text-align:center}.audio-message-left[data-v-127acb40]{background-color:#c3e8ba;max-height:50px;min-width:300px;border-radius:10px;padding:10px;margin-bottom:10px;max-width:70%;text-align:left;position:relative;justify-content:flex-start;flex-basis:200px;flex-grow:2;align-self:flex-start}.audio-message-right[data-v-127acb40]{background-color:#f5f5f5;max-height:50px;min-width:300px;border-radius:10px;padding:10px;margin-bottom:10px;max-width:70%;position:relative;justify-content:flex-end;flex-basis:500px;flex-grow:2;align-self:flex-end}.message-time[data-v-127acb40]{font-size:12px;color:#777;margin-left:10px}.message-feed[data-v-37208651]{flex:1;max-height:600px;height:500px;max-width:800px;overflow:auto;display:flex;flex-direction:column;gap:5px}.profile[data-v-e1bf37ef]{padding:16px}
|
package/dist/vuessages.es.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
import { openBlock as
|
2
|
-
const
|
1
|
+
import { openBlock as a, createElementBlock as n, createElementVNode as r, toDisplayString as u, normalizeClass as p, createCommentVNode as h, ref as v, withDirectives as x, withKeys as k, vModelText as w, unref as I, Fragment as $, renderList as C, createBlock as y, onUpdated as b, watch as M, resolveDynamicComponent as U, nextTick as S } from "vue";
|
2
|
+
const _ = (e, s) => {
|
3
3
|
const t = e.__vccOpts || e;
|
4
|
-
for (const [
|
5
|
-
t[
|
4
|
+
for (const [c, o] of s)
|
5
|
+
t[c] = o;
|
6
6
|
return t;
|
7
7
|
}, q = {
|
8
8
|
__name: "Chat",
|
@@ -14,17 +14,60 @@ const l = (e, s) => {
|
|
14
14
|
},
|
15
15
|
emits: ["select"],
|
16
16
|
setup(e, { emit: s }) {
|
17
|
-
const t = e,
|
18
|
-
|
17
|
+
const t = e, c = s, o = () => {
|
18
|
+
c("select", t.chat);
|
19
19
|
};
|
20
|
-
return (
|
20
|
+
return (i, l) => (a(), n("div", {
|
21
21
|
class: "chat",
|
22
|
-
onClick:
|
22
|
+
onClick: o
|
23
23
|
}, [
|
24
|
-
|
24
|
+
r("p", null, u(e.chat.name) + " " + u(e.chat.countUnread), 1)
|
25
25
|
]));
|
26
26
|
}
|
27
|
-
},
|
27
|
+
}, j = /* @__PURE__ */ _(q, [["__scopeId", "data-v-77b8ac34"]]), A = { class: "avatar" }, F = ["src"], O = { class: "chat-info" }, P = { class: "name" }, T = {
|
28
|
+
key: 0,
|
29
|
+
class: "last-message"
|
30
|
+
}, B = { class: "chat-details" }, D = {
|
31
|
+
key: 0,
|
32
|
+
class: "unread"
|
33
|
+
}, V = {
|
34
|
+
key: 1,
|
35
|
+
class: "time"
|
36
|
+
}, E = {
|
37
|
+
__name: "Chat2",
|
38
|
+
props: {
|
39
|
+
chat: {
|
40
|
+
type: Object,
|
41
|
+
required: !0
|
42
|
+
}
|
43
|
+
},
|
44
|
+
emits: ["select"],
|
45
|
+
setup(e, { emit: s }) {
|
46
|
+
const t = e, c = s, o = () => {
|
47
|
+
c("select", t.chat);
|
48
|
+
}, i = () => t.chat.isSelected ? "chat-item-selected" : "chat-item", l = () => t.chat.avatar ? t.chat.avatar : "data:image/svg+xml;base64," + window.btoa('<svg fill="#000000" width="800px" height="800px" viewBox="0 -2.93 32.537 32.537" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"/><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/><g id="SVGRepo_iconCarrier"> <g transform="translate(-481.391 -197.473)"> <path d="M512.928,224.152a.991.991,0,0,1-.676-.264,21.817,21.817,0,0,0-29.2-.349,1,1,0,1,1-1.322-1.5,23.814,23.814,0,0,1,31.875.377,1,1,0,0,1-.677,1.736Z"/> <path d="M498.191,199.473a7.949,7.949,0,1,1-7.949,7.95,7.959,7.959,0,0,1,7.949-7.95m0-2a9.949,9.949,0,1,0,9.95,9.95,9.949,9.949,0,0,0-9.95-9.95Z"/> </g> </g></svg>');
|
49
|
+
return (m, d) => (a(), n("div", {
|
50
|
+
class: p(i()),
|
51
|
+
onClick: o
|
52
|
+
}, [
|
53
|
+
r("div", A, [
|
54
|
+
r("img", {
|
55
|
+
src: l(),
|
56
|
+
width: "50",
|
57
|
+
height: "50"
|
58
|
+
}, null, 8, F)
|
59
|
+
]),
|
60
|
+
r("div", O, [
|
61
|
+
r("div", P, u(e.chat.name), 1),
|
62
|
+
e.chat.lastMessage ? (a(), n("div", T, u(e.chat.lastMessage), 1)) : h("", !0)
|
63
|
+
]),
|
64
|
+
r("div", B, [
|
65
|
+
e.chat.countUnread > 0 ? (a(), n("div", D, u(e.chat.countUnread), 1)) : h("", !0),
|
66
|
+
e.chat["lastActivity.time"] ? (a(), n("div", V, u(e.chat["lastActivity.time"]), 1)) : h("", !0)
|
67
|
+
])
|
68
|
+
], 2));
|
69
|
+
}
|
70
|
+
}, L = /* @__PURE__ */ _(E, [["__scopeId", "data-v-b194d366"]]), R = { class: "file-message" }, G = ["href"], K = {
|
28
71
|
__name: "FileMessage",
|
29
72
|
props: {
|
30
73
|
message: {
|
@@ -33,14 +76,14 @@ const l = (e, s) => {
|
|
33
76
|
}
|
34
77
|
},
|
35
78
|
setup(e) {
|
36
|
-
return (s, t) => (
|
37
|
-
|
79
|
+
return (s, t) => (a(), n("div", R, [
|
80
|
+
r("a", {
|
38
81
|
href: e.message.url,
|
39
82
|
download: ""
|
40
|
-
},
|
83
|
+
}, u(e.message.filename), 9, G)
|
41
84
|
]));
|
42
85
|
}
|
43
|
-
},
|
86
|
+
}, N = /* @__PURE__ */ _(K, [["__scopeId", "data-v-18efd407"]]), Z = ["messageId"], z = ["src", "alt"], H = { class: "message-time" }, J = {
|
44
87
|
__name: "ImageMessage",
|
45
88
|
props: {
|
46
89
|
message: {
|
@@ -49,14 +92,23 @@ const l = (e, s) => {
|
|
49
92
|
}
|
50
93
|
},
|
51
94
|
setup(e) {
|
52
|
-
|
53
|
-
|
95
|
+
const s = e;
|
96
|
+
function t() {
|
97
|
+
return s.message.position === "left" ? "image-message-left" : "image-message-right";
|
98
|
+
}
|
99
|
+
return (c, o) => (a(), n("div", {
|
100
|
+
class: p(t()),
|
101
|
+
messageId: e.message.messageId
|
102
|
+
}, [
|
103
|
+
r("img", {
|
54
104
|
src: e.message.url,
|
55
|
-
alt: e.message.alt
|
56
|
-
|
57
|
-
|
105
|
+
alt: e.message.alt,
|
106
|
+
class: "image-message"
|
107
|
+
}, null, 8, z),
|
108
|
+
r("div", H, u(e.message.time), 1)
|
109
|
+
], 10, Z));
|
58
110
|
}
|
59
|
-
},
|
111
|
+
}, Be = /* @__PURE__ */ _(J, [["__scopeId", "data-v-1f459534"]]), Q = ["messageId"], W = { class: "message-time" }, X = {
|
60
112
|
__name: "TextMessage",
|
61
113
|
props: {
|
62
114
|
message: {
|
@@ -66,15 +118,17 @@ const l = (e, s) => {
|
|
66
118
|
},
|
67
119
|
setup(e) {
|
68
120
|
function s(t) {
|
69
|
-
return t.
|
121
|
+
return t.position === "left" ? "text-message-left" : "text-message-right";
|
70
122
|
}
|
71
|
-
return (t,
|
72
|
-
class:
|
123
|
+
return (t, c) => (a(), n("div", {
|
124
|
+
class: p(s(e.message)),
|
125
|
+
messageId: e.message.messageId
|
73
126
|
}, [
|
74
|
-
|
75
|
-
|
127
|
+
r("p", null, u(e.message.text), 1),
|
128
|
+
r("div", W, u(e.message.time), 1)
|
129
|
+
], 10, Q));
|
76
130
|
}
|
77
|
-
},
|
131
|
+
}, Y = /* @__PURE__ */ _(X, [["__scopeId", "data-v-c807c835"]]), ee = { class: "chat-info" }, te = { key: 0 }, se = {
|
78
132
|
__name: "ChatInfo",
|
79
133
|
props: {
|
80
134
|
chat: {
|
@@ -83,33 +137,33 @@ const l = (e, s) => {
|
|
83
137
|
}
|
84
138
|
},
|
85
139
|
setup(e) {
|
86
|
-
return (s, t) => (
|
87
|
-
e.chat ? (
|
88
|
-
|
89
|
-
])) :
|
140
|
+
return (s, t) => (a(), n("div", ee, [
|
141
|
+
e.chat ? (a(), n("div", te, [
|
142
|
+
r("h2", null, u(e.chat.name), 1)
|
143
|
+
])) : h("", !0)
|
90
144
|
]));
|
91
145
|
}
|
92
|
-
},
|
146
|
+
}, De = /* @__PURE__ */ _(se, [["__scopeId", "data-v-7ca4835c"]]), ae = { class: "chat-input" }, ne = {
|
93
147
|
__name: "ChatInput",
|
94
148
|
emits: ["send"],
|
95
149
|
setup(e, { emit: s }) {
|
96
|
-
const t = s,
|
97
|
-
|
150
|
+
const t = s, c = v(""), o = v(null), i = () => {
|
151
|
+
c.value.trim() && (t("send", c.value), c.value = "", I(o).focus());
|
98
152
|
};
|
99
|
-
return (
|
100
|
-
|
101
|
-
"onUpdate:modelValue":
|
153
|
+
return (l, m) => (a(), n("div", ae, [
|
154
|
+
x(r("input", {
|
155
|
+
"onUpdate:modelValue": m[0] || (m[0] = (d) => c.value = d),
|
102
156
|
ref_key: "refInput",
|
103
|
-
ref:
|
104
|
-
onKeydown:
|
157
|
+
ref: o,
|
158
|
+
onKeydown: k(i, ["enter"]),
|
105
159
|
placeholder: "Type a message..."
|
106
160
|
}, null, 544), [
|
107
|
-
[
|
161
|
+
[w, c.value]
|
108
162
|
]),
|
109
|
-
|
163
|
+
r("button", { onClick: i }, "Send")
|
110
164
|
]));
|
111
165
|
}
|
112
|
-
},
|
166
|
+
}, Ve = /* @__PURE__ */ _(ne, [["__scopeId", "data-v-07719b64"]]), ce = { class: "chat-list" }, re = {
|
113
167
|
__name: "ChatList",
|
114
168
|
props: {
|
115
169
|
chats: {
|
@@ -119,49 +173,230 @@ const l = (e, s) => {
|
|
119
173
|
},
|
120
174
|
emits: ["select"],
|
121
175
|
setup(e, { emit: s }) {
|
122
|
-
const t = s,
|
123
|
-
|
124
|
-
}
|
125
|
-
|
126
|
-
|
176
|
+
const t = e, c = s, o = (l) => {
|
177
|
+
c("select", l);
|
178
|
+
}, i = () => t.chats.sort((l, m) => {
|
179
|
+
if (l.countUnread > m.countUnread) return -1;
|
180
|
+
if (l.countUnread < m.countUnread) return 1;
|
181
|
+
if (l.countUnread == m.countUnread) return 0;
|
182
|
+
});
|
183
|
+
return (l, m) => (a(), n("div", ce, [
|
184
|
+
(a(!0), n($, null, C(i(), (d) => (a(), y(j, {
|
127
185
|
key: d.chatId,
|
128
186
|
chat: d,
|
129
|
-
onSelect:
|
187
|
+
onSelect: o
|
130
188
|
}, null, 8, ["chat"]))), 128))
|
131
189
|
]));
|
132
190
|
}
|
133
|
-
},
|
134
|
-
__name: "
|
191
|
+
}, Ee = /* @__PURE__ */ _(re, [["__scopeId", "data-v-fafd9097"]]), oe = {
|
192
|
+
__name: "ChatFilter",
|
193
|
+
emits: ["update"],
|
194
|
+
setup(e, { emit: s }) {
|
195
|
+
const t = v(""), c = s, o = () => {
|
196
|
+
const i = I(t);
|
197
|
+
c("update", i.value);
|
198
|
+
};
|
199
|
+
return (i, l) => (a(), n("div", null, [
|
200
|
+
r("input", {
|
201
|
+
type: "text",
|
202
|
+
ref_key: "refInput",
|
203
|
+
ref: t,
|
204
|
+
onInput: o,
|
205
|
+
placeholder: "Поиск..."
|
206
|
+
}, null, 544)
|
207
|
+
]));
|
208
|
+
}
|
209
|
+
}, ie = { class: "chat-list" }, de = {
|
210
|
+
__name: "ChatList2",
|
211
|
+
props: {
|
212
|
+
chats: {
|
213
|
+
type: Array,
|
214
|
+
required: !0
|
215
|
+
},
|
216
|
+
filterEnabled: {
|
217
|
+
type: Boolean,
|
218
|
+
required: !0
|
219
|
+
}
|
220
|
+
},
|
221
|
+
emits: ["select"],
|
222
|
+
setup(e, { emit: s }) {
|
223
|
+
const t = v(""), c = e, o = s, i = (d) => {
|
224
|
+
o("select", d), c.chats.forEach((f) => f.isSelected = !1);
|
225
|
+
const g = c.chats.find((f) => f.chatId === d.chatId);
|
226
|
+
g.isSelected = !0;
|
227
|
+
}, l = () => c.chats.sort((d, g) => {
|
228
|
+
if (d.countUnread > g.countUnread) return -1;
|
229
|
+
if (d.countUnread < g.countUnread) return 1;
|
230
|
+
if (d.countUnread == g.countUnread) return 0;
|
231
|
+
}).filter((d) => d.name.includes(t.value)), m = (d) => {
|
232
|
+
t.value = d;
|
233
|
+
};
|
234
|
+
return (d, g) => (a(), n("div", null, [
|
235
|
+
e.filterEnabled ? (a(), y(oe, {
|
236
|
+
key: 0,
|
237
|
+
onUpdate: m
|
238
|
+
})) : h("", !0),
|
239
|
+
r("div", ie, [
|
240
|
+
(a(!0), n($, null, C(l(), (f) => (a(), y(L, {
|
241
|
+
key: f.chatId,
|
242
|
+
chat: f,
|
243
|
+
onSelect: i
|
244
|
+
}, null, 8, ["chat"]))), 128))
|
245
|
+
])
|
246
|
+
]));
|
247
|
+
}
|
248
|
+
}, Le = /* @__PURE__ */ _(de, [["__scopeId", "data-v-1fd0e46c"]]), le = {
|
249
|
+
props: {
|
250
|
+
message: {
|
251
|
+
type: Object,
|
252
|
+
required: !0
|
253
|
+
}
|
254
|
+
/*
|
255
|
+
imageSrc: {
|
256
|
+
type: String,
|
257
|
+
required: true,
|
258
|
+
},
|
259
|
+
isSent: {
|
260
|
+
type: Boolean,
|
261
|
+
default: false,
|
262
|
+
},
|
263
|
+
isDelivered: {
|
264
|
+
type: Boolean,
|
265
|
+
default: false,
|
266
|
+
},
|
267
|
+
isRead: {
|
268
|
+
type: Boolean,
|
269
|
+
default: false,
|
270
|
+
},
|
271
|
+
timestamp: {
|
272
|
+
type: Number,
|
273
|
+
required: true,
|
274
|
+
},
|
275
|
+
*/
|
276
|
+
},
|
277
|
+
setup(e) {
|
278
|
+
return {
|
279
|
+
showPreview: v(!1)
|
280
|
+
};
|
281
|
+
}
|
282
|
+
}, ue = {
|
283
|
+
key: 0,
|
284
|
+
class: "message-content"
|
285
|
+
}, me = ["src"], _e = {
|
286
|
+
key: 1,
|
287
|
+
class: "preview-container"
|
288
|
+
}, he = ["src"], ge = { class: "message-info" }, fe = {
|
289
|
+
key: 0,
|
290
|
+
class: "message-status"
|
291
|
+
}, ve = {
|
292
|
+
key: 0,
|
293
|
+
class: "status read"
|
294
|
+
}, pe = {
|
295
|
+
key: 1,
|
296
|
+
class: "status delivered"
|
297
|
+
}, ye = {
|
298
|
+
key: 2,
|
299
|
+
class: "status sending"
|
300
|
+
}, Ie = { class: "message-time" };
|
301
|
+
function $e(e, s, t, c, o, i) {
|
302
|
+
return a(), n("div", {
|
303
|
+
class: p(["message-container", { sent: t.message.isSent, received: !t.message.isSent }])
|
304
|
+
}, [
|
305
|
+
c.showPreview ? (a(), n("div", _e, [
|
306
|
+
r("img", {
|
307
|
+
src: t.message.url,
|
308
|
+
alt: "Изображение",
|
309
|
+
class: "preview-image"
|
310
|
+
}, null, 8, he),
|
311
|
+
s[2] || (s[2] = r("br", null, null, -1)),
|
312
|
+
r("button", {
|
313
|
+
onClick: s[1] || (s[1] = (l) => c.showPreview = !1)
|
314
|
+
}, "Закрыть")
|
315
|
+
])) : (a(), n("div", ue, [
|
316
|
+
r("img", {
|
317
|
+
src: t.message.url,
|
318
|
+
onClick: s[0] || (s[0] = (l) => c.showPreview = !0),
|
319
|
+
alt: "Изображение",
|
320
|
+
class: "chat-image"
|
321
|
+
}, null, 8, me)
|
322
|
+
])),
|
323
|
+
r("div", ge, [
|
324
|
+
t.message.isSent ? (a(), n("div", fe, [
|
325
|
+
t.message.isRead ? (a(), n("span", ve, "✓")) : t.message.isDelivered ? (a(), n("span", pe, "✓")) : (a(), n("span", ye, "..."))
|
326
|
+
])) : h("", !0),
|
327
|
+
r("div", Ie, u(t.message.time), 1)
|
328
|
+
])
|
329
|
+
], 2);
|
330
|
+
}
|
331
|
+
const Ce = /* @__PURE__ */ _(le, [["render", $e]]), xe = { class: "dateMessage" }, ke = { class: "dateMessage__text" }, we = {
|
332
|
+
__name: "DateMessage",
|
333
|
+
props: {
|
334
|
+
message: {
|
335
|
+
type: Object
|
336
|
+
}
|
337
|
+
},
|
338
|
+
setup(e) {
|
339
|
+
return (s, t) => (a(), n("div", xe, [
|
340
|
+
r("p", ke, u(e.message.text), 1)
|
341
|
+
]));
|
342
|
+
}
|
343
|
+
}, be = /* @__PURE__ */ _(we, [["__scopeId", "data-v-2d53fb22"]]), Me = ["messageId"], Ue = ["src"], Se = { class: "message-time" }, qe = {
|
344
|
+
__name: "AudioMessage",
|
345
|
+
props: {
|
346
|
+
message: {
|
347
|
+
type: Object,
|
348
|
+
required: !0
|
349
|
+
}
|
350
|
+
},
|
351
|
+
setup(e) {
|
352
|
+
function s(t) {
|
353
|
+
return t.position === "left" ? "audio-message-left" : "audio-message-right";
|
354
|
+
}
|
355
|
+
return (t, c) => (a(), n("div", {
|
356
|
+
class: p(s(e.message)),
|
357
|
+
messageId: e.message.messageId
|
358
|
+
}, [
|
359
|
+
r("audio", {
|
360
|
+
src: e.message.url,
|
361
|
+
controls: ""
|
362
|
+
}, null, 8, Ue),
|
363
|
+
r("div", Se, u(e.message.time), 1)
|
364
|
+
], 10, Me));
|
365
|
+
}
|
366
|
+
}, je = /* @__PURE__ */ _(qe, [["__scopeId", "data-v-127acb40"]]), Ae = {
|
367
|
+
__name: "Feed",
|
135
368
|
props: {
|
136
|
-
|
369
|
+
objects: {
|
137
370
|
type: Array,
|
138
371
|
required: !0
|
139
372
|
}
|
140
373
|
},
|
141
374
|
setup(e) {
|
142
|
-
const s =
|
143
|
-
"message.text":
|
144
|
-
"message.image":
|
145
|
-
"message.file":
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
375
|
+
const s = v(null), t = e, c = (i) => ({
|
376
|
+
"message.text": Y,
|
377
|
+
"message.image": Ce,
|
378
|
+
"message.file": N,
|
379
|
+
"message.audio": je,
|
380
|
+
"system.date": be
|
381
|
+
})[i];
|
382
|
+
function o() {
|
383
|
+
S(function() {
|
384
|
+
const i = I(s);
|
385
|
+
i.scrollTop = i.scrollHeight;
|
151
386
|
});
|
152
387
|
}
|
153
|
-
return
|
388
|
+
return b(() => o), M(() => t.objects, o), (i, l) => (a(), n("div", {
|
154
389
|
class: "message-feed",
|
155
390
|
ref_key: "refFeed",
|
156
391
|
ref: s
|
157
392
|
}, [
|
158
|
-
(
|
159
|
-
key:
|
160
|
-
message:
|
393
|
+
(a(!0), n($, null, C(e.objects, (m) => (a(), y(U(c(m.type)), {
|
394
|
+
key: m.messageId,
|
395
|
+
message: m
|
161
396
|
}, null, 8, ["message"]))), 128))
|
162
397
|
], 512));
|
163
398
|
}
|
164
|
-
},
|
399
|
+
}, Re = /* @__PURE__ */ _(Ae, [["__scopeId", "data-v-37208651"]]), Fe = { class: "profile" }, Oe = { key: 0 }, Pe = {
|
165
400
|
__name: "Profile",
|
166
401
|
props: {
|
167
402
|
user: {
|
@@ -170,23 +405,25 @@ const l = (e, s) => {
|
|
170
405
|
}
|
171
406
|
},
|
172
407
|
setup(e) {
|
173
|
-
return (s, t) => (
|
174
|
-
e.user ? (
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
])) :
|
408
|
+
return (s, t) => (a(), n("div", Fe, [
|
409
|
+
e.user ? (a(), n("div", Oe, [
|
410
|
+
r("h2", null, u(e.user.name), 1),
|
411
|
+
r("p", null, u(e.user.email), 1),
|
412
|
+
r("p", null, u(e.user.phone), 1)
|
413
|
+
])) : h("", !0)
|
179
414
|
]));
|
180
415
|
}
|
181
|
-
},
|
416
|
+
}, Ge = /* @__PURE__ */ _(Pe, [["__scopeId", "data-v-e1bf37ef"]]);
|
182
417
|
export {
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
418
|
+
j as Chat,
|
419
|
+
L as Chat2,
|
420
|
+
De as ChatInfo,
|
421
|
+
Ve as ChatInput,
|
422
|
+
Ee as ChatList,
|
423
|
+
Le as ChatList2,
|
424
|
+
Re as Feed,
|
425
|
+
N as FileMessage,
|
426
|
+
Be as ImageMessage,
|
427
|
+
Ge as Profile,
|
428
|
+
Y as TextMessage
|
192
429
|
};
|
package/dist/vuessages.umd.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
(function(c,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(c=typeof globalThis<"u"?globalThis:c||self,e(c.vuessages={},c.Vue))})(this,function(c,e){"use strict";const l=(t,n)=>{const s=t.__vccOpts||t;for(const[a,o]of n)s[a]=o;return s},d=l({__name:"Chat",props:{chat:{type:Object,required:!0}},emits:["select"],setup(t,{emit:n}){const s=t,a=n,o=()=>{a("select",s.chat)};return(r,i)=>(e.openBlock(),e.createElementBlock("div",{class:"chat",onClick:o},[e.createElementVNode("p",null,e.toDisplayString(t.chat.name)+" "+e.toDisplayString(t.chat.countUnread),1)]))}},[["__scopeId","data-v-77b8ac34"]]),h={class:"file-message"},g=["href"],_=l({__name:"FileMessage",props:{message:{type:Object,required:!0}},setup(t){return(n,s)=>(e.openBlock(),e.createElementBlock("div",h,[e.createElementVNode("a",{href:t.message.url,download:""},e.toDisplayString(t.message.filename),9,g)]))}},[["__scopeId","data-v-9fef0716"]]),u={class:"image-message"},k=["src","alt"],p=l({__name:"ImageMessage",props:{message:{type:Object,required:!0}},setup(t){return(n,s)=>(e.openBlock(),e.createElementBlock("div",u,[e.createElementVNode("img",{src:t.message.url,alt:t.message.alt},null,8,k)]))}},[["__scopeId","data-v-1c1327d6"]]),f=l({__name:"TextMessage",props:{message:{type:Object,required:!0}},setup(t){function n(s){return s.direction==="incoming"?"text-message-left":"text-message-right"}return(s,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n(t.message))},[e.createElementVNode("p",null,e.toDisplayString(t.message.text),1)],2))}},[["__scopeId","data-v-4deff5d3"]]),y={class:"chat-info"},B={key:0},$=l({__name:"ChatInfo",props:{chat:{type:Object,required:!0}},setup(t){return(n,s)=>(e.openBlock(),e.createElementBlock("div",y,[t.chat?(e.openBlock(),e.createElementBlock("div",B,[e.createElementVNode("h2",null,e.toDisplayString(t.chat.name),1)])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-7ca4835c"]]),E={class:"chat-input"},C=l({__name:"ChatInput",emits:["send"],setup(t,{emit:n}){const s=n,a=e.ref(""),o=e.ref(null),r=()=>{a.value.trim()&&(s("send",a.value),a.value="",e.unref(o).focus())};return(i,m)=>(e.openBlock(),e.createElementBlock("div",E,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[0]||(m[0]=S=>a.value=S),ref_key:"refInput",ref:o,onKeydown:e.withKeys(r,["enter"]),placeholder:"Type a message..."},null,544),[[e.vModelText,a.value]]),e.createElementVNode("button",{onClick:r},"Send")]))}},[["__scopeId","data-v-07719b64"]]),I={class:"chat-list"},M=l({__name:"ChatList",props:{chats:{type:Array,required:!0}},emits:["select"],setup(t,{emit:n}){const s=n,a=o=>{s("select",o)};return(o,r)=>(e.openBlock(),e.createElementBlock("div",I,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.chats,i=>(e.openBlock(),e.createBlock(d,{key:i.chatId,chat:i,onSelect:a},null,8,["chat"]))),128))]))}},[["__scopeId","data-v-dda91c95"]]),V=l({__name:"MessageFeed",props:{messages:{type:Array,required:!0}},setup(t){const n=e.ref(null),s=t,a=r=>({"message.text":f,"message.image":p,"message.file":_})[r];function o(){e.nextTick(function(){const r=e.unref(n);r.scrollTop=r.scrollHeight})}return e.watch(()=>s.messages,o),(r,i)=>(e.openBlock(),e.createElementBlock("div",{class:"message-feed",ref_key:"refFeed",ref:n},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.messages,m=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a(m.type)),{key:m.id,message:m},null,8,["message"]))),128))],512))}},[["__scopeId","data-v-b2d2ed34"]]),b={class:"profile"},x={key:0},N=l({__name:"Profile",props:{user:{type:Object,required:!0}},setup(t){return(n,s)=>(e.openBlock(),e.createElementBlock("div",b,[t.user?(e.openBlock(),e.createElementBlock("div",x,[e.createElementVNode("h2",null,e.toDisplayString(t.user.name),1),e.createElementVNode("p",null,e.toDisplayString(t.user.email),1),e.createElementVNode("p",null,e.toDisplayString(t.user.phone),1)])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-e1bf37ef"]]);c.Chat=d,c.ChatInfo=$,c.ChatInput=C,c.ChatList=M,c.FileMessage=_,c.ImageMessage=p,c.MessageFeed=V,c.Profile=N,c.TextMessage=f,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
|
1
|
+
(function(l,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(l=typeof globalThis<"u"?globalThis:l||self,e(l.vuessages={},l.Vue))})(this,function(l,e){"use strict";const m=(t,a)=>{const s=t.__vccOpts||t;for(const[n,c]of a)s[n]=c;return s},h=m({__name:"Chat",props:{chat:{type:Object,required:!0}},emits:["select"],setup(t,{emit:a}){const s=t,n=a,c=()=>{n("select",s.chat)};return(o,i)=>(e.openBlock(),e.createElementBlock("div",{class:"chat",onClick:c},[e.createElementVNode("p",null,e.toDisplayString(t.chat.name)+" "+e.toDisplayString(t.chat.countUnread),1)]))}},[["__scopeId","data-v-77b8ac34"]]),u={class:"avatar"},B=["src"],y={class:"chat-info"},E={class:"name"},C={key:0,class:"last-message"},$={class:"chat-details"},I={key:0,class:"unread"},V={key:1,class:"time"},f=m({__name:"Chat2",props:{chat:{type:Object,required:!0}},emits:["select"],setup(t,{emit:a}){const s=t,n=a,c=()=>{n("select",s.chat)},o=()=>s.chat.isSelected?"chat-item-selected":"chat-item",i=()=>s.chat.avatar?s.chat.avatar:"data:image/svg+xml;base64,"+window.btoa('<svg fill="#000000" width="800px" height="800px" viewBox="0 -2.93 32.537 32.537" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"/><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/><g id="SVGRepo_iconCarrier"> <g transform="translate(-481.391 -197.473)"> <path d="M512.928,224.152a.991.991,0,0,1-.676-.264,21.817,21.817,0,0,0-29.2-.349,1,1,0,1,1-1.322-1.5,23.814,23.814,0,0,1,31.875.377,1,1,0,0,1-.677,1.736Z"/> <path d="M498.191,199.473a7.949,7.949,0,1,1-7.949,7.95,7.959,7.959,0,0,1,7.949-7.95m0-2a9.949,9.949,0,1,0,9.95,9.95,9.949,9.949,0,0,0-9.95-9.95Z"/> </g> </g></svg>');return(d,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o()),onClick:c},[e.createElementVNode("div",u,[e.createElementVNode("img",{src:i(),width:"50",height:"50"},null,8,B)]),e.createElementVNode("div",y,[e.createElementVNode("div",E,e.toDisplayString(t.chat.name),1),t.chat.lastMessage?(e.openBlock(),e.createElementBlock("div",C,e.toDisplayString(t.chat.lastMessage),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",$,[t.chat.countUnread>0?(e.openBlock(),e.createElementBlock("div",I,e.toDisplayString(t.chat.countUnread),1)):e.createCommentVNode("",!0),t.chat["lastActivity.time"]?(e.openBlock(),e.createElementBlock("div",V,e.toDisplayString(t.chat["lastActivity.time"]),1)):e.createCommentVNode("",!0)])],2))}},[["__scopeId","data-v-b194d366"]]),N={class:"file-message"},S=["href"],p=m({__name:"FileMessage",props:{message:{type:Object,required:!0}},setup(t){return(a,s)=>(e.openBlock(),e.createElementBlock("div",N,[e.createElementVNode("a",{href:t.message.url,download:""},e.toDisplayString(t.message.filename),9,S)]))}},[["__scopeId","data-v-18efd407"]]),w=["messageId"],b=["src","alt"],x={class:"message-time"},M=m({__name:"ImageMessage",props:{message:{type:Object,required:!0}},setup(t){const a=t;function s(){return a.message.position==="left"?"image-message-left":"image-message-right"}return(n,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s()),messageId:t.message.messageId},[e.createElementVNode("img",{src:t.message.url,alt:t.message.alt,class:"image-message"},null,8,b),e.createElementVNode("div",x,e.toDisplayString(t.message.time),1)],10,w))}},[["__scopeId","data-v-1f459534"]]),D=["messageId"],U={class:"message-time"},k=m({__name:"TextMessage",props:{message:{type:Object,required:!0}},setup(t){function a(s){return s.position==="left"?"text-message-left":"text-message-right"}return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(a(t.message)),messageId:t.message.messageId},[e.createElementVNode("p",null,e.toDisplayString(t.message.text),1),e.createElementVNode("div",U,e.toDisplayString(t.message.time),1)],10,D))}},[["__scopeId","data-v-c807c835"]]),F={class:"chat-info"},j={key:0},q=m({__name:"ChatInfo",props:{chat:{type:Object,required:!0}},setup(t){return(a,s)=>(e.openBlock(),e.createElementBlock("div",F,[t.chat?(e.openBlock(),e.createElementBlock("div",j,[e.createElementVNode("h2",null,e.toDisplayString(t.chat.name),1)])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-7ca4835c"]]),O={class:"chat-input"},A=m({__name:"ChatInput",emits:["send"],setup(t,{emit:a}){const s=a,n=e.ref(""),c=e.ref(null),o=()=>{n.value.trim()&&(s("send",n.value),n.value="",e.unref(c).focus())};return(i,d)=>(e.openBlock(),e.createElementBlock("div",O,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=r=>n.value=r),ref_key:"refInput",ref:c,onKeydown:e.withKeys(o,["enter"]),placeholder:"Type a message..."},null,544),[[e.vModelText,n.value]]),e.createElementVNode("button",{onClick:o},"Send")]))}},[["__scopeId","data-v-07719b64"]]),T={class:"chat-list"},L=m({__name:"ChatList",props:{chats:{type:Array,required:!0}},emits:["select"],setup(t,{emit:a}){const s=t,n=a,c=i=>{n("select",i)},o=()=>s.chats.sort((i,d)=>{if(i.countUnread>d.countUnread)return-1;if(i.countUnread<d.countUnread)return 1;if(i.countUnread==d.countUnread)return 0});return(i,d)=>(e.openBlock(),e.createElementBlock("div",T,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o(),r=>(e.openBlock(),e.createBlock(h,{key:r.chatId,chat:r,onSelect:c},null,8,["chat"]))),128))]))}},[["__scopeId","data-v-fafd9097"]]),P={__name:"ChatFilter",emits:["update"],setup(t,{emit:a}){const s=e.ref(""),n=a,c=()=>{const o=e.unref(s);n("update",o.value)};return(o,i)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("input",{type:"text",ref_key:"refInput",ref:s,onInput:c,placeholder:"Поиск..."},null,544)]))}},z={class:"chat-list"},R=m({__name:"ChatList2",props:{chats:{type:Array,required:!0},filterEnabled:{type:Boolean,required:!0}},emits:["select"],setup(t,{emit:a}){const s=e.ref(""),n=t,c=a,o=r=>{c("select",r),n.chats.forEach(g=>g.isSelected=!1);const _=n.chats.find(g=>g.chatId===r.chatId);_.isSelected=!0},i=()=>n.chats.sort((r,_)=>{if(r.countUnread>_.countUnread)return-1;if(r.countUnread<_.countUnread)return 1;if(r.countUnread==_.countUnread)return 0}).filter(r=>r.name.includes(s.value)),d=r=>{s.value=r};return(r,_)=>(e.openBlock(),e.createElementBlock("div",null,[t.filterEnabled?(e.openBlock(),e.createBlock(P,{key:0,onUpdate:d})):e.createCommentVNode("",!0),e.createElementVNode("div",z,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i(),g=>(e.openBlock(),e.createBlock(f,{key:g.chatId,chat:g,onSelect:o},null,8,["chat"]))),128))])]))}},[["__scopeId","data-v-1fd0e46c"]]),G={props:{message:{type:Object,required:!0}},setup(t){return{showPreview:e.ref(!1)}}},K={key:0,class:"message-content"},Z=["src"],H={key:1,class:"preview-container"},J=["src"],Q={class:"message-info"},W={key:0,class:"message-status"},X={key:0,class:"status read"},Y={key:1,class:"status delivered"},v={key:2,class:"status sending"},ee={class:"message-time"};function te(t,a,s,n,c,o){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["message-container",{sent:s.message.isSent,received:!s.message.isSent}])},[n.showPreview?(e.openBlock(),e.createElementBlock("div",H,[e.createElementVNode("img",{src:s.message.url,alt:"Изображение",class:"preview-image"},null,8,J),a[2]||(a[2]=e.createElementVNode("br",null,null,-1)),e.createElementVNode("button",{onClick:a[1]||(a[1]=i=>n.showPreview=!1)},"Закрыть")])):(e.openBlock(),e.createElementBlock("div",K,[e.createElementVNode("img",{src:s.message.url,onClick:a[0]||(a[0]=i=>n.showPreview=!0),alt:"Изображение",class:"chat-image"},null,8,Z)])),e.createElementVNode("div",Q,[s.message.isSent?(e.openBlock(),e.createElementBlock("div",W,[s.message.isRead?(e.openBlock(),e.createElementBlock("span",X,"✓")):s.message.isDelivered?(e.openBlock(),e.createElementBlock("span",Y,"✓")):(e.openBlock(),e.createElementBlock("span",v,"..."))])):e.createCommentVNode("",!0),e.createElementVNode("div",ee,e.toDisplayString(s.message.time),1)])],2)}const se=m(G,[["render",te]]),ae={class:"dateMessage"},ne={class:"dateMessage__text"},ce=m({__name:"DateMessage",props:{message:{type:Object}},setup(t){return(a,s)=>(e.openBlock(),e.createElementBlock("div",ae,[e.createElementVNode("p",ne,e.toDisplayString(t.message.text),1)]))}},[["__scopeId","data-v-2d53fb22"]]),oe=["messageId"],re=["src"],le={class:"message-time"},ie=m({__name:"AudioMessage",props:{message:{type:Object,required:!0}},setup(t){function a(s){return s.position==="left"?"audio-message-left":"audio-message-right"}return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(a(t.message)),messageId:t.message.messageId},[e.createElementVNode("audio",{src:t.message.url,controls:""},null,8,re),e.createElementVNode("div",le,e.toDisplayString(t.message.time),1)],10,oe))}},[["__scopeId","data-v-127acb40"]]),de=m({__name:"Feed",props:{objects:{type:Array,required:!0}},setup(t){const a=e.ref(null),s=t,n=o=>({"message.text":k,"message.image":se,"message.file":p,"message.audio":ie,"system.date":ce})[o];function c(){e.nextTick(function(){const o=e.unref(a);o.scrollTop=o.scrollHeight})}return e.onUpdated(()=>c),e.watch(()=>s.objects,c),(o,i)=>(e.openBlock(),e.createElementBlock("div",{class:"message-feed",ref_key:"refFeed",ref:a},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.objects,d=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n(d.type)),{key:d.messageId,message:d},null,8,["message"]))),128))],512))}},[["__scopeId","data-v-37208651"]]),me={class:"profile"},_e={key:0},ge=m({__name:"Profile",props:{user:{type:Object,required:!0}},setup(t){return(a,s)=>(e.openBlock(),e.createElementBlock("div",me,[t.user?(e.openBlock(),e.createElementBlock("div",_e,[e.createElementVNode("h2",null,e.toDisplayString(t.user.name),1),e.createElementVNode("p",null,e.toDisplayString(t.user.email),1),e.createElementVNode("p",null,e.toDisplayString(t.user.phone),1)])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-e1bf37ef"]]);l.Chat=h,l.Chat2=f,l.ChatInfo=q,l.ChatInput=A,l.ChatList=L,l.ChatList2=R,l.Feed=de,l.FileMessage=p,l.ImageMessage=M,l.Profile=ge,l.TextMessage=k,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@mobilon-dev/chotto",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.2",
|
4
4
|
"type": "module",
|
5
5
|
"main": "./dist/vuessages.umd.js",
|
6
6
|
"module": "./dist/vuessages.es.js",
|
@@ -25,24 +25,23 @@
|
|
25
25
|
"dependencies": {
|
26
26
|
"date-fns": "^4.1.0",
|
27
27
|
"pinia": "^2.2.2",
|
28
|
-
"vue": "^3.5.
|
28
|
+
"vue": "^3.5.8",
|
29
29
|
"vue3-emoji-picker": "^1.1.8"
|
30
30
|
},
|
31
31
|
"devDependencies": {
|
32
|
-
"@chromatic-com/storybook": "^
|
33
|
-
"@storybook/addon-essentials": "^8.3.
|
34
|
-
"@storybook/addon-interactions": "^8.3.
|
35
|
-
"@storybook/addon-links": "^8.3.
|
36
|
-
"@storybook/
|
37
|
-
"@storybook/
|
38
|
-
"@storybook/
|
39
|
-
"@storybook/vue3": "^8.3.
|
40
|
-
"@
|
41
|
-
"@types/node": "^22.5.5",
|
32
|
+
"@chromatic-com/storybook": "^2.0.2",
|
33
|
+
"@storybook/addon-essentials": "^8.3.2",
|
34
|
+
"@storybook/addon-interactions": "^8.3.2",
|
35
|
+
"@storybook/addon-links": "^8.3.2",
|
36
|
+
"@storybook/blocks": "^8.3.2",
|
37
|
+
"@storybook/test": "^8.3.2",
|
38
|
+
"@storybook/vue3": "^8.3.2",
|
39
|
+
"@storybook/vue3-vite": "^8.3.2",
|
40
|
+
"@types/node": "^22.6.1",
|
42
41
|
"@vitejs/plugin-vue": "^5.1.4",
|
43
|
-
"storybook": "^8.3.
|
42
|
+
"storybook": "^8.3.2",
|
44
43
|
"typescript": "^5.6.2",
|
45
|
-
"vite": "^5.4.
|
44
|
+
"vite": "^5.4.7",
|
46
45
|
"vite-plugin-static-copy": "^1.0.6",
|
47
46
|
"vue-tsc": "^2.1.6"
|
48
47
|
}
|