@mobilon-dev/chotto 0.0.1 → 0.0.3

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
@@ -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
  ![](images/screenshot1.png)
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-9fef0716]{color:#00f;text-decoration:underline}.image-message img[data-v-1c1327d6]{max-width:100%;border-radius:5px}.text-message-left[data-v-4deff5d3]{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-4deff5d3]{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}.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-dda91c95]{max-height:400px;overflow-y:auto;grid-column:span 1}.message-feed[data-v-b2d2ed34]{flex:1;max-height:400px;height:300px;overflow:auto;display:flex;flex-direction:column;gap:5px}.profile[data-v-e1bf37ef]{padding:16px}
1
+ .chat[data-v-77b8ac34]{cursor:pointer;padding:8px;border-bottom:1px solid #ccc}.chat-item__container[data-v-abade668]{display:flex;align-items:center;padding:15px;cursor:pointer}.chat-item__selected[data-v-abade668]{border-radius:6px;cursor:pointer;background:var(--chat-item-selected)}.chat-item__avatar-container[data-v-abade668]{display:flex;justify-content:center;align-items:center;object-fit:cover;margin-right:15px;background-color:var(--avatar-background-color);width:var(--avatar-width);height:var(--avatar-height);border-radius:var(--avatar-border-radius)}.chat-item__avatar-container span[data-v-abade668]{font-size:var(--avatar-icon-size);color:var(--avatar-icon-color)}.chat-item__info-container[data-v-abade668]{flex-grow:1;margin-right:15px}.chat-item__name[data-v-abade668]{margin-bottom:5px;font-weight:600;font-size:var(--chat-item-font-size-name)}.chat-item__last-message[data-v-abade668]{font-weight:500;font-size:var(--chat-item-font-size-last-message);color:var(--chat-item-color-last-name)}.chat-item__details-container[data-v-abade668]{margin-bottom:auto}.chat-item__unread[data-v-abade668]{display:flex;justify-content:center;align-items:center;border-radius:50%;font-weight:400;margin-left:auto;min-width:var(--chat-item-min-width-unread);min-height:var(--chat-item-min-height-unread);color:var(--chat-item-color-unread);background-color:var(--chat-item-background-color-unread);font-size:var(--chat-item-font-size-unread)}.chat-item__time[data-v-abade668]{font-size:12px;color:var(--neutral-400);font-weight:500;margin-bottom:8px}.dark .chat-item__selected[data-v-abade668]{background:var(--d-chat-item-selected)}.dark .chat-item__avatar-container[data-v-abade668]{background-color:var(--d-avatar-background-color)}.dark .chat-item__avatar-container span[data-v-abade668]{color:var(--d-avatar-icon-color)}.dark .chat-item__last-message[data-v-abade668]{color:var(--d-chat-item-color-last-name)}.dark .chat-item__unread[data-v-abade668]{background-color:var(--d-chat-item-background-color-unread);color:var(--d-chat-item-color-unread)}.file-message__container[data-v-d65084f4]{position:relative;width:fit-content;margin:var(--file-message-margin);border-radius:var(--file-message-border-radius);background-color:var(--file-message-background-color)}.file-message__link[data-v-d65084f4]{display:flex;justify-content:flex-start;align-items:center;column-gap:var(--file-message-gap);color:var(--file-message-link-color);padding:var(--file-message-padding)}.file-message__link span[data-v-d65084f4]{font-size:var(--icon-font-size-medium);color:var(--icon-color)}.file-message__time[data-v-d65084f4]{font-size:12px;position:absolute;bottom:4px;right:8px}.dark .file-message__container[data-v-d65084f4]{background-color:var(--d-file-message-background-color)}.dark .file-message__link[data-v-d65084f4]{color:var(--d-file-message-link-color)}.dark .file-message__link span[data-v-d65084f4]{color:var(--d-icon-color)}.image-message[data-v-9abe971c]{max-width:300px;max-height:240px;height:auto;border-radius:5px}.image-message-left[data-v-9abe971c]{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-9abe971c]{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-9abe971c]{font-size:12px;color:#777;margin-left:10px}.text-message__time[data-v-a831158c]{font-size:12px;position:absolute;bottom:4px;right:8px}.text-message__left[data-v-a831158c],.text-message__right[data-v-a831158c]{position:relative;width:fit-content;word-wrap:break-word;padding:var(--text-message-padding);margin:var(--text-message-margin);max-width:var(--text-message-max-width);border-radius:var(--text-message-border-radius)}.text-message__left[data-v-a831158c]{background-color:var(--text-message-left-background-color);color:var(--text-message-text-color)}.text-message__right[data-v-a831158c]{margin-left:auto;background-color:var(--text-message-right-background-color);color:var(--text-message-text-color)}.dark .text-message__left[data-v-a831158c]{background-color:var(--d-text-message-left-background-color);color:var(--d-text-message-text-color)}.dark .text-message__right[data-v-a831158c]{background-color:var(--d-text-message-right-background-color);color:var(--d-text-message-text-color)}.chat-info__container[data-v-798557ec]{padding:20px 15px 20px 40px;display:grid;grid-template-columns:min-content auto;column-gap:20px;border-bottom:1px solid var(--neutral-300)}.chat-info__avatar-container[data-v-798557ec]{display:flex;justify-content:center;align-items:center;background-color:var(--neutral-300);width:var(--avatar-width);height:var(--avatar-height);border-radius:var(--avatar-border-radius);background-size:cover;grid-row:1/3}.chat-info__avatar-container span[data-v-798557ec]{font-size:var(--avatar-icon-size);color:var(--avatar-icon-color)}.chat-info__title[data-v-798557ec]{font-size:18px;font-weight:700;grid-column:2}.chat-info__time[data-v-798557ec]{font-size:14px;font-weight:500;color:var(--neutral-400);grid-column:2}.dark .chat-info__container[data-v-798557ec]{border-bottom:1px solid var(--neutral-500)}.dark .chat-info__avatar-container[data-v-798557ec]{background-color:var(--d-avatar-background-color)}.dark .chat-info__avatar-container span[data-v-798557ec]{color:var(--d-avatar-icon-color)}.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]{max-height:400px;overflow-y:auto;grid-column:span 1}.chat-filter__input[data-v-bacb0798]{width:var(--inputtext-width);color:var(--inputtext-color);background-color:var(--inputtext-background);font-family:Montserrat,sans-serif;font-weight:400;padding:var(--inputtext-padding);border:var(--inputtext-border);border-radius:var(--inputtext-border-radius);font-size:var(--inputtext-font-size);transition:border-color var(--inputtext-transition-duration)}.chat-filter__input[data-v-bacb0798]::placeholder{color:var(--inputtext-placeholder-color)}.chat-filter__input[data-v-bacb0798]:hover{border-color:var(--inputtext-hover-border-color)}.chat-filter__input[data-v-bacb0798]:focus-visible{border-color:var(--inputtext-focus-border-color);outline:none}.dark .chat-filter__input[data-v-bacb0798]{color:var(--d-inputtext-color);background-color:var(--d-inputtext-background);border:var(--d-inputtext-border)}.dark .chat-filter__input[data-v-bacb0798]::placeholder{color:var(--d-inputtext-placeholder-color)}.dark .chat-filter__input[data-v-bacb0798]:hover{border-color:var(--d-inputtext-hover-border-color)}.dark .chat-filter__input[data-v-bacb0798]:focus-visible{border-color:var(--d-inputtext-focus-border-color)}.chat-list[data-v-69ebd00b]{background-color:transparent}.chat-list__container[data-v-69ebd00b]{padding:30px 0;height:100vh;display:flex;flex-direction:column}.chat-list__filter[data-v-69ebd00b]{margin:0 30px 30px 0}.chat-list__items[data-v-69ebd00b]{overflow:auto;padding-right:20px}.chat-list__items[data-v-69ebd00b]::-webkit-scrollbar{width:6px;background-color:var(--neutral-50)}.chat-list__items[data-v-69ebd00b]::-webkit-scrollbar-thumb{border-radius:10px;background-color:var(--neutral-300)}.chat-list__items[data-v-69ebd00b]::-webkit-scrollbar-track{border-radius:10px}.chat-list__title[data-v-69ebd00b]{font-size:var(--h2-font-size);font-weight:var(--h2-font-weight);margin-bottom:20px}.dark .chat-list[data-v-69ebd00b]::-webkit-scrollbar{background-color:var(--neutral-500)}.dark .chat-list[data-v-69ebd00b]::-webkit-scrollbar-thumb{background-color:var(--neutral-200)}.image-message__container[data-v-85d6dbfc]{position:relative;margin-bottom:var(--image-message-margin);max-width:var(--image-message-max-width)}.image-message__time[data-v-85d6dbfc]{font-size:12px;position:absolute;bottom:8px;right:8px}.image-message__button[data-v-85d6dbfc]{border:none;background-color:transparent;cursor:pointer;padding:0}.image-message__preview-image[data-v-85d6dbfc]{width:100%;border-radius:5px}.image-message__modal-image[data-v-85d6dbfc]{width:100%;height:100%;object-fit:cover;border-radius:5px}.image-message__modal[data-v-85d6dbfc]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:101;background-color:var(--modal-background-color);border-radius:var(--modal-border-radius);padding:var(--modal-padding);width:var(--modal-width);box-shadow:var(--modal-overlay-shadow)}.image-message__modal-overlay[data-v-85d6dbfc]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--modal-mask-background);z-index:100}.image-message__modal-close-button[data-v-85d6dbfc]{display:block;background-color:transparent;border:none;padding:4px;margin:0 0 14px auto;cursor:pointer}.image-message__modal-close-button span[data-v-85d6dbfc]{color:var(--icon-color);font-size:var(--icon-font-size-medium)}.modal-fade-enter-active[data-v-85d6dbfc],.modal-fade-leave-active[data-v-85d6dbfc]{transition:opacity .2s ease}.modal-fade-enter-from[data-v-85d6dbfc],.modal-fade-leave-to[data-v-85d6dbfc]{opacity:0}.modal-fade-enter-to[data-v-85d6dbfc],.modal-fade-leave-from[data-v-85d6dbfc]{opacity:1}.dark .image-message__time[data-v-85d6dbfc]{color:var(--neutral-200)}.dark .image-message__modal[data-v-85d6dbfc]{background-color:var(--d-modal-background-color);border:1px solid var(--neutral-500)}.dark .image-message__modal-close-button span[data-v-85d6dbfc]{color:var(--d-icon-color)}.date-message__container[data-v-3b340776]{display:flex;align-items:center;justify-content:center;margin:0 auto 18px;padding:8px 14px;width:fit-content}.date-message__text[data-v-3b340776]{font-size:12px;font-weight:500;color:var(--neutral-700)}.dark .date-message__text[data-v-3b340776]{color:var(--neutral-200)}.audio-message__container[data-v-8b044fcf]{position:relative;display:grid;grid-template-columns:min-content 1fr;column-gap:var(--audio-message-gap);padding:var(--audio-message-padding);max-width:var(--audio-message-max-width);margin:var(--audio-message-margin);border-radius:var(--audio-message-border-radius)}.audio-message__play[data-v-8b044fcf],.audio-message__pause[data-v-8b044fcf]{border:none;cursor:pointer;position:relative;grid-row:1/3;width:var(--audio-message-button-width);height:var(--audio-message-button-height);border-radius:var(--audio-message-button-border-radius)}.audio-message__play span[data-v-8b044fcf],.audio-message__pause span[data-v-8b044fcf]{display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:var(--icon-font-size-medium)}.audio-message__progress-bar-container[data-v-8b044fcf]{position:relative;width:100%;height:var(--audio-message-pbc-height);border-radius:var(--audio-message-pbc-border-radius);margin:var(--audio-message-pbc-margin);background-color:var(--audio-message-pbc-background-color)}.audio-message__progress-bar[data-v-8b044fcf]{position:absolute;left:0;top:0;bottom:0;transition:width .2s ease-in-out;border-radius:var(--audio-message-pb-border-radius);background-color:var(--audio-message-pb-background-color)}.audio-message__remaining-time[data-v-8b044fcf]{font-size:12px;grid-column:2;margin-bottom:-10px}.audio-message__time[data-v-8b044fcf]{font-size:12px;position:absolute;bottom:4px;right:8px}.audio-message__left .audio-message__container[data-v-8b044fcf]{background-color:var(--audio-message-background-left)}.audio-message__left .audio-message__play[data-v-8b044fcf],.audio-message__left .audio-message__pause[data-v-8b044fcf]{background-color:var(--audio-message-button-background-color-left)}.audio-message__left .audio-message__play span[data-v-8b044fcf],.audio-message__left .audio-message__pause span[data-v-8b044fcf]{color:var(--audio-message-button-icon-color-left)}.audio-message__right .audio-message__container[data-v-8b044fcf]{background-color:var(--audio-message-background-right)}.audio-message__right .audio-message__play[data-v-8b044fcf],.audio-message__right .audio-message__pause[data-v-8b044fcf]{background-color:var(--audio-message-button-background-color-right)}.audio-message__right .audio-message__play span[data-v-8b044fcf],.audio-message__right .audio-message__pause span[data-v-8b044fcf]{color:var(--audio-message-button-icon-color-right)}.dark .audio-message__left .audio-message__container[data-v-8b044fcf]{background-color:var(--d-audio-message-background-left)}.dark .audio-message__left .audio-message__play[data-v-8b044fcf],.dark .audio-message__left .audio-message__pause[data-v-8b044fcf]{background-color:var(--d-audio-message-button-background-color-left)}.dark .audio-message__left .audio-message__play span[data-v-8b044fcf],.dark .audio-message__left .audio-message__pause span[data-v-8b044fcf]{color:var(--d-audio-message-button-icon-color-left)}.dark .audio-message__right .audio-message__container[data-v-8b044fcf]{background-color:var(--d-audio-message-background-right)}.dark .audio-message__right .audio-message__play[data-v-8b044fcf],.dark .audio-message__right .audio-message__pause[data-v-8b044fcf]{background-color:var(--d-audio-message-button-background-color-right)}.dark .audio-message__right .audio-message__play span[data-v-8b044fcf],.dark .audio-message__right .audio-message__pause span[data-v-8b044fcf]{color:var(--d-audio-message-button-icon-color-right)}.dark .audio-message__progress-bar-container[data-v-8b044fcf]{background-color:var(--d-audio-message-pbc-background-color)}.dark .audio-message__progress-bar[data-v-8b044fcf]{background-color:var(--d-audio-message-pb-background-color)}.message-feed[data-v-cd136cf4]{height:fit-content;margin-top:auto;padding:0 80px 50px;overflow-y:auto}.message-feed[data-v-cd136cf4]::-webkit-scrollbar{width:6px;background-color:var(--neutral-50)}.message-feed[data-v-cd136cf4]::-webkit-scrollbar-thumb{border-radius:10px;background-color:var(--neutral-300)}.message-feed[data-v-cd136cf4]::-webkit-scrollbar-track{border-radius:10px}.dark .message-feed[data-v-cd136cf4]::-webkit-scrollbar{background-color:var(--neutral-500)}.dark .message-feed[data-v-cd136cf4]::-webkit-scrollbar-thumb{background-color:var(--neutral-200)}.profile[data-v-e1bf37ef]{padding:16px}
@@ -1,10 +1,10 @@
1
- import { openBlock as c, createElementBlock as a, createElementVNode as u, toDisplayString as i, normalizeClass as x, createCommentVNode as p, ref as m, withDirectives as I, withKeys as C, vModelText as $, unref as h, Fragment as f, renderList as g, createBlock as v, watch as k, resolveDynamicComponent as b, nextTick as M } from "vue";
2
- const l = (e, s) => {
3
- const t = e.__vccOpts || e;
4
- for (const [n, r] of s)
5
- t[n] = r;
6
- return t;
7
- }, q = {
1
+ import { openBlock as o, createElementBlock as i, createElementVNode as e, toDisplayString as l, normalizeClass as k, createCommentVNode as I, createTextVNode as S, ref as p, withDirectives as B, withKeys as U, vModelText as D, unref as R, Fragment as J, renderList as Q, createBlock as E, Teleport as M, createVNode as q, Transition as K, withCtx as F, computed as C, onMounted as w, vShow as v, normalizeStyle as W, onUpdated as Z, watch as b, resolveDynamicComponent as z, nextTick as N } from "vue";
2
+ const d = (A, t) => {
3
+ const V = A.__vccOpts || A;
4
+ for (const [s, n] of t)
5
+ V[s] = n;
6
+ return V;
7
+ }, j = {
8
8
  __name: "Chat",
9
9
  props: {
10
10
  chat: {
@@ -13,18 +13,67 @@ const l = (e, s) => {
13
13
  }
14
14
  },
15
15
  emits: ["select"],
16
- setup(e, { emit: s }) {
17
- const t = e, n = s, r = () => {
18
- n("select", t.chat);
16
+ setup(A, { emit: t }) {
17
+ const V = A, s = t, n = () => {
18
+ s("select", V.chat);
19
19
  };
20
- return (o, d) => (c(), a("div", {
20
+ return (a, r) => (o(), i("div", {
21
21
  class: "chat",
22
- onClick: r
22
+ onClick: n
23
23
  }, [
24
- u("p", null, i(e.chat.name) + " " + i(e.chat.countUnread), 1)
24
+ e("p", null, l(A.chat.name) + " " + l(A.chat.countUnread), 1)
25
25
  ]));
26
26
  }
27
- }, F = /* @__PURE__ */ l(q, [["__scopeId", "data-v-77b8ac34"]]), O = { class: "file-message" }, T = ["href"], j = {
27
+ }, x = /* @__PURE__ */ d(j, [["__scopeId", "data-v-77b8ac34"]]), Y = { class: "chat-item__container" }, L = { class: "chat-item__avatar-container" }, T = ["src"], H = {
28
+ key: 1,
29
+ class: "pi pi-user"
30
+ }, G = { class: "chat-item__info-container" }, O = { class: "chat-item__name" }, X = {
31
+ key: 0,
32
+ class: "chat-item__last-message"
33
+ }, P = { class: "chat-item__details-container" }, _ = {
34
+ key: 0,
35
+ class: "chat-item__unread"
36
+ }, $ = {
37
+ key: 1,
38
+ class: "chat-item__time"
39
+ }, AA = {
40
+ __name: "Chat2",
41
+ props: {
42
+ chat: {
43
+ type: Object,
44
+ required: !0
45
+ }
46
+ },
47
+ emits: ["select"],
48
+ setup(A, { emit: t }) {
49
+ const V = A, s = t, n = () => {
50
+ s("select", V.chat);
51
+ }, a = () => V.chat.isSelected ? "chat-item__selected" : "chat-item";
52
+ return (r, c) => (o(), i("div", {
53
+ class: k(a()),
54
+ onClick: n
55
+ }, [
56
+ e("div", Y, [
57
+ e("div", L, [
58
+ V.chat.avatar ? (o(), i("img", {
59
+ key: 0,
60
+ src: V.chat.avatar,
61
+ height: "32",
62
+ width: "32"
63
+ }, null, 8, T)) : (o(), i("span", H))
64
+ ]),
65
+ e("div", G, [
66
+ e("div", O, l(A.chat.name), 1),
67
+ A.chat.lastMessage ? (o(), i("div", X, l(A.chat.lastMessage), 1)) : I("", !0)
68
+ ]),
69
+ e("div", P, [
70
+ A.chat.countUnread > 0 ? (o(), i("div", _, l(A.chat.countUnread), 1)) : I("", !0),
71
+ A.chat["lastActivity.time"] ? (o(), i("div", $, l(A.chat["lastActivity.time"]), 1)) : I("", !0)
72
+ ])
73
+ ])
74
+ ], 2));
75
+ }
76
+ }, VA = /* @__PURE__ */ d(AA, [["__scopeId", "data-v-abade668"]]), eA = { class: "file-message" }, tA = { class: "file-message__container" }, sA = ["href"], aA = {
28
77
  __name: "FileMessage",
29
78
  props: {
30
79
  message: {
@@ -32,15 +81,22 @@ const l = (e, s) => {
32
81
  required: !0
33
82
  }
34
83
  },
35
- setup(e) {
36
- return (s, t) => (c(), a("div", O, [
37
- u("a", {
38
- href: e.message.url,
39
- download: ""
40
- }, i(e.message.filename), 9, T)
84
+ setup(A) {
85
+ return (t, V) => (o(), i("div", eA, [
86
+ e("div", tA, [
87
+ e("a", {
88
+ class: "file-message__link",
89
+ href: A.message.url,
90
+ download: ""
91
+ }, [
92
+ V[0] || (V[0] = e("span", { class: "pi pi-file" }, null, -1)),
93
+ S(" " + l(A.message.filename), 1)
94
+ ], 8, sA),
95
+ V[1] || (V[1] = e("span", { class: "file-message__time" }, "22:02", -1))
96
+ ])
41
97
  ]));
42
98
  }
43
- }, w = /* @__PURE__ */ l(j, [["__scopeId", "data-v-9fef0716"]]), B = { class: "image-message" }, D = ["src", "alt"], L = {
99
+ }, nA = /* @__PURE__ */ d(aA, [["__scopeId", "data-v-d65084f4"]]), oA = ["messageId"], iA = ["src", "alt"], rA = { class: "message-time" }, cA = {
44
100
  __name: "ImageMessage",
45
101
  props: {
46
102
  message: {
@@ -48,15 +104,24 @@ const l = (e, s) => {
48
104
  required: !0
49
105
  }
50
106
  },
51
- setup(e) {
52
- return (s, t) => (c(), a("div", B, [
53
- u("img", {
54
- src: e.message.url,
55
- alt: e.message.alt
56
- }, null, 8, D)
57
- ]));
107
+ setup(A) {
108
+ const t = A;
109
+ function V() {
110
+ return t.message.position === "left" ? "image-message-left" : "image-message-right";
111
+ }
112
+ return (s, n) => (o(), i("div", {
113
+ class: k(V()),
114
+ messageId: A.message.messageId
115
+ }, [
116
+ e("img", {
117
+ src: A.message.url,
118
+ alt: A.message.alt,
119
+ class: "image-message"
120
+ }, null, 8, iA),
121
+ e("div", rA, l(A.message.time), 1)
122
+ ], 10, oA));
58
123
  }
59
- }, S = /* @__PURE__ */ l(L, [["__scopeId", "data-v-1c1327d6"]]), V = {
124
+ }, nV = /* @__PURE__ */ d(cA, [["__scopeId", "data-v-9abe971c"]]), lA = { class: "text-message" }, dA = ["messageId"], uA = {
60
125
  __name: "TextMessage",
61
126
  props: {
62
127
  message: {
@@ -64,17 +129,24 @@ const l = (e, s) => {
64
129
  required: !0
65
130
  }
66
131
  },
67
- setup(e) {
68
- function s(t) {
69
- return t.direction === "incoming" ? "text-message-left" : "text-message-right";
132
+ setup(A) {
133
+ function t(V) {
134
+ return V.direction === "incoming" ? "text-message__left" : "text-message__right";
70
135
  }
71
- return (t, n) => (c(), a("div", {
72
- class: x(s(e.message))
73
- }, [
74
- u("p", null, i(e.message.text), 1)
75
- ], 2));
136
+ return (V, s) => (o(), i("div", lA, [
137
+ e("div", {
138
+ class: k(t(A.message)),
139
+ messageId: A.message.messageId
140
+ }, [
141
+ e("p", null, l(A.message.text), 1),
142
+ s[0] || (s[0] = e("span", { class: "text-message__time" }, "22:02", -1))
143
+ ], 10, dA)
144
+ ]));
76
145
  }
77
- }, A = /* @__PURE__ */ l(V, [["__scopeId", "data-v-4deff5d3"]]), E = { class: "chat-info" }, K = { key: 0 }, N = {
146
+ }, mA = /* @__PURE__ */ d(uA, [["__scopeId", "data-v-a831158c"]]), gA = { class: "chat-info" }, pA = {
147
+ key: 0,
148
+ class: "chat-info__container"
149
+ }, hA = { class: "chat-info__avatar-container" }, fA = ["src"], IA = { key: 1 }, EA = { class: "chat-info__title" }, kA = {
78
150
  __name: "ChatInfo",
79
151
  props: {
80
152
  chat: {
@@ -82,34 +154,44 @@ const l = (e, s) => {
82
154
  required: !0
83
155
  }
84
156
  },
85
- setup(e) {
86
- return (s, t) => (c(), a("div", E, [
87
- e.chat ? (c(), a("div", K, [
88
- u("h2", null, i(e.chat.name), 1)
89
- ])) : p("", !0)
157
+ setup(A) {
158
+ const t = A;
159
+ return (V, s) => (o(), i("div", gA, [
160
+ A.chat ? (o(), i("div", pA, [
161
+ e("div", hA, [
162
+ t.chat.avatar ? (o(), i("img", {
163
+ key: 0,
164
+ src: t.chat.avatar
165
+ }, null, 8, fA)) : (o(), i("span", IA, s[0] || (s[0] = [
166
+ e("i", { class: "pi pi-user" }, null, -1)
167
+ ])))
168
+ ]),
169
+ e("h2", EA, l(A.chat.name), 1),
170
+ s[1] || (s[1] = e("p", { class: "chat-info__time" }, "Был(а) недавно", -1))
171
+ ])) : I("", !0)
90
172
  ]));
91
173
  }
92
- }, X = /* @__PURE__ */ l(N, [["__scopeId", "data-v-7ca4835c"]]), P = { class: "chat-input" }, U = {
174
+ }, oV = /* @__PURE__ */ d(kA, [["__scopeId", "data-v-798557ec"]]), CA = { class: "chat-input" }, BA = {
93
175
  __name: "ChatInput",
94
176
  emits: ["send"],
95
- setup(e, { emit: s }) {
96
- const t = s, n = m(""), r = m(null), o = () => {
97
- n.value.trim() && (t("send", n.value), n.value = "", h(r).focus());
177
+ setup(A, { emit: t }) {
178
+ const V = t, s = p(""), n = p(null), a = () => {
179
+ s.value.trim() && (V("send", s.value), s.value = "", R(n).focus());
98
180
  };
99
- return (d, _) => (c(), a("div", P, [
100
- I(u("input", {
101
- "onUpdate:modelValue": _[0] || (_[0] = (y) => n.value = y),
181
+ return (r, c) => (o(), i("div", CA, [
182
+ B(e("input", {
183
+ "onUpdate:modelValue": c[0] || (c[0] = (h) => s.value = h),
102
184
  ref_key: "refInput",
103
- ref: r,
104
- onKeydown: C(o, ["enter"]),
185
+ ref: n,
186
+ onKeydown: U(a, ["enter"]),
105
187
  placeholder: "Type a message..."
106
188
  }, null, 544), [
107
- [$, n.value]
189
+ [D, s.value]
108
190
  ]),
109
- u("button", { onClick: o }, "Send")
191
+ e("button", { onClick: a }, "Send")
110
192
  ]));
111
193
  }
112
- }, Y = /* @__PURE__ */ l(U, [["__scopeId", "data-v-07719b64"]]), z = { class: "chat-list" }, H = {
194
+ }, iV = /* @__PURE__ */ d(BA, [["__scopeId", "data-v-07719b64"]]), RA = { class: "chat-list" }, JA = {
113
195
  __name: "ChatList",
114
196
  props: {
115
197
  chats: {
@@ -118,50 +200,284 @@ const l = (e, s) => {
118
200
  }
119
201
  },
120
202
  emits: ["select"],
121
- setup(e, { emit: s }) {
122
- const t = s, n = (r) => {
123
- t("select", r);
124
- };
125
- return (r, o) => (c(), a("div", z, [
126
- (c(!0), a(f, null, g(e.chats, (d) => (c(), v(F, {
127
- key: d.chatId,
128
- chat: d,
203
+ setup(A, { emit: t }) {
204
+ const V = A, s = t, n = (r) => {
205
+ s("select", r);
206
+ }, a = () => V.chats.sort((r, c) => {
207
+ if (r.countUnread > c.countUnread) return -1;
208
+ if (r.countUnread < c.countUnread) return 1;
209
+ if (r.countUnread == c.countUnread) return 0;
210
+ });
211
+ return (r, c) => (o(), i("div", RA, [
212
+ (o(!0), i(J, null, Q(a(), (h) => (o(), E(x, {
213
+ key: h.chatId,
214
+ chat: h,
129
215
  onSelect: n
130
216
  }, null, 8, ["chat"]))), 128))
131
217
  ]));
132
218
  }
133
- }, Z = /* @__PURE__ */ l(H, [["__scopeId", "data-v-dda91c95"]]), G = {
134
- __name: "MessageFeed",
219
+ }, rV = /* @__PURE__ */ d(JA, [["__scopeId", "data-v-fafd9097"]]), QA = { class: "chat-filter" }, vA = { class: "chat-filter__container" }, yA = {
220
+ __name: "ChatFilter",
221
+ emits: ["update"],
222
+ setup(A, { emit: t }) {
223
+ const V = p(""), s = t, n = () => {
224
+ const a = R(V);
225
+ s("update", a.value);
226
+ };
227
+ return (a, r) => (o(), i("div", QA, [
228
+ e("div", vA, [
229
+ e("input", {
230
+ class: "chat-filter__input",
231
+ type: "text",
232
+ ref_key: "refInput",
233
+ ref: V,
234
+ onInput: n,
235
+ placeholder: "Поиск..."
236
+ }, null, 544)
237
+ ])
238
+ ]));
239
+ }
240
+ }, SA = /* @__PURE__ */ d(yA, [["__scopeId", "data-v-bacb0798"]]), UA = { class: "chat-list" }, DA = { class: "chat-list__container" }, MA = { class: "chat-list__items" }, qA = {
241
+ __name: "ChatList2",
135
242
  props: {
136
- messages: {
243
+ chats: {
137
244
  type: Array,
138
245
  required: !0
246
+ },
247
+ filterEnabled: {
248
+ type: Boolean,
249
+ required: !0
250
+ }
251
+ },
252
+ emits: ["select"],
253
+ setup(A, { emit: t }) {
254
+ const V = p(""), s = A, n = () => {
255
+ document.documentElement.classList.toggle("dark");
256
+ }, a = t, r = (u) => {
257
+ a("select", u), s.chats.forEach((m) => m.isSelected = !1);
258
+ const g = s.chats.find((m) => m.chatId === u.chatId);
259
+ g.isSelected = !0;
260
+ }, c = () => s.chats.sort((u, g) => {
261
+ if (u.countUnread > g.countUnread) return -1;
262
+ if (u.countUnread < g.countUnread) return 1;
263
+ if (u.countUnread == g.countUnread) return 0;
264
+ }).filter((u) => u.name.includes(V.value)), h = (u) => {
265
+ V.value = u;
266
+ };
267
+ return (u, g) => (o(), i("div", UA, [
268
+ e("div", DA, [
269
+ g[0] || (g[0] = e("h2", { class: "chat-list__title" }, "Чаты", -1)),
270
+ A.filterEnabled ? (o(), E(SA, {
271
+ key: 0,
272
+ class: "chat-list__filter",
273
+ onUpdate: h
274
+ })) : I("", !0),
275
+ e("div", MA, [
276
+ (o(!0), i(J, null, Q(c(), (m) => (o(), E(VA, {
277
+ key: m.chatId,
278
+ chat: m,
279
+ onSelect: r
280
+ }, null, 8, ["chat"]))), 128))
281
+ ]),
282
+ e("button", {
283
+ onClick: n,
284
+ style: { width: "150px", height: "20px", "margin-top": "50px" }
285
+ }, "Смена темы")
286
+ ])
287
+ ]));
288
+ }
289
+ }, cV = /* @__PURE__ */ d(qA, [["__scopeId", "data-v-69ebd00b"]]), KA = {
290
+ props: {
291
+ message: {
292
+ type: Object,
293
+ required: !0
294
+ }
295
+ /*
296
+ imageSrc: {
297
+ type: String,
298
+ required: true,
299
+ },
300
+ isSent: {
301
+ type: Boolean,
302
+ default: false,
303
+ },
304
+ isDelivered: {
305
+ type: Boolean,
306
+ default: false,
307
+ },
308
+ isRead: {
309
+ type: Boolean,
310
+ default: false,
311
+ },
312
+ timestamp: {
313
+ type: Number,
314
+ required: true,
315
+ },
316
+ */
317
+ },
318
+ setup(A) {
319
+ return {
320
+ isOpen: p(!1)
321
+ };
322
+ }
323
+ }, FA = { class: "image-message" }, wA = { class: "image-message__container" }, WA = ["src", "alt"], ZA = {
324
+ key: 0,
325
+ class: "image-message__modal-overlay"
326
+ }, bA = { class: "image-message__modal" }, zA = ["src", "alt"];
327
+ function NA(A, t, V, s, n, a) {
328
+ return o(), i("div", FA, [
329
+ e("div", wA, [
330
+ e("button", {
331
+ class: "image-message__button",
332
+ onClick: t[0] || (t[0] = (r) => s.isOpen = !0)
333
+ }, [
334
+ e("img", {
335
+ class: "image-message__preview-image",
336
+ src: V.message.url,
337
+ alt: V.message.alt
338
+ }, null, 8, WA),
339
+ t[2] || (t[2] = e("span", { class: "image-message__time" }, "22:02", -1))
340
+ ]),
341
+ (o(), E(M, { to: "body" }, [
342
+ q(K, { name: "modal-fade" }, {
343
+ default: F(() => [
344
+ s.isOpen ? (o(), i("div", ZA, [
345
+ e("div", bA, [
346
+ e("button", {
347
+ class: "image-message__modal-close-button",
348
+ onClick: t[1] || (t[1] = (r) => s.isOpen = !1)
349
+ }, t[3] || (t[3] = [
350
+ e("span", null, [
351
+ e("i", { class: "pi pi-times" })
352
+ ], -1)
353
+ ])),
354
+ e("img", {
355
+ class: "image-message__modal-image",
356
+ src: V.message.url,
357
+ alt: V.message.alt
358
+ }, null, 8, zA)
359
+ ])
360
+ ])) : I("", !0)
361
+ ]),
362
+ _: 1
363
+ })
364
+ ]))
365
+ ])
366
+ ]);
367
+ }
368
+ const jA = /* @__PURE__ */ d(KA, [["render", NA], ["__scopeId", "data-v-85d6dbfc"]]), xA = { class: "date-message" }, YA = { class: "date-message__container" }, LA = { class: "date-message__text" }, TA = {
369
+ __name: "DateMessage",
370
+ props: {
371
+ message: {
372
+ type: Object
139
373
  }
140
374
  },
141
- setup(e) {
142
- const s = m(null), t = e, n = (o) => ({
143
- "message.text": A,
144
- "message.image": S,
145
- "message.file": w
146
- })[o];
375
+ setup(A) {
376
+ return (t, V) => (o(), i("div", xA, [
377
+ e("div", YA, [
378
+ e("p", LA, l(A.message.text), 1)
379
+ ])
380
+ ]));
381
+ }
382
+ }, HA = /* @__PURE__ */ d(TA, [["__scopeId", "data-v-3b340776"]]), GA = ["messageId"], OA = { class: "audio-message__container" }, XA = { class: "audio-message__progress-bar-container" }, PA = { class: "audio-message__remaining-time" }, _A = {
383
+ __name: "AudioMessage",
384
+ props: {
385
+ message: {
386
+ type: Object,
387
+ required: !0
388
+ }
389
+ },
390
+ setup(A) {
391
+ function t(m) {
392
+ return m.position === "left" ? "audio-message__left" : "audio-message__right";
393
+ }
394
+ const V = p(null), s = p(!1), n = p(0), a = p(0);
147
395
  function r() {
148
- M(function() {
149
- const o = h(s);
150
- o.scrollTop = o.scrollHeight;
396
+ V.value && (s.value ? V.value.pause() : V.value.play(), s.value = !s.value);
397
+ }
398
+ const c = (m) => {
399
+ const f = Math.floor(m / 60), y = Math.floor(m % 60);
400
+ return `${f.toString().padStart(2, "0")}:${y.toString().padStart(2, "0")}`;
401
+ }, h = C(() => V.value ? c(a.value) : "0:00"), u = C(() => V.value ? c(n.value) : "0:00"), g = C(() => n.value > 0 ? a.value / n.value * 100 : 0);
402
+ return w(() => {
403
+ V.value.addEventListener("loadedmetadata", () => {
404
+ n.value = V.value.duration;
405
+ }), V.value.addEventListener("timeupdate", () => {
406
+ a.value = V.value.currentTime;
151
407
  });
408
+ }), (m, f) => (o(), i("div", {
409
+ class: k(["audio-message", t(A.message)]),
410
+ messageId: A.message.messageId
411
+ }, [
412
+ e("audio", {
413
+ ref_key: "player",
414
+ ref: V,
415
+ src: "/sample-6s.mp3"
416
+ }, null, 512),
417
+ e("div", OA, [
418
+ B(e("button", {
419
+ class: "audio-message__play",
420
+ onClick: r
421
+ }, f[0] || (f[0] = [
422
+ e("span", { class: "pi pi-play" }, null, -1)
423
+ ]), 512), [
424
+ [v, !s.value]
425
+ ]),
426
+ B(e("button", {
427
+ class: "audio-message__pause",
428
+ onClick: r
429
+ }, f[1] || (f[1] = [
430
+ e("span", { class: "pi pi-pause" }, null, -1)
431
+ ]), 512), [
432
+ [v, s.value]
433
+ ]),
434
+ e("div", XA, [
435
+ e("div", {
436
+ class: "audio-message__progress-bar",
437
+ style: W({ width: g.value + "%" })
438
+ }, null, 4)
439
+ ]),
440
+ e("p", PA, l(`${h.value} / ${u.value}`), 1),
441
+ f[2] || (f[2] = e("span", { class: "audio-message__time" }, "22:02", -1))
442
+ ])
443
+ ], 10, GA));
444
+ }
445
+ }, $A = /* @__PURE__ */ d(_A, [["__scopeId", "data-v-8b044fcf"]]), AV = { class: "message-feed__container" }, VV = {
446
+ __name: "Feed",
447
+ props: {
448
+ objects: {
449
+ type: Array,
450
+ required: !0
152
451
  }
153
- return k(() => t.messages, r), (o, d) => (c(), a("div", {
452
+ },
453
+ setup(A) {
454
+ const t = p(null), V = A, s = (a) => ({
455
+ "message.text": mA,
456
+ "message.image": jA,
457
+ "message.file": nA,
458
+ "message.audio": $A,
459
+ "system.date": HA
460
+ })[a];
461
+ function n() {
462
+ N(function() {
463
+ const a = R(t);
464
+ a.scrollTop = a.scrollHeight;
465
+ });
466
+ }
467
+ return Z(() => n), b(() => V.objects, n), (a, r) => (o(), i("div", {
154
468
  class: "message-feed",
155
469
  ref_key: "refFeed",
156
- ref: s
470
+ ref: t
157
471
  }, [
158
- (c(!0), a(f, null, g(e.messages, (_) => (c(), v(b(n(_.type)), {
159
- key: _.id,
160
- message: _
161
- }, null, 8, ["message"]))), 128))
472
+ e("div", AV, [
473
+ (o(!0), i(J, null, Q(A.objects, (c) => (o(), E(z(s(c.type)), {
474
+ key: c.messageId,
475
+ message: c
476
+ }, null, 8, ["message"]))), 128))
477
+ ])
162
478
  ], 512));
163
479
  }
164
- }, ee = /* @__PURE__ */ l(G, [["__scopeId", "data-v-b2d2ed34"]]), J = { class: "profile" }, Q = { key: 0 }, R = {
480
+ }, lV = /* @__PURE__ */ d(VV, [["__scopeId", "data-v-cd136cf4"]]), eV = { class: "profile" }, tV = { key: 0 }, sV = {
165
481
  __name: "Profile",
166
482
  props: {
167
483
  user: {
@@ -169,24 +485,58 @@ const l = (e, s) => {
169
485
  required: !0
170
486
  }
171
487
  },
172
- setup(e) {
173
- return (s, t) => (c(), a("div", J, [
174
- e.user ? (c(), a("div", Q, [
175
- u("h2", null, i(e.user.name), 1),
176
- u("p", null, i(e.user.email), 1),
177
- u("p", null, i(e.user.phone), 1)
178
- ])) : p("", !0)
488
+ setup(A) {
489
+ return (t, V) => (o(), i("div", eV, [
490
+ A.user ? (o(), i("div", tV, [
491
+ e("h2", null, l(A.user.name), 1),
492
+ e("p", null, l(A.user.email), 1),
493
+ e("p", null, l(A.user.phone), 1)
494
+ ])) : I("", !0)
179
495
  ]));
180
496
  }
181
- }, te = /* @__PURE__ */ l(R, [["__scopeId", "data-v-e1bf37ef"]]);
497
+ }, dV = /* @__PURE__ */ d(sV, [["__scopeId", "data-v-e1bf37ef"]]);
498
+ function uV(A) {
499
+ const t = +new Date(Number(A) * 1e3), V = +/* @__PURE__ */ new Date(), s = Math.floor((V - t) / 1e3), n = Math.floor(s / 60), a = Math.floor(n / 60), r = Math.floor(a / 24);
500
+ return r > 30 ? t.toLocaleString() : r > 0 ? `${r} ${r === 1 ? "день" : "дня"} назад` : a > 0 ? `${a} ${a === 1 ? "час" : "часа"} назад` : n > 0 ? `${n} ${n === 1 ? "минута" : "минуты"} назад` : s > 0 ? `${s} ${s === 1 ? "секунда" : "секунды"} назад` : "Только что";
501
+ }
502
+ const mV = (A) => {
503
+ const t = [];
504
+ let V = null;
505
+ for (let s = 0; s < A.length; s++) {
506
+ const n = A[s], a = new Date(n.timestamp * 1e3).toLocaleDateString();
507
+ console.log("message", n, a), a !== V && (t.push({
508
+ isSeparator: !0,
509
+ day: a,
510
+ // Можно использовать локальную дату, если необходимо
511
+ text: a,
512
+ type: "system.date"
513
+ }), V = a), t.push(n);
514
+ }
515
+ return t;
516
+ }, gV = async () => {
517
+ try {
518
+ if (await navigator.mediaDevices.getUserMedia({ audio: !0 })) {
519
+ const t = new Audio();
520
+ t.src = "data:audio/mpeg;base64,SUQzAwAAAAAfdlRZRVIAAAAFAAAAMjAyMlRJVDIAAAA7AAAB//4XBDIEQwQ6BCAAPQQwBD8EPgQ8BDgEPQQwBD0EOARPBCAAPARDBDcESwQ6BDAEOwRMBD0ESwQ5BFRQRTEAAAABAAAAVEFMQgAAAAEAAABUQ09OAAAAAQAAAENPTU0AAAAFAAAAZW5nAFRSQ0sAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+5Jk+ITj8WJAMfo0EHgLB8AbZkoMVWDwBOBwQWsp3kQ3jSpVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQABo4uLzcp3zUUiIoSBCgMw+HKPMh2eNmndrzZqWIyHkf//5fmRmR8yP8jIjLkZF/+TKwMECsdD//JlYGCBB0cmVgoUFUsoIHZWWAwQMKCBpYDBAwciLBNFSy1NQMBkE1JERQkSIJoLRJGiij0FqqTjQUCPQWNEdTf14qKC38XZ///i2sVFG//8WFxVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//uSZIaP8uNbJpDBHkIvYgTgGMY4AAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRBRz8/Pz8gPz8/Pz8/Pz8/Pz8gPz8/Pz8/Pz8/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIwMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/", t.play();
521
+ }
522
+ } catch {
523
+ console.log("no audio permissions");
524
+ }
525
+ }, pV = (A) => A.sort((t, V) => Number(t.timestamp) < Number(V.timestamp) ? -1 : Number(t.timestamp) > Number(V.timestamp) ? 1 : 0);
182
526
  export {
183
- F as Chat,
184
- X as ChatInfo,
185
- Y as ChatInput,
186
- Z as ChatList,
187
- w as FileMessage,
188
- S as ImageMessage,
189
- ee as MessageFeed,
190
- te as Profile,
191
- A as TextMessage
527
+ x as Chat,
528
+ VA as Chat2,
529
+ oV as ChatInfo,
530
+ iV as ChatInput,
531
+ rV as ChatList,
532
+ cV as ChatList2,
533
+ lV as Feed,
534
+ nA as FileMessage,
535
+ nV as ImageMessage,
536
+ dV as Profile,
537
+ mA as TextMessage,
538
+ uV as formatTimestamp,
539
+ mV as insertDaySeparators,
540
+ gV as playNotificationAudio,
541
+ pV as sortByTimestamp
192
542
  };
@@ -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(c,A){typeof exports=="object"&&typeof module<"u"?A(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],A):(c=typeof globalThis<"u"?globalThis:c||self,A(c.vuessages={},c.Vue))})(this,function(c,A){"use strict";const r=(e,t)=>{const V=e.__vccOpts||e;for(const[s,n]of t)V[s]=n;return V},E=r({__name:"Chat",props:{chat:{type:Object,required:!0}},emits:["select"],setup(e,{emit:t}){const V=e,s=t,n=()=>{s("select",V.chat)};return(a,o)=>(A.openBlock(),A.createElementBlock("div",{class:"chat",onClick:n},[A.createElementVNode("p",null,A.toDisplayString(e.chat.name)+" "+A.toDisplayString(e.chat.countUnread),1)]))}},[["__scopeId","data-v-77b8ac34"]]),B={class:"chat-item__container"},I={class:"chat-item__avatar-container"},C=["src"],u={key:1,class:"pi pi-user"},R={class:"chat-item__info-container"},J={class:"chat-item__name"},y={key:0,class:"chat-item__last-message"},Q={class:"chat-item__details-container"},S={key:0,class:"chat-item__unread"},D={key:1,class:"chat-item__time"},f=r({__name:"Chat2",props:{chat:{type:Object,required:!0}},emits:["select"],setup(e,{emit:t}){const V=e,s=t,n=()=>{s("select",V.chat)},a=()=>V.chat.isSelected?"chat-item__selected":"chat-item";return(o,i)=>(A.openBlock(),A.createElementBlock("div",{class:A.normalizeClass(a()),onClick:n},[A.createElementVNode("div",B,[A.createElementVNode("div",I,[V.chat.avatar?(A.openBlock(),A.createElementBlock("img",{key:0,src:V.chat.avatar,height:"32",width:"32"},null,8,C)):(A.openBlock(),A.createElementBlock("span",u))]),A.createElementVNode("div",R,[A.createElementVNode("div",J,A.toDisplayString(e.chat.name),1),e.chat.lastMessage?(A.openBlock(),A.createElementBlock("div",y,A.toDisplayString(e.chat.lastMessage),1)):A.createCommentVNode("",!0)]),A.createElementVNode("div",Q,[e.chat.countUnread>0?(A.openBlock(),A.createElementBlock("div",S,A.toDisplayString(e.chat.countUnread),1)):A.createCommentVNode("",!0),e.chat["lastActivity.time"]?(A.openBlock(),A.createElementBlock("div",D,A.toDisplayString(e.chat["lastActivity.time"]),1)):A.createCommentVNode("",!0)])])],2))}},[["__scopeId","data-v-abade668"]]),N={class:"file-message"},U={class:"file-message__container"},M=["href"],k=r({__name:"FileMessage",props:{message:{type:Object,required:!0}},setup(e){return(t,V)=>(A.openBlock(),A.createElementBlock("div",N,[A.createElementVNode("div",U,[A.createElementVNode("a",{class:"file-message__link",href:e.message.url,download:""},[V[0]||(V[0]=A.createElementVNode("span",{class:"pi pi-file"},null,-1)),A.createTextVNode(" "+A.toDisplayString(e.message.filename),1)],8,M),V[1]||(V[1]=A.createElementVNode("span",{class:"file-message__time"},"22:02",-1))])]))}},[["__scopeId","data-v-d65084f4"]]),q=["messageId"],K=["src","alt"],F={class:"message-time"},w=r({__name:"ImageMessage",props:{message:{type:Object,required:!0}},setup(e){const t=e;function V(){return t.message.position==="left"?"image-message-left":"image-message-right"}return(s,n)=>(A.openBlock(),A.createElementBlock("div",{class:A.normalizeClass(V()),messageId:e.message.messageId},[A.createElementVNode("img",{src:e.message.url,alt:e.message.alt,class:"image-message"},null,8,K),A.createElementVNode("div",F,A.toDisplayString(e.message.time),1)],10,q))}},[["__scopeId","data-v-9abe971c"]]),W={class:"text-message"},Z=["messageId"],h=r({__name:"TextMessage",props:{message:{type:Object,required:!0}},setup(e){function t(V){return V.direction==="incoming"?"text-message__left":"text-message__right"}return(V,s)=>(A.openBlock(),A.createElementBlock("div",W,[A.createElementVNode("div",{class:A.normalizeClass(t(e.message)),messageId:e.message.messageId},[A.createElementVNode("p",null,A.toDisplayString(e.message.text),1),s[0]||(s[0]=A.createElementVNode("span",{class:"text-message__time"},"22:02",-1))],10,Z)]))}},[["__scopeId","data-v-a831158c"]]),b={class:"chat-info"},z={key:0,class:"chat-info__container"},j={class:"chat-info__avatar-container"},L=["src"],T={key:1},Y={class:"chat-info__title"},H=r({__name:"ChatInfo",props:{chat:{type:Object,required:!0}},setup(e){const t=e;return(V,s)=>(A.openBlock(),A.createElementBlock("div",b,[e.chat?(A.openBlock(),A.createElementBlock("div",z,[A.createElementVNode("div",j,[t.chat.avatar?(A.openBlock(),A.createElementBlock("img",{key:0,src:t.chat.avatar},null,8,L)):(A.openBlock(),A.createElementBlock("span",T,s[0]||(s[0]=[A.createElementVNode("i",{class:"pi pi-user"},null,-1)])))]),A.createElementVNode("h2",Y,A.toDisplayString(e.chat.name),1),s[1]||(s[1]=A.createElementVNode("p",{class:"chat-info__time"},"Был(а) недавно",-1))])):A.createCommentVNode("",!0)]))}},[["__scopeId","data-v-798557ec"]]),x={class:"chat-input"},G=r({__name:"ChatInput",emits:["send"],setup(e,{emit:t}){const V=t,s=A.ref(""),n=A.ref(null),a=()=>{s.value.trim()&&(V("send",s.value),s.value="",A.unref(n).focus())};return(o,i)=>(A.openBlock(),A.createElementBlock("div",x,[A.withDirectives(A.createElementVNode("input",{"onUpdate:modelValue":i[0]||(i[0]=g=>s.value=g),ref_key:"refInput",ref:n,onKeydown:A.withKeys(a,["enter"]),placeholder:"Type a message..."},null,544),[[A.vModelText,s.value]]),A.createElementVNode("button",{onClick:a},"Send")]))}},[["__scopeId","data-v-07719b64"]]),O={class:"chat-list"},_=r({__name:"ChatList",props:{chats:{type:Array,required:!0}},emits:["select"],setup(e,{emit:t}){const V=e,s=t,n=o=>{s("select",o)},a=()=>V.chats.sort((o,i)=>{if(o.countUnread>i.countUnread)return-1;if(o.countUnread<i.countUnread)return 1;if(o.countUnread==i.countUnread)return 0});return(o,i)=>(A.openBlock(),A.createElementBlock("div",O,[(A.openBlock(!0),A.createElementBlock(A.Fragment,null,A.renderList(a(),g=>(A.openBlock(),A.createBlock(E,{key:g.chatId,chat:g,onSelect:n},null,8,["chat"]))),128))]))}},[["__scopeId","data-v-fafd9097"]]),X={class:"chat-filter"},P={class:"chat-filter__container"},v=r({__name:"ChatFilter",emits:["update"],setup(e,{emit:t}){const V=A.ref(""),s=t,n=()=>{const a=A.unref(V);s("update",a.value)};return(a,o)=>(A.openBlock(),A.createElementBlock("div",X,[A.createElementVNode("div",P,[A.createElementVNode("input",{class:"chat-filter__input",type:"text",ref_key:"refInput",ref:V,onInput:n,placeholder:"Поиск..."},null,544)])]))}},[["__scopeId","data-v-bacb0798"]]),$={class:"chat-list"},AA={class:"chat-list__container"},eA={class:"chat-list__items"},VA=r({__name:"ChatList2",props:{chats:{type:Array,required:!0},filterEnabled:{type:Boolean,required:!0}},emits:["select"],setup(e,{emit:t}){const V=A.ref(""),s=e,n=()=>{document.documentElement.classList.toggle("dark")},a=t,o=l=>{a("select",l),s.chats.forEach(m=>m.isSelected=!1);const d=s.chats.find(m=>m.chatId===l.chatId);d.isSelected=!0},i=()=>s.chats.sort((l,d)=>{if(l.countUnread>d.countUnread)return-1;if(l.countUnread<d.countUnread)return 1;if(l.countUnread==d.countUnread)return 0}).filter(l=>l.name.includes(V.value)),g=l=>{V.value=l};return(l,d)=>(A.openBlock(),A.createElementBlock("div",$,[A.createElementVNode("div",AA,[d[0]||(d[0]=A.createElementVNode("h2",{class:"chat-list__title"},"Чаты",-1)),e.filterEnabled?(A.openBlock(),A.createBlock(v,{key:0,class:"chat-list__filter",onUpdate:g})):A.createCommentVNode("",!0),A.createElementVNode("div",eA,[(A.openBlock(!0),A.createElementBlock(A.Fragment,null,A.renderList(i(),m=>(A.openBlock(),A.createBlock(f,{key:m.chatId,chat:m,onSelect:o},null,8,["chat"]))),128))]),A.createElementVNode("button",{onClick:n,style:{width:"150px",height:"20px","margin-top":"50px"}},"Смена темы")])]))}},[["__scopeId","data-v-69ebd00b"]]),tA={props:{message:{type:Object,required:!0}},setup(e){return{isOpen:A.ref(!1)}}},sA={class:"image-message"},aA={class:"image-message__container"},nA=["src","alt"],oA={key:0,class:"image-message__modal-overlay"},cA={class:"image-message__modal"},iA=["src","alt"];function rA(e,t,V,s,n,a){return A.openBlock(),A.createElementBlock("div",sA,[A.createElementVNode("div",aA,[A.createElementVNode("button",{class:"image-message__button",onClick:t[0]||(t[0]=o=>s.isOpen=!0)},[A.createElementVNode("img",{class:"image-message__preview-image",src:V.message.url,alt:V.message.alt},null,8,nA),t[2]||(t[2]=A.createElementVNode("span",{class:"image-message__time"},"22:02",-1))]),(A.openBlock(),A.createBlock(A.Teleport,{to:"body"},[A.createVNode(A.Transition,{name:"modal-fade"},{default:A.withCtx(()=>[s.isOpen?(A.openBlock(),A.createElementBlock("div",oA,[A.createElementVNode("div",cA,[A.createElementVNode("button",{class:"image-message__modal-close-button",onClick:t[1]||(t[1]=o=>s.isOpen=!1)},t[3]||(t[3]=[A.createElementVNode("span",null,[A.createElementVNode("i",{class:"pi pi-times"})],-1)])),A.createElementVNode("img",{class:"image-message__modal-image",src:V.message.url,alt:V.message.alt},null,8,iA)])])):A.createCommentVNode("",!0)]),_:1})]))])])}const lA=r(tA,[["render",rA],["__scopeId","data-v-85d6dbfc"]]),mA={class:"date-message"},dA={class:"date-message__container"},gA={class:"date-message__text"},pA=r({__name:"DateMessage",props:{message:{type:Object}},setup(e){return(t,V)=>(A.openBlock(),A.createElementBlock("div",mA,[A.createElementVNode("div",dA,[A.createElementVNode("p",gA,A.toDisplayString(e.message.text),1)])]))}},[["__scopeId","data-v-3b340776"]]),EA=["messageId"],fA={class:"audio-message__container"},kA={class:"audio-message__progress-bar-container"},hA={class:"audio-message__remaining-time"},BA=r({__name:"AudioMessage",props:{message:{type:Object,required:!0}},setup(e){function t(m){return m.position==="left"?"audio-message__left":"audio-message__right"}const V=A.ref(null),s=A.ref(!1),n=A.ref(0),a=A.ref(0);function o(){V.value&&(s.value?V.value.pause():V.value.play(),s.value=!s.value)}const i=m=>{const p=Math.floor(m/60),NA=Math.floor(m%60);return`${p.toString().padStart(2,"0")}:${NA.toString().padStart(2,"0")}`},g=A.computed(()=>V.value?i(a.value):"0:00"),l=A.computed(()=>V.value?i(n.value):"0:00"),d=A.computed(()=>n.value>0?a.value/n.value*100:0);return A.onMounted(()=>{V.value.addEventListener("loadedmetadata",()=>{n.value=V.value.duration}),V.value.addEventListener("timeupdate",()=>{a.value=V.value.currentTime})}),(m,p)=>(A.openBlock(),A.createElementBlock("div",{class:A.normalizeClass(["audio-message",t(e.message)]),messageId:e.message.messageId},[A.createElementVNode("audio",{ref_key:"player",ref:V,src:"/sample-6s.mp3"},null,512),A.createElementVNode("div",fA,[A.withDirectives(A.createElementVNode("button",{class:"audio-message__play",onClick:o},p[0]||(p[0]=[A.createElementVNode("span",{class:"pi pi-play"},null,-1)]),512),[[A.vShow,!s.value]]),A.withDirectives(A.createElementVNode("button",{class:"audio-message__pause",onClick:o},p[1]||(p[1]=[A.createElementVNode("span",{class:"pi pi-pause"},null,-1)]),512),[[A.vShow,s.value]]),A.createElementVNode("div",kA,[A.createElementVNode("div",{class:"audio-message__progress-bar",style:A.normalizeStyle({width:d.value+"%"})},null,4)]),A.createElementVNode("p",hA,A.toDisplayString(`${g.value} / ${l.value}`),1),p[2]||(p[2]=A.createElementVNode("span",{class:"audio-message__time"},"22:02",-1))])],10,EA))}},[["__scopeId","data-v-8b044fcf"]]),IA={class:"message-feed__container"},CA=r({__name:"Feed",props:{objects:{type:Array,required:!0}},setup(e){const t=A.ref(null),V=e,s=a=>({"message.text":h,"message.image":lA,"message.file":k,"message.audio":BA,"system.date":pA})[a];function n(){A.nextTick(function(){const a=A.unref(t);a.scrollTop=a.scrollHeight})}return A.onUpdated(()=>n),A.watch(()=>V.objects,n),(a,o)=>(A.openBlock(),A.createElementBlock("div",{class:"message-feed",ref_key:"refFeed",ref:t},[A.createElementVNode("div",IA,[(A.openBlock(!0),A.createElementBlock(A.Fragment,null,A.renderList(e.objects,i=>(A.openBlock(),A.createBlock(A.resolveDynamicComponent(s(i.type)),{key:i.messageId,message:i},null,8,["message"]))),128))])],512))}},[["__scopeId","data-v-cd136cf4"]]),uA={class:"profile"},RA={key:0},JA=r({__name:"Profile",props:{user:{type:Object,required:!0}},setup(e){return(t,V)=>(A.openBlock(),A.createElementBlock("div",uA,[e.user?(A.openBlock(),A.createElementBlock("div",RA,[A.createElementVNode("h2",null,A.toDisplayString(e.user.name),1),A.createElementVNode("p",null,A.toDisplayString(e.user.email),1),A.createElementVNode("p",null,A.toDisplayString(e.user.phone),1)])):A.createCommentVNode("",!0)]))}},[["__scopeId","data-v-e1bf37ef"]]);function yA(e){const t=+new Date(Number(e)*1e3),V=+new Date,s=Math.floor((V-t)/1e3),n=Math.floor(s/60),a=Math.floor(n/60),o=Math.floor(a/24);return o>30?t.toLocaleString():o>0?`${o} ${o===1?"день":"дня"} назад`:a>0?`${a} ${a===1?"час":"часа"} назад`:n>0?`${n} ${n===1?"минута":"минуты"} назад`:s>0?`${s} ${s===1?"секунда":"секунды"} назад`:"Только что"}const QA=e=>{const t=[];let V=null;for(let s=0;s<e.length;s++){const n=e[s],a=new Date(n.timestamp*1e3).toLocaleDateString();console.log("message",n,a),a!==V&&(t.push({isSeparator:!0,day:a,text:a,type:"system.date"}),V=a),t.push(n)}return t},SA=async()=>{try{if(await navigator.mediaDevices.getUserMedia({audio:!0})){const t=new Audio;t.src="data:audio/mpeg;base64,SUQzAwAAAAAfdlRZRVIAAAAFAAAAMjAyMlRJVDIAAAA7AAAB//4XBDIEQwQ6BCAAPQQwBD8EPgQ8BDgEPQQwBD0EOARPBCAAPARDBDcESwQ6BDAEOwRMBD0ESwQ5BFRQRTEAAAABAAAAVEFMQgAAAAEAAABUQ09OAAAAAQAAAENPTU0AAAAFAAAAZW5nAFRSQ0sAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+5Jk+ITj8WJAMfo0EHgLB8AbZkoMVWDwBOBwQWsp3kQ3jSpVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQABo4uLzcp3zUUiIoSBCgMw+HKPMh2eNmndrzZqWIyHkf//5fmRmR8yP8jIjLkZF/+TKwMECsdD//JlYGCBB0cmVgoUFUsoIHZWWAwQMKCBpYDBAwciLBNFSy1NQMBkE1JERQkSIJoLRJGiij0FqqTjQUCPQWNEdTf14qKC38XZ///i2sVFG//8WFxVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//uSZIaP8uNbJpDBHkIvYgTgGMY4AAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRBRz8/Pz8gPz8/Pz8/Pz8/Pz8gPz8/Pz8/Pz8/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIwMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/",t.play()}}catch{console.log("no audio permissions")}},DA=e=>e.sort((t,V)=>Number(t.timestamp)<Number(V.timestamp)?-1:Number(t.timestamp)>Number(V.timestamp)?1:0);c.Chat=E,c.Chat2=f,c.ChatInfo=H,c.ChatInput=G,c.ChatList=_,c.ChatList2=VA,c.Feed=CA,c.FileMessage=k,c.ImageMessage=w,c.Profile=JA,c.TextMessage=h,c.formatTimestamp=yA,c.insertDaySeparators=QA,c.playNotificationAudio=SA,c.sortByTimestamp=DA,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mobilon-dev/chotto",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "type": "module",
5
5
  "main": "./dist/vuessages.umd.js",
6
6
  "module": "./dist/vuessages.es.js",
@@ -24,25 +24,26 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "date-fns": "^4.1.0",
27
- "pinia": "^2.2.2",
28
- "vue": "^3.5.6",
27
+ "pinia": "^2.2.3",
28
+ "primeicons": "^7.0.0",
29
+ "vue": "^3.5.10",
29
30
  "vue3-emoji-picker": "^1.1.8"
30
31
  },
31
32
  "devDependencies": {
32
- "@chromatic-com/storybook": "^1.9.0",
33
- "@storybook/addon-essentials": "^8.3.1",
34
- "@storybook/addon-interactions": "^8.3.1",
35
- "@storybook/addon-links": "^8.3.1",
36
- "@storybook/addon-onboarding": "^8.3.1",
37
- "@storybook/blocks": "^8.3.1",
38
- "@storybook/test": "^8.3.1",
39
- "@storybook/vue3": "^8.3.1",
40
- "@storybook/vue3-vite": "^8.3.1",
41
- "@types/node": "^22.5.5",
33
+ "@chromatic-com/storybook": "^2.0.2",
34
+ "@storybook/addon-essentials": "^8.3.4",
35
+ "@storybook/addon-interactions": "^8.3.4",
36
+ "@storybook/addon-links": "^8.3.4",
37
+ "@storybook/addon-styling-webpack": "^1.0.0",
38
+ "@storybook/blocks": "^8.3.4",
39
+ "@storybook/test": "^8.3.4",
40
+ "@storybook/vue3": "^8.3.4",
41
+ "@storybook/vue3-vite": "^8.3.4",
42
+ "@types/node": "^22.7.4",
42
43
  "@vitejs/plugin-vue": "^5.1.4",
43
- "storybook": "^8.3.1",
44
+ "storybook": "^8.3.4",
44
45
  "typescript": "^5.6.2",
45
- "vite": "^5.4.6",
46
+ "vite": "^5.4.8",
46
47
  "vite-plugin-static-copy": "^1.0.6",
47
48
  "vue-tsc": "^2.1.6"
48
49
  }