@mobilon-dev/chotto 0.3.103 → 0.3.105

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.
Files changed (30) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +3 -3
  3. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +164 -160
  4. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +2 -2
  5. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +106 -102
  6. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +3 -3
  7. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +121 -116
  8. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +3 -3
  9. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +116 -111
  10. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +1 -1
  11. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +153 -149
  12. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +3 -3
  13. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +131 -126
  14. package/dist/components/3_compounds/ChatInput/ChatInput.vue.js +2 -2
  15. package/dist/components/3_compounds/ChatInput/ChatInput.vue2.js +189 -161
  16. package/dist/components/3_compounds/Feed/Feed.vue.js +2 -2
  17. package/dist/components/3_compounds/Feed/Feed.vue2.js +174 -170
  18. package/dist/components/3_compounds/Feed/composables/useFeedReply.js +10 -10
  19. package/dist/functions/isSmsChannel.js +19 -0
  20. package/dist/hooks/messages/canStartEditLastSent.js +16 -0
  21. package/dist/hooks/messages/useMessageHoverActions.js +13 -0
  22. package/dist/index.js +112 -103
  23. package/dist/types/components/3_compounds/ChatInput/ChatInput.vue.d.ts +13 -0
  24. package/dist/types/components/3_compounds/Feed/composables/useFeedReply.d.ts +2 -1
  25. package/dist/types/functions/index.d.ts +1 -0
  26. package/dist/types/functions/isSmsChannel.d.ts +8 -0
  27. package/dist/types/hooks/messages/canStartEditLastSent.d.ts +22 -0
  28. package/dist/types/hooks/messages/index.d.ts +2 -0
  29. package/dist/types/hooks/messages/useMessageHoverActions.d.ts +9 -0
  30. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  /* empty css */
3
3
  import { default as r } from "./components/1_atoms/ButtonContextMenu/ButtonContextMenu.vue.js";
4
4
  import { default as f } from "./components/1_atoms/ContactContextMenu/ContactContextMenu.vue.js";
5
- import { default as p } from "./components/1_atoms/ContextMenu/ContextMenu.vue.js";
5
+ import { default as d } from "./components/1_atoms/ContextMenu/ContextMenu.vue.js";
6
6
  import { default as m } from "./components/1_atoms/EmbedPreview/EmbedPreview.vue.js";
7
7
  import { default as x } from "./components/1_atoms/LinkPreview/LinkPreview.vue.js";
8
8
  import { default as n } from "./components/1_atoms/Tooltip/Tooltip.vue.js";
@@ -10,16 +10,16 @@ import { default as M } from "./components/1_icons/AvatarIcon.vue.js";
10
10
  import { default as C } from "./components/1_icons/CheckIcon.vue.js";
11
11
  import { default as h } from "./components/1_icons/CloseButtonIcon.vue.js";
12
12
  import { default as R } from "./components/1_icons/ContactCRMIcon.vue.js";
13
- import { default as I } from "./components/1_icons/MenuIcon.vue.js";
13
+ import { default as A } from "./components/1_icons/MenuIcon.vue.js";
14
14
  import { default as F } from "./components/1_icons/SearchIcon.vue.js";
15
15
  import { default as B } from "./components/1_icons/SettingsIcon.vue.js";
16
16
  import { default as b } from "./components/1_icons/TelegramIcon.vue.js";
17
17
  import { default as E } from "./components/1_icons/WhatsAppIcon.vue.js";
18
- import { default as w } from "./components/1_icons/MessageStatus/ErrorStatusIcon.vue.js";
18
+ import { default as k } from "./components/1_icons/MessageStatus/ErrorStatusIcon.vue.js";
19
19
  import { default as V } from "./components/1_icons/MessageStatus/PendingStatusIcon.vue.js";
20
- import { default as U } from "./components/1_icons/MessageStatus/ReadStatusIcon.vue.js";
21
- import { default as H } from "./components/1_icons/MessageStatus/ReceivedStatusIcon.vue.js";
22
- import { default as K } from "./components/1_icons/MessageStatus/SentStatusIcon.vue.js";
20
+ import { default as H } from "./components/1_icons/MessageStatus/ReadStatusIcon.vue.js";
21
+ import { default as j } from "./components/1_icons/MessageStatus/ReceivedStatusIcon.vue.js";
22
+ import { default as O } from "./components/1_icons/MessageStatus/SentStatusIcon.vue.js";
23
23
  import { default as Q } from "./components/2_blocks/CommunicationPanel/CommunicationPanel.vue.js";
