@mobilon-dev/chotto 0.3.30 → 0.3.32
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/dist/_virtual/_plugin-vue_export-helper.js +9 -0
- package/dist/chotto.css +1 -1
- package/dist/components/1_atoms/ButtonContextMenu/ButtonContextMenu.vue.js +7 -0
- package/dist/components/1_atoms/ButtonContextMenu/ButtonContextMenu.vue2.js +106 -0
- package/dist/components/1_atoms/ContextMenu/ContextMenu.vue.js +46 -0
- package/dist/components/1_atoms/EmbedPreview/EmbedPreview.vue.js +7 -0
- package/dist/components/1_atoms/EmbedPreview/EmbedPreview.vue2.js +39 -0
- package/dist/components/1_atoms/LinkPreview/LinkPreview.vue.js +7 -0
- package/dist/components/1_atoms/LinkPreview/LinkPreview.vue2.js +32 -0
- package/dist/components/1_atoms/LoadingIndicator/LoadingIndicator.vue.js +23 -0
- package/dist/components/1_atoms/Tooltip/Tooltip.vue.js +7 -0
- package/dist/components/1_atoms/Tooltip/Tooltip.vue2.js +77 -0
- package/dist/components/1_icons/AvatarIcon.vue.js +42 -0
- package/dist/components/1_icons/CheckIcon.vue.js +28 -0
- package/dist/components/1_icons/CloseButtonIcon.vue.js +21 -0
- package/dist/components/1_icons/ContactCRMIcon.vue.js +21 -0
- package/dist/components/1_icons/MenuIcon.vue.js +21 -0
- package/dist/components/1_icons/SearchIcon.vue.js +28 -0
- package/dist/components/1_icons/SettingsIcon.vue.js +18 -0
- package/dist/components/1_icons/TelegramIcon.vue.js +32 -0
- package/dist/components/1_icons/WhatsAppIcon.vue.js +32 -0
- package/dist/components/2_blocks/CommunicationPanel/CommunicationPanel.vue.js +307 -0
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationActions.js +83 -0
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationAttributes.js +60 -0
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationChannels.js +70 -0
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationDialogSync.js +36 -0
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationMenu.js +37 -0
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationSubMenu.js +69 -0
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelMaxIcon.vue.js +18 -0
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelPhoneIcon.vue.js +23 -0
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelSMSIcon.vue.js +21 -0
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelSubmenuMaxIcon.vue.js +34 -0
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelSubmenuPhoneIcon.vue.js +32 -0
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelSubmenuSMSIcon.vue.js +21 -0
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelSubmenuTelegramIcon.vue.js +18 -0
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelSubmenuWhatsAppIcon.vue.js +32 -0
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelTelegramIcon.vue.js +32 -0
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelWhatsAppIcon.vue.js +18 -0
- package/dist/components/2_blocks/FeedFoundItem/FeedFoundItem.vue.js +7 -0
- package/dist/components/2_blocks/FeedFoundItem/FeedFoundItem.vue2.js +61 -0
- package/dist/components/2_blocks/FeedFoundObjects/FeedFoundObjects.vue.js +7 -0
- package/dist/components/2_blocks/FeedFoundObjects/FeedFoundObjects.vue2.js +58 -0
- package/dist/components/2_blocks/FeedSearch/FeedSearch.vue.js +7 -0
- package/dist/components/2_blocks/FeedSearch/FeedSearch.vue2.js +68 -0
- package/dist/components/2_chatinput_elements/ButtonCommandsSelector/ButtonCommandsSelector.vue.js +7 -0
- package/dist/components/2_chatinput_elements/ButtonCommandsSelector/ButtonCommandsSelector.vue2.js +70 -0
- package/dist/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue.js +106 -0
- package/dist/components/2_chatinput_elements/ButtonEmojiPicker/icons/SmilesIcon.vue.js +18 -0
- package/dist/components/2_chatinput_elements/ButtonTemplateSelector/ButtonTemplateSelector.vue.js +105 -0
- package/dist/components/2_chatinput_elements/ButtonTemplateSelector/icons/ChatTemplatesIcon.vue.js +25 -0
- package/dist/components/2_chatinput_elements/ButtonWabaTemplateSelector/ButtonWabaTemplateSelector.vue.js +98 -0
- package/dist/components/2_chatinput_elements/FilePreview/FilePreview.vue.js +7 -0
- package/dist/components/2_chatinput_elements/FilePreview/FilePreview.vue2.js +157 -0
- package/dist/components/2_chatinput_elements/FileUploader/FileUploader.vue.js +7 -0
- package/dist/components/2_chatinput_elements/FileUploader/FileUploader.vue2.js +105 -0
- package/dist/components/2_chatinput_elements/FileUploader/icons/FileUploaderIcon.vue.js +21 -0
- package/dist/components/2_chatinput_elements/PlaceholderComponent/PlaceholderComponent.vue.js +66 -0
- package/dist/components/2_chatinput_elements/TemplateSelector/TemplateSelector.vue.js +206 -0
- package/dist/components/2_chatinput_elements/TextFormatToolbar/TextFormatToolbar.vue.js +7 -0
- package/dist/components/2_chatinput_elements/TextFormatToolbar/TextFormatToolbar.vue2.js +210 -0
- package/dist/components/2_chatinput_elements/WABAAttachmentSection/WABAAttachmentSection.vue.js +7 -0
- package/dist/components/2_chatinput_elements/WABAAttachmentSection/WABAAttachmentSection.vue2.js +126 -0
- package/dist/components/2_chatinput_elements/WABAQuickReplyButtons/WABAQuickReplyButtons.vue.js +7 -0
- package/dist/components/2_chatinput_elements/WABAQuickReplyButtons/WABAQuickReplyButtons.vue2.js +38 -0
- package/dist/components/2_chatinput_elements/WABASeparatedQuickButtons/WABASeparatedQuickButtons.vue.js +7 -0
- package/dist/components/2_chatinput_elements/WABASeparatedQuickButtons/WABASeparatedQuickButtons.vue2.js +41 -0
- package/dist/components/2_chatinput_elements/WABATemplateSelector/WABATemplateSelector.vue.js +281 -0
- package/dist/components/2_chatlist_elements/ChatFilter/ChatFilter.vue.js +49 -0
- package/dist/components/2_chatlist_elements/ChatItem/ChatItem.vue.js +7 -0
- package/dist/components/2_chatlist_elements/ChatItem/ChatItem.vue2.js +193 -0
- package/dist/components/2_chatlist_elements/ChatTabs/ChatTabs.vue.js +37 -0
- package/dist/components/2_elements/AudioRecorder/AudioRecorder.vue.js +7 -0
- package/dist/components/2_elements/AudioRecorder/AudioRecorder.vue2.js +116 -0
- package/dist/components/2_elements/ChannelSelector/ChannelSelector.vue.js +73 -0
- package/dist/components/2_elements/ChatInfo/ChatInfo.vue.js +93 -0
- package/dist/components/2_elements/ChatPanel/ChatPanel.vue.js +47 -0
- package/dist/components/2_elements/ContactInfo/ContactInfo.vue.js +158 -0
- package/dist/components/2_elements/ThemeMode/ThemeMode.vue.js +49 -0
- package/dist/components/2_elements/UserProfile/UserProfile.vue.js +39 -0
- package/dist/components/2_elements/VideoRecorder/VideoRecorder.vue.js +7 -0
- package/dist/components/2_elements/VideoRecorder/VideoRecorder.vue2.js +94 -0
- package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +380 -0
- package/dist/components/2_feed_elements/BaseReplyMessage/BaseReplyMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/BaseReplyMessage/BaseReplyMessage.vue2.js +57 -0
- package/dist/components/2_feed_elements/CallMessage/CallMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/CallMessage/CallMessage.vue2.js +476 -0
- package/dist/components/2_feed_elements/CallMessage/icons/IncomingCallIcon.vue.js +26 -0
- package/dist/components/2_feed_elements/CallMessage/icons/IncomingCallIcon.vue2.js +4 -0
- package/dist/components/2_feed_elements/CallMessage/icons/OutgoingCallIcon.vue.js +26 -0
- package/dist/components/2_feed_elements/CallMessage/icons/OutgoingCallIcon.vue2.js +4 -0
- package/dist/components/2_feed_elements/DateMessage/DateMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/DateMessage/DateMessage.vue2.js +20 -0
- package/dist/components/2_feed_elements/DateMessageSticky/DateMessageSticky.vue.js +7 -0
- package/dist/components/2_feed_elements/DateMessageSticky/DateMessageSticky.vue2.js +18 -0
- package/dist/components/2_feed_elements/FeedKeyboard/FeedKeyboard.vue.js +7 -0
- package/dist/components/2_feed_elements/FeedKeyboard/FeedKeyboard.vue2.js +42 -0
- package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +204 -0
- package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +266 -0
- package/dist/components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue.js +7 -0
- package/dist/components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue2.js +46 -0
- package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue.js +7 -0
- package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue2.js +161 -0
- package/dist/components/2_feed_elements/MessageReactions/composables/usePositioning.js +104 -0
- package/dist/components/2_feed_elements/MessageReactions/composables/useReactions.js +30 -0
- package/dist/components/2_feed_elements/MessageReactions/composables/useReactionsPanel.js +90 -0
- package/dist/components/2_feed_elements/MessageReactions/composables/useReactionsState.js +32 -0
- package/dist/components/2_feed_elements/MessageReactions/utils/quickReactions.js +17 -0
- package/dist/components/2_feed_elements/MessageStatusIndicator/MessageStatusIndicator.vue.js +73 -0
- package/dist/components/2_feed_elements/MessageStatusIndicator/MessageStatusIndicator.vue2.js +4 -0
- package/dist/components/2_feed_elements/ReplyAudioMessage/ReplyAudioMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/ReplyAudioMessage/ReplyAudioMessage.vue2.js +39 -0
- package/dist/components/2_feed_elements/ReplyCallMessage/ReplyCallMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/ReplyCallMessage/ReplyCallMessage.vue2.js +35 -0
- package/dist/components/2_feed_elements/ReplyFileMessage/ReplyFileMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/ReplyFileMessage/ReplyFileMessage.vue2.js +46 -0
- package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue2.js +71 -0
- package/dist/components/2_feed_elements/ReplyStickerMessage/ReplyStickerMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/ReplyStickerMessage/ReplyStickerMessage.vue2.js +119 -0
- package/dist/components/2_feed_elements/ReplyTextMessage/ReplyTextMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/ReplyTextMessage/ReplyTextMessage.vue2.js +27 -0
- package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue2.js +75 -0
- package/dist/components/2_feed_elements/SplashScreen/SplashScreen.vue.js +7 -0
- package/dist/components/2_feed_elements/SplashScreen/SplashScreen.vue2.js +23 -0
- package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +258 -0
- package/dist/components/2_feed_elements/StickerMessage/libs/tgs-player/lottie-player.esm.js +6469 -0
- package/dist/components/2_feed_elements/StickerMessage/libs/tgs-player/tgs-player.esm.js +7216 -0
- package/dist/components/2_feed_elements/StickerMessage/utils/stickerUtils.js +10 -0
- package/dist/components/2_feed_elements/StickerMessage/utils/suppress-lit-warning.js +21 -0
- package/dist/components/2_feed_elements/SystemMessage/SystemMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/SystemMessage/SystemMessage.vue2.js +18 -0
- package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +174 -0
- package/dist/components/2_feed_elements/TypingMessage/TypingMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/TypingMessage/TypingMessage.vue2.js +32 -0
- package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +7 -0
- package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +286 -0
- package/dist/{CreateChat-C4y1ddK_.js → components/2_modals/CreateChat/CreateChat.vue.js} +8 -7
- package/dist/components/2_modals/CreateChat/CreateChat.vue2.js +1 -0
- package/dist/{CreateChat2-Oy9JaaRC.js → components/2_modals/CreateChat2/CreateChat2.vue.js} +4 -3
- package/dist/{CreateDialog-DacwclUe.js → components/2_modals/CreateDialog/CreateDialog.vue.js} +12 -11
- package/dist/components/2_modals/Modal/Modal.vue.js +69 -0
- package/dist/components/2_modals/ModalFullscreen/ModalFullscreen.vue.js +46 -0
- package/dist/components/2_modals/ModalNoFooter/ModalNoFooter.vue.js +43 -0
- package/dist/components/2_modals/ModalVideoRecorder/ModalVideoRecorder.vue.js +7 -0
- package/dist/{ModalVideoRecorder-BkPr4JP7.js → components/2_modals/ModalVideoRecorder/ModalVideoRecorder.vue2.js} +48 -49
- package/dist/components/2_modals/SelectUser/SelectUser.vue.js +63 -0
- package/dist/{SelectUser2-kaPAmxhi.js → components/2_modals/SelectUser2/SelectUser2.vue.js} +4 -3
- package/dist/components/3_compounds/ChatInput/ChatInput.vue.js +7 -0
- package/dist/components/3_compounds/ChatInput/ChatInput.vue2.js +192 -0
- package/dist/components/3_compounds/ChatInput/icons/SendIcon.vue.js +35 -0
- package/dist/components/3_compounds/ChatInput/icons/SendIcon.vue2.js +4 -0
- package/dist/components/3_compounds/ChatList/ChatList.vue.js +195 -0
- package/dist/components/3_compounds/ChatList/ChatListHeader.vue.js +27 -0
- package/dist/components/3_compounds/ChatList/composables/useChatListActions.js +16 -0
- package/dist/components/3_compounds/ChatList/composables/useChatListFilter.js +27 -0
- package/dist/components/3_compounds/ChatList/composables/useChatListScroll.js +47 -0
- package/dist/components/3_compounds/ChatList/composables/useChatListSelection.js +28 -0
- package/dist/components/3_compounds/Feed/Feed.vue.js +7 -0
- package/dist/components/3_compounds/Feed/Feed.vue2.js +295 -0
- package/dist/components/3_compounds/Feed/assets/chat-background.svg.js +7 -0
- package/dist/components/3_compounds/Feed/composables/useFeedButton.js +17 -0
- package/dist/components/3_compounds/Feed/composables/useFeedComponents.js +29 -0
- package/dist/components/3_compounds/Feed/composables/useFeedGrouping.js +15 -0
- package/dist/components/3_compounds/Feed/composables/useFeedKeyboard.js +15 -0
- package/dist/components/3_compounds/Feed/composables/useFeedLoadMore.js +62 -0
- package/dist/components/3_compounds/Feed/composables/useFeedMessageVisibility.js +33 -0
- package/dist/components/3_compounds/Feed/composables/useFeedReply.js +42 -0
- package/dist/components/3_compounds/Feed/composables/useFeedScroll.js +63 -0
- package/dist/components/3_compounds/Feed/composables/useFeedScrollTo.js +18 -0
- package/dist/components/3_compounds/Feed/composables/useStickyDate.js +61 -0
- package/dist/components/3_compounds/Feed/functions/throttle.js +11 -0
- package/dist/components/3_compounds/SideBar/SideBar.vue.js +190 -0
- package/dist/components/4_layouts/AdaptiveExtendedLayout/AdaptiveExtendedLayout.vue.js +63 -0
- package/dist/components/4_layouts/BaseLayout/BaseLayout.vue.js +18 -0
- package/dist/components/4_layouts/ChatWrapper/ChatWrapper.vue.js +7 -0
- package/dist/components/4_layouts/ChatWrapper/ChatWrapper.vue2.js +53 -0
- package/dist/components/4_layouts/ExtendedLayout/ExtendedLayout.vue.js +21 -0
- package/dist/components/4_layouts/FeedLayout/FeedLayout.vue.js +15 -0
- package/dist/components/5_containers/BaseContainer/BaseContainer.vue.js +33 -0
- package/dist/components/5_containers/FloatContainer/FloatContainer.vue.js +104 -0
- package/dist/functions/createReactionHandlers.js +19 -0
- package/dist/functions/formatTimestamp.js +8 -0
- package/dist/functions/getChannelAccentColor.js +30 -0
- package/dist/functions/getMessageClass.js +6 -0
- package/dist/functions/getStatusMessage.js +42 -0
- package/dist/functions/insertDaySeparators.js +24 -0
- package/dist/functions/parseMarkdown.js +18 -0
- package/dist/functions/playNotificationAudio.js +13 -0
- package/dist/functions/sortByTimestamp.js +4 -0
- package/dist/hooks/messages/useChannelAccentColor.js +29 -0
- package/dist/hooks/messages/useMessageActions.js +28 -0
- package/dist/hooks/messages/useMessageLinks.js +48 -0
- package/dist/hooks/messages/useSubtextTooltip.js +12 -0
- package/dist/hooks/modals/useCreateChat.js +19 -0
- package/dist/hooks/modals/useCreateChat2.js +16 -0
- package/dist/hooks/modals/useCreateDialog.js +20 -0
- package/dist/hooks/modals/useModal.js +41 -0
- package/dist/hooks/modals/useModalSelectUser2.js +20 -0
- package/dist/hooks/modals/useVideoRecorder.js +14 -0
- package/dist/hooks/uploadFile/generatePreview.js +20 -0
- package/dist/hooks/uploadFile/getTypeFileByMime.js +7 -0
- package/dist/hooks/uploadFile/uploadFile.js +28 -0
- package/dist/hooks/useDelayDebouncedRef.js +18 -0
- package/dist/hooks/useImmediateDebouncedRef.js +18 -0
- package/dist/hooks/useMessageDraft.js +87 -0
- package/dist/hooks/useSearchModel.js +11 -0
- package/dist/hooks/useTheme.js +11 -0
- package/dist/hooks/validators/chats/chatValidator.js +79 -0
- package/dist/hooks/validators/chats/useChatValidator.js +82 -0
- package/dist/hooks/validators/messages/messageValidator.js +84 -0
- package/dist/hooks/validators/messages/useMessageValidator.js +82 -0
- package/dist/hooks/validators/sidebar/sidebarValidator.js +47 -0
- package/dist/hooks/validators/sidebar/useSidebarValidator.js +82 -0
- package/dist/hooks/validators/useValidation.js +94 -0
- package/dist/index.js +239 -0
- package/dist/locale/en.js +22 -0
- package/dist/locale/ru.js +22 -0
- package/dist/locale/useLocale.js +34 -0
- package/dist/node_modules/entities/lib/esm/decode.js +278 -0
- package/dist/node_modules/entities/lib/esm/decode_codepoint.js +46 -0
- package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js +7 -0
- package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js +7 -0
- package/dist/node_modules/linkify-it/index.js +187 -0
- package/dist/node_modules/linkify-it/lib/re.js +19 -0
- package/dist/node_modules/linkify-string/dist/linkify-string.js +41 -0
- package/dist/node_modules/linkifyjs/dist/linkify.js +679 -0
- package/dist/node_modules/markdown-it/lib/common/html_blocks.js +67 -0
- package/dist/node_modules/markdown-it/lib/common/html_re.js +5 -0
- package/dist/node_modules/markdown-it/lib/common/utils.js +169 -0
- package/dist/node_modules/markdown-it/lib/helpers/index.js +8 -0
- package/dist/node_modules/markdown-it/lib/helpers/parse_link_destination.js +44 -0
- package/dist/node_modules/markdown-it/lib/helpers/parse_link_label.js +21 -0
- package/dist/node_modules/markdown-it/lib/helpers/parse_link_title.js +37 -0
- package/dist/node_modules/markdown-it/lib/index.js +112 -0
- package/dist/node_modules/markdown-it/lib/parser_block.js +63 -0
- package/dist/node_modules/markdown-it/lib/parser_core.js +34 -0
- package/dist/node_modules/markdown-it/lib/parser_inline.js +96 -0
- package/dist/node_modules/markdown-it/lib/presets/commonmark.js +78 -0
- package/dist/node_modules/markdown-it/lib/presets/default.js +40 -0
- package/dist/node_modules/markdown-it/lib/presets/zero.js +59 -0
- package/dist/node_modules/markdown-it/lib/renderer.js +127 -0
- package/dist/node_modules/markdown-it/lib/ruler.js +95 -0
- package/dist/node_modules/markdown-it/lib/rules_block/blockquote.js +59 -0
- package/dist/node_modules/markdown-it/lib/rules_block/code.js +23 -0
- package/dist/node_modules/markdown-it/lib/rules_block/fence.js +30 -0
- package/dist/node_modules/markdown-it/lib/rules_block/heading.js +28 -0
- package/dist/node_modules/markdown-it/lib/rules_block/hr.js +27 -0
- package/dist/node_modules/markdown-it/lib/rules_block/html_block.js +37 -0
- package/dist/node_modules/markdown-it/lib/rules_block/lheading.js +43 -0
- package/dist/node_modules/markdown-it/lib/rules_block/list.js +110 -0
- package/dist/node_modules/markdown-it/lib/rules_block/paragraph.js +25 -0
- package/dist/node_modules/markdown-it/lib/rules_block/reference.js +95 -0
- package/dist/node_modules/markdown-it/lib/rules_block/state_block.js +84 -0
- package/dist/node_modules/markdown-it/lib/rules_block/table.js +99 -0
- package/dist/node_modules/markdown-it/lib/rules_core/block.js +7 -0
- package/dist/node_modules/markdown-it/lib/rules_core/inline.js +10 -0
- package/dist/node_modules/markdown-it/lib/rules_core/linkify.js +57 -0
- package/dist/node_modules/markdown-it/lib/rules_core/normalize.js +9 -0
- package/dist/node_modules/markdown-it/lib/rules_core/replacements.js +31 -0
- package/dist/node_modules/markdown-it/lib/rules_core/smartquotes.js +80 -0
- package/dist/node_modules/markdown-it/lib/rules_core/state_core.js +8 -0
- package/dist/node_modules/markdown-it/lib/rules_core/text_join.js +16 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/autolink.js +46 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/backticks.js +31 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/balance_pairs.js +34 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/emphasis.js +57 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/entity.js +33 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/escape.js +32 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/fragments_join.js +10 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/html_inline.js +32 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/image.js +48 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/link.js +40 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/linkify.js +28 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/newline.js +23 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/state_inline.js +27 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/strikethrough.js +54 -0
- package/dist/node_modules/markdown-it/lib/rules_inline/text.js +39 -0
- package/dist/node_modules/markdown-it/lib/token.js +31 -0
- package/dist/node_modules/mdurl/index.js +10 -0
- package/dist/node_modules/mdurl/lib/decode.js +61 -0
- package/dist/node_modules/mdurl/lib/encode.js +48 -0
- package/dist/node_modules/mdurl/lib/format.js +7 -0
- package/dist/node_modules/mdurl/lib/parse.js +74 -0
- package/dist/node_modules/punycode.js/punycode.es6.js +139 -0
- package/dist/node_modules/uc.micro/categories/Cc/regex.js +4 -0
- package/dist/node_modules/uc.micro/categories/Cf/regex.js +4 -0
- package/dist/node_modules/uc.micro/categories/P/regex.js +4 -0
- package/dist/node_modules/uc.micro/categories/S/regex.js +4 -0
- package/dist/node_modules/uc.micro/categories/Z/regex.js +4 -0
- package/dist/node_modules/uc.micro/index.js +14 -0
- package/dist/node_modules/uc.micro/properties/Any/regex.js +4 -0
- package/dist/node_modules/vue3-emoji-picker-ru/dist/emoji-picker.es.js +16471 -0
- package/dist/themes/dark.css +1 -1
- package/dist/themes/default.css +1 -1
- package/dist/themes/green.css +1 -1
- package/dist/themes/mobilon1.css +1 -1
- package/dist/types/components/1_atoms/LoadingIndicator/LoadingIndicator.vue.d.ts +7 -0
- package/dist/types/components/1_atoms/LoadingIndicator/stories/LoadingIndicator.stories.d.ts +9 -0
- package/dist/types/components/1_atoms/LoadingIndicator/styles/types.d.ts +49 -0
- package/dist/types/components/1_icons/AvatarIcon.vue.d.ts +1 -1
- package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationChannels.d.ts +1 -1
- package/dist/types/components/2_blocks/FeedSearch/FeedSearch.vue.d.ts +2 -2
- package/dist/types/components/2_chatinput_elements/ButtonWabaTemplateSelector/ButtonWabaTemplateSelector.vue.d.ts +2 -2
- package/dist/types/components/2_chatinput_elements/PlaceholderComponent/PlaceholderComponent.vue.d.ts +2 -2
- package/dist/types/components/2_feed_elements/AudioMessage/AudioMessage.vue.d.ts +2 -2
- package/dist/types/components/2_feed_elements/BaseReplyMessage/BaseReplyMessage.vue.d.ts +2 -2
- package/dist/types/components/2_feed_elements/CallMessage/CallMessage.vue.d.ts +2 -2
- package/dist/types/components/2_feed_elements/FileMessage/FileMessage.vue.d.ts +2 -2
- package/dist/types/components/2_feed_elements/ImageMessage/ImageMessage.vue.d.ts +2 -2
- package/dist/types/components/2_feed_elements/ReplyStickerMessage/ReplyStickerMessage.vue.d.ts +1 -3
- package/dist/types/components/2_feed_elements/StickerMessage/StickerMessage.vue.d.ts +3 -5
- package/dist/types/components/2_feed_elements/StickerMessage/utils/stickerUtils.d.ts +19 -0
- package/dist/types/components/2_feed_elements/TextMessage/TextMessage.vue.d.ts +2 -2
- package/dist/types/components/2_feed_elements/VideoMessage/VideoMessage.vue.d.ts +2 -2
- package/dist/types/components/2_modals/CreateDialog/CreateDialog.vue.d.ts +2 -2
- package/dist/types/components/2_modals/CreateDialog/stories/CreateDialog.stories.d.ts +2 -2
- package/dist/types/components/3_compounds/ChatList/ChatList.vue.d.ts +3 -1
- package/dist/types/components/3_compounds/Feed/Feed.vue.d.ts +2 -2
- package/dist/types/main.d.ts +1 -1
- package/package.json +5 -5
- package/dist/index-BzAEsq7j.js +0 -43508
- package/dist/vuessages.es.js +0 -123
- package/dist/vuessages.umd.js +0 -624
- /package/dist/types/{utils → components/2_feed_elements/StickerMessage/utils}/suppress-lit-warning.d.ts +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { defineComponent as D, inject as N, ref as o, computed as T, watch as j, createElementBlock as y, openBlock as c, createCommentVNode as m, createBlock as M, createElementVNode as a, toDisplayString as x, unref as w, normalizeClass as L, Teleport as P } from "vue";
|
|
2
|
+
import { uploadFile as O } from "../../../hooks/uploadFile/uploadFile.js";
|
|
3
|
+
import { useMessageDraft as q } from "../../../hooks/useMessageDraft.js";
|
|
4
|
+
import "../../../hooks/useSearchModel.js";
|
|
5
|
+
import "../../../hooks/useTheme.js";
|
|
6
|
+
/* empty css */
|
|
7
|
+
/* empty css */
|
|
8
|
+
import "../../../node_modules/linkifyjs/dist/linkify.js";
|
|
9
|
+
import "../../../functions/parseMarkdown.js";
|
|
10
|
+
import G from "../../2_chatinput_elements/FilePreview/FilePreview.vue.js";
|
|
11
|
+
const H = { class: "audio-recorder__container" }, J = { key: 0 }, K = {
|
|
12
|
+
key: 1,
|
|
13
|
+
class: "audio-recorder__recording-container"
|
|
14
|
+
}, Q = { class: "audio-recorder__recording-time" }, ae = /* @__PURE__ */ D({
|
|
15
|
+
__name: "AudioRecorder",
|
|
16
|
+
props: {
|
|
17
|
+
state: {
|
|
18
|
+
type: String,
|
|
19
|
+
default: "active"
|
|
20
|
+
},
|
|
21
|
+
filebumpUrl: {
|
|
22
|
+
type: String,
|
|
23
|
+
default: null
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
setup(R) {
|
|
27
|
+
const f = N("chatAppId"), { getMessage: n, setMessageFile: U, resetMessageFile: S, setRecordingMessage: k } = q(f), h = o(), t = o(0), r = o(0), u = o(0), d = o(0), z = T(() => {
|
|
28
|
+
let l = d.value < 10 ? "0" + d.value : d.value, e = u.value < 10 ? "0" + u.value : u.value, i = r.value < 10 ? "0" + r.value : r.value, _ = t.value < 10 ? "00" + t.value : t.value < 100 ? "0" + t.value : t.value;
|
|
29
|
+
return l + ":" + e + ":" + i + ":" + _;
|
|
30
|
+
}), v = o(""), g = o(!1), s = o(), b = o([]), A = o(), p = o(), C = R, B = async () => {
|
|
31
|
+
if (!n().file && C.state == "active") {
|
|
32
|
+
const l = await navigator.mediaDevices.getUserMedia({ audio: !0, video: !1 });
|
|
33
|
+
h.value = setInterval(() => {
|
|
34
|
+
t.value += 10, t.value == 1e3 && (t.value = 0, r.value++, r.value == 60 && (r.value = 0, u.value++, u.value == 60 && (u.value = 0, d.value++)));
|
|
35
|
+
}, 10), k(!0), g.value = !0, s.value = new MediaRecorder(l), s.value.start(), s.value.ondataavailable = (e) => {
|
|
36
|
+
b.value.push(e.data);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}, F = () => {
|
|
40
|
+
I(), A.value = void 0;
|
|
41
|
+
}, E = () => {
|
|
42
|
+
s.value && (s.value.stop(), s.value.onstop = async () => {
|
|
43
|
+
const l = new File(b.value, "voicemessage.mp3", { type: "audio/*" }), e = URL.createObjectURL(l);
|
|
44
|
+
A.value = e, v.value = "uploading", await O(C.filebumpUrl, l).then((i) => {
|
|
45
|
+
if (v.value = i.status, i.status == "success") {
|
|
46
|
+
const _ = document.getElementById("chat-input-file-line-" + f);
|
|
47
|
+
_ && (_.style.display = "inherit"), U({
|
|
48
|
+
url: i.url,
|
|
49
|
+
name: i.name,
|
|
50
|
+
size: i.size,
|
|
51
|
+
type: i.type
|
|
52
|
+
}), i.preview && (p.value = {
|
|
53
|
+
previewUrl: i.preview.previewUrl,
|
|
54
|
+
isImage: i.preview.isImage,
|
|
55
|
+
isVideo: i.preview.isVideo,
|
|
56
|
+
isAudio: i.preview.isAudio,
|
|
57
|
+
fileName: i.name,
|
|
58
|
+
fileSize: i.preview.fileSize
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}), I();
|
|
63
|
+
}, I = () => {
|
|
64
|
+
clearInterval(h.value), t.value = 0, r.value = 0, u.value = 0, d.value = 0, k(!1), g.value = !1, s.value = void 0, b.value = [];
|
|
65
|
+
}, V = () => {
|
|
66
|
+
const l = document.getElementById("chat-input-file-line-" + f);
|
|
67
|
+
l && (l.style.display = "none"), S(), p.value = void 0;
|
|
68
|
+
};
|
|
69
|
+
return j(
|
|
70
|
+
() => n().file,
|
|
71
|
+
() => {
|
|
72
|
+
n().file || (p.value = void 0);
|
|
73
|
+
}
|
|
74
|
+
), (l, e) => (c(), y("div", H, [
|
|
75
|
+
v.value === "uploading" ? (c(), y("div", J, [...e[0] || (e[0] = [
|
|
76
|
+
a("p", null, "Загрузка файла...", -1)
|
|
77
|
+
])])) : m("", !0),
|
|
78
|
+
g.value && v.value != "uploading" ? (c(), y("div", K, [
|
|
79
|
+
e[3] || (e[3] = a("span", { class: "audio-recorder__recording-icon pi pi-circle-fill" }, null, -1)),
|
|
80
|
+
a("button", {
|
|
81
|
+
class: "audio-recorder__button audio-recorder__button-record",
|
|
82
|
+
onClick: F
|
|
83
|
+
}, [...e[1] || (e[1] = [
|
|
84
|
+
a("span", { class: "pi pi-trash" }, null, -1)
|
|
85
|
+
])]),
|
|
86
|
+
a("button", {
|
|
87
|
+
class: "audio-recorder__button audio-recorder__button-record",
|
|
88
|
+
onClick: E
|
|
89
|
+
}, [...e[2] || (e[2] = [
|
|
90
|
+
a("div", { class: "audio-recorder__stop" }, null, -1)
|
|
91
|
+
])]),
|
|
92
|
+
a("span", Q, x(z.value), 1)
|
|
93
|
+
])) : m("", !0),
|
|
94
|
+
!g.value && v.value != "uploading" && !w(n)().isRecording ? (c(), y("button", {
|
|
95
|
+
key: 2,
|
|
96
|
+
class: L(["audio-recorder__button", { "audio-recorder__button-disabled": R.state == "disabled" || w(n)().file }]),
|
|
97
|
+
onClick: B
|
|
98
|
+
}, [...e[4] || (e[4] = [
|
|
99
|
+
a("span", { class: "pi pi-microphone" }, null, -1)
|
|
100
|
+
])], 2)) : m("", !0),
|
|
101
|
+
w(n)().file ? (c(), M(P, {
|
|
102
|
+
key: 3,
|
|
103
|
+
to: "#chat-input-file-line-" + w(f)
|
|
104
|
+
}, [
|
|
105
|
+
p.value ? (c(), M(G, {
|
|
106
|
+
key: 0,
|
|
107
|
+
"file-info": p.value,
|
|
108
|
+
onReset: V
|
|
109
|
+
}, null, 8, ["file-info"])) : m("", !0)
|
|
110
|
+
], 8, ["to"])) : m("", !0)
|
|
111
|
+
]));
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
export {
|
|
115
|
+
ae as default
|
|
116
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { inject as f, ref as C, createElementBlock as a, createCommentVNode as l, unref as c, openBlock as s, normalizeClass as o, createVNode as g, createElementVNode as i, toDisplayString as r, withCtx as v } from "vue";
|
|
2
|
+
import y from "../../1_atoms/ButtonContextMenu/ButtonContextMenu.vue.js";
|
|
3
|
+
import { t as b } from "../../../locale/useLocale.js";
|
|
4
|
+
import { useMessageDraft as k } from "../../../hooks/useMessageDraft.js";
|
|
5
|
+
import "../../../hooks/useSearchModel.js";
|
|
6
|
+
import "../../../hooks/useTheme.js";
|
|
7
|
+
/* empty css */
|
|
8
|
+
import S from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
9
|
+
/* empty css */
|
|
10
|
+
import "../../../node_modules/linkifyjs/dist/linkify.js";
|
|
11
|
+
import "../../../functions/parseMarkdown.js";
|
|
12
|
+
/* empty css */
|
|
13
|
+
const x = {
|
|
14
|
+
key: 0,
|
|
15
|
+
class: "channels__selected"
|
|
16
|
+
}, D = ["src"], A = { class: "channels__title" }, B = {
|
|
17
|
+
key: 1,
|
|
18
|
+
class: "channels__selected channels__title"
|
|
19
|
+
}, I = {
|
|
20
|
+
__name: "ChannelSelector",
|
|
21
|
+
props: {
|
|
22
|
+
channels: {
|
|
23
|
+
type: Array,
|
|
24
|
+
required: !1,
|
|
25
|
+
default: () => []
|
|
26
|
+
},
|
|
27
|
+
mode: {
|
|
28
|
+
type: String,
|
|
29
|
+
required: !1,
|
|
30
|
+
default: "hover"
|
|
31
|
+
},
|
|
32
|
+
state: {
|
|
33
|
+
type: String,
|
|
34
|
+
default: "active"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
emits: ["selectChannel"],
|
|
38
|
+
setup(e, { emit: d }) {
|
|
39
|
+
const m = e, h = f("chatAppId"), { getMessage: u } = k(h), p = d, t = C(m.channels.find((n) => n.type === "default")), _ = (n) => {
|
|
40
|
+
t.value = n, p("selectChannel", t.value);
|
|
41
|
+
};
|
|
42
|
+
return (n, N) => c(u)().isRecording ? l("", !0) : (s(), a("div", {
|
|
43
|
+
key: 0,
|
|
44
|
+
class: o(["channels__container", { "channels__container-disabled": e.state == "disabled" }])
|
|
45
|
+
}, [
|
|
46
|
+
t.value ? (s(), a("div", x, [
|
|
47
|
+
t.value.icon ? (s(), a("img", {
|
|
48
|
+
key: 0,
|
|
49
|
+
src: t.value.icon,
|
|
50
|
+
class: "channels__icon"
|
|
51
|
+
}, null, 8, D)) : l("", !0),
|
|
52
|
+
i("span", A, r(t.value.title), 1)
|
|
53
|
+
])) : (s(), a("span", B, r(c(b)("component.ChannelSelector.Placeholder")), 1)),
|
|
54
|
+
g(y, {
|
|
55
|
+
actions: e.channels,
|
|
56
|
+
mode: e.mode,
|
|
57
|
+
"menu-side": "top",
|
|
58
|
+
disabled: e.state == "disabled",
|
|
59
|
+
onClick: _
|
|
60
|
+
}, {
|
|
61
|
+
default: v(() => [
|
|
62
|
+
i("span", {
|
|
63
|
+
class: o(["pi pi-list channels__trigger", { channels__disabled: e.state == "disabled" }])
|
|
64
|
+
}, null, 2)
|
|
65
|
+
]),
|
|
66
|
+
_: 1
|
|
67
|
+
}, 8, ["actions", "mode", "disabled"])
|
|
68
|
+
], 2));
|
|
69
|
+
}
|
|
70
|
+
}, K = /* @__PURE__ */ S(I, [["__scopeId", "data-v-d5653eb5"]]);
|
|
71
|
+
export {
|
|
72
|
+
K as default
|
|
73
|
+
};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { inject as p, computed as m, createElementBlock as i, createCommentVNode as o, openBlock as a, createElementVNode as n, createVNode as v, createTextVNode as u, toDisplayString as c, renderSlot as r, unref as y } from "vue";
|
|
2
|
+
import k from "../../1_icons/AvatarIcon.vue.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
import T from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
+
const g = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "chat-info__container"
|
|
8
|
+
}, A = { class: "chat-info__base-line" }, B = { class: "chat-info__avatar-container" }, C = ["src"], I = {
|
|
9
|
+
key: 1,
|
|
10
|
+
class: ""
|
|
11
|
+
}, q = { class: "chat-info__info-container" }, w = { class: "chat-info__title" }, N = {
|
|
12
|
+
key: 0,
|
|
13
|
+
class: "chat-info__additional-title"
|
|
14
|
+
}, S = {
|
|
15
|
+
key: 0,
|
|
16
|
+
class: "chat-info__time"
|
|
17
|
+
}, V = { class: "chat-info__actions" }, $ = ["id"], b = {
|
|
18
|
+
__name: "ChatInfo",
|
|
19
|
+
props: {
|
|
20
|
+
chat: {
|
|
21
|
+
type: Object,
|
|
22
|
+
required: !0
|
|
23
|
+
},
|
|
24
|
+
showReturnButton: {
|
|
25
|
+
type: Boolean,
|
|
26
|
+
required: !1,
|
|
27
|
+
default: !1
|
|
28
|
+
},
|
|
29
|
+
description: {
|
|
30
|
+
type: String,
|
|
31
|
+
required: !1,
|
|
32
|
+
default: ""
|
|
33
|
+
},
|
|
34
|
+
additionalTitle: {
|
|
35
|
+
type: String,
|
|
36
|
+
required: !1,
|
|
37
|
+
default: ""
|
|
38
|
+
},
|
|
39
|
+
defaultLastActivityTime: {
|
|
40
|
+
type: Boolean,
|
|
41
|
+
required: !1,
|
|
42
|
+
default: !1
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
emits: ["returnToChats"],
|
|
46
|
+
setup(e, { emit: h }) {
|
|
47
|
+
const t = e, f = h, _ = p("chatAppId"), d = m(() => {
|
|
48
|
+
if (t.description) return t.description;
|
|
49
|
+
if (!t.description && t.defaultLastActivityTime) return t.chat["lastActivity.time"];
|
|
50
|
+
});
|
|
51
|
+
return (s, l) => e.chat ? (a(), i("div", g, [
|
|
52
|
+
n("div", A, [
|
|
53
|
+
e.showReturnButton ? (a(), i("span", {
|
|
54
|
+
key: 0,
|
|
55
|
+
class: "pi pi-arrow-left chat-info__return-button",
|
|
56
|
+
onClick: l[0] || (l[0] = (j) => f("returnToChats"))
|
|
57
|
+
})) : o("", !0),
|
|
58
|
+
n("div", B, [
|
|
59
|
+
t.chat.avatar ? (a(), i("img", {
|
|
60
|
+
key: 0,
|
|
61
|
+
src: t.chat.avatar,
|
|
62
|
+
width: "40",
|
|
63
|
+
height: "40"
|
|
64
|
+
}, null, 8, C)) : (a(), i("span", I, [
|
|
65
|
+
v(k, { size: 40 })
|
|
66
|
+
]))
|
|
67
|
+
]),
|
|
68
|
+
n("div", q, [
|
|
69
|
+
n("span", w, [
|
|
70
|
+
u(c(e.chat.name) + " ", 1),
|
|
71
|
+
e.additionalTitle ? (a(), i("span", N, c(e.additionalTitle), 1)) : o("", !0)
|
|
72
|
+
]),
|
|
73
|
+
d.value ? (a(), i("p", S, [
|
|
74
|
+
r(s.$slots, "img-description", {}, void 0, !0),
|
|
75
|
+
u(" " + c(d.value), 1)
|
|
76
|
+
])) : o("", !0)
|
|
77
|
+
]),
|
|
78
|
+
n("div", V, [
|
|
79
|
+
r(s.$slots, "actions", {}, void 0, !0)
|
|
80
|
+
])
|
|
81
|
+
]),
|
|
82
|
+
n("div", {
|
|
83
|
+
id: "chat-info-search-panel-" + y(_),
|
|
84
|
+
class: "chat-info__search-panel"
|
|
85
|
+
}, [
|
|
86
|
+
r(s.$slots, "search", {}, void 0, !0)
|
|
87
|
+
], 8, $)
|
|
88
|
+
])) : o("", !0);
|
|
89
|
+
}
|
|
90
|
+
}, x = /* @__PURE__ */ T(b, [["__scopeId", "data-v-7364088e"]]);
|
|
91
|
+
export {
|
|
92
|
+
x as default
|
|
93
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createElementBlock as n, openBlock as o, createElementVNode as t, createCommentVNode as s, createVNode as c, toDisplayString as i, renderSlot as r } from "vue";
|
|
2
|
+
import _ from "../../1_icons/CloseButtonIcon.vue.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
import d from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
+
const p = { class: "chat-panel" }, m = { class: "chat-panel__header" }, u = { class: "chat-panel__button-close-cross" }, h = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "chat-panel__title-container"
|
|
8
|
+
}, f = {
|
|
9
|
+
key: 0,
|
|
10
|
+
class: "chat-panel__title"
|
|
11
|
+
}, v = {
|
|
12
|
+
__name: "ChatPanel",
|
|
13
|
+
props: {
|
|
14
|
+
title: {
|
|
15
|
+
type: String,
|
|
16
|
+
default: ""
|
|
17
|
+
},
|
|
18
|
+
titleEnabled: {
|
|
19
|
+
type: Boolean,
|
|
20
|
+
default: !0
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
emits: ["close-panel"],
|
|
24
|
+
setup(e, { emit: b }) {
|
|
25
|
+
return (a, l) => (o(), n("div", p, [
|
|
26
|
+
t("div", m, [
|
|
27
|
+
t("button", {
|
|
28
|
+
class: "chat-panel__button-close",
|
|
29
|
+
onClick: l[0] || (l[0] = (k) => a.$emit("close-panel"))
|
|
30
|
+
}, [
|
|
31
|
+
t("span", u, [
|
|
32
|
+
c(_)
|
|
33
|
+
])
|
|
34
|
+
]),
|
|
35
|
+
e.titleEnabled ? (o(), n("div", h, [
|
|
36
|
+
e.title ? (o(), n("span", f, i(e.title), 1)) : s("", !0)
|
|
37
|
+
])) : s("", !0)
|
|
38
|
+
]),
|
|
39
|
+
t("div", null, [
|
|
40
|
+
r(a.$slots, "content", {}, void 0, !0)
|
|
41
|
+
])
|
|
42
|
+
]));
|
|
43
|
+
}
|
|
44
|
+
}, N = /* @__PURE__ */ d(v, [["__scopeId", "data-v-aa67f69c"]]);
|
|
45
|
+
export {
|
|
46
|
+
N as default
|
|
47
|
+
};
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { ref as h, computed as b, watch as P, createElementBlock as s, openBlock as a, createElementVNode as o, Fragment as O, renderList as R, normalizeClass as S, withDirectives as z, vModelRadio as F, createTextVNode as j, createCommentVNode as C, createBlock as g, toDisplayString as k, resolveDynamicComponent as x, createVNode as U } from "vue";
|
|
2
|
+
import W from "../../1_icons/ContactCRMIcon.vue.js";
|
|
3
|
+
import G from "../../1_icons/CheckIcon.vue.js";
|
|
4
|
+
import H from "../../1_icons/WhatsAppIcon.vue.js";
|
|
5
|
+
import J from "../../1_icons/TelegramIcon.vue.js";
|
|
6
|
+
/* empty css */
|
|
7
|
+
import K from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
8
|
+
const Q = { class: "contact-info" }, X = { class: "contact-info__attribute-list" }, Y = ["id", "value", "onChange"], Z = ["for"], tt = { class: "contact-info__custom-radio" }, et = { class: "contact-info__radio-inner" }, nt = {
|
|
9
|
+
key: 0,
|
|
10
|
+
class: "contact-info__badge"
|
|
11
|
+
}, ot = { class: "contact-info__channel-section" }, ct = { class: "contact-info__custom-select" }, at = { class: "contact-info__icon" }, lt = ["src", "alt"], it = {
|
|
12
|
+
key: 0,
|
|
13
|
+
class: "contact-info__select-options"
|
|
14
|
+
}, st = ["onClick"], rt = { class: "contact-info__icon" }, ut = ["src", "alt"], dt = { class: "contact-info__crm-button" }, _t = {
|
|
15
|
+
__name: "ContactInfo",
|
|
16
|
+
props: {
|
|
17
|
+
contact: {
|
|
18
|
+
type: Object,
|
|
19
|
+
required: !1,
|
|
20
|
+
default: () => ({ attributes: [] })
|
|
21
|
+
},
|
|
22
|
+
currentDialog: {
|
|
23
|
+
type: Object,
|
|
24
|
+
default: () => ({})
|
|
25
|
+
},
|
|
26
|
+
channels: {
|
|
27
|
+
type: Array,
|
|
28
|
+
required: !0
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
emits: ["close", "open-crm", "select-attribute-channel"],
|
|
32
|
+
setup(y, { emit: B }) {
|
|
33
|
+
var V, A, N;
|
|
34
|
+
const c = y, I = B, l = h(((N = (A = (V = c.contact) == null ? void 0 : V.attributes) == null ? void 0 : A[0]) == null ? void 0 : N.id) || ""), f = h(c.channels[0] || null), u = h(!1), L = (t) => {
|
|
35
|
+
f.value = t, u.value = !1, console.log(`Выбран канал связи: ${t.title}`), I("select-attribute-channel", {
|
|
36
|
+
attributeId: l.value,
|
|
37
|
+
channelId: t.channelId
|
|
38
|
+
});
|
|
39
|
+
}, M = (t) => (t == null ? void 0 : t.replace(/\D/g, "")) || "", w = b(() => {
|
|
40
|
+
var t, e;
|
|
41
|
+
return (e = (t = c.contact) == null ? void 0 : t.attributes) == null ? void 0 : e.find((i) => i.id === l.value);
|
|
42
|
+
}), d = b(() => {
|
|
43
|
+
if (f.value)
|
|
44
|
+
return f.value;
|
|
45
|
+
if (!w.value) return c.channels[0] || null;
|
|
46
|
+
const t = M(w.value.value);
|
|
47
|
+
return t ? c.channels.find((i) => {
|
|
48
|
+
var r, _;
|
|
49
|
+
const v = ((r = i.title) == null ? void 0 : r.toLowerCase()) || "", m = ((_ = i.channelId) == null ? void 0 : _.toLowerCase()) || "", p = v.includes(t), n = ["whatsapp", "waba", "telegram"].some((E) => m.includes(E));
|
|
50
|
+
return p && n;
|
|
51
|
+
}) || c.channels[0] || { title: "default", channelId: "fallback" } : c.channels[0] || null;
|
|
52
|
+
}), T = b(() => c.channels), $ = (t) => t ? t.includes("whatsapp") || t.includes("waba") ? H : t.includes("telegram") ? J : null : null, D = (t) => !c.currentDialog || !Object.keys(c.currentDialog) ? !1 : c.currentDialog.attributeId === t.id, q = (t) => {
|
|
53
|
+
I("select-attribute-channel", {
|
|
54
|
+
attributeId: t.id,
|
|
55
|
+
channelId: f.value.channelId
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
return P(
|
|
59
|
+
() => c.contact,
|
|
60
|
+
() => {
|
|
61
|
+
var t, e;
|
|
62
|
+
(e = (t = c.contact) == null ? void 0 : t.attributes) != null && e.length ? l.value && c.contact.attributes.some((i) => i.id === l.value) || (l.value = c.contact.attributes[0].id) : l.value = "";
|
|
63
|
+
},
|
|
64
|
+
{ immediate: !0 }
|
|
65
|
+
), (t, e) => {
|
|
66
|
+
var i, v, m, p;
|
|
67
|
+
return a(), s("div", Q, [
|
|
68
|
+
o("div", X, [
|
|
69
|
+
(a(!0), s(O, null, R(((i = y.contact) == null ? void 0 : i.attributes) || [], (n, r) => (a(), s("div", {
|
|
70
|
+
key: n.id,
|
|
71
|
+
class: S(["contact-info__attribute-item", { "contact-info__attribute-item--current-chat": D(n) }])
|
|
72
|
+
}, [
|
|
73
|
+
z(o("input", {
|
|
74
|
+
id: `attr-${r}`,
|
|
75
|
+
"onUpdate:modelValue": e[0] || (e[0] = (_) => l.value = _),
|
|
76
|
+
type: "radio",
|
|
77
|
+
value: n.id,
|
|
78
|
+
onChange: (_) => q(n)
|
|
79
|
+
}, null, 40, Y), [
|
|
80
|
+
[F, l.value]
|
|
81
|
+
]),
|
|
82
|
+
o("label", {
|
|
83
|
+
for: `attr-${r}`
|
|
84
|
+
}, [
|
|
85
|
+
o("span", tt, [
|
|
86
|
+
o("span", et, [
|
|
87
|
+
l.value === n.id ? (a(), g(G, { key: 0 })) : C("", !0)
|
|
88
|
+
])
|
|
89
|
+
]),
|
|
90
|
+
j(" " + k(n.value) + " ", 1),
|
|
91
|
+
D(n) ? (a(), s("span", nt, " Текущий чат ")) : C("", !0)
|
|
92
|
+
], 8, Z)
|
|
93
|
+
], 2))), 128))
|
|
94
|
+
]),
|
|
95
|
+
o("div", ot, [
|
|
96
|
+
e[3] || (e[3] = o("label", { class: "contact-info__channel-label" }, "Канал связи", -1)),
|
|
97
|
+
o("div", ct, [
|
|
98
|
+
o("div", {
|
|
99
|
+
class: "contact-info__select-trigger",
|
|
100
|
+
onClick: e[1] || (e[1] = (n) => u.value = !u.value)
|
|
101
|
+
}, [
|
|
102
|
+
o("div", at, [
|
|
103
|
+
(v = d.value) != null && v.icon ? (a(), s("img", {
|
|
104
|
+
key: 0,
|
|
105
|
+
src: d.value.icon,
|
|
106
|
+
alt: d.value.title,
|
|
107
|
+
width: "22",
|
|
108
|
+
height: "22"
|
|
109
|
+
}, null, 8, lt)) : (a(), g(x($((m = d.value) == null ? void 0 : m.channelId)), {
|
|
110
|
+
key: 1,
|
|
111
|
+
class: "contact-info__icon-component"
|
|
112
|
+
}))
|
|
113
|
+
]),
|
|
114
|
+
o("span", null, k((p = d.value) == null ? void 0 : p.title), 1),
|
|
115
|
+
o("div", {
|
|
116
|
+
class: S(["contact-info__arrow", { "contact-info__arrow--open": u.value }])
|
|
117
|
+
}, null, 2)
|
|
118
|
+
]),
|
|
119
|
+
u.value ? (a(), s("div", it, [
|
|
120
|
+
(a(!0), s(O, null, R(T.value, (n) => (a(), s("div", {
|
|
121
|
+
key: n.channelId,
|
|
122
|
+
class: "contact-info__select-option",
|
|
123
|
+
onClick: (r) => L(n)
|
|
124
|
+
}, [
|
|
125
|
+
o("div", rt, [
|
|
126
|
+
n.icon ? (a(), s("img", {
|
|
127
|
+
key: 0,
|
|
128
|
+
src: n.icon,
|
|
129
|
+
alt: n.title,
|
|
130
|
+
width: "22",
|
|
131
|
+
height: "22"
|
|
132
|
+
}, null, 8, ut)) : (a(), g(x($(n.channelId)), {
|
|
133
|
+
key: 1,
|
|
134
|
+
class: "contact-info__icon-component"
|
|
135
|
+
}))
|
|
136
|
+
]),
|
|
137
|
+
o("span", null, k(n.title), 1)
|
|
138
|
+
], 8, st))), 128))
|
|
139
|
+
])) : C("", !0)
|
|
140
|
+
])
|
|
141
|
+
]),
|
|
142
|
+
e[5] || (e[5] = o("div", { class: "contact-info__divider" }, null, -1)),
|
|
143
|
+
o("div", dt, [
|
|
144
|
+
o("button", {
|
|
145
|
+
class: "contact-info__button",
|
|
146
|
+
onClick: e[2] || (e[2] = (n) => t.$emit("open-crm"))
|
|
147
|
+
}, [
|
|
148
|
+
U(W),
|
|
149
|
+
e[4] || (e[4] = j(" Открыть контакт в CRM ", -1))
|
|
150
|
+
])
|
|
151
|
+
])
|
|
152
|
+
]);
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}, gt = /* @__PURE__ */ K(_t, [["__scopeId", "data-v-42660d89"]]);
|
|
156
|
+
export {
|
|
157
|
+
gt as default
|
|
158
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { inject as f, onMounted as T, createElementBlock as m, createCommentVNode as _, openBlock as s, createElementVNode as g, Fragment as y, renderList as v, toDisplayString as k } from "vue";
|
|
2
|
+
import "../../../hooks/useMessageDraft.js";
|
|
3
|
+
import "../../../hooks/useSearchModel.js";
|
|
4
|
+
import { useTheme as B } from "../../../hooks/useTheme.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
import I from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
7
|
+
/* empty css */
|
|
8
|
+
import "../../../node_modules/linkifyjs/dist/linkify.js";
|
|
9
|
+
import "../../../functions/parseMarkdown.js";
|
|
10
|
+
/* empty css */
|
|
11
|
+
const x = { key: 0 }, A = ["value", "selected"], E = {
|
|
12
|
+
__name: "ThemeMode",
|
|
13
|
+
props: {
|
|
14
|
+
themes: {
|
|
15
|
+
type: Array,
|
|
16
|
+
default: () => []
|
|
17
|
+
},
|
|
18
|
+
show: Boolean
|
|
19
|
+
},
|
|
20
|
+
emits: ["selectedTheme"],
|
|
21
|
+
setup(c, { emit: a }) {
|
|
22
|
+
const n = c, i = a, r = f("chatAppId"), { getTheme: p } = B(r), l = () => {
|
|
23
|
+
const e = n.themes.find((t) => t.default === !0);
|
|
24
|
+
return e ? e.code : n.themes[0].code;
|
|
25
|
+
}, u = (e) => {
|
|
26
|
+
const t = e.target.value;
|
|
27
|
+
d(t);
|
|
28
|
+
}, d = (e) => {
|
|
29
|
+
r && (document.getElementById(r).dataset.theme = e, p().theme = e, i("selectedTheme", e));
|
|
30
|
+
};
|
|
31
|
+
return T(() => {
|
|
32
|
+
const e = l();
|
|
33
|
+
d(e);
|
|
34
|
+
}), (e, t) => c.show ? (s(), m("div", x, [
|
|
35
|
+
g("select", {
|
|
36
|
+
onChange: t[0] || (t[0] = (o) => u(o))
|
|
37
|
+
}, [
|
|
38
|
+
(s(!0), m(y, null, v(n.themes, (o, h) => (s(), m("option", {
|
|
39
|
+
key: h,
|
|
40
|
+
value: o.code,
|
|
41
|
+
selected: o.default === !0
|
|
42
|
+
}, k(o.name), 9, A))), 128))
|
|
43
|
+
], 32)
|
|
44
|
+
])) : _("", !0);
|
|
45
|
+
}
|
|
46
|
+
}, S = /* @__PURE__ */ I(E, [["__scopeId", "data-v-c6c5d7cb"]]);
|
|
47
|
+
export {
|
|
48
|
+
S as default
|
|
49
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createElementBlock as r, createCommentVNode as o, openBlock as a, createElementVNode as t, normalizeStyle as c, toDisplayString as s } from "vue";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import i from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const l = {
|
|
5
|
+
key: 0,
|
|
6
|
+
class: "profile__container"
|
|
7
|
+
}, n = {
|
|
8
|
+
key: 0,
|
|
9
|
+
class: "profile__avatar-container"
|
|
10
|
+
}, _ = ["src"], u = { class: "profile__name" }, d = { class: "profile__email" }, m = { class: "profile__phone" }, f = {
|
|
11
|
+
__name: "UserProfile",
|
|
12
|
+
props: {
|
|
13
|
+
user: {
|
|
14
|
+
type: Object,
|
|
15
|
+
required: !0
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
setup(e) {
|
|
19
|
+
return (h, p) => e.user ? (a(), r("div", l, [
|
|
20
|
+
e.user.avatar ? (a(), r("div", n, [
|
|
21
|
+
t("span", {
|
|
22
|
+
class: "profile__status",
|
|
23
|
+
style: c({ backgroundColor: e.user.status })
|
|
24
|
+
}, null, 4),
|
|
25
|
+
t("img", {
|
|
26
|
+
src: e.user.avatar,
|
|
27
|
+
height: "48",
|
|
28
|
+
width: "48"
|
|
29
|
+
}, null, 8, _)
|
|
30
|
+
])) : o("", !0),
|
|
31
|
+
t("h2", u, s(e.user.name), 1),
|
|
32
|
+
t("p", d, s(e.user.email), 1),
|
|
33
|
+
t("p", m, s(e.user.phone), 1)
|
|
34
|
+
])) : o("", !0);
|
|
35
|
+
}
|
|
36
|
+
}, g = /* @__PURE__ */ i(f, [["__scopeId", "data-v-8ff961d8"]]);
|
|
37
|
+
export {
|
|
38
|
+
g as default
|
|
39
|
+
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { defineComponent as F, inject as R, ref as g, watch as V, createElementBlock as d, openBlock as o, Fragment as C, createCommentVNode as s, createBlock as y, unref as p, normalizeClass as I, createElementVNode as w, Teleport as M } from "vue";
|
|
2
|
+
import { uploadFile as z } from "../../../hooks/uploadFile/uploadFile.js";
|
|
3
|
+
import { useMessageDraft as A } from "../../../hooks/useMessageDraft.js";
|
|
4
|
+
import "../../../hooks/useSearchModel.js";
|
|
5
|
+
import { useTheme as B } from "../../../hooks/useTheme.js";
|
|
6
|
+
/* empty css */
|
|
7
|
+
/* empty css */
|
|
8
|
+
import { useModalVideoRecorder as S } from "../../../hooks/modals/useVideoRecorder.js";
|
|
9
|
+
import "../../../node_modules/linkifyjs/dist/linkify.js";
|
|
10
|
+
import "../../../functions/parseMarkdown.js";
|
|
11
|
+
import E from "../../2_chatinput_elements/FilePreview/FilePreview.vue.js";
|
|
12
|
+
const U = {
|
|
13
|
+
key: 0,
|
|
14
|
+
class: "video-recorder__container"
|
|
15
|
+
}, N = {
|
|
16
|
+
key: 1,
|
|
17
|
+
class: "video-recorder__container"
|
|
18
|
+
}, O = /* @__PURE__ */ F({
|
|
19
|
+
__name: "VideoRecorder",
|
|
20
|
+
props: {
|
|
21
|
+
state: {
|
|
22
|
+
type: String,
|
|
23
|
+
default: "active"
|
|
24
|
+
},
|
|
25
|
+
filebumpUrl: {
|
|
26
|
+
type: String,
|
|
27
|
+
default: null
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
setup(c) {
|
|
31
|
+
const r = R("chatAppId"), { getMessage: t, setMessageFile: h, setRecordingMessage: m, resetMessageFile: _ } = A(r), { getTheme: u } = B(r), a = g(""), l = g(), f = c, k = async () => {
|
|
32
|
+
if (!t().file && f.state == "active") {
|
|
33
|
+
const n = u().theme ? u().theme : "";
|
|
34
|
+
await S(n).then(async (i) => {
|
|
35
|
+
i.videoFile && (a.value = "uploading", m(!0), await z(f.filebumpUrl, i.videoFile).then((e) => {
|
|
36
|
+
if (m(!1), a.value = e.status, e.status == "success") {
|
|
37
|
+
h({
|
|
38
|
+
url: e.url,
|
|
39
|
+
name: e.name,
|
|
40
|
+
size: e.size,
|
|
41
|
+
type: e.type
|
|
42
|
+
});
|
|
43
|
+
const v = document.getElementById("chat-input-file-line-" + r);
|
|
44
|
+
v && (v.style.display = "inherit"), e.preview && (l.value = {
|
|
45
|
+
previewUrl: e.preview.previewUrl,
|
|
46
|
+
isImage: e.preview.isImage,
|
|
47
|
+
isVideo: e.preview.isVideo,
|
|
48
|
+
isAudio: e.preview.isAudio,
|
|
49
|
+
fileName: e.name,
|
|
50
|
+
fileSize: e.preview.fileSize
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}));
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}, b = () => {
|
|
57
|
+
_();
|
|
58
|
+
const n = document.getElementById("chat-input-file-line-" + r);
|
|
59
|
+
n && (n.style.display = "none"), l.value = void 0;
|
|
60
|
+
};
|
|
61
|
+
return V(
|
|
62
|
+
() => t().file,
|
|
63
|
+
() => {
|
|
64
|
+
t().file || (l.value = void 0);
|
|
65
|
+
}
|
|
66
|
+
), (n, i) => (o(), d(C, null, [
|
|
67
|
+
p(t)().isRecording ? s("", !0) : (o(), d("div", U, [
|
|
68
|
+
a.value != "uploading" ? (o(), d("button", {
|
|
69
|
+
key: 0,
|
|
70
|
+
class: I(["video-recorder__button", { "video-recorder__button-disabled": c.state == "disabled" || p(t)().file }]),
|
|
71
|
+
onClick: k
|
|
72
|
+
}, [...i[0] || (i[0] = [
|
|
73
|
+
w("span", { class: "pi pi-video" }, null, -1)
|
|
74
|
+
])], 2)) : s("", !0)
|
|
75
|
+
])),
|
|
76
|
+
a.value === "uploading" ? (o(), d("div", N, [...i[1] || (i[1] = [
|
|
77
|
+
w("p", null, "Загрузка файла...", -1)
|
|
78
|
+
])])) : s("", !0),
|
|
79
|
+
p(t)().file ? (o(), y(M, {
|
|
80
|
+
key: 2,
|
|
81
|
+
to: "#chat-input-file-line-" + p(r)
|
|
82
|
+
}, [
|
|
83
|
+
l.value ? (o(), y(E, {
|
|
84
|
+
key: 0,
|
|
85
|
+
"file-info": l.value,
|
|
86
|
+
onReset: b
|
|
87
|
+
}, null, 8, ["file-info"])) : s("", !0)
|
|
88
|
+
], 8, ["to"])) : s("", !0)
|
|
89
|
+
], 64));
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
export {
|
|
93
|
+
O as default
|
|
94
|
+
};
|