24
24
  import { default as X } from "./components/2_blocks/FeedFoundItem/FeedFoundItem.vue.js";
25
25
  import { default as z } from "./components/2_blocks/FeedFoundObjects/FeedFoundObjects.vue.js";
@@ -29,7 +29,7 @@ import { default as ee } from "./components/2_chatinput_elements/ButtonEmojiPick
29
29
  import { default as oe } from "./components/2_chatinput_elements/ButtonTemplateSelector/ButtonTemplateSelector.vue.js";
30
30
  import { default as re } from "./components/2_chatinput_elements/ButtonWabaTemplateSelector/ButtonWabaTemplateSelector.vue.js";
31
31
  import { default as fe } from "./components/2_chatinput_elements/FilePreview/FilePreview.vue.js";
32
- import { default as pe } from "./components/2_chatinput_elements/FileUploader/FileUploader.vue.js";
32
+ import { default as de } from "./components/2_chatinput_elements/FileUploader/FileUploader.vue.js";
33
33
  import { default as me } from "./components/2_chatinput_elements/PlaceholderComponent/PlaceholderComponent.vue.js";
34
34
  import { default as xe } from "./components/2_chatinput_elements/StickerPicker/StickerPicker.vue.js";
35
35
  import { default as ne } from "./components/2_chatinput_elements/TemplateSelector/TemplateSelector.vue.js";
@@ -37,16 +37,16 @@ import { default as Me } from "./components/2_chatinput_elements/TextFormatToolb
37
37
  import { default as Ce } from "./components/2_chatinput_elements/WABAAttachmentSection/WABAAttachmentSection.vue.js";
38
38
  import { default as he } from "./components/2_chatinput_elements/WABAQuickReplyButtons/WABAQuickReplyButtons.vue.js";
39
39
  import { default as Re } from "./components/2_chatinput_elements/WABASeparatedQuickButtons/WABASeparatedQuickButtons.vue.js";
40
- import { default as Ie } from "./components/2_chatinput_elements/WABATemplateSelector/WABATemplateSelector.vue.js";
40
+ import { default as Ae } from "./components/2_chatinput_elements/WABATemplateSelector/WABATemplateSelector.vue.js";
41
41
  import { default as Fe } from "./components/2_chatlist_elements/ChatFilter/ChatFilter.vue.js";
42
42
  import { default as Be } from "./components/2_chatlist_elements/ChatItem/ChatItem.vue.js";
43
43
  import { default as be } from "./components/2_chatlist_elements/ChatTabs/ChatTabs.vue.js";
44
44
  import { default as Ee } from "./components/2_elements/AudioRecorder/AudioRecorder.vue.js";
45
- import { default as we } from "./components/2_elements/ChannelSelector/ChannelSelector.vue.js";
45
+ import { default as ke } from "./components/2_elements/ChannelSelector/ChannelSelector.vue.js";
46
46
  import { default as Ve } from "./components/2_elements/ChatInfo/ChatInfo.vue.js";
47
- import { default as Ue } from "./components/2_elements/ChatPanel/ChatPanel.vue.js";
48
- import { default as He } from "./components/2_elements/ContactInfo/ContactInfo.vue.js";
49
- import { default as Ke } from "./components/2_elements/ThemeMode/ThemeMode.vue.js";
47
+ import { default as He } from "./components/2_elements/ChatPanel/ChatPanel.vue.js";
48
+ import { default as je } from "./components/2_elements/ContactInfo/ContactInfo.vue.js";
49
+ import { default as Oe } from "./components/2_elements/ThemeMode/ThemeMode.vue.js";
50
50
  import { default as Qe } from "./components/2_elements/UserProfile/UserProfile.vue.js";
51
51
  import { default as Xe } from "./components/2_elements/VideoRecorder/VideoRecorder.vue.js";
52
52
  import { default as ze } from "./components/2_feed_elements/AudioMessage/AudioMessage.vue.js";
@@ -56,7 +56,7 @@ import { default as et } from "./components/2_feed_elements/CallMessage/CallMess
56
56
  import { default as ot } from "./components/2_feed_elements/DateMessage/DateMessage.vue.js";
57
57
  import { default as rt } from "./components/2_feed_elements/DeletedMessageContent/DeletedMessageContent.vue.js";
58
58
  import { default as ft } from "./components/2_feed_elements/MissedCallMessage/MissedCallMessage.vue.js";
59
- import { default as pt } from "./components/2_feed_elements/DateMessageSticky/DateMessageSticky.vue.js";
59
+ import { default as dt } from "./components/2_feed_elements/DateMessageSticky/DateMessageSticky.vue.js";
60
60
  import { default as mt } from "./components/2_feed_elements/DelimiterMessage/DelimiterMessage.vue.js";
61
61
  import { default as xt } from "./components/2_feed_elements/EditTextMessage/EditTextMessage.vue.js";
62
62
  import { default as nt } from "./components/2_feed_elements/FeedKeyboard/FeedKeyboard.vue.js";
@@ -64,16 +64,16 @@ import { default as Mt } from "./components/2_feed_elements/FileMessage/FileMess
64
64
  import { default as Ct } from "./components/2_feed_elements/ImageMessage/ImageMessage.vue.js";
65
65
  import { default as ht } from "./components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue.js";
66
66
  import { default as Rt } from "./components/2_feed_elements/MessageReactions/MessageReactions.vue.js";
67
- import { default as It } from "./components/2_feed_elements/MessageStatusIndicator/MessageStatusIndicator.vue.js";
67
+ import { default as At } from "./components/2_feed_elements/MessageStatusIndicator/MessageStatusIndicator.vue.js";
68
68
  import { default as Ft } from "./components/2_feed_elements/StickerMessage/StickerMessage.vue.js";
69
69
  import { default as Bt } from "./components/2_feed_elements/ReplyAudioMessage/ReplyAudioMessage.vue.js";
70
70
  import { default as bt } from "./components/2_feed_elements/ReplyCallMessage/ReplyCallMessage.vue.js";
71
71
  import { default as Et } from "./components/2_feed_elements/ReplyFileMessage/ReplyFileMessage.vue.js";
72
- import { default as wt } from "./components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue.js";
72
+ import { default as kt } from "./components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue.js";
73
73
  import { default as Vt } from "./components/2_feed_elements/ReplyStickerMessage/ReplyStickerMessage.vue.js";
74
- import { default as Ut } from "./components/2_feed_elements/ReplyTextMessage/ReplyTextMessage.vue.js";
75
- import { default as Ht } from "./components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue.js";
76
- import { default as Kt } from "./components/2_feed_elements/SplashScreen/SplashScreen.vue.js";
74
+ import { default as Ht } from "./components/2_feed_elements/ReplyTextMessage/ReplyTextMessage.vue.js";
75
+ import { default as jt } from "./components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue.js";
76
+ import { default as Ot } from "./components/2_feed_elements/SplashScreen/SplashScreen.vue.js";
77
77
  import { default as Qt } from "./components/2_feed_elements/SystemMessage/SystemMessage.vue.js";
78
78
  import { default as Xt } from "./components/2_feed_elements/TextMessage/TextMessage.vue.js";
79
79
  import { default as zt } from "./components/2_feed_elements/TypingMessage/TypingMessage.vue.js";
@@ -91,15 +91,15 @@ import { default as go } from "./components/3_compounds/SideBar/SideBar.vue.js";
91
91
  import { default as So } from "./components/4_layouts/BaseLayout/BaseLayout.vue.js";
92
92
  import { default as yo } from "./components/4_layouts/ExtendedLayout/ExtendedLayout.vue.js";
93
93
  import { default as To } from "./components/4_layouts/AdaptiveExtendedLayout/AdaptiveExtendedLayout.vue.js";
94
- import { default as Ao } from "./components/4_layouts/FeedLayout/FeedLayout.vue.js";
94
+ import { default as Io } from "./components/4_layouts/FeedLayout/FeedLayout.vue.js";
95
95
  import { default as Po } from "./components/4_layouts/ChatWrapper/ChatWrapper.vue.js";
96
96
  import { default as Do } from "./components/5_containers/BaseContainer/BaseContainer.vue.js";
97
97
  import { default as vo } from "./components/5_containers/FloatContainer/FloatContainer.vue.js";
98
- import { buildFilePreview as ko, generatePreview as wo } from "./hooks/uploadFile/generatePreview.js";
98
+ import { buildFilePreview as Lo, generatePreview as ko } from "./hooks/uploadFile/generatePreview.js";
99
99
  import { getTypeFileByMime as Vo } from "./hooks/uploadFile/getTypeFileByMime.js";
100
- import { uploadFile as Uo } from "./hooks/uploadFile/uploadFile.js";
101
- import { useDelayDebouncedRef as Ho } from "./hooks/useDelayDebouncedRef.js";
102
- import { useImmediateDebouncedRef as Ko } from "./hooks/useImmediateDebouncedRef.js";
100
+ import { uploadFile as Ho } from "./hooks/uploadFile/uploadFile.js";
101
+ import { useDelayDebouncedRef as jo } from "./hooks/useDelayDebouncedRef.js";
102
+ import { useImmediateDebouncedRef as Oo } from "./hooks/useImmediateDebouncedRef.js";
103
103
  import { MAX_ATTACHED_FILES as Qo, commitChatDraftToList as _o, getChatDraft as Xo, getDraftFiles as qo, useMessageDraft as zo } from "./hooks/useMessageDraft.js";
104
104
  import { useSearchModel as Jo } from "./hooks/useSearchModel.js";
105
105
  import { useTheme as Zo } from "./hooks/useTheme.js";
@@ -107,38 +107,41 @@ import { useEmojiNative as ea } from "./hooks/useEmojiNative.js";
107
107
  import { useModalCreateChat as oa } from "./hooks/modals/useCreateChat.js";
108
108
  import { useModalCreateChat2 as ra } from "./hooks/modals/useCreateChat2.js";
109
109
  import { useModalCreateDialog as fa } from "./hooks/modals/useCreateDialog.js";
110
- import { useConfirmDeleteMessage as pa } from "./hooks/modals/useConfirmDeleteMessage.js";
110
+ import { useConfirmDeleteMessage as da } from "./hooks/modals/useConfirmDeleteMessage.js";
111
111
  import { useModalSelectUser2 as ma } from "./hooks/modals/useModalSelectUser2.js";
112
112
  import { useModalVideoRecorder as xa } from "./hooks/modals/useVideoRecorder.js";
113
113
  import { getValidationReport as na, validateChats as ca } from "./hooks/validators/chats/chatValidator.js";
114
114
  import { useChatValidator as ga } from "./hooks/validators/chats/useChatValidator.js";
115
115
  import { getMessageValidationReport as Sa, validateMessages as ha } from "./hooks/validators/messages/messageValidator.js";
116
116
  import { useMessageValidator as Ra } from "./hooks/validators/messages/useMessageValidator.js";
117
- import { getSidebarValidationReport as Ia, validateSidebarItems as Aa } from "./hooks/validators/sidebar/sidebarValidator.js";
117
+ import { getSidebarValidationReport as Aa, validateSidebarItems as Ia } from "./hooks/validators/sidebar/sidebarValidator.js";
118
118
  import { useSidebarValidator as Pa } from "./hooks/validators/sidebar/useSidebarValidator.js";
119
119
  import { useValidation as Da } from "./hooks/validators/useValidation.js";
120
120
  import { useMessageActions as va } from "./hooks/messages/useMessageActions.js";
121
- import { calculateMessageMenuPosition as ka, findAppBoundsRect as wa } from "./hooks/messages/calculateMessageMenuPosition.js";
122
- import { useMessageMenuActions as Va } from "./hooks/messages/useMessageMenuActions.js";
123
- import { useMessageLinks as Ua } from "./hooks/messages/useMessageLinks.js";
124
- import { useChannelAccentColor as Ha } from "./hooks/messages/useChannelAccentColor.js";
125
- import { useSubtextTooltip as Ka } from "./hooks/messages/useSubtextTooltip.js";
126
- import { hideReplyPreview as Qa, showReplyPreview as _a, useStartReply as Xa } from "./hooks/messages/useStartReply.js";
127
- import { hideEditPreview as za, showEditPreview as Ga, useStartEdit as Ja } from "./hooks/messages/useStartEdit.js";
128
- import { buildReplyPayload as Za } from "./hooks/messages/buildReplyPayload.js";
129
- import { buildEditPayload as er } from "./hooks/messages/buildEditPayload.js";
130
- import { getEditTooltipLines as or } from "./hooks/messages/getEditTooltipLines.js";
131
- import { getDeletedOriginalText as rr, getDeletedTooltipLines as sr } from "./hooks/messages/getDeletedOriginalText.js";
132
- import { getStatus as lr, getStatusTitle as pr, statuses as dr } from "./functions/getStatusMessage.js";
133
- import { formatTimestamp as ur } from "./functions/formatTimestamp.js";
134
- import { playNotificationAudio as ir } from "./functions/playNotificationAudio.js";
135
- import { insertDaySeparators as cr } from "./functions/insertDaySeparators.js";
136
- import { sortByTimestamp as gr } from "./functions/sortByTimestamp.js";
137
- import { getMessageClass as Sr } from "./functions/getMessageClass.js";
138
- import { createReactionHandlers as yr } from "./functions/createReactionHandlers.js";
139
- import { getChannelAccentColor as Tr } from "./functions/getChannelAccentColor.js";
140
- import { parseMarkdown as Ar } from "./functions/parseMarkdown.js";
141
- import { safeMediaPlay as Pr, safeMediaPlayVoid as Br } from "./functions/safeMediaPlay.js";
121
+ import { useMessageHoverActions as La } from "./hooks/messages/useMessageHoverActions.js";
122
+ import { calculateMessageMenuPosition as wa, findAppBoundsRect as Va } from "./hooks/messages/calculateMessageMenuPosition.js";
123
+ import { useMessageMenuActions as Ha } from "./hooks/messages/useMessageMenuActions.js";
124
+ import { useMessageLinks as ja } from "./hooks/messages/useMessageLinks.js";
125
+ import { useChannelAccentColor as Oa } from "./hooks/messages/useChannelAccentColor.js";
126
+ import { useSubtextTooltip as Qa } from "./hooks/messages/useSubtextTooltip.js";
127
+ import { hideReplyPreview as Xa, showReplyPreview as qa, useStartReply as za } from "./hooks/messages/useStartReply.js";
128
+ import { hideEditPreview as Ja, showEditPreview as Ya, useStartEdit as Za } from "./hooks/messages/useStartEdit.js";
129
+ import { canStartEditLastSent as er, isCursorOnFirstLine as tr, isEditableLastSentCandidate as or } from "./hooks/messages/canStartEditLastSent.js";
130
+ import { buildReplyPayload as rr } from "./hooks/messages/buildReplyPayload.js";
131
+ import { buildEditPayload as fr } from "./hooks/messages/buildEditPayload.js";
132
+ import { getEditTooltipLines as dr } from "./hooks/messages/getEditTooltipLines.js";
133
+ import { getDeletedOriginalText as mr, getDeletedTooltipLines as ur } from "./hooks/messages/getDeletedOriginalText.js";
134
+ import { getStatus as ir, getStatusTitle as nr, statuses as cr } from "./functions/getStatusMessage.js";
135
+ import { formatTimestamp as gr } from "./functions/formatTimestamp.js";
136
+ import { playNotificationAudio as Sr } from "./functions/playNotificationAudio.js";
137
+ import { insertDaySeparators as yr } from "./functions/insertDaySeparators.js";
138
+ import { sortByTimestamp as Tr } from "./functions/sortByTimestamp.js";
139
+ import { getMessageClass as Ir } from "./functions/getMessageClass.js";
140
+ import { createReactionHandlers as Pr } from "./functions/createReactionHandlers.js";
141
+ import { getChannelAccentColor as Dr } from "./functions/getChannelAccentColor.js";
142
+ import { isSmsChannel as vr, isSmsFeedMessage as Er } from "./functions/isSmsChannel.js";
143
+ import { parseMarkdown as kr } from "./functions/parseMarkdown.js";
144
+ import { safeMediaPlay as Vr, safeMediaPlayVoid as Wr } from "./functions/safeMediaPlay.js";
142
145
  export {
143
146
  To as AdaptiveExtendedLayout,
144
147
  ze as AudioMessage,
@@ -154,14 +157,14 @@ export {
154
157
  oe as ButtonTemplateSelector,
155
158
  re as ButtonWabaTemplateSelector,
156
159
  et as CallMessage,
157
- we as ChannelSelector,
160
+ ke as ChannelSelector,
158
161
  Fe as ChatFilter,
159
162
  Ve as ChatInfo,
160
163
  po as ChatInput,
161
164
  Be as ChatItem,
162
165
  io as ChatList,
163
166
  uo as ChatListHeader,
164
- Ue as ChatPanel,
167
+ He as ChatPanel,
165
168
  be as ChatTabs,
166
169
  Po as ChatWrapper,
167
170
  C as CheckIcon,
@@ -170,54 +173,54 @@ export {
170
173
  ro as ConfirmDeleteMessage,
171
174
  R as ContactCRMIcon,
172
175
  f as ContactContextMenu,
173
- He as ContactInfo,
174
- p as ContextMenu,
176
+ je as ContactInfo,
177
+ d as ContextMenu,
175
178
  ot as DateMessage,
176
- pt as DateMessageSticky,
179
+ dt as DateMessageSticky,
177
180
  rt as DeletedMessageContent,
178
181
  mt as DelimiterMessage,
179
182
  xt as EditTextMessage,
180
183
  m as EmbedPreview,
181
- w as ErrorStatusIcon,
184
+ k as ErrorStatusIcon,
182
185
  yo as ExtendedLayout,
183
186
  co as Feed,
184
187
  X as FeedFoundItem,
185
188
  z as FeedFoundObjects,
186
189
  nt as FeedKeyboard,
187
- Ao as FeedLayout,
190
+ Io as FeedLayout,
188
191
  J as FeedSearch,
189
192
  Mt as FileMessage,
190
193
  fe as FilePreview,
191
- pe as FileUploader,
194
+ de as FileUploader,
192
195
  vo as FloatContainer,
193
196
  Ct as ImageMessage,
194
197
  x as LinkPreview,
195
198
  Qo as MAX_ATTACHED_FILES,
196
- I as MenuIcon,
199
+ A as MenuIcon,
197
200
  ht as MessageKeyboard,
198
201
  Rt as MessageReactions,
199
- It as MessageStatusIndicator,
202
+ At as MessageStatusIndicator,
200
203
  ft as MissedCallMessage,
201
204
  Zt as Modal,
202
205
  eo as ModalFullscreen,
203
206
  oo as ModalNoFooter,
204
207
  V as PendingStatusIcon,
205
208
  me as PlaceholderComponent,
206
- U as ReadStatusIcon,
207
- H as ReceivedStatusIcon,
209
+ H as ReadStatusIcon,
210
+ j as ReceivedStatusIcon,
208
211
  Bt as ReplyAudioMessage,
209
212
  bt as ReplyCallMessage,
210
213
  Et as ReplyFileMessage,
211
- wt as ReplyImageMessage,
214
+ kt as ReplyImageMessage,
212
215
  Vt as ReplyStickerMessage,
213
- Ut as ReplyTextMessage,
214
- Ht as ReplyVideoMessage,
216
+ Ht as ReplyTextMessage,
217
+ jt as ReplyVideoMessage,
215
218
  F as SearchIcon,
216
219
  fo as SelectUser,
217
- K as SentStatusIcon,
220
+ O as SentStatusIcon,
218
221
  B as SettingsIcon,
219
222
  go as SideBar,
220
- Kt as SplashScreen,
223
+ Ot as SplashScreen,
221
224
  Ft as StickerMessage,
222
225
  xe as StickerPicker,
223
226
  Qt as SystemMessage,
@@ -225,7 +228,7 @@ export {
225
228
  ne as TemplateSelector,
226
229
  Me as TextFormatToolbar,
227
230
  Xt as TextMessage,
228
- Ke as ThemeMode,
231
+ Oe as ThemeMode,
229
232
  n as Tooltip,
230
233
  zt as TypingMessage,
231
234
  Qe as UserProfile,
@@ -234,52 +237,58 @@ export {
234
237
  Ce as WABAAttachmentSection,
235
238
  he as WABAQuickReplyButtons,
236
239
  Re as WABASeparatedQuickButtons,
237
- Ie as WABATemplateSelector,
240
+ Ae as WABATemplateSelector,
238
241
  E as WhatsAppIcon,
239
- er as buildEditPayload,
240
- ko as buildFilePreview,
241
- Za as buildReplyPayload,
242
- ka as calculateMessageMenuPosition,
242
+ fr as buildEditPayload,
243
+ Lo as buildFilePreview,
244
+ rr as buildReplyPayload,
245
+ wa as calculateMessageMenuPosition,
246
+ er as canStartEditLastSent,
243
247
  _o as commitChatDraftToList,
244
- yr as createReactionHandlers,
245
- wa as findAppBoundsRect,
246
- ur as formatTimestamp,
247
- wo as generatePreview,
248
- Tr as getChannelAccentColor,
248
+ Pr as createReactionHandlers,
249
+ Va as findAppBoundsRect,
250
+ gr as formatTimestamp,
251
+ ko as generatePreview,
252
+ Dr as getChannelAccentColor,
249
253
  Xo as getChatDraft,
250
- rr as getDeletedOriginalText,
251
- sr as getDeletedTooltipLines,
254
+ mr as getDeletedOriginalText,
255
+ ur as getDeletedTooltipLines,
252
256
  qo as getDraftFiles,
253
- or as getEditTooltipLines,
254
- Sr as getMessageClass,
257
+ dr as getEditTooltipLines,
258
+ Ir as getMessageClass,
255
259
  Sa as getMessageValidationReport,
256
- Ia as getSidebarValidationReport,
257
- lr as getStatus,
258
- pr as getStatusTitle,
260
+ Aa as getSidebarValidationReport,
261
+ ir as getStatus,
262
+ nr as getStatusTitle,
259
263
  Vo as getTypeFileByMime,
260
264
  na as getValidationReport,
261
- za as hideEditPreview,
262
- Qa as hideReplyPreview,
263
- cr as insertDaySeparators,
264
- Ar as parseMarkdown,
265
- ir as playNotificationAudio,
266
- Pr as safeMediaPlay,
267
- Br as safeMediaPlayVoid,
268
- Ga as showEditPreview,
269
- _a as showReplyPreview,
270
- gr as sortByTimestamp,
271
- dr as statuses,
272
- Uo as uploadFile,
273
- Ha as useChannelAccentColor,
265
+ Ja as hideEditPreview,
266
+ Xa as hideReplyPreview,
267
+ yr as insertDaySeparators,
268
+ tr as isCursorOnFirstLine,
269
+ or as isEditableLastSentCandidate,
270
+ vr as isSmsChannel,
271
+ Er as isSmsFeedMessage,
272
+ kr as parseMarkdown,
273
+ Sr as playNotificationAudio,
274
+ Vr as safeMediaPlay,
275
+ Wr as safeMediaPlayVoid,
276
+ Ya as showEditPreview,
277
+ qa as showReplyPreview,
278
+ Tr as sortByTimestamp,
279
+ cr as statuses,
280
+ Ho as uploadFile,
281
+ Oa as useChannelAccentColor,
274
282
  ga as useChatValidator,
275
- pa as useConfirmDeleteMessage,
276
- Ho as useDelayDebouncedRef,
283
+ da as useConfirmDeleteMessage,
284
+ jo as useDelayDebouncedRef,
277
285
  ea as useEmojiNative,
278
- Ko as useImmediateDebouncedRef,
286
+ Oo as useImmediateDebouncedRef,
279
287
  va as useMessageActions,
280
288
  zo as useMessageDraft,
281
- Ua as useMessageLinks,
282
- Va as useMessageMenuActions,
289
+ La as useMessageHoverActions,
290
+ ja as useMessageLinks,
291
+ Ha as useMessageMenuActions,
283
292
  Ra as useMessageValidator,
284
293
  oa as useModalCreateChat,
285
294
  ra as useModalCreateChat2,
@@ -288,12 +297,12 @@ export {
288
297
  xa as useModalVideoRecorder,
289
298
  Jo as useSearchModel,
290
299
  Pa as useSidebarValidator,
291
- Ja as useStartEdit,
292
- Xa as useStartReply,
293
- Ka as useSubtextTooltip,
300
+ Za as useStartEdit,
301
+ za as useStartReply,
302
+ Qa as useSubtextTooltip,
294
303
  Zo as useTheme,
295
304
  Da as useValidation,
296
305
  ca as validateChats,
297
306
  ha as validateMessages,
298
- Aa as validateSidebarItems
307
+ Ia as validateSidebarItems
299
308
  };
@@ -1,3 +1,5 @@
1
+ import type { PropType } from 'vue';
2
+ import type { ResolveEditLastSentMessage } from '@/hooks';
1
3
  declare var __VLS_16: {}, __VLS_29: {};
2
4
  type __VLS_Slots = {} & {
3
5
  'inline-buttons'?: (props: typeof __VLS_16) => any;
@@ -34,6 +36,11 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
34
36
  required: false;
35
37
  default: number;
36
38
  };
39
+ resolveEditLastSentMessage: {
40
+ type: PropType<ResolveEditLastSentMessage>;
41
+ required: false;
42
+ default: null;
43
+ };
37
44
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
38
45
  typing: (...args: any[]) => void;
39
46
  send: (...args: any[]) => void;
@@ -67,6 +74,11 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
67
74
  required: false;
68
75
  default: number;
69
76
  };
77
+ resolveEditLastSentMessage: {
78
+ type: PropType<ResolveEditLastSentMessage>;
79
+ required: false;
80
+ default: null;
81
+ };
70
82
  }>> & Readonly<{
71
83
  onTyping?: ((...args: any[]) => any) | undefined;
72
84
  onSend?: ((...args: any[]) => any) | undefined;
@@ -77,6 +89,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
77
89
  focusOnInputArea: boolean;
78
90
  disabledPlaceholder: string;
79
91
  inputButtonColor: string;
92
+ resolveEditLastSentMessage: ResolveEditLastSentMessage;
80
93
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
81
94
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
82
95
  export default _default;
@@ -2,11 +2,12 @@ import { IFeedObject } from '@/types';
2
2
  interface UseFeedReplyOptions {
3
3
  enableDoubleClickReply: boolean;
4
4
  emit: (event: 'messageAction' | 'clickRepliedMessage', payload: IFeedObject | string) => void;
5
+ isReplyAllowed?: (object: IFeedObject) => boolean;
5
6
  }
6
7
  /**
7
8
  * Композабл для обработки ответов и редактирования сообщений
8
9
  */
9
- export declare function useFeedReply({ enableDoubleClickReply, emit }: UseFeedReplyOptions): {
10
+ export declare function useFeedReply({ enableDoubleClickReply, emit, isReplyAllowed }: UseFeedReplyOptions): {
10
11
  getMessage: () => import("@/hooks").MessageDraft;
11
12
  messageAction: (message: IFeedObject) => void;
12
13
  handleClickReplied: (messageId: string) => void;
@@ -6,5 +6,6 @@ export * from './sortByTimestamp';
6
6
  export * from './getMessageClass';
7
7
  export * from './createReactionHandlers';
8
8
  export * from './getChannelAccentColor';
9
+ export * from './isSmsChannel';
9
10
  export * from './parseMarkdown';
10
11
  export * from './safeMediaPlay';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SMS-канал: `channelId` начинается с `sms` (например `sms.M444`).
3
+ * В message-server на диалогах обычно `chn_*`, поэтому одного префикса недостаточно —
4
+ * см. `isSmsFeedMessage`.
5
+ */
6
+ export declare function isSmsChannel(channelId?: string | null): boolean;
7
+ /** SMS в демо (`sms.M444`) и в message-server (`chn_*` + `meta.messageStyle: 'sms'`). */
8
+ export declare function isSmsFeedMessage(message?: object | null, channelId?: string | null): boolean;
@@ -0,0 +1,22 @@
1
+ import type { EditMessageSource } from './buildEditPayload';
2
+ export type ResolveEditLastSentMessage = () => (EditMessageSource & {
3
+ canEdit?: boolean;
4
+ deleted?: boolean;
5
+ }) | null | undefined;
6
+ export declare function isCursorOnFirstLine(text: string, selectionStart: number): boolean;
7
+ export declare function canStartEditLastSent(options: {
8
+ key: string;
9
+ altKey?: boolean;
10
+ metaKey?: boolean;
11
+ ctrlKey?: boolean;
12
+ shiftKey?: boolean;
13
+ hasResolver: boolean;
14
+ disabled: boolean;
15
+ isRecording: boolean;
16
+ draftText: string;
17
+ replyMessageId?: string | number | null;
18
+ editMessageId?: string | number | null;
19
+ textareaText: string;
20
+ selectionStart: number;
21
+ }): boolean;
22
+ export declare function isEditableLastSentCandidate(message: ReturnType<ResolveEditLastSentMessage>): message is EditMessageSource;
@@ -1,4 +1,5 @@
1
1
  export * from './useMessageActions';
2
+ export * from './useMessageHoverActions';
2
3
  export * from './calculateMessageMenuPosition';
3
4
  export * from './useMessageMenuActions';
4
5
  export * from './useMessageLinks';
@@ -6,6 +7,7 @@ export * from './useChannelAccentColor';
6
7
  export * from './useSubtextTooltip';
7
8
  export * from './useStartReply';
8
9
  export * from './useStartEdit';
10
+ export * from './canStartEditLastSent';
9
11
  export * from './buildReplyPayload';
10
12
  export * from './buildEditPayload';
11
13
  export * from './getEditTooltipLines';
@@ -0,0 +1,9 @@
1
+ import { type MaybeRefOrGetter } from 'vue';
2
+ /**
3
+ * Hover-панели сообщения (реакции и меню по трём точкам).
4
+ * Для SMS недоступны: канал не поддерживает реакции, ответ и редактирование.
5
+ */
6
+ export declare function useMessageHoverActions(channel: MaybeRefOrGetter<string | undefined>, reactionsEnabled?: MaybeRefOrGetter<boolean>, message?: MaybeRefOrGetter<unknown>): {
7
+ hoverActionsEnabled: import("vue").ComputedRef<boolean>;
8
+ reactionsActive: import("vue").ComputedRef<boolean>;
9
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mobilon-dev/chotto",
3
- "version": "0.3.103",
3
+ "version": "0.3.105",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",