stream-chat-react-native-core 3.10.2 → 4.0.0-beta.4
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/lib/commonjs/components/Attachment/Attachment.js +2 -2
- package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/AttachmentActions.js.map +1 -1
- package/lib/commonjs/components/Attachment/Card.js +18 -15
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachment.js +8 -8
- package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileIcon.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +97 -113
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +112 -148
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGallery.js +46 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGallery.js.map +1 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js +88 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js +75 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js +43 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js +30 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnailGrid.js +49 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnailGrid.js.map +1 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/types.js +4 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/types.js.map +1 -0
- package/lib/commonjs/components/Attachment/utils/getAspectRatio.js +14 -0
- package/lib/commonjs/components/Attachment/utils/getAspectRatio.js.map +1 -0
- package/lib/commonjs/components/Attachment/utils/getGalleryImageBorderRadius.js +36 -0
- package/lib/commonjs/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -0
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +9 -8
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
- package/lib/commonjs/components/Avatar/Avatar.js +13 -7
- package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js +10 -10
- package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +332 -247
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +5 -5
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +9 -31
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
- package/lib/commonjs/components/ChannelList/ChannelList.js +6 -6
- package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +5 -4
- package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js +6 -7
- package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +4 -3
- package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +17 -17
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +2 -2
- package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js +2 -2
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +2 -2
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js +3 -3
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +2 -2
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +89 -64
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/ChannelList/utils.js +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +2 -2
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +2 -2
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +49 -20
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +51 -0
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -0
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js +12 -5
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +90 -58
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +2 -2
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +12 -12
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +7 -7
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +5 -5
- package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingIndicator.js +9 -9
- package/lib/commonjs/components/Indicators/LoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +151 -860
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +6 -6
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +39 -38
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +8 -6
- package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +33 -21
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
- package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
- package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +5 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +5 -5
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +27 -13
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +25 -24
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +7 -3
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +52 -80
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js +89 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js.map +1 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js +46 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +170 -73
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +240 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js.map +1 -0
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +1 -5
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +307 -0
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
- package/lib/commonjs/components/Message/hooks/useMessageActions.js +563 -0
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -0
- package/lib/commonjs/components/Message/utils/messageActions.js +17 -15
- package/lib/commonjs/components/Message/utils/messageActions.js.map +1 -1
- package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +1 -1
- package/lib/commonjs/components/MessageInput/AttachButton.js +3 -3
- package/lib/commonjs/components/MessageInput/AttachButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/CommandsButton.js +3 -3
- package/lib/commonjs/components/MessageInput/CommandsButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/CooldownTimer.js +78 -0
- package/lib/commonjs/components/MessageInput/CooldownTimer.js.map +1 -0
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +4 -4
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +9 -9
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/InputButtons.js +17 -22
- package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +93 -65
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +3 -3
- package/lib/commonjs/components/MessageInput/MoreOptionsButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
- package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
- package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +4 -3
- package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/hooks/useCooldown.js +63 -0
- package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -0
- package/lib/commonjs/components/MessageInput/hooks/useCountdown.js +57 -0
- package/lib/commonjs/components/MessageInput/hooks/useCountdown.js.map +1 -0
- package/lib/commonjs/components/MessageList/DateHeader.js +2 -2
- package/lib/commonjs/components/MessageList/DateHeader.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineDateSeparator.js +2 -2
- package/lib/commonjs/components/MessageList/InlineDateSeparator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +77 -44
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageSystem.js.map +1 -1
- package/lib/commonjs/components/MessageList/TypingIndicator.js +5 -5
- package/lib/commonjs/components/MessageList/TypingIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +23 -10
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useTypingString.js +2 -2
- package/lib/commonjs/components/MessageList/hooks/useTypingString.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +2 -1
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +10 -5
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js +3 -1
- package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
- package/lib/{module/components/MessageOverlay/MessageActions.js → commonjs/components/MessageOverlay/MessageActionList.js} +33 -85
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -0
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +131 -0
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -0
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +97 -78
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +38 -0
- package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
- package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +12 -11
- package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +31 -34
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js +41 -0
- package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -0
- package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
- package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
- package/lib/commonjs/components/Reply/Reply.js +25 -19
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/components/Thread/Thread.js +11 -2
- package/lib/commonjs/components/Thread/Thread.js.map +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +20 -12
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/commonjs/components/docs/ListProps.md +1 -1
- package/lib/commonjs/components/docs/data.js +1 -1
- package/lib/commonjs/components/index.js +133 -55
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
- package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +2 -2
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +2 -2
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +144 -0
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -0
- package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +2 -2
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +2 -2
- package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js.map +1 -1
- package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
- package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +122 -84
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +10 -3
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +5 -19
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.js +36 -0
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -0
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +105 -0
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -0
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +55 -46
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
- package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
- package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +2 -2
- package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +20 -33
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/ThemeContext.js +2 -2
- package/lib/commonjs/contexts/themeContext/ThemeContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +45 -20
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/contexts/threadContext/ThreadContext.js +2 -2
- package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/commonjs/contexts/translationContext/TranslationContext.js +1 -1
- package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
- package/lib/commonjs/contexts/typingContext/TypingContext.js +2 -2
- package/lib/commonjs/contexts/typingContext/TypingContext.js.map +1 -1
- package/lib/commonjs/contexts/utils/getDisplayName.js.map +1 -1
- package/lib/commonjs/emoji-data/compiled.js +0 -315
- package/lib/commonjs/emoji-data/compiled.js.map +1 -1
- package/lib/commonjs/emoji-data/emojiNames.js +0 -105
- package/lib/commonjs/emoji-data/emojiNames.js.map +1 -1
- package/lib/commonjs/emoji-data/emojis.js +0 -175
- package/lib/commonjs/emoji-data/emojis.js.map +1 -1
- package/lib/commonjs/emoji-data/index.js +2 -2
- package/lib/commonjs/emoji-data/index.js.map +1 -1
- package/lib/commonjs/hooks/useStreami18n.js.map +1 -1
- package/lib/commonjs/i18n/en.json +9 -3
- package/lib/commonjs/i18n/fr.json +9 -3
- package/lib/commonjs/i18n/hi.json +9 -3
- package/lib/commonjs/i18n/it.json +9 -3
- package/lib/commonjs/i18n/ja.json +9 -0
- package/lib/commonjs/i18n/ko.json +9 -0
- package/lib/commonjs/i18n/nl.json +9 -3
- package/lib/commonjs/i18n/ru.json +9 -3
- package/lib/commonjs/i18n/tr.json +10 -4
- package/lib/commonjs/icons/Pin.js +42 -0
- package/lib/commonjs/icons/Pin.js.map +1 -0
- package/lib/commonjs/icons/PinHeader.js +38 -0
- package/lib/commonjs/icons/PinHeader.js.map +1 -0
- package/lib/commonjs/icons/Unpin.js +38 -0
- package/lib/commonjs/icons/Unpin.js.map +1 -0
- package/lib/commonjs/icons/index.js +39 -26
- package/lib/commonjs/icons/index.js.map +1 -1
- package/lib/commonjs/icons/utils/base.js +1 -1
- package/lib/commonjs/index.js +6 -6
- package/lib/commonjs/mock-builders/api/error.js +1 -1
- package/lib/commonjs/mock-builders/api/sendMessage.js +4 -1
- package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/attachment.js +1 -3
- package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/channel.js +101 -50
- package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/user.js +32 -33
- package/lib/commonjs/mock-builders/generator/user.js.map +1 -1
- package/lib/commonjs/mock-builders/mock.js +3 -3
- package/lib/commonjs/mock-builders/mock.js.map +1 -1
- package/lib/commonjs/native.js +1 -7
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/styleguideComponents/ArgumentsRenderer.js +7 -7
- package/lib/commonjs/styleguideComponents/ArgumentsRenderer.js.map +1 -1
- package/lib/commonjs/styleguideComponents/JsDoc.js +4 -4
- package/lib/commonjs/styleguideComponents/JsDoc.js.map +1 -1
- package/lib/commonjs/styleguideComponents/PathlineRenderer.js +7 -7
- package/lib/commonjs/styleguideComponents/PathlineRenderer.js.map +1 -1
- package/lib/commonjs/styleguideComponents/PropsRenderer.js +25 -25
- package/lib/commonjs/styleguideComponents/PropsRenderer.js.map +1 -1
- package/lib/commonjs/styleguideComponents/Wrapper.js +1 -1
- package/lib/commonjs/styleguideComponents/Wrapper.js.map +1 -1
- package/lib/commonjs/utils/Streami18n.js.map +1 -1
- package/lib/commonjs/utils/date.js +13 -0
- package/lib/commonjs/utils/date.js.map +1 -0
- package/lib/commonjs/utils/getResizedImageUrl.js +26 -0
- package/lib/commonjs/utils/getResizedImageUrl.js.map +1 -0
- package/lib/commonjs/utils/getUrlOfImageAttachment.js +9 -0
- package/lib/commonjs/utils/getUrlOfImageAttachment.js.map +1 -0
- package/lib/commonjs/utils/utils.js +17 -9
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Attachment.js +2 -2
- package/lib/module/components/Attachment/Attachment.js.map +1 -1
- package/lib/module/components/Attachment/AttachmentActions.js.map +1 -1
- package/lib/module/components/Attachment/Card.js +18 -15
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachment.js +8 -8
- package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/module/components/Attachment/FileIcon.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +97 -113
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +112 -148
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildGallery.js +46 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildGallery.js.map +1 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js +88 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js +75 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js +43 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js +30 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnailGrid.js +49 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnailGrid.js.map +1 -0
- package/lib/module/components/Attachment/utils/buildGallery/types.js +4 -0
- package/lib/module/components/Attachment/utils/buildGallery/types.js.map +1 -0
- package/lib/module/components/Attachment/utils/getAspectRatio.js +14 -0
- package/lib/module/components/Attachment/utils/getAspectRatio.js.map +1 -0
- package/lib/module/components/Attachment/utils/getGalleryImageBorderRadius.js +36 -0
- package/lib/module/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -0
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +9 -8
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
- package/lib/module/components/Avatar/Avatar.js +13 -7
- package/lib/module/components/Avatar/Avatar.js.map +1 -1
- package/lib/module/components/Avatar/GroupAvatar.js +10 -10
- package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +332 -247
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js +5 -5
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +9 -31
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
- package/lib/module/components/ChannelList/ChannelList.js +6 -6
- package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +5 -4
- package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js +6 -7
- package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +4 -3
- package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListMessenger.js +17 -17
- package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +2 -2
- package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js +2 -2
- package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +2 -2
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js +3 -3
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +2 -2
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +89 -64
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/ChannelList/utils.js +1 -1
- package/lib/module/components/ChannelPreview/ChannelAvatar.js +2 -2
- package/lib/module/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreview.js +2 -2
- package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +49 -20
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +51 -0
- package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -0
- package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
- package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
- package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useIsOnline.js +12 -5
- package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +90 -58
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +2 -2
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +12 -12
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGrid.js +7 -7
- package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGridHandle.js +5 -5
- package/lib/module/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
- package/lib/module/components/Indicators/LoadingErrorIndicator.js.map +1 -1
- package/lib/module/components/Indicators/LoadingIndicator.js +9 -9
- package/lib/module/components/Indicators/LoadingIndicator.js.map +1 -1
- package/lib/module/components/Message/Message.js +151 -860
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js +6 -6
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +39 -38
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageDeleted.js +8 -6
- package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageFooter.js +33 -21
- package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
- package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
- package/lib/module/components/Message/MessageSimple/MessageReplies.js +5 -1
- package/lib/module/components/Message/MessageSimple/MessageReplies.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +5 -5
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +27 -13
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageStatus.js +25 -24
- package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +7 -3
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/ReactionList.js +52 -80
- package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.js +89 -0
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.js.map +1 -0
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js +46 -0
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -0
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +170 -73
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +240 -0
- package/lib/module/components/Message/MessageSimple/utils/renderText.test.js.map +1 -0
- package/lib/module/components/Message/hooks/useCreateMessageContext.js +1 -5
- package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js +307 -0
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
- package/lib/module/components/Message/hooks/useMessageActions.js +563 -0
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -0
- package/lib/module/components/Message/utils/messageActions.js +17 -15
- package/lib/module/components/Message/utils/messageActions.js.map +1 -1
- package/lib/module/components/Message/utils/removeReservedFields.js.map +1 -1
- package/lib/module/components/MessageInput/AttachButton.js +3 -3
- package/lib/module/components/MessageInput/AttachButton.js.map +1 -1
- package/lib/module/components/MessageInput/CommandsButton.js +3 -3
- package/lib/module/components/MessageInput/CommandsButton.js.map +1 -1
- package/lib/module/components/MessageInput/CooldownTimer.js +78 -0
- package/lib/module/components/MessageInput/CooldownTimer.js.map +1 -0
- package/lib/module/components/MessageInput/FileUploadPreview.js +4 -4
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +9 -9
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/InputButtons.js +17 -22
- package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +93 -65
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageInput/MoreOptionsButton.js +3 -3
- package/lib/module/components/MessageInput/MoreOptionsButton.js.map +1 -1
- package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
- package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
- package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +4 -3
- package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
- package/lib/module/components/MessageInput/hooks/useCooldown.js +63 -0
- package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -0
- package/lib/module/components/MessageInput/hooks/useCountdown.js +57 -0
- package/lib/module/components/MessageInput/hooks/useCountdown.js.map +1 -0
- package/lib/module/components/MessageList/DateHeader.js +2 -2
- package/lib/module/components/MessageList/DateHeader.js.map +1 -1
- package/lib/module/components/MessageList/InlineDateSeparator.js +2 -2
- package/lib/module/components/MessageList/InlineDateSeparator.js.map +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
- package/lib/module/components/MessageList/MessageList.js +77 -44
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/MessageSystem.js.map +1 -1
- package/lib/module/components/MessageList/TypingIndicator.js +5 -5
- package/lib/module/components/MessageList/TypingIndicator.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +23 -10
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useTypingString.js +2 -2
- package/lib/module/components/MessageList/hooks/useTypingString.js.map +1 -1
- package/lib/module/components/MessageList/utils/getDateSeparators.js +2 -1
- package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/module/components/MessageList/utils/getGroupStyles.js +10 -5
- package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/module/components/MessageList/utils/getLastReceivedMessage.js +3 -1
- package/lib/module/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
- package/lib/{commonjs/components/MessageOverlay/MessageActions.js → module/components/MessageOverlay/MessageActionList.js} +33 -85
- package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -0
- package/lib/module/components/MessageOverlay/MessageActionListItem.js +131 -0
- package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -0
- package/lib/module/components/MessageOverlay/MessageOverlay.js +97 -78
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayBackdrop.js +38 -0
- package/lib/module/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
- package/lib/module/components/MessageOverlay/OverlayReactionList.js +12 -11
- package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactions.js +31 -34
- package/lib/module/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js +41 -0
- package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -0
- package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
- package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
- package/lib/module/components/Reply/Reply.js +25 -19
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/components/Thread/Thread.js +11 -2
- package/lib/module/components/Thread/Thread.js.map +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js +20 -12
- package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/module/components/docs/ListProps.md +1 -1
- package/lib/module/components/docs/data.js +1 -1
- package/lib/module/components/index.js +133 -55
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
- package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +2 -2
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/channelsContext/ChannelsContext.js +2 -2
- package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
- package/lib/module/contexts/channelsStateContext/useChannelState.js +144 -0
- package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -0
- package/lib/module/contexts/chatContext/ChatContext.js +2 -2
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +2 -2
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/module/contexts/keyboardContext/KeyboardContext.js +2 -2
- package/lib/module/contexts/keyboardContext/KeyboardContext.js.map +1 -1
- package/lib/module/contexts/messageContext/MessageContext.js +2 -2
- package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +122 -84
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +10 -3
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +5 -19
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.js +36 -0
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -0
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +105 -0
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -0
- package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js +55 -46
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
- package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
- package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +2 -2
- package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +20 -33
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/module/contexts/themeContext/ThemeContext.js +2 -2
- package/lib/module/contexts/themeContext/ThemeContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +45 -20
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/contexts/threadContext/ThreadContext.js +2 -2
- package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/module/contexts/translationContext/TranslationContext.js +1 -1
- package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
- package/lib/module/contexts/typingContext/TypingContext.js +2 -2
- package/lib/module/contexts/typingContext/TypingContext.js.map +1 -1
- package/lib/module/contexts/utils/getDisplayName.js.map +1 -1
- package/lib/module/emoji-data/compiled.js +0 -315
- package/lib/module/emoji-data/compiled.js.map +1 -1
- package/lib/module/emoji-data/emojiNames.js +0 -105
- package/lib/module/emoji-data/emojiNames.js.map +1 -1
- package/lib/module/emoji-data/emojis.js +0 -175
- package/lib/module/emoji-data/emojis.js.map +1 -1
- package/lib/module/emoji-data/index.js +2 -2
- package/lib/module/emoji-data/index.js.map +1 -1
- package/lib/module/hooks/useStreami18n.js.map +1 -1
- package/lib/module/i18n/en.json +9 -3
- package/lib/module/i18n/fr.json +9 -3
- package/lib/module/i18n/hi.json +9 -3
- package/lib/module/i18n/it.json +9 -3
- package/lib/module/i18n/ja.json +9 -0
- package/lib/module/i18n/ko.json +9 -0
- package/lib/module/i18n/nl.json +9 -3
- package/lib/module/i18n/ru.json +9 -3
- package/lib/module/i18n/tr.json +10 -4
- package/lib/module/icons/Pin.js +42 -0
- package/lib/module/icons/Pin.js.map +1 -0
- package/lib/module/icons/PinHeader.js +38 -0
- package/lib/module/icons/PinHeader.js.map +1 -0
- package/lib/module/icons/Unpin.js +38 -0
- package/lib/module/icons/Unpin.js.map +1 -0
- package/lib/module/icons/index.js +39 -26
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/icons/utils/base.js +1 -1
- package/lib/module/index.js +6 -6
- package/lib/module/mock-builders/api/error.js +1 -1
- package/lib/module/mock-builders/api/sendMessage.js +4 -1
- package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
- package/lib/module/mock-builders/generator/attachment.js +1 -3
- package/lib/module/mock-builders/generator/attachment.js.map +1 -1
- package/lib/module/mock-builders/generator/channel.js +101 -50
- package/lib/module/mock-builders/generator/channel.js.map +1 -1
- package/lib/module/mock-builders/generator/user.js +32 -33
- package/lib/module/mock-builders/generator/user.js.map +1 -1
- package/lib/module/mock-builders/mock.js +3 -3
- package/lib/module/mock-builders/mock.js.map +1 -1
- package/lib/module/native.js +1 -7
- package/lib/module/native.js.map +1 -1
- package/lib/module/styleguideComponents/ArgumentsRenderer.js +7 -7
- package/lib/module/styleguideComponents/ArgumentsRenderer.js.map +1 -1
- package/lib/module/styleguideComponents/JsDoc.js +4 -4
- package/lib/module/styleguideComponents/JsDoc.js.map +1 -1
- package/lib/module/styleguideComponents/PathlineRenderer.js +7 -7
- package/lib/module/styleguideComponents/PathlineRenderer.js.map +1 -1
- package/lib/module/styleguideComponents/PropsRenderer.js +25 -25
- package/lib/module/styleguideComponents/PropsRenderer.js.map +1 -1
- package/lib/module/styleguideComponents/Wrapper.js +1 -1
- package/lib/module/styleguideComponents/Wrapper.js.map +1 -1
- package/lib/module/utils/Streami18n.js.map +1 -1
- package/lib/module/utils/date.js +13 -0
- package/lib/module/utils/date.js.map +1 -0
- package/lib/module/utils/getResizedImageUrl.js +26 -0
- package/lib/module/utils/getResizedImageUrl.js.map +1 -0
- package/lib/module/utils/getUrlOfImageAttachment.js +9 -0
- package/lib/module/utils/getUrlOfImageAttachment.js.map +1 -0
- package/lib/module/utils/utils.js +17 -9
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Attachment.d.ts +1 -1
- package/lib/typescript/components/Attachment/AttachmentActions.d.ts +1 -1
- package/lib/typescript/components/Attachment/Card.d.ts +3 -1
- package/lib/typescript/components/Attachment/FileAttachment.d.ts +1 -1
- package/lib/typescript/components/Attachment/Gallery.d.ts +4 -6
- package/lib/typescript/components/Attachment/Giphy.d.ts +1 -1
- package/lib/typescript/components/Attachment/utils/buildGallery/buildGallery.d.ts +23 -0
- package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.d.ts +7 -0
- package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.d.ts +7 -0
- package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.d.ts +7 -0
- package/lib/typescript/components/Attachment/utils/buildGallery/buildThumbnail.d.ts +10 -0
- package/lib/typescript/components/Attachment/utils/buildGallery/buildThumbnailGrid.d.ts +137 -0
- package/lib/typescript/components/Attachment/utils/buildGallery/types.d.ts +23 -0
- package/lib/typescript/components/Attachment/utils/getAspectRatio.d.ts +9 -0
- package/lib/typescript/components/Attachment/utils/getGalleryImageBorderRadius.d.ts +22 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +7 -1
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.d.ts +4 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +8 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +10 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +21 -0
- package/lib/typescript/components/Channel/Channel.d.ts +13 -12
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -68
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -126
- package/lib/typescript/components/Channel/hooks/useCreateOwnCapabilitiesContext.d.ts +7 -0
- package/lib/typescript/components/ChannelList/ChannelList.d.ts +1 -1
- package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +4 -2
- package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts +2 -2
- package/lib/typescript/components/ChannelPreview/ChannelPreviewMessenger.d.ts +2 -2
- package/lib/typescript/components/ChannelPreview/ChannelPreviewMutedStatus.d.ts +9 -0
- package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.d.ts +12 -0
- package/lib/typescript/components/Chat/Chat.d.ts +1 -1
- package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +4 -1
- package/lib/typescript/components/ImageGallery/components/AnimatedGalleryImage.d.ts +1 -1
- package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +1 -1
- package/lib/typescript/components/ImageGallery/components/ImageGalleryHeader.d.ts +1 -1
- package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +1 -1
- package/lib/typescript/components/Indicators/LoadingErrorIndicator.d.ts +1 -1
- package/lib/typescript/components/Message/Message.d.ts +4 -3
- package/lib/typescript/components/Message/MessageSimple/MessageAvatar.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageDeleted.d.ts +2 -2
- package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts +2 -2
- package/lib/typescript/components/Message/MessageSimple/MessagePinnedHeader.d.ts +8 -0
- package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/ReactionList.d.ts +2 -1
- package/lib/typescript/components/Message/MessageSimple/utils/parseLinks.d.ts +7 -0
- package/lib/typescript/components/Message/MessageSimple/utils/parseLinks.test.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +18 -3
- package/lib/typescript/components/Message/MessageSimple/utils/renderText.test.d.ts +1 -0
- package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +15 -0
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +26 -0
- package/lib/typescript/components/Message/utils/messageActions.d.ts +22 -21
- package/lib/typescript/components/Message/utils/removeReservedFields.d.ts +1 -1
- package/lib/typescript/components/MessageInput/AttachButton.d.ts +1 -1
- package/lib/typescript/components/MessageInput/CommandsButton.d.ts +1 -1
- package/lib/typescript/components/MessageInput/CooldownTimer.d.ts +10 -0
- package/lib/typescript/components/MessageInput/InputButtons.d.ts +1 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
- package/lib/typescript/components/MessageInput/MoreOptionsButton.d.ts +1 -1
- package/lib/typescript/components/MessageInput/SendMessageDisallowedIndicator.d.ts +1 -0
- package/lib/typescript/components/MessageInput/hooks/useCooldown.d.ts +9 -0
- package/lib/typescript/components/MessageInput/hooks/useCountdown.d.ts +8 -0
- package/lib/typescript/components/MessageList/MessageList.d.ts +2 -1
- package/lib/typescript/components/MessageList/MessageSystem.d.ts +1 -1
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +1 -0
- package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts +1 -1
- package/lib/typescript/components/MessageOverlay/MessageActionList.d.ts +12 -0
- package/lib/typescript/components/MessageOverlay/MessageActionListItem.d.ts +20 -0
- package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +4 -4
- package/lib/typescript/components/MessageOverlay/OverlayBackdrop.d.ts +6 -0
- package/lib/typescript/components/MessageOverlay/OverlayReactions.d.ts +3 -1
- package/lib/typescript/components/MessageOverlay/OverlayReactionsAvatar.d.ts +7 -0
- package/lib/typescript/components/MessageOverlay/hooks/useMessageActionAnimation.d.ts +12 -0
- package/lib/typescript/components/Reply/Reply.d.ts +1 -1
- package/lib/typescript/components/Thread/Thread.d.ts +2 -2
- package/lib/typescript/components/index.d.ts +13 -7
- package/lib/typescript/contexts/activeChannelsRefContext/ActiveChannelsRefContext.d.ts +9 -0
- package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +28 -30
- package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +13 -5
- package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts +41 -0
- package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts +20 -0
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +2 -6
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +21 -10
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +3 -3
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +1 -1
- package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +12 -13
- package/lib/typescript/contexts/messageOverlayContext/hooks/useResettableState.d.ts +12 -0
- package/lib/typescript/contexts/messageOverlayContext/hooks/useResettableState.test.d.ts +1 -0
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +23 -114
- package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +14 -7
- package/lib/typescript/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.d.ts +25 -0
- package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +14 -13
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +41 -16
- package/lib/typescript/contexts/utils/getDisplayName.d.ts +2 -2
- package/lib/typescript/hooks/useStreami18n.d.ts +1 -1
- package/lib/typescript/i18n/en.json +9 -3
- package/lib/typescript/i18n/fr.json +9 -3
- package/lib/typescript/i18n/hi.json +9 -3
- package/lib/typescript/i18n/it.json +9 -3
- package/lib/typescript/i18n/ja.json +9 -0
- package/lib/typescript/i18n/ko.json +9 -0
- package/lib/typescript/i18n/nl.json +9 -3
- package/lib/typescript/i18n/ru.json +9 -3
- package/lib/typescript/i18n/tr.json +10 -4
- package/lib/typescript/icons/{Left.d.ts → Pin.d.ts} +1 -1
- package/lib/typescript/icons/PinHeader.d.ts +3 -0
- package/lib/typescript/icons/{Right.d.ts → Unpin.d.ts} +1 -1
- package/lib/typescript/icons/index.d.ts +3 -2
- package/lib/typescript/native.d.ts +1 -9
- package/lib/typescript/utils/Streami18n.d.ts +11 -8
- package/lib/typescript/utils/date.d.ts +2 -0
- package/lib/typescript/utils/getResizedImageUrl.d.ts +19 -0
- package/lib/typescript/utils/getUrlOfImageAttachment.d.ts +7 -0
- package/lib/typescript/utils/utils.d.ts +14 -11
- package/package.json +12 -14
- package/src/components/Attachment/Attachment.tsx +3 -3
- package/src/components/Attachment/AttachmentActions.tsx +2 -2
- package/src/components/Attachment/Card.tsx +8 -5
- package/src/components/Attachment/FileAttachment.tsx +3 -4
- package/src/components/Attachment/FileIcon.tsx +2 -2
- package/src/components/Attachment/Gallery.tsx +164 -193
- package/src/components/Attachment/Giphy.tsx +67 -70
- package/src/components/Attachment/__tests__/Attachment.test.js +22 -14
- package/src/components/Attachment/__tests__/Gallery.test.js +233 -0
- package/src/components/Attachment/__tests__/buildGallery.test.js +131 -0
- package/src/components/Attachment/utils/buildGallery/buildGallery.ts +75 -0
- package/src/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.ts +95 -0
- package/src/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.ts +99 -0
- package/src/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.ts +64 -0
- package/src/components/Attachment/utils/buildGallery/buildThumbnail.ts +46 -0
- package/src/components/Attachment/utils/buildGallery/buildThumbnailGrid.ts +186 -0
- package/src/components/Attachment/utils/buildGallery/types.ts +27 -0
- package/src/components/Attachment/utils/getAspectRatio.ts +21 -0
- package/src/components/Attachment/utils/getGalleryImageBorderRadius.ts +71 -0
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -2
- package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +43 -28
- package/src/components/AutoCompleteInput/{CommandsItem.tsx → AutoCompleteSuggestionCommandIcon.tsx} +3 -57
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionHeader.tsx +109 -0
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +156 -0
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +212 -0
- package/src/components/AutoCompleteInput/__tests__/AutoCompleteInput.test.js +6 -12
- package/src/components/Avatar/Avatar.tsx +7 -10
- package/src/components/Avatar/GroupAvatar.tsx +7 -21
- package/src/components/Avatar/__tests__/Avatar.test.js +2 -30
- package/src/components/Channel/Channel.tsx +288 -232
- package/src/components/Channel/__tests__/Channel.test.js +34 -29
- package/src/components/Channel/__tests__/ownCapabilities.test.js +376 -0
- package/src/components/Channel/hooks/useCreateChannelContext.ts +6 -6
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +4 -3
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +9 -30
- package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +54 -0
- package/src/components/ChannelList/ChannelList.tsx +8 -9
- package/src/components/ChannelList/ChannelListFooterLoadingIndicator.tsx +2 -3
- package/src/components/ChannelList/ChannelListHeaderErrorIndicator.tsx +3 -7
- package/src/components/ChannelList/ChannelListHeaderNetworkDownIndicator.tsx +5 -2
- package/src/components/ChannelList/ChannelListMessenger.tsx +3 -4
- package/src/components/ChannelList/__tests__/ChannelList.test.js +73 -13
- package/src/components/ChannelList/__tests__/ChannelListMessenger.test.js +11 -12
- package/src/components/ChannelList/hooks/listeners/useAddedToChannelNotification.ts +3 -3
- package/src/components/ChannelList/hooks/listeners/useChannelDeleted.ts +2 -2
- package/src/components/ChannelList/hooks/listeners/useChannelHidden.ts +2 -2
- package/src/components/ChannelList/hooks/listeners/useChannelTruncated.ts +2 -2
- package/src/components/ChannelList/hooks/listeners/useChannelUpdated.ts +2 -2
- package/src/components/ChannelList/hooks/listeners/useChannelVisible.ts +3 -3
- package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +2 -3
- package/src/components/ChannelList/hooks/listeners/useNewMessageNotification.ts +4 -4
- package/src/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.ts +2 -2
- package/src/components/ChannelList/hooks/listeners/useUserPresence.ts +2 -2
- package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +1 -2
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +86 -44
- package/src/components/ChannelPreview/ChannelAvatar.tsx +3 -5
- package/src/components/ChannelPreview/ChannelPreview.tsx +3 -3
- package/src/components/ChannelPreview/ChannelPreviewMessage.tsx +2 -2
- package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +27 -11
- package/src/components/ChannelPreview/ChannelPreviewMutedStatus.tsx +71 -0
- package/src/components/ChannelPreview/ChannelPreviewStatus.tsx +4 -3
- package/src/components/ChannelPreview/ChannelPreviewTitle.tsx +2 -2
- package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx +2 -1
- package/src/components/ChannelPreview/__tests__/ChannelPreview.test.js +8 -9
- package/src/components/ChannelPreview/__tests__/ChannelPreviewMessenger.test.js +8 -9
- package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.ts +8 -2
- package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +3 -4
- package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.ts +2 -2
- package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +4 -3
- package/src/components/Chat/Chat.tsx +6 -6
- package/src/components/Chat/__tests__/Chat.test.js +10 -6
- package/src/components/Chat/hooks/useIsOnline.ts +12 -8
- package/src/components/ImageGallery/ImageGallery.tsx +83 -49
- package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +1 -2
- package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +2 -5
- package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +5 -7
- package/src/components/ImageGallery/components/ImageGrid.tsx +4 -5
- package/src/components/ImageGallery/components/ImageGridHandle.tsx +1 -0
- package/src/components/Indicators/LoadingErrorIndicator.tsx +1 -1
- package/src/components/Indicators/LoadingIndicator.tsx +1 -2
- package/src/components/Message/Message.tsx +155 -594
- package/src/components/Message/MessageSimple/MessageAvatar.tsx +1 -2
- package/src/components/Message/MessageSimple/MessageContent.tsx +23 -25
- package/src/components/Message/MessageSimple/MessageDeleted.tsx +8 -6
- package/src/components/Message/MessageSimple/MessageFooter.tsx +45 -27
- package/src/components/Message/MessageSimple/MessagePinnedHeader.tsx +150 -0
- package/src/components/Message/MessageSimple/MessageReplies.tsx +5 -0
- package/src/components/Message/MessageSimple/MessageRepliesAvatars.tsx +2 -3
- package/src/components/Message/MessageSimple/MessageSimple.tsx +47 -26
- package/src/components/Message/MessageSimple/MessageStatus.tsx +19 -34
- package/src/components/Message/MessageSimple/MessageTextContainer.tsx +5 -0
- package/src/components/Message/MessageSimple/ReactionList.tsx +64 -77
- package/src/components/Message/MessageSimple/__tests__/Message.test.js +9 -10
- package/src/components/Message/MessageSimple/__tests__/MessageAvatar.test.js +2 -2
- package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +40 -47
- package/src/components/Message/MessageSimple/__tests__/MessagePinnedHeader.test.js +53 -0
- package/src/components/Message/MessageSimple/__tests__/MessageReplies.test.js +2 -2
- package/src/components/Message/MessageSimple/__tests__/MessageStatus.test.js +4 -5
- package/src/components/Message/MessageSimple/__tests__/MessageTextContainer.test.js +2 -2
- package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessageAvatar.test.js.snap +1 -1
- package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessagePinnedHeader.test.js.snap +80 -0
- package/src/components/Message/MessageSimple/utils/parseLinks.test.ts +100 -0
- package/src/components/Message/MessageSimple/utils/parseLinks.ts +95 -0
- package/src/components/Message/MessageSimple/utils/renderText.test.tsx +70 -0
- package/src/components/Message/MessageSimple/utils/renderText.tsx +98 -58
- package/src/components/Message/hooks/useCreateMessageContext.ts +1 -7
- package/src/components/Message/hooks/useMessageActionHandlers.ts +172 -0
- package/src/components/Message/hooks/useMessageActions.tsx +386 -0
- package/src/components/Message/utils/messageActions.ts +64 -38
- package/src/components/Message/utils/removeReservedFields.ts +1 -1
- package/src/components/MessageInput/AttachButton.tsx +1 -2
- package/src/components/MessageInput/CommandsButton.tsx +1 -2
- package/src/components/MessageInput/CooldownTimer.tsx +67 -0
- package/src/components/MessageInput/FileUploadPreview.tsx +5 -5
- package/src/components/MessageInput/ImageUploadPreview.tsx +3 -4
- package/src/components/MessageInput/InputButtons.tsx +4 -10
- package/src/components/MessageInput/MessageInput.tsx +62 -35
- package/src/components/MessageInput/MoreOptionsButton.tsx +1 -2
- package/src/components/MessageInput/SendMessageDisallowedIndicator.tsx +47 -0
- package/src/components/MessageInput/ShowThreadMessageInChannelButton.tsx +2 -2
- package/src/components/MessageInput/__tests__/AttachButton.test.js +2 -2
- package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +43 -45
- package/src/components/MessageInput/__tests__/ImageUploadPreview.test.js +15 -15
- package/src/components/MessageInput/__tests__/MessageInput.test.js +15 -23
- package/src/components/MessageInput/__tests__/SendButton.test.js +2 -2
- package/src/components/MessageInput/__tests__/UploadProgressIndicator.test.js +2 -2
- package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +3593 -2889
- package/src/components/MessageInput/__tests__/__snapshots__/ImageUploadPreview.test.js.snap +1912 -1572
- package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +539 -296
- package/src/components/MessageInput/__tests__/__snapshots__/UploadProgressIndicator.test.js.snap +4 -4
- package/src/components/MessageInput/hooks/useCooldown.ts +62 -0
- package/src/components/MessageInput/hooks/useCountdown.ts +48 -0
- package/src/components/MessageList/DateHeader.tsx +2 -2
- package/src/components/MessageList/InlineDateSeparator.tsx +2 -2
- package/src/components/MessageList/MessageList.tsx +63 -39
- package/src/components/MessageList/MessageSystem.tsx +2 -2
- package/src/components/MessageList/TypingIndicator.tsx +1 -2
- package/src/components/MessageList/__tests__/MessageList.test.js +241 -116
- package/src/components/MessageList/__tests__/MessageSystem.test.js +3 -3
- package/src/components/MessageList/__tests__/ScrollToBottomButton.test.js +3 -3
- package/src/components/MessageList/__tests__/TypingIndicator.test.js +5 -6
- package/src/components/MessageList/__tests__/__snapshots__/TypingIndicator.test.js.snap +1 -1
- package/src/components/MessageList/hooks/useMessageList.ts +19 -9
- package/src/components/MessageList/hooks/useTypingString.ts +1 -2
- package/src/components/MessageList/utils/getDateSeparators.ts +4 -3
- package/src/components/MessageList/utils/getGroupStyles.ts +14 -9
- package/src/components/MessageList/utils/getLastReceivedMessage.ts +6 -1
- package/src/components/MessageOverlay/{MessageActions.tsx → MessageActionList.tsx} +59 -91
- package/src/components/MessageOverlay/MessageActionListItem.tsx +113 -0
- package/src/components/MessageOverlay/MessageOverlay.tsx +258 -217
- package/src/components/MessageOverlay/OverlayBackdrop.tsx +18 -0
- package/src/components/MessageOverlay/OverlayReactionList.tsx +3 -5
- package/src/components/MessageOverlay/OverlayReactions.tsx +27 -8
- package/src/components/MessageOverlay/OverlayReactionsAvatar.tsx +27 -0
- package/src/components/MessageOverlay/hooks/useMessageActionAnimation.tsx +44 -0
- package/src/components/Reply/Reply.tsx +25 -15
- package/src/components/Thread/Thread.tsx +13 -6
- package/src/components/Thread/__tests__/Thread.test.js +38 -113
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +1085 -1018
- package/src/components/Thread/components/ThreadFooterComponent.tsx +14 -3
- package/src/components/docs/ListProps.md +1 -1
- package/src/components/index.ts +13 -7
- package/src/contexts/activeChannelsRefContext/ActiveChannelsRefContext.tsx +32 -0
- package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +1 -2
- package/src/contexts/channelContext/ChannelContext.tsx +28 -32
- package/src/contexts/channelsContext/ChannelsContext.tsx +18 -7
- package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +286 -0
- package/src/contexts/channelsStateContext/useChannelState.ts +207 -0
- package/src/contexts/chatContext/ChatContext.tsx +1 -2
- package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +1 -2
- package/src/contexts/keyboardContext/KeyboardContext.tsx +1 -2
- package/src/contexts/messageContext/MessageContext.tsx +2 -10
- package/src/contexts/messageInputContext/MessageInputContext.tsx +77 -36
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +9 -7
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +15 -10
- package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +19 -28
- package/src/contexts/messageOverlayContext/hooks/useResettableState.test.tsx +46 -0
- package/src/contexts/messageOverlayContext/hooks/useResettableState.ts +22 -0
- package/src/contexts/messagesContext/MessagesContext.tsx +39 -140
- package/src/contexts/overlayContext/OverlayContext.tsx +19 -11
- package/src/contexts/overlayContext/OverlayProvider.tsx +48 -42
- package/src/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.tsx +38 -0
- package/src/contexts/paginatedMessageListContext/PaginatedMessageListContext.tsx +1 -2
- package/src/contexts/suggestionsContext/SuggestionsContext.tsx +26 -46
- package/src/contexts/suggestionsContext/__tests__/Suggestions.test.js +1 -1
- package/src/contexts/themeContext/ThemeContext.tsx +1 -0
- package/src/contexts/themeContext/utils/theme.ts +84 -35
- package/src/contexts/threadContext/ThreadContext.tsx +1 -2
- package/src/contexts/translationContext/TranslationContext.tsx +3 -3
- package/src/contexts/typingContext/TypingContext.tsx +1 -2
- package/src/contexts/utils/getDisplayName.ts +3 -1
- package/src/emoji-data/compiled.ts +1830 -9609
- package/src/emoji-data/emojiNames.ts +0 -140
- package/src/emoji-data/emojis.ts +0 -210
- package/src/emoji-data/index.js +1 -1
- package/src/hooks/useStreami18n.ts +1 -1
- package/src/i18n/en.json +9 -3
- package/src/i18n/fr.json +9 -3
- package/src/i18n/hi.json +9 -3
- package/src/i18n/it.json +9 -3
- package/src/i18n/ja.json +9 -0
- package/src/i18n/ko.json +9 -0
- package/src/i18n/nl.json +9 -3
- package/src/i18n/ru.json +9 -3
- package/src/i18n/tr.json +10 -4
- package/src/icons/Pin.tsx +17 -0
- package/src/icons/PinHeader.tsx +12 -0
- package/src/icons/Unpin.tsx +12 -0
- package/src/icons/index.ts +3 -2
- package/src/mock-builders/api/sendMessage.js +3 -1
- package/src/mock-builders/generator/attachment.js +0 -2
- package/src/mock-builders/generator/channel.js +101 -46
- package/src/mock-builders/generator/user.js +33 -26
- package/src/mock-builders/mock.js +2 -2
- package/src/native.ts +2 -13
- package/src/styleguideComponents/ArgumentsRenderer.tsx +2 -1
- package/src/styleguideComponents/JsDoc.tsx +3 -1
- package/src/styleguideComponents/PathlineRenderer.tsx +2 -1
- package/src/styleguideComponents/PropsRenderer.tsx +7 -4
- package/src/styleguideComponents/Wrapper.tsx +1 -0
- package/src/utils/Streami18n.ts +3 -3
- package/src/utils/__tests__/Streami18n.test.js +1 -2
- package/src/utils/date.ts +4 -0
- package/src/utils/getResizedImageUrl.ts +43 -0
- package/src/utils/getUrlOfImageAttachment.ts +10 -0
- package/src/utils/utils.ts +23 -16
- package/src/version.json +1 -1
- package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js +0 -78
- package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
- package/lib/commonjs/components/AutoCompleteInput/CommandsItem.js.map +0 -1
- package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js +0 -81
- package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
- package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js +0 -75
- package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js.map +0 -1
- package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js +0 -125
- package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js.map +0 -1
- package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js +0 -199
- package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
- package/lib/commonjs/components/MessageOverlay/MessageActions.js.map +0 -1
- package/lib/commonjs/icons/Left.js +0 -38
- package/lib/commonjs/icons/Left.js.map +0 -1
- package/lib/commonjs/icons/Right.js +0 -38
- package/lib/commonjs/icons/Right.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/CommandsHeader.js +0 -78
- package/lib/module/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/CommandsItem.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/EmojisHeader.js +0 -81
- package/lib/module/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/EmojisItem.js +0 -75
- package/lib/module/components/AutoCompleteInput/EmojisItem.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/MentionsItem.js +0 -125
- package/lib/module/components/AutoCompleteInput/MentionsItem.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/SuggestionsList.js +0 -199
- package/lib/module/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
- package/lib/module/components/MessageOverlay/MessageActions.js.map +0 -1
- package/lib/module/icons/Left.js +0 -38
- package/lib/module/icons/Left.js.map +0 -1
- package/lib/module/icons/Right.js +0 -38
- package/lib/module/icons/Right.js.map +0 -1
- package/lib/typescript/components/AutoCompleteInput/CommandsHeader.d.ts +0 -2
- package/lib/typescript/components/AutoCompleteInput/CommandsItem.d.ts +0 -15
- package/lib/typescript/components/AutoCompleteInput/EmojisHeader.d.ts +0 -5
- package/lib/typescript/components/AutoCompleteInput/EmojisItem.d.ts +0 -12
- package/lib/typescript/components/AutoCompleteInput/MentionsItem.d.ts +0 -16
- package/lib/typescript/components/AutoCompleteInput/SuggestionsList.d.ts +0 -13
- package/lib/typescript/components/MessageOverlay/MessageActions.d.ts +0 -11
- package/src/components/AutoCompleteInput/CommandsHeader.tsx +0 -43
- package/src/components/AutoCompleteInput/EmojisHeader.tsx +0 -45
- package/src/components/AutoCompleteInput/EmojisItem.tsx +0 -52
- package/src/components/AutoCompleteInput/MentionsItem.tsx +0 -74
- package/src/components/AutoCompleteInput/SuggestionsList.tsx +0 -138
- package/src/components/AutoCompleteInput/__tests__/CommandsItem.test.js +0 -26
- package/src/components/AutoCompleteInput/__tests__/MentionsItem.test.js +0 -62
- package/src/components/MessageList/__tests__/__snapshots__/MessageList.test.js.snap +0 -936
- package/src/icons/Left.tsx +0 -12
- package/src/icons/Right.tsx +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Streami18n.ts"],"names":["defaultNS","defaultLng","Dayjs","extend","updateLocale","format","L","LL","LLL","LLLL","LT","LTS","calendar","lastDay","lastWeek","nextDay","nextWeek","sameDay","sameElse","meridiem","hour","meridiemHour","meridiemParse","en_locale","formats","months","relativeTime","weekdays","isDayJs","dateTimeParser","undefined","defaultStreami18nOptions","DateTimeParser","dayjsLocaleConfigForLanguage","debug","disableDateTimeTranslations","language","logger","msg","console","warn","Streami18n","options","i18nextConfig","i18nInstance","i18n","createInstance","setLanguageCallback","initialized","t","key","translations","en","enTranslations","fr","frTranslations","hi","hiTranslations","it","itTranslations","ja","jaTranslations","ko","koTranslations","nl","nlTranslations","ru","ruTranslations","tr","trTranslations","dayjsLocales","localeExists","isCustomDateTimeParser","Object","keys","Ls","indexOf","validateCurrentLanguage","availableLanguages","currentLanguage","getAvailableLanguages","geti18Instance","getTranslations","finalOptions","LocalizedFormat","localeData","error","Error","JSON","stringify","translationsForLanguage","fallbackLng","interpolation","escapeValue","keySeparator","lng","nsSeparator","parseMissingKeyHandler","addOrUpdateLocale","tDateTimeParser","timestamp","locale","init","resources","translation","customDayjsLocale","addResources","config","name","changeLanguage","callback"],"mappings":"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","sourcesContent":["import Dayjs from 'dayjs';\nimport calendar from 'dayjs/plugin/calendar';\nimport localeData from 'dayjs/plugin/localeData';\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport updateLocale from 'dayjs/plugin/updateLocale';\nimport i18n, { FallbackLng, TFunction } from 'i18next';\n\nimport enTranslations from '../i18n/en.json';\nimport frTranslations from '../i18n/fr.json';\nimport hiTranslations from '../i18n/hi.json';\nimport itTranslations from '../i18n/it.json';\nimport jaTranslations from '../i18n/ja.json';\nimport koTranslations from '../i18n/ko.json';\nimport nlTranslations from '../i18n/nl.json';\nimport ruTranslations from '../i18n/ru.json';\nimport trTranslations from '../i18n/tr.json';\n\nconst defaultNS = 'translation';\nconst defaultLng = 'en';\n\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/hi';\nimport 'dayjs/locale/it';\nimport 'dayjs/locale/ja';\nimport 'dayjs/locale/ko';\nimport 'dayjs/locale/nl';\nimport 'dayjs/locale/ru';\nimport 'dayjs/locale/tr';\n\n/**\n * These locale imports also set these locales globally.\n * So as a last step we import the english locale to make\n * sure we don't mess up languages in other places in the app.\n */\nimport 'dayjs/locale/en';\n\nimport type moment from 'moment';\n\nimport type { TDateTimeParser } from '../contexts/translationContext/TranslationContext';\nimport type { UnknownType } from '../types/types';\n\nDayjs.extend(updateLocale);\n\nDayjs.updateLocale('en', {\n format: {\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n LT: 'hh:mmA',\n LTS: 'HH:mm:ss',\n },\n});\n\nDayjs.updateLocale('nl', {\n calendar: {\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n sameDay: '[vandaag om] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('it', {\n calendar: {\n lastDay: '[Ieri alle] LT',\n lastWeek: '[lo scorso] dddd [alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n sameDay: '[Oggi alle] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('hi', {\n calendar: {\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n sameDay: '[आज] LT',\n sameElse: 'L',\n },\n\n /**\n * Hindi notation for meridiems are quite fuzzy in practice. While there exists\n * a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n */\n meridiem(hour: number) {\n if (hour < 4) return 'रात';\n if (hour < 10) return 'सुबह';\n if (hour < 17) return 'दोपहर';\n if (hour < 20) return 'शाम';\n return 'रात';\n },\n\n meridiemHour(hour: number, meridiem: string) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') return hour < 4 ? hour : hour + 12;\n if (meridiem === 'सुबह') return hour;\n if (meridiem === 'दोपहर') return hour >= 10 ? hour : hour + 12;\n if (meridiem === 'शाम') return hour + 12;\n return hour;\n },\n\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n});\n\nDayjs.updateLocale('fr', {\n calendar: {\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n sameDay: '[Aujourd’hui à] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('tr', {\n calendar: {\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n sameDay: '[bugün saat] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('ru', {\n calendar: {\n lastDay: '[Вчера, в] LT',\n nextDay: '[Завтра, в] LT',\n sameDay: '[Сегодня, в] LT',\n },\n});\n\nconst en_locale = {\n formats: {},\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n relativeTime: {},\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n};\n\n// Type guards to check DayJs\nconst isDayJs = (dateTimeParser: typeof Dayjs | typeof moment): dateTimeParser is typeof Dayjs =>\n (dateTimeParser as typeof Dayjs).extend !== undefined;\n\ntype Options = {\n DateTimeParser?: typeof Dayjs | typeof moment;\n dayjsLocaleConfigForLanguage?: Partial<ILocale>;\n debug?: boolean;\n disableDateTimeTranslations?: boolean;\n language?: string;\n logger?: (msg?: string) => void;\n translationsForLanguage?: Partial<typeof enTranslations>;\n};\n\ntype I18NextConfig = {\n debug: boolean;\n fallbackLng: false | FallbackLng;\n interpolation: { escapeValue: boolean };\n keySeparator: false | string;\n lng: string;\n nsSeparator: false | string;\n parseMissingKeyHandler: (key: string) => string;\n};\n\n/**\n * Wrapper around [i18next](https://www.i18next.com/) class for Stream related translations.\n * Instance of this class should be provided to Chat component to handle translations.\n * Stream provides following list of in-built translations:\n * 1. English (en)\n * 2. Dutch (nl)\n * 3. Russian (ru)\n * 4. Turkish (tr)\n * 5. French (fr)\n * 6. Italian (it)\n * 7. Hindi (hi)\n *\n * Simplest way to start using chat components in one of the in-built languages would be following:\n *\n * ```\n * const i18n = new Streami18n({ language 'nl' });\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * If you would like to override certain keys in in-built translation.\n * UI will be automatically updated in this case.\n *\n * ```\n * const i18n = new Streami18n({\n * language: 'nl',\n * translationsForLanguage: {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * }\n * });\n *\n * If you would like to register additional languages, use registerTranslation. You can add as many languages as you want:\n *\n * i18n.registerTranslation('zh', {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * });\n *\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * You can use the same function to add whole new language as well.\n *\n * ```\n * const i18n = new Streami18n();\n *\n * i18n.registerTranslation('mr', {\n * 'Nothing yet...': 'काहीही नाही ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} आणि {{ secondUser }} टीपी करत आहेत ',\n * });\n *\n * // Make sure to call setLanguage to reflect new language in UI.\n * i18n.setLanguage('it');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * ## Datetime translations\n *\n * Stream react chat components uses [dayjs](https://day.js.org/en/) internally by default to format datetime stamp.\n * e.g., in ChannelPreview, MessageContent components.\n * Dayjs has locale support as well - https://day.js.org/docs/en/i18n/i18n\n * Dayjs is a lightweight alternative to Momentjs with the same modern API.\n *\n * Dayjs provides locale config for plenty of languages, you can check the whole list of locale configs at following url\n * https://github.com/iamkun/dayjs/tree/dev/src/locale\n *\n * You can either provide the dayjs locale config while registering\n * language with Streami18n (either via constructor or registerTranslation()) or you can provide your own Dayjs or Moment instance\n * to Streami18n constructor, which will be then used internally (using the language locale) in components.\n *\n * 1. Via language registration\n *\n * e.g.,\n * ```\n * const i18n = new Streami18n({\n * language: 'nl',\n * dayjsLocaleConfigForLanguage: {\n * months: [...],\n * monthsShort: [...],\n * calendar: {\n * sameDay: ...'\n * }\n * }\n * });\n * ```\n *\n * Similarly, you can add locale config for moment while registering translation via `registerTranslation` function.\n *\n * e.g.,\n * ```\n * const i18n = new Streami18n();\n *\n * i18n.registerTranslation(\n * 'mr',\n * {\n * 'Nothing yet...': 'काहीही नाही ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} आणि {{ secondUser }} टीपी करत आहेत ',\n * },\n * {\n * months: [...],\n * monthsShort: [...],\n * calendar: {\n * sameDay: ...'\n * }\n * }\n * );\n *```\n * 2. Provide your own Moment object\n *\n * ```js\n * import 'moment/locale/nl';\n * import 'moment/locale/it';\n * // or if you want to include all locales\n * import 'moment/min/locales';\n *\n * import Moment from moment\n *\n * const i18n = new Streami18n({\n * language: 'nl',\n * DateTimeParser: Moment\n * })\n * ```\n *\n * 3. Provide your own Dayjs object\n *\n * ```js\n * import Dayjs from 'dayjs'\n *\n * import 'dayjs/locale/nl';\n * import 'dayjs/locale/it';\n * // or if you want to include all locales\n * import 'dayjs/min/locales';\n *\n * const i18n = new Streami18n({\n * language: 'nl',\n * DateTimeParser: Dayjs\n * })\n * ```\n * If you would like to stick with english language for date-times in Stream components, you can set `disableDateTimeTranslations` to true.\n *\n */\nconst defaultStreami18nOptions = {\n DateTimeParser: Dayjs,\n dayjsLocaleConfigForLanguage: null,\n debug: false,\n disableDateTimeTranslations: false,\n language: 'en',\n logger: (msg?: string) => console.warn(msg),\n};\n\nexport class Streami18n {\n i18nInstance = i18n.createInstance();\n Dayjs = null;\n setLanguageCallback: (t: TFunction) => void = () => null;\n initialized = false;\n\n t: TFunction = (key: string) => key;\n tDateTimeParser: TDateTimeParser;\n\n translations: {\n [key: string]: {\n [key: string]: Partial<typeof enTranslations> | UnknownType;\n };\n } = {\n en: { [defaultNS]: enTranslations },\n fr: { [defaultNS]: frTranslations },\n hi: { [defaultNS]: hiTranslations },\n it: { [defaultNS]: itTranslations },\n ja: { [defaultNS]: jaTranslations },\n ko: { [defaultNS]: koTranslations },\n nl: { [defaultNS]: nlTranslations },\n ru: { [defaultNS]: ruTranslations },\n tr: { [defaultNS]: trTranslations },\n };\n\n /**\n * dayjs.defineLanguage('nl') also changes the global locale. We don't want to do that\n * when a user calls the registerTranslation() function. So instead we will store the\n * locale configs given to the registerTranslation() function in `dayjsLocales` object,\n * and register the required locale with moment when setLanguage is called.\n */\n dayjsLocales: { [key: string]: Partial<ILocale> } = {};\n\n /**\n * Initialize properties used in constructor\n */\n logger: (msg?: string) => void;\n currentLanguage: string;\n DateTimeParser: typeof Dayjs | typeof moment;\n isCustomDateTimeParser: boolean;\n i18nextConfig: I18NextConfig;\n\n /**\n * Constructor accepts following options:\n * - language (String) default: 'en'\n * Language code e.g., en, tr\n *\n * - translationsForLanguage (object)\n * Translations object. Please check src/i18n/en.json for example.\n *\n * - disableDateTimeTranslations (boolean) default: false\n * Disable translations for date-times\n *\n * - debug (boolean) default: false\n * Enable debug mode in internal i18n class\n *\n * - logger (function) default: () => {}\n * Logger function to log warnings/errors from this class\n *\n * - dayjsLocaleConfigForLanguage (object) default: 'enConfig'\n * [Config object](https://momentjs.com/docs/#/i18n/changing-locale/) for internal moment object,\n * corresponding to language (param)\n *\n * - DateTimeParser (function) Moment or Dayjs instance/function.\n * Make sure to load all the required locales in this Moment or Dayjs instance that you will be provide to Streami18n\n *\n * @param {*} options\n */\n constructor(options: Options = {}, i18nextConfig: Partial<I18NextConfig> = {}) {\n const finalOptions = {\n ...defaultStreami18nOptions,\n ...options,\n };\n\n // Prepare the i18next configuration.\n this.logger = finalOptions.logger;\n\n this.currentLanguage = finalOptions.language;\n this.DateTimeParser = finalOptions.DateTimeParser;\n\n try {\n /**\n * This is a shallow check to see if the given parser is an instance of Dayjs.\n * For some reason Dayjs.isDayjs(this.DateTimeParser()) doesn't work.\n */\n if (this.DateTimeParser && isDayJs(this.DateTimeParser)) {\n this.DateTimeParser.extend(LocalizedFormat);\n this.DateTimeParser.extend(calendar);\n this.DateTimeParser.extend(localeData);\n this.DateTimeParser.extend(relativeTime);\n }\n } catch (error) {\n throw new Error(\n `Streami18n: Looks like you wanted to provide a Dayjs instance but something went wrong while adding plugins ${JSON.stringify(\n error,\n )}`,\n );\n }\n\n this.isCustomDateTimeParser = !!options.DateTimeParser;\n const translationsForLanguage = finalOptions.translationsForLanguage;\n\n if (translationsForLanguage) {\n this.translations[this.currentLanguage] = {\n [defaultNS]:\n this.translations[this.currentLanguage] &&\n this.translations[this.currentLanguage][defaultNS]\n ? {\n ...this.translations[this.currentLanguage][defaultNS],\n ...translationsForLanguage,\n }\n : translationsForLanguage,\n };\n }\n\n // If translations don't exist for given language, then set it as empty object.\n if (!this.translations[this.currentLanguage]) {\n this.translations[this.currentLanguage] = {\n [defaultNS]: {},\n };\n }\n\n this.i18nextConfig = {\n debug: finalOptions.debug,\n fallbackLng: false,\n interpolation: { escapeValue: false },\n keySeparator: false,\n lng: this.currentLanguage,\n nsSeparator: false,\n\n parseMissingKeyHandler: (key: string) => {\n this.logger(`Streami18n: Missing translation for key: ${key}`);\n\n return key;\n },\n ...i18nextConfig,\n };\n\n this.validateCurrentLanguage();\n\n const dayjsLocaleConfigForLanguage = finalOptions.dayjsLocaleConfigForLanguage;\n\n if (dayjsLocaleConfigForLanguage) {\n this.addOrUpdateLocale(this.currentLanguage, {\n ...dayjsLocaleConfigForLanguage,\n });\n } else if (!this.localeExists(this.currentLanguage)) {\n this.logger(\n `Streami18n: Streami18n(...) - Locale config for ${this.currentLanguage} does not exist in momentjs.` +\n `Please import the locale file using \"import 'moment/locale/${this.currentLanguage}';\" in your app or ` +\n `register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)`,\n );\n }\n\n this.tDateTimeParser = (timestamp) => {\n if (finalOptions.disableDateTimeTranslations || !this.localeExists(this.currentLanguage)) {\n /**\n * TS needs to know which is being called to accept the chain call\n */\n if (isDayJs(this.DateTimeParser)) {\n return this.DateTimeParser(timestamp).locale(defaultLng);\n }\n return this.DateTimeParser(timestamp).locale(defaultLng);\n }\n if (isDayJs(this.DateTimeParser)) {\n return this.DateTimeParser(timestamp).locale(this.currentLanguage);\n }\n return this.DateTimeParser(timestamp).locale(this.currentLanguage);\n };\n }\n\n /**\n * Initializes the i18next instance with configuration (which enables natural language as default keys)\n */\n async init() {\n this.validateCurrentLanguage();\n\n try {\n this.t = await this.i18nInstance.init({\n ...this.i18nextConfig,\n lng: this.currentLanguage,\n resources: this.translations,\n });\n this.initialized = true;\n } catch (error) {\n this.logger(`Something went wrong with init: ${JSON.stringify(error)}`);\n }\n\n return {\n t: this.t,\n tDateTimeParser: this.tDateTimeParser,\n };\n }\n\n localeExists = (language: string) => {\n if (this.isCustomDateTimeParser) return true;\n\n return Object.keys(Dayjs.Ls).indexOf(language) > -1;\n };\n\n validateCurrentLanguage = () => {\n const availableLanguages = Object.keys(this.translations);\n if (availableLanguages.indexOf(this.currentLanguage) === -1) {\n this.logger(\n `Streami18n: '${this.currentLanguage}' language is not registered.` +\n ` Please make sure to call streami18n.registerTranslation('${this.currentLanguage}', {...}) or ` +\n `use one the built-in supported languages - ${this.getAvailableLanguages()}`,\n );\n\n this.currentLanguage = defaultLng;\n }\n };\n\n /** Returns an instance of i18next used within this class instance */\n geti18Instance = () => this.i18nInstance;\n\n /** Returns list of available languages. */\n getAvailableLanguages = () => Object.keys(this.translations);\n\n /** Returns all the translation dictionary for all inbuilt-languages */\n getTranslations = () => this.translations;\n\n /**\n * Returns current version translator function.\n */\n async getTranslators() {\n if (!this.initialized) {\n if (this.dayjsLocales[this.currentLanguage]) {\n this.addOrUpdateLocale(this.currentLanguage, this.dayjsLocales[this.currentLanguage]);\n }\n return await this.init();\n } else {\n return {\n t: this.t,\n tDateTimeParser: this.tDateTimeParser,\n };\n }\n }\n\n /**\n * Register translation\n */\n registerTranslation(\n language: string,\n translation: Partial<typeof enTranslations> | UnknownType,\n customDayjsLocale?: Partial<ILocale>,\n ) {\n if (!translation) {\n this.logger(\n `Streami18n: registerTranslation(language, translation, customDayjsLocale) called without translation`,\n );\n return;\n }\n\n if (!this.translations[language]) {\n this.translations[language] = { [defaultNS]: translation };\n } else {\n this.translations[language][defaultNS] = translation;\n }\n\n if (customDayjsLocale) {\n this.dayjsLocales[language] = { ...customDayjsLocale };\n } else if (!this.localeExists(language)) {\n this.logger(\n `Streami18n: registerTranslation(language, translation, customDayjsLocale) - ` +\n `Locale config for ${language} does not exist in Dayjs.` +\n `Please import the locale file using \"import 'dayjs/locale/${language}';\" in your app or ` +\n `register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)`,\n );\n }\n\n if (this.initialized) {\n this.i18nInstance.addResources(language, defaultNS, translation);\n }\n }\n\n addOrUpdateLocale(key: string, config: Partial<ILocale>) {\n if (this.localeExists(key)) {\n Dayjs.updateLocale(key, { ...config });\n } else {\n // Merging the custom locale config with en config, so missing keys can default to english.\n Dayjs.locale({ name: key, ...en_locale, ...config }, undefined, true);\n }\n }\n\n /**\n * Changes the language.\n */\n async setLanguage(language: string) {\n this.currentLanguage = language;\n\n if (!this.initialized) return;\n\n try {\n const t = await this.i18nInstance.changeLanguage(language);\n if (this.dayjsLocales[language]) {\n this.addOrUpdateLocale(this.currentLanguage, this.dayjsLocales[this.currentLanguage]);\n }\n this.setLanguageCallback(t);\n\n return t;\n } catch (error) {\n this.logger(`Failed to set language: ${JSON.stringify(error)}`);\n return this.t;\n }\n }\n\n registerSetLanguageCallback(callback: (t: TFunction) => void) {\n this.setLanguageCallback = callback;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Streami18n.ts"],"names":["defaultNS","defaultLng","Dayjs","extend","updateLocale","format","L","LL","LLL","LLLL","LT","LTS","calendar","lastDay","lastWeek","nextDay","nextWeek","sameDay","sameElse","meridiem","hour","meridiemHour","meridiemParse","en_locale","formats","months","relativeTime","weekdays","isDayJs","dateTimeParser","undefined","defaultStreami18nOptions","DateTimeParser","dayjsLocaleConfigForLanguage","debug","disableDateTimeTranslations","language","logger","msg","console","warn","Streami18n","options","i18nextConfig","i18nInstance","i18n","createInstance","setLanguageCallback","initialized","t","key","translations","en","enTranslations","fr","frTranslations","hi","hiTranslations","it","itTranslations","ja","jaTranslations","ko","koTranslations","nl","nlTranslations","ru","ruTranslations","tr","trTranslations","dayjsLocales","localeExists","isCustomDateTimeParser","Object","keys","Ls","indexOf","validateCurrentLanguage","availableLanguages","currentLanguage","getAvailableLanguages","geti18Instance","getTranslations","finalOptions","LocalizedFormat","localeData","error","Error","JSON","stringify","translationsForLanguage","fallbackLng","interpolation","escapeValue","keySeparator","lng","nsSeparator","parseMissingKeyHandler","addOrUpdateLocale","tDateTimeParser","timestamp","locale","init","resources","translation","customDayjsLocale","addResources","config","name","changeLanguage","callback"],"mappings":"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","sourcesContent":["import Dayjs from 'dayjs';\nimport calendar from 'dayjs/plugin/calendar';\nimport localeData from 'dayjs/plugin/localeData';\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport updateLocale from 'dayjs/plugin/updateLocale';\nimport i18n, { FallbackLng, TFunction } from 'i18next';\n\nimport type moment from 'moment';\n\nimport type { TDateTimeParser } from '../contexts/translationContext/TranslationContext';\nimport enTranslations from '../i18n/en.json';\nimport frTranslations from '../i18n/fr.json';\nimport hiTranslations from '../i18n/hi.json';\nimport itTranslations from '../i18n/it.json';\nimport jaTranslations from '../i18n/ja.json';\nimport koTranslations from '../i18n/ko.json';\nimport nlTranslations from '../i18n/nl.json';\nimport ruTranslations from '../i18n/ru.json';\nimport trTranslations from '../i18n/tr.json';\n\nconst defaultNS = 'translation';\nconst defaultLng = 'en';\n\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/hi';\nimport 'dayjs/locale/it';\nimport 'dayjs/locale/ja';\nimport 'dayjs/locale/ko';\nimport 'dayjs/locale/nl';\nimport 'dayjs/locale/ru';\nimport 'dayjs/locale/tr';\n\n/**\n * These locale imports also set these locales globally.\n * So as a last step we import the english locale to make\n * sure we don't mess up languages in other places in the app.\n */\nimport 'dayjs/locale/en';\n\nimport type { UnknownType } from '../types/types';\n\nDayjs.extend(updateLocale);\n\nDayjs.updateLocale('en', {\n format: {\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n LT: 'hh:mmA',\n LTS: 'HH:mm:ss',\n },\n});\n\nDayjs.updateLocale('nl', {\n calendar: {\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n sameDay: '[vandaag om] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('it', {\n calendar: {\n lastDay: '[Ieri alle] LT',\n lastWeek: '[lo scorso] dddd [alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n sameDay: '[Oggi alle] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('hi', {\n calendar: {\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n sameDay: '[आज] LT',\n sameElse: 'L',\n },\n\n /**\n * Hindi notation for meridiems are quite fuzzy in practice. While there exists\n * a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n */\n meridiem(hour: number) {\n if (hour < 4) return 'रात';\n if (hour < 10) return 'सुबह';\n if (hour < 17) return 'दोपहर';\n if (hour < 20) return 'शाम';\n return 'रात';\n },\n\n meridiemHour(hour: number, meridiem: string) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') return hour < 4 ? hour : hour + 12;\n if (meridiem === 'सुबह') return hour;\n if (meridiem === 'दोपहर') return hour >= 10 ? hour : hour + 12;\n if (meridiem === 'शाम') return hour + 12;\n return hour;\n },\n\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n});\n\nDayjs.updateLocale('fr', {\n calendar: {\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n sameDay: '[Aujourd’hui à] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('tr', {\n calendar: {\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n sameDay: '[bugün saat] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('ru', {\n calendar: {\n lastDay: '[Вчера, в] LT',\n nextDay: '[Завтра, в] LT',\n sameDay: '[Сегодня, в] LT',\n },\n});\n\nconst en_locale = {\n formats: {},\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n relativeTime: {},\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n};\n\n// Type guards to check DayJs\nconst isDayJs = (dateTimeParser: typeof Dayjs | typeof moment): dateTimeParser is typeof Dayjs =>\n (dateTimeParser as typeof Dayjs).extend !== undefined;\n\ntype Options = {\n DateTimeParser?: typeof Dayjs | typeof moment;\n dayjsLocaleConfigForLanguage?: Partial<ILocale>;\n debug?: boolean;\n disableDateTimeTranslations?: boolean;\n language?: string;\n logger?: (msg?: string) => void;\n translationsForLanguage?: Partial<typeof enTranslations>;\n};\n\ntype I18NextConfig = {\n debug: boolean;\n fallbackLng: false | FallbackLng;\n interpolation: { escapeValue: boolean };\n keySeparator: false | string;\n lng: string;\n nsSeparator: false | string;\n parseMissingKeyHandler: (key: string) => string;\n};\n\n/**\n * Wrapper around [i18next](https://www.i18next.com/) class for Stream related translations.\n * Instance of this class should be provided to Chat component to handle translations.\n * Stream provides following list of in-built translations:\n * 1. English (en)\n * 2. Dutch (nl)\n * 3. Russian (ru)\n * 4. Turkish (tr)\n * 5. French (fr)\n * 6. Italian (it)\n * 7. Hindi (hi)\n *\n * Simplest way to start using chat components in one of the in-built languages would be following:\n *\n * ```\n * const i18n = new Streami18n({ language 'nl' });\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * If you would like to override certain keys in in-built translation.\n * UI will be automatically updated in this case.\n *\n * ```\n * const i18n = new Streami18n({\n * language: 'nl',\n * translationsForLanguage: {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * }\n * });\n *\n * If you would like to register additional languages, use registerTranslation. You can add as many languages as you want:\n *\n * i18n.registerTranslation('zh', {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * });\n *\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * You can use the same function to add whole new language as well.\n *\n * ```\n * const i18n = new Streami18n();\n *\n * i18n.registerTranslation('mr', {\n * 'Nothing yet...': 'काहीही नाही ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} आणि {{ secondUser }} टीपी करत आहेत ',\n * });\n *\n * // Make sure to call setLanguage to reflect new language in UI.\n * i18n.setLanguage('it');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * ## Datetime translations\n *\n * Stream react chat components uses [dayjs](https://day.js.org/en/) internally by default to format datetime stamp.\n * e.g., in ChannelPreview, MessageContent components.\n * Dayjs has locale support as well - https://day.js.org/docs/en/i18n/i18n\n * Dayjs is a lightweight alternative to Momentjs with the same modern API.\n *\n * Dayjs provides locale config for plenty of languages, you can check the whole list of locale configs at following url\n * https://github.com/iamkun/dayjs/tree/dev/src/locale\n *\n * You can either provide the dayjs locale config while registering\n * language with Streami18n (either via constructor or registerTranslation()) or you can provide your own Dayjs or Moment instance\n * to Streami18n constructor, which will be then used internally (using the language locale) in components.\n *\n * 1. Via language registration\n *\n * e.g.,\n * ```\n * const i18n = new Streami18n({\n * language: 'nl',\n * dayjsLocaleConfigForLanguage: {\n * months: [...],\n * monthsShort: [...],\n * calendar: {\n * sameDay: ...'\n * }\n * }\n * });\n * ```\n *\n * Similarly, you can add locale config for moment while registering translation via `registerTranslation` function.\n *\n * e.g.,\n * ```\n * const i18n = new Streami18n();\n *\n * i18n.registerTranslation(\n * 'mr',\n * {\n * 'Nothing yet...': 'काहीही नाही ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} आणि {{ secondUser }} टीपी करत आहेत ',\n * },\n * {\n * months: [...],\n * monthsShort: [...],\n * calendar: {\n * sameDay: ...'\n * }\n * }\n * );\n *```\n * 2. Provide your own Moment object\n *\n * ```js\n * import 'moment/locale/nl';\n * import 'moment/locale/it';\n * // or if you want to include all locales\n * import 'moment/min/locales';\n *\n * import Moment from moment\n *\n * const i18n = new Streami18n({\n * language: 'nl',\n * DateTimeParser: Moment\n * })\n * ```\n *\n * 3. Provide your own Dayjs object\n *\n * ```js\n * import Dayjs from 'dayjs'\n *\n * import 'dayjs/locale/nl';\n * import 'dayjs/locale/it';\n * // or if you want to include all locales\n * import 'dayjs/min/locales';\n *\n * const i18n = new Streami18n({\n * language: 'nl',\n * DateTimeParser: Dayjs\n * })\n * ```\n * If you would like to stick with english language for date-times in Stream components, you can set `disableDateTimeTranslations` to true.\n *\n */\nconst defaultStreami18nOptions = {\n DateTimeParser: Dayjs,\n dayjsLocaleConfigForLanguage: null,\n debug: false,\n disableDateTimeTranslations: false,\n language: 'en',\n logger: (msg?: string) => console.warn(msg),\n};\n\nexport class Streami18n {\n i18nInstance = i18n.createInstance();\n Dayjs = null;\n setLanguageCallback: (t: TFunction) => void = () => null;\n initialized = false;\n\n t: TFunction = (key: string) => key;\n tDateTimeParser: TDateTimeParser;\n\n translations: {\n [key: string]: {\n [key: string]: Partial<typeof enTranslations> | UnknownType;\n };\n } = {\n en: { [defaultNS]: enTranslations },\n fr: { [defaultNS]: frTranslations },\n hi: { [defaultNS]: hiTranslations },\n it: { [defaultNS]: itTranslations },\n ja: { [defaultNS]: jaTranslations },\n ko: { [defaultNS]: koTranslations },\n nl: { [defaultNS]: nlTranslations },\n ru: { [defaultNS]: ruTranslations },\n tr: { [defaultNS]: trTranslations },\n };\n\n /**\n * dayjs.defineLanguage('nl') also changes the global locale. We don't want to do that\n * when a user calls the registerTranslation() function. So instead we will store the\n * locale configs given to the registerTranslation() function in `dayjsLocales` object,\n * and register the required locale with moment when setLanguage is called.\n */\n dayjsLocales: { [key: string]: Partial<ILocale> } = {};\n\n /**\n * Initialize properties used in constructor\n */\n logger: (msg?: string) => void;\n currentLanguage: string;\n DateTimeParser: typeof Dayjs | typeof moment;\n isCustomDateTimeParser: boolean;\n i18nextConfig: I18NextConfig;\n\n /**\n * Constructor accepts following options:\n * - language (String) default: 'en'\n * Language code e.g., en, tr\n *\n * - translationsForLanguage (object)\n * Translations object. Please check src/i18n/en.json for example.\n *\n * - disableDateTimeTranslations (boolean) default: false\n * Disable translations for date-times\n *\n * - debug (boolean) default: false\n * Enable debug mode in internal i18n class\n *\n * - logger (function) default: () => {}\n * Logger function to log warnings/errors from this class\n *\n * - dayjsLocaleConfigForLanguage (object) default: 'enConfig'\n * [Config object](https://momentjs.com/docs/#/i18n/changing-locale/) for internal moment object,\n * corresponding to language (param)\n *\n * - DateTimeParser (function) Moment or Dayjs instance/function.\n * Make sure to load all the required locales in this Moment or Dayjs instance that you will be provide to Streami18n\n *\n * @param {*} options\n */\n constructor(options: Options = {}, i18nextConfig: Partial<I18NextConfig> = {}) {\n const finalOptions = {\n ...defaultStreami18nOptions,\n ...options,\n };\n\n // Prepare the i18next configuration.\n this.logger = finalOptions.logger;\n\n this.currentLanguage = finalOptions.language;\n this.DateTimeParser = finalOptions.DateTimeParser;\n\n try {\n /**\n * This is a shallow check to see if the given parser is an instance of Dayjs.\n * For some reason Dayjs.isDayjs(this.DateTimeParser()) doesn't work.\n */\n if (this.DateTimeParser && isDayJs(this.DateTimeParser)) {\n this.DateTimeParser.extend(LocalizedFormat);\n this.DateTimeParser.extend(calendar);\n this.DateTimeParser.extend(localeData);\n this.DateTimeParser.extend(relativeTime);\n }\n } catch (error) {\n throw new Error(\n `Streami18n: Looks like you wanted to provide a Dayjs instance but something went wrong while adding plugins ${JSON.stringify(\n error,\n )}`,\n );\n }\n\n this.isCustomDateTimeParser = !!options.DateTimeParser;\n const translationsForLanguage = finalOptions.translationsForLanguage;\n\n if (translationsForLanguage) {\n this.translations[this.currentLanguage] = {\n [defaultNS]:\n this.translations[this.currentLanguage] &&\n this.translations[this.currentLanguage][defaultNS]\n ? {\n ...this.translations[this.currentLanguage][defaultNS],\n ...translationsForLanguage,\n }\n : translationsForLanguage,\n };\n }\n\n // If translations don't exist for given language, then set it as empty object.\n if (!this.translations[this.currentLanguage]) {\n this.translations[this.currentLanguage] = {\n [defaultNS]: {},\n };\n }\n\n this.i18nextConfig = {\n debug: finalOptions.debug,\n fallbackLng: false,\n interpolation: { escapeValue: false },\n keySeparator: false,\n lng: this.currentLanguage,\n nsSeparator: false,\n\n parseMissingKeyHandler: (key: string) => {\n this.logger(`Streami18n: Missing translation for key: ${key}`);\n\n return key;\n },\n ...i18nextConfig,\n };\n\n this.validateCurrentLanguage();\n\n const dayjsLocaleConfigForLanguage = finalOptions.dayjsLocaleConfigForLanguage;\n\n if (dayjsLocaleConfigForLanguage) {\n this.addOrUpdateLocale(this.currentLanguage, {\n ...dayjsLocaleConfigForLanguage,\n });\n } else if (!this.localeExists(this.currentLanguage)) {\n this.logger(\n `Streami18n: Streami18n(...) - Locale config for ${this.currentLanguage} does not exist in momentjs.` +\n `Please import the locale file using \"import 'moment/locale/${this.currentLanguage}';\" in your app or ` +\n `register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)`,\n );\n }\n\n this.tDateTimeParser = (timestamp) => {\n if (finalOptions.disableDateTimeTranslations || !this.localeExists(this.currentLanguage)) {\n /**\n * TS needs to know which is being called to accept the chain call\n */\n if (isDayJs(this.DateTimeParser)) {\n return this.DateTimeParser(timestamp).locale(defaultLng);\n }\n return this.DateTimeParser(timestamp).locale(defaultLng);\n }\n if (isDayJs(this.DateTimeParser)) {\n return this.DateTimeParser(timestamp).locale(this.currentLanguage);\n }\n return this.DateTimeParser(timestamp).locale(this.currentLanguage);\n };\n }\n\n /**\n * Initializes the i18next instance with configuration (which enables natural language as default keys)\n */\n async init() {\n this.validateCurrentLanguage();\n\n try {\n this.t = await this.i18nInstance.init({\n ...this.i18nextConfig,\n lng: this.currentLanguage,\n resources: this.translations,\n });\n this.initialized = true;\n } catch (error) {\n this.logger(`Something went wrong with init: ${JSON.stringify(error)}`);\n }\n\n return {\n t: this.t,\n tDateTimeParser: this.tDateTimeParser,\n };\n }\n\n localeExists = (language: string) => {\n if (this.isCustomDateTimeParser) return true;\n\n return Object.keys(Dayjs.Ls).indexOf(language) > -1;\n };\n\n validateCurrentLanguage = () => {\n const availableLanguages = Object.keys(this.translations);\n if (availableLanguages.indexOf(this.currentLanguage) === -1) {\n this.logger(\n `Streami18n: '${this.currentLanguage}' language is not registered.` +\n ` Please make sure to call streami18n.registerTranslation('${this.currentLanguage}', {...}) or ` +\n `use one the built-in supported languages - ${this.getAvailableLanguages()}`,\n );\n\n this.currentLanguage = defaultLng;\n }\n };\n\n /** Returns an instance of i18next used within this class instance */\n geti18Instance = () => this.i18nInstance;\n\n /** Returns list of available languages. */\n getAvailableLanguages = () => Object.keys(this.translations);\n\n /** Returns all the translation dictionary for all inbuilt-languages */\n getTranslations = () => this.translations;\n\n /**\n * Returns current version translator function.\n */\n async getTranslators() {\n if (!this.initialized) {\n if (this.dayjsLocales[this.currentLanguage]) {\n this.addOrUpdateLocale(this.currentLanguage, this.dayjsLocales[this.currentLanguage]);\n }\n return await this.init();\n } else {\n return {\n t: this.t,\n tDateTimeParser: this.tDateTimeParser,\n };\n }\n }\n\n /**\n * Register translation\n */\n registerTranslation(\n language: string,\n translation: Partial<typeof enTranslations> | UnknownType,\n customDayjsLocale?: Partial<ILocale>,\n ) {\n if (!translation) {\n this.logger(\n `Streami18n: registerTranslation(language, translation, customDayjsLocale) called without translation`,\n );\n return;\n }\n\n if (!this.translations[language]) {\n this.translations[language] = { [defaultNS]: translation };\n } else {\n this.translations[language][defaultNS] = translation;\n }\n\n if (customDayjsLocale) {\n this.dayjsLocales[language] = { ...customDayjsLocale };\n } else if (!this.localeExists(language)) {\n this.logger(\n `Streami18n: registerTranslation(language, translation, customDayjsLocale) - ` +\n `Locale config for ${language} does not exist in Dayjs.` +\n `Please import the locale file using \"import 'dayjs/locale/${language}';\" in your app or ` +\n `register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)`,\n );\n }\n\n if (this.initialized) {\n this.i18nInstance.addResources(language, defaultNS, translation);\n }\n }\n\n addOrUpdateLocale(key: string, config: Partial<ILocale>) {\n if (this.localeExists(key)) {\n Dayjs.updateLocale(key, { ...config });\n } else {\n // Merging the custom locale config with en config, so missing keys can default to english.\n Dayjs.locale({ name: key, ...en_locale, ...config }, undefined, true);\n }\n }\n\n /**\n * Changes the language.\n */\n async setLanguage(language: string) {\n this.currentLanguage = language;\n\n if (!this.initialized) return;\n\n try {\n const t = await this.i18nInstance.changeLanguage(language);\n if (this.dayjsLocales[language]) {\n this.addOrUpdateLocale(this.currentLanguage, this.dayjsLocales[this.currentLanguage]);\n }\n this.setLanguageCallback(t);\n\n return t;\n } catch (error) {\n this.logger(`Failed to set language: ${JSON.stringify(error)}`);\n return this.t;\n }\n }\n\n registerSetLanguageCallback(callback: (t: TFunction) => void) {\n this.setLanguageCallback = callback;\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.secondsUntil = exports.ONE_SECOND_IN_MS = void 0;
|
|
5
|
+
var ONE_SECOND_IN_MS = 1000;
|
|
6
|
+
exports.ONE_SECOND_IN_MS = ONE_SECOND_IN_MS;
|
|
7
|
+
|
|
8
|
+
var secondsUntil = function secondsUntil(date) {
|
|
9
|
+
return Math.trunc((date.getTime() - Date.now()) / ONE_SECOND_IN_MS);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
exports.secondsUntil = secondsUntil;
|
|
13
|
+
//# sourceMappingURL=date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["date.ts"],"names":["ONE_SECOND_IN_MS","secondsUntil","date","Math","trunc","getTime","Date","now"],"mappings":";;;;AAAO,IAAMA,gBAAgB,GAAG,IAAzB;;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,IAAD;AAAA,SAC1BC,IAAI,CAACC,KAAL,CAAW,CAACF,IAAI,CAACG,OAAL,KAAiBC,IAAI,CAACC,GAAL,EAAlB,IAAgCP,gBAA3C,CAD0B;AAAA,CAArB","sourcesContent":["export const ONE_SECOND_IN_MS = 1000;\n\nexport const secondsUntil = (date: Date) =>\n Math.trunc((date.getTime() - Date.now()) / ONE_SECOND_IN_MS);\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.getResizedImageUrl = getResizedImageUrl;
|
|
5
|
+
|
|
6
|
+
var _reactNative = require("react-native");
|
|
7
|
+
|
|
8
|
+
function getResizedImageUrl(_ref) {
|
|
9
|
+
var height = _ref.height,
|
|
10
|
+
url = _ref.url,
|
|
11
|
+
width = _ref.width;
|
|
12
|
+
var isResizableUrl = url.includes('&h=*') && url.includes('&w=*') && url.includes('&resize=*');
|
|
13
|
+
if (!isResizableUrl || !height && !width) return url;
|
|
14
|
+
var resizedUrl = url;
|
|
15
|
+
|
|
16
|
+
if (height) {
|
|
17
|
+
resizedUrl = resizedUrl.replace('h=*', "h=" + _reactNative.PixelRatio.getPixelSizeForLayoutSize(Number(height)));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (width) {
|
|
21
|
+
resizedUrl = resizedUrl.replace('w=*', "w=" + _reactNative.PixelRatio.getPixelSizeForLayoutSize(Number(width)));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return resizedUrl.replace('resize=*', "resize=clip");
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=getResizedImageUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["getResizedImageUrl.ts"],"names":["getResizedImageUrl","height","url","width","isResizableUrl","includes","resizedUrl","replace","PixelRatio","getPixelSizeForLayoutSize","Number"],"mappings":";;;;;AAAA;;AAoBO,SAASA,kBAAT,OAA8E;AAAA,MAAhDC,MAAgD,QAAhDA,MAAgD;AAAA,MAAxCC,GAAwC,QAAxCA,GAAwC;AAAA,MAAnCC,KAAmC,QAAnCA,KAAmC;AACnF,MAAMC,cAAc,GAAGF,GAAG,CAACG,QAAJ,CAAa,MAAb,KAAwBH,GAAG,CAACG,QAAJ,CAAa,MAAb,CAAxB,IAAgDH,GAAG,CAACG,QAAJ,CAAa,WAAb,CAAvE;AAEA,MAAI,CAACD,cAAD,IAAoB,CAACH,MAAD,IAAW,CAACE,KAApC,EAA4C,OAAOD,GAAP;AAE5C,MAAII,UAAU,GAAGJ,GAAjB;;AAEA,MAAID,MAAJ,EAAY;AACVK,IAAAA,UAAU,GAAGA,UAAU,CAACC,OAAX,CACX,KADW,SAENC,wBAAWC,yBAAX,CAAqCC,MAAM,CAACT,MAAD,CAA3C,CAFM,CAAb;AAID;;AAED,MAAIE,KAAJ,EAAW;AACTG,IAAAA,UAAU,GAAGA,UAAU,CAACC,OAAX,CACX,KADW,SAENC,wBAAWC,yBAAX,CAAqCC,MAAM,CAACP,KAAD,CAA3C,CAFM,CAAb;AAID;;AAED,SAAOG,UAAU,CAACC,OAAX,CAAmB,UAAnB,gBAAP;AACD","sourcesContent":["import { PixelRatio } from 'react-native';\n\ntype GetResizedImageUrlParams = {\n url: string;\n height?: string | number;\n width?: string | number;\n};\n\n/**\n * Any file or image upload done through stream's chat SDK or components get uploaded\n * to CloudFront CDN. Following function returns a url of resized image (to given width and height).\n * It can be used to avoid rendering heavy images on UI, for the sake of performance.\n *\n * This function accepts an object with following properties:\n * - height: height of the resized image.\n * - url: url of the image.\n * - width: width of the resized image.\n *\n * @returns {string} Url of the image with given height and width.\n */\nexport function getResizedImageUrl({ height, url, width }: GetResizedImageUrlParams) {\n const isResizableUrl = url.includes('&h=*') && url.includes('&w=*') && url.includes('&resize=*');\n\n if (!isResizableUrl || (!height && !width)) return url;\n\n let resizedUrl = url;\n\n if (height) {\n resizedUrl = resizedUrl.replace(\n 'h=*',\n `h=${PixelRatio.getPixelSizeForLayoutSize(Number(height))}`,\n );\n }\n\n if (width) {\n resizedUrl = resizedUrl.replace(\n 'w=*',\n `w=${PixelRatio.getPixelSizeForLayoutSize(Number(width))}`,\n );\n }\n\n return resizedUrl.replace('resize=*', `resize=clip`);\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.getUrlOfImageAttachment = getUrlOfImageAttachment;
|
|
5
|
+
|
|
6
|
+
function getUrlOfImageAttachment(image) {
|
|
7
|
+
return image.image_url || image.thumb_url;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=getUrlOfImageAttachment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["getUrlOfImageAttachment.ts"],"names":["getUrlOfImageAttachment","image","image_url","thumb_url"],"mappings":";;;;;AAOO,SAASA,uBAAT,CAAiCC,KAAjC,EAAoD;AACzD,SAAOA,KAAK,CAACC,SAAN,IAAmBD,KAAK,CAACE,SAAhC;AACD","sourcesContent":["import type { Attachment } from 'stream-chat';\n\n/**\n * Extract url of image from image attachment.\n * @param image Image attachment\n * @returns {string}\n */\nexport function getUrlOfImageAttachment(image: Attachment) {\n return image.image_url || image.thumb_url;\n}\n"]}
|
|
@@ -3,7 +3,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.vw = exports.vh = exports.urlRegex = exports.queryUsersDebounced = exports.queryMembersDebounced = exports.makeImageCompatibleUrl = exports.isMentionTrigger = exports.isEmojiTrigger = exports.isCommandTrigger = exports.getUrlWithoutParams = exports.generateRandomId = exports.emojiRegex = exports.ProgressIndicatorTypes = exports.MessageStatusTypes = exports.FileState = exports.ACITriggerSettings = void 0;
|
|
7
7
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
|
|
@@ -13,10 +13,10 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
13
13
|
|
|
14
14
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
15
|
|
|
16
|
-
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
17
|
-
|
|
18
16
|
var _reactNative = require("react-native");
|
|
19
17
|
|
|
18
|
+
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
19
|
+
|
|
20
20
|
var _compiled = require("../emoji-data/compiled");
|
|
21
21
|
|
|
22
22
|
var FileState = Object.freeze({
|
|
@@ -32,6 +32,12 @@ var ProgressIndicatorTypes = Object.freeze({
|
|
|
32
32
|
RETRY: 'retry'
|
|
33
33
|
});
|
|
34
34
|
exports.ProgressIndicatorTypes = ProgressIndicatorTypes;
|
|
35
|
+
var MessageStatusTypes = {
|
|
36
|
+
FAILED: 'failed',
|
|
37
|
+
RECEIVED: 'received',
|
|
38
|
+
SENDING: 'sending'
|
|
39
|
+
};
|
|
40
|
+
exports.MessageStatusTypes = MessageStatusTypes;
|
|
35
41
|
var defaultAutoCompleteSuggestionsLimit = 10;
|
|
36
42
|
var defaultMentionAllAppUsersQuery = {
|
|
37
43
|
filters: {},
|
|
@@ -237,7 +243,6 @@ var ACITriggerSettings = function ACITriggerSettings(_ref3) {
|
|
|
237
243
|
onMentionSelectItem = _ref3.onMentionSelectItem;
|
|
238
244
|
return {
|
|
239
245
|
'/': {
|
|
240
|
-
component: 'CommandsItem',
|
|
241
246
|
dataProvider: function dataProvider(query, text, onReady) {
|
|
242
247
|
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
243
248
|
if (text.indexOf('/') !== 0) return [];
|
|
@@ -280,10 +285,10 @@ var ACITriggerSettings = function ACITriggerSettings(_ref3) {
|
|
|
280
285
|
key: "" + entity.name,
|
|
281
286
|
text: "/" + entity.name
|
|
282
287
|
};
|
|
283
|
-
}
|
|
288
|
+
},
|
|
289
|
+
type: 'command'
|
|
284
290
|
},
|
|
285
291
|
':': {
|
|
286
|
-
component: 'EmojisItem',
|
|
287
292
|
dataProvider: function dataProvider(query, _, onReady) {
|
|
288
293
|
if (!query) return [];
|
|
289
294
|
|
|
@@ -327,13 +332,13 @@ var ACITriggerSettings = function ACITriggerSettings(_ref3) {
|
|
|
327
332
|
key: entity.name,
|
|
328
333
|
text: entity.unicode
|
|
329
334
|
};
|
|
330
|
-
}
|
|
335
|
+
},
|
|
336
|
+
type: 'emoji'
|
|
331
337
|
},
|
|
332
338
|
'@': {
|
|
333
339
|
callback: function callback(item) {
|
|
334
340
|
onMentionSelectItem(item);
|
|
335
341
|
},
|
|
336
|
-
component: 'MentionsItem',
|
|
337
342
|
dataProvider: function dataProvider(query, _, onReady) {
|
|
338
343
|
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
|
|
339
344
|
limit: defaultAutoCompleteSuggestionsLimit,
|
|
@@ -394,7 +399,8 @@ var ACITriggerSettings = function ACITriggerSettings(_ref3) {
|
|
|
394
399
|
key: entity.id,
|
|
395
400
|
text: "@" + (entity.name || entity.id)
|
|
396
401
|
};
|
|
397
|
-
}
|
|
402
|
+
},
|
|
403
|
+
type: 'mention'
|
|
398
404
|
}
|
|
399
405
|
};
|
|
400
406
|
};
|
|
@@ -443,4 +449,6 @@ var generateRandomId = function generateRandomId() {
|
|
|
443
449
|
exports.generateRandomId = generateRandomId;
|
|
444
450
|
var emojiRegex = /^(\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83E\uDDD1(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69])(?:\uD83C[\uDFFB-\uDFFE])|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69])(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69])(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69])(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69])(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83E\uDDD1(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])?|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#*0-9]\uFE0F\u20E3|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])+$/;
|
|
445
451
|
exports.emojiRegex = emojiRegex;
|
|
452
|
+
var urlRegex = /(?:\s|^)((?:https?:\/\/)?(?:[a-z0-9-]+(?:\.[a-z0-9-]+)+)(?::[0-9]+)?(?:\/(?:[^\s]+)?)?)/g;
|
|
453
|
+
exports.urlRegex = urlRegex;
|
|
446
454
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["utils.ts"],"names":["FileState","Object","freeze","FINISHED","NO_FILE","UPLOAD_FAILED","UPLOADED","UPLOADING","ProgressIndicatorTypes","IN_PROGRESS","RETRY","defaultAutoCompleteSuggestionsLimit","defaultMentionAllAppUsersQuery","filters","options","sort","isUserResponse","user","undefined","getCommands","channel","getConfig","commands","getMembers","members","state","values","length","filter","member","map","getWatchers","watchers","getMembersAndWatchers","users","reduce","acc","cur","id","queryMembers","query","onReady","limit","name","$autocomplete","response","forEach","push","queryMembersDebounced","leading","trailing","queryUsers","client","mentionAllAppUsersQuery","$ne","userID","$or","queryUsersDebounced","isCommandTrigger","trigger","isEmojiTrigger","isMentionTrigger","ACITriggerSettings","onMentionSelectItem","component","dataProvider","text","indexOf","selectedCommands","command","a","b","nameA","toLowerCase","nameB","result","slice","output","entity","caretPosition","key","_","compiledEmojis","emojiArray","names","some","includes","emoji","emojiLib","skin_variations","tone","index","unicode","callback","item","mentionAllAppUsersEnabled","data","matchingUsers","makeImageCompatibleUrl","url","trim","getUrlWithoutParams","indexOfQuestion","substring","vw","percentageWidth","rounded","value","Dimensions","get","width","Math","round","vh","percentageHeight","height","generateRandomId","Number","random","toString","replace","emojiRegex"],"mappings":"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","sourcesContent":["import debounce from 'lodash/debounce';\nimport { Dimensions } from 'react-native';\n\nimport { compiledEmojis, Emoji } from '../emoji-data/compiled';\n\nimport type React from 'react';\nimport type { DebouncedFunc } from 'lodash';\nimport type {\n Channel,\n ChannelMemberAPIResponse,\n ChannelMemberResponse,\n StreamChat,\n UserResponse,\n} from 'stream-chat';\n\nimport type { CommandsItemProps } from '../components/AutoCompleteInput/CommandsItem';\nimport type { EmojisItemProps } from '../components/AutoCompleteInput/EmojisItem';\nimport type { MentionsItemProps } from '../components/AutoCompleteInput/MentionsItem';\nimport type { MentionAllAppUsersQuery } from '../contexts/messageInputContext/MessageInputContext';\nimport type {\n SuggestionCommand,\n SuggestionUser,\n} from '../contexts/suggestionsContext/SuggestionsContext';\nimport type { IconProps } from '../icons/utils/base';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../types/types';\n\nexport type ReactionData = {\n Icon: React.FC<IconProps>;\n type: string;\n};\n\nexport const FileState = Object.freeze({\n // finished and uploaded state are the same thing. First is set on frontend,\n // while later is set on backend side\n // TODO: Unify both of them\n FINISHED: 'finished',\n NO_FILE: 'no_file',\n UPLOAD_FAILED: 'upload_failed',\n UPLOADED: 'uploaded',\n UPLOADING: 'uploading',\n});\n\nexport const ProgressIndicatorTypes: {\n IN_PROGRESS: 'in_progress';\n RETRY: 'retry';\n} = Object.freeze({\n IN_PROGRESS: 'in_progress',\n RETRY: 'retry',\n});\n\nconst defaultAutoCompleteSuggestionsLimit = 10;\nconst defaultMentionAllAppUsersQuery = {\n filters: {},\n options: {},\n sort: {},\n};\n\nconst isUserResponse = <Us extends DefaultUserType = DefaultUserType>(\n user: SuggestionUser<Us> | undefined,\n): user is SuggestionUser<Us> => (user as SuggestionUser<Us>) !== undefined;\n\nconst getCommands = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n) => channel.getConfig()?.commands || [];\n\nconst getMembers = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const members = channel.state.members;\n\n return Object.values(members).length\n ? (\n Object.values(members).filter((member) => member.user) as Array<\n ChannelMemberResponse<Us> & { user: UserResponse<Us> }\n >\n ).map((member) => member.user)\n : [];\n};\n\nconst getWatchers = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const watchers = channel.state.watchers;\n return Object.values(watchers).length ? [...Object.values(watchers)] : [];\n};\n\nconst getMembersAndWatchers = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const users = [...getMembers(channel), ...getWatchers(channel)];\n\n return Object.values(\n users.reduce((acc, cur) => {\n if (!acc[cur.id]) {\n acc[cur.id] = cur;\n }\n\n return acc;\n }, {} as { [key: string]: SuggestionUser<Us> }),\n );\n};\n\nconst queryMembers = async <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n query: SuggestionUser<Us>['name'],\n onReady?: (users: SuggestionUser<Us>[]) => void,\n options: {\n limit?: number;\n } = {},\n): Promise<void> => {\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n\n if (typeof query === 'string') {\n const response = (await (channel as unknown as Channel).queryMembers(\n {\n name: { $autocomplete: query },\n },\n {},\n { limit },\n )) as ChannelMemberAPIResponse<Us>;\n\n const users: SuggestionUser<Us>[] = [];\n response.members.forEach((member) => isUserResponse(member.user) && users.push(member.user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryMembersDebounced = debounce(queryMembers, 200, {\n leading: false,\n trailing: true,\n});\n\nconst queryUsers = async <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>,\n query: SuggestionUser<Us>['name'],\n onReady?: (users: SuggestionUser<Us>[]) => void,\n options: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<Us>;\n } = {},\n): Promise<void> => {\n if (typeof query === 'string') {\n const {\n limit = defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersQuery = defaultMentionAllAppUsersQuery,\n } = options;\n const filters = {\n id: { $ne: client.userID },\n ...mentionAllAppUsersQuery?.filters,\n };\n\n if (query) {\n // @ts-ignore\n filters.$or = [{ id: { $autocomplete: query } }, { name: { $autocomplete: query } }];\n }\n\n const response = await client.queryUsers(\n // @ts-ignore\n filters,\n { id: 1, ...mentionAllAppUsersQuery?.sort },\n { limit, ...mentionAllAppUsersQuery?.options },\n );\n const users: SuggestionUser<Us>[] = [];\n response.users.forEach((user) => isUserResponse(user) && users.push(user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryUsersDebounced = debounce(queryUsers, 200, {\n leading: false,\n trailing: true,\n});\n\nexport const isCommandTrigger = (trigger: Trigger): trigger is '/' => trigger === '/';\n\nexport const isEmojiTrigger = (trigger: Trigger): trigger is ':' => trigger === ':';\n\nexport const isMentionTrigger = (trigger: Trigger): trigger is '@' => trigger === '@';\n\nexport type Trigger = '/' | '@' | ':';\n\nexport type TriggerSettings<\n Co extends string = DefaultCommandType,\n Us extends UnknownType = DefaultUserType,\n> = {\n '/'?: {\n component: string | React.ComponentType<Partial<CommandsItemProps<Co>>>;\n dataProvider: (\n query: SuggestionCommand<Co>['name'],\n text: string,\n onReady?: (data: SuggestionCommand<Co>[], q: SuggestionCommand<Co>['name']) => void,\n options?: {\n limit?: number;\n },\n ) => SuggestionCommand<Co>[];\n output: (entity: SuggestionCommand<Co>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n };\n ':'?: {\n component: string | React.ComponentType<Partial<EmojisItemProps>>;\n dataProvider: (\n query: Emoji['name'],\n _: string,\n onReady?: (data: Emoji[], q: Emoji['name']) => void,\n ) => Emoji[];\n output: (entity: Emoji) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n };\n '@'?: {\n callback: (item: SuggestionUser<Us>) => void;\n component: string | React.ComponentType<Partial<MentionsItemProps<Us>>>;\n dataProvider: (\n query: SuggestionUser<Us>['name'],\n _: string,\n onReady?: (data: SuggestionUser<Us>[], q: SuggestionUser<Us>['name']) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersEnabled?: boolean;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<Us>;\n },\n ) => SuggestionUser<Us>[] | Promise<void> | void;\n output: (entity: SuggestionUser<Us>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n };\n};\n\nexport type ACITriggerSettingsParams<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = {\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>;\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>;\n onMentionSelectItem: (item: SuggestionUser<Us>) => void;\n};\n\nexport type QueryUsersFunction<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = (\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>,\n query: SuggestionUser<Us>['name'],\n onReady?: (users: SuggestionUser<Us>[]) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<Us>;\n },\n) => Promise<void>;\n\nexport type QueryMembersFunction<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = (\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n query: SuggestionUser<Us>['name'],\n onReady?: (users: SuggestionUser<Us>[]) => void,\n options?: {\n limit?: number;\n },\n) => Promise<void>;\n\n/**\n * ACI = AutoCompleteInput\n *\n * DataProvider accepts `onReady` function, which will execute once the data is ready.\n * Another approach would have been to simply return the data from dataProvider and let the\n * component await for it and then execute the required logic. We are going for callback instead\n * of async-await since we have debounce function in dataProvider. Which will delay the execution\n * of api call on trailing end of debounce (lets call it a1) but will return with result of\n * previous call without waiting for a1. So in this case, we want to execute onReady, when trailing\n * end of debounce executes.\n */\nexport const ACITriggerSettings = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>({\n channel,\n client,\n onMentionSelectItem,\n}: ACITriggerSettingsParams<At, Ch, Co, Ev, Me, Re, Us>): TriggerSettings<Co, Us> => ({\n '/': {\n component: 'CommandsItem',\n dataProvider: (query, text, onReady, options = {}) => {\n if (text.indexOf('/') !== 0) return [];\n\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n const selectedCommands = !query\n ? getCommands(channel)\n : getCommands(channel).filter((command) => query && command.name?.indexOf(query) !== -1);\n\n // sort alphabetically unless the you're matching the first char\n selectedCommands.sort((a, b) => {\n let nameA = a.name?.toLowerCase() || '';\n let nameB = b.name?.toLowerCase() || '';\n if (query && nameA.indexOf(query) === 0) {\n nameA = `0${nameA}`;\n }\n if (query && nameB.indexOf(query) === 0) {\n nameB = `0${nameB}`;\n }\n if (nameA < nameB) return -1;\n if (nameA > nameB) return 1;\n\n return 0;\n });\n\n const result = selectedCommands.slice(0, limit);\n\n if (onReady) {\n onReady(result, query);\n }\n\n return result;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: `${entity.name}`,\n text: `/${entity.name}`,\n }),\n },\n ':': {\n component: 'EmojisItem',\n dataProvider: (query, _, onReady) => {\n if (!query) return [];\n\n const result = compiledEmojis.emojiArray.reduce((acc, cur) => {\n if (acc.length >= 10) return acc;\n\n if (cur.names.some((name) => name.includes(query))) {\n const emoji = compiledEmojis.emojiLib[cur.name];\n if (emoji.skin_variations) {\n acc.push({\n ...emoji,\n name: `${emoji.name}-tone-1`,\n skin_variations: undefined,\n });\n emoji.skin_variations.forEach((tone, index) =>\n acc.push({\n ...emoji,\n name: `${emoji.name}-tone-${index + 2}`,\n skin_variations: undefined,\n unicode: tone,\n }),\n );\n } else {\n acc.push(emoji);\n }\n }\n\n return acc;\n }, [] as Emoji[]);\n\n if (onReady) {\n onReady(result, query);\n }\n\n return result;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.name,\n text: entity.unicode,\n }),\n },\n '@': {\n callback: (item) => {\n onMentionSelectItem(item);\n },\n component: 'MentionsItem',\n dataProvider: (\n query,\n _,\n onReady,\n options = {\n limit: defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled: false,\n mentionAllAppUsersQuery: defaultMentionAllAppUsersQuery,\n },\n ) => {\n if (options?.mentionAllAppUsersEnabled) {\n return (\n queryUsersDebounced as DebouncedFunc<QueryUsersFunction<At, Ch, Co, Ev, Me, Re, Us>>\n )(\n client,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n mentionAllAppUsersQuery: options.mentionAllAppUsersQuery,\n },\n );\n }\n\n /**\n * By default, we return maximum 100 members via queryChannels api call.\n * Thus it is safe to assume, that if number of members in channel.state is < 100,\n * then all the members are already available on client side and we don't need to\n * make any api call to queryMembers endpoint.\n */\n if (!query || Object.values(channel.state.members).length < 100) {\n const users = getMembersAndWatchers(channel);\n\n const matchingUsers = users.filter((user) => {\n if (!query) return true;\n if (user.name?.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n if (user.id.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n return false;\n });\n\n const data = matchingUsers.slice(0, options?.limit);\n\n if (onReady) {\n onReady(data, query);\n }\n\n return data;\n }\n\n return (\n queryMembersDebounced as DebouncedFunc<QueryMembersFunction<At, Ch, Co, Ev, Me, Re, Us>>\n )(\n channel,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n },\n );\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.id,\n text: `@${entity.name || entity.id}`,\n }),\n },\n});\n\nexport const makeImageCompatibleUrl = (url: string) =>\n (url.indexOf('//') === 0 ? `https:${url}` : url).trim();\n\nexport const getUrlWithoutParams = (url?: string) => {\n if (!url) return url;\n\n const indexOfQuestion = url.indexOf('?');\n if (indexOfQuestion === -1) return url;\n\n return url.substring(0, url.indexOf('?'));\n};\n\nexport const vw = (percentageWidth: number, rounded = false) => {\n const value = Dimensions.get('window').width * (percentageWidth / 100);\n return rounded ? Math.round(value) : value;\n};\n\nexport const vh = (percentageHeight: number, rounded = false) => {\n const height = Dimensions.get('window').height;\n\n const value = height * (percentageHeight / 100);\n return rounded ? Math.round(value) : value;\n};\n\nexport const generateRandomId = (a = ''): string =>\n a\n ? /* eslint-disable no-bitwise */\n ((Number(a) ^ (Math.random() * 16)) >> (Number(a) / 4)).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateRandomId);\n\n// source: https://raw.githubusercontent.com/mathiasbynens/emoji-regex/master/RGI_Emoji.js\n// [#\\*0-9]\\uFE0F\\u20E3 was replaced with [#*0-9]\\uFE0F\\u20E3 due to a lint warning\nexport const emojiRegex =\n /^(\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC68(?:\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83E\\uDDD1(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83E\\uDDD1(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u2764\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#*0-9]\\uFE0F\\u20E3|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])+$/;\n"]}
|
|
1
|
+
{"version":3,"sources":["utils.ts"],"names":["FileState","Object","freeze","FINISHED","NO_FILE","UPLOAD_FAILED","UPLOADED","UPLOADING","ProgressIndicatorTypes","IN_PROGRESS","RETRY","MessageStatusTypes","FAILED","RECEIVED","SENDING","defaultAutoCompleteSuggestionsLimit","defaultMentionAllAppUsersQuery","filters","options","sort","isUserResponse","user","undefined","getCommands","channel","getConfig","commands","getMembers","members","state","values","length","filter","member","map","getWatchers","watchers","getMembersAndWatchers","users","reduce","acc","cur","id","queryMembers","query","onReady","limit","name","$autocomplete","response","forEach","push","queryMembersDebounced","leading","trailing","queryUsers","client","mentionAllAppUsersQuery","$ne","userID","$or","queryUsersDebounced","isCommandTrigger","trigger","isEmojiTrigger","isMentionTrigger","ACITriggerSettings","onMentionSelectItem","dataProvider","text","indexOf","selectedCommands","command","a","b","nameA","toLowerCase","nameB","result","slice","output","entity","caretPosition","key","type","_","compiledEmojis","emojiArray","names","some","includes","emoji","emojiLib","skin_variations","tone","index","unicode","callback","item","mentionAllAppUsersEnabled","data","matchingUsers","makeImageCompatibleUrl","url","trim","getUrlWithoutParams","indexOfQuestion","substring","vw","percentageWidth","rounded","value","Dimensions","get","width","Math","round","vh","percentageHeight","height","generateRandomId","Number","random","toString","replace","emojiRegex","urlRegex"],"mappings":";;;;;;;;;;;;;;;AACA;;AAGA;;AAgBA;;AAkBO,IAAMA,SAAS,GAAGC,MAAM,CAACC,MAAP,CAAc;AAIrCC,EAAAA,QAAQ,EAAE,UAJ2B;AAKrCC,EAAAA,OAAO,EAAE,SAL4B;AAMrCC,EAAAA,aAAa,EAAE,eANsB;AAOrCC,EAAAA,QAAQ,EAAE,UAP2B;AAQrCC,EAAAA,SAAS,EAAE;AAR0B,CAAd,CAAlB;;AAWA,IAAMC,sBAGZ,GAAGP,MAAM,CAACC,MAAP,CAAc;AAChBO,EAAAA,WAAW,EAAE,aADG;AAEhBC,EAAAA,KAAK,EAAE;AAFS,CAAd,CAHG;;AAQA,IAAMC,kBAAkB,GAAG;AAChCC,EAAAA,MAAM,EAAE,QADwB;AAEhCC,EAAAA,QAAQ,EAAE,UAFsB;AAGhCC,EAAAA,OAAO,EAAE;AAHuB,CAA3B;;AAMP,IAAMC,mCAAmC,GAAG,EAA5C;AACA,IAAMC,8BAA8B,GAAG;AACrCC,EAAAA,OAAO,EAAE,EAD4B;AAErCC,EAAAA,OAAO,EAAE,EAF4B;AAGrCC,EAAAA,IAAI,EAAE;AAH+B,CAAvC;;AAMA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CACrBC,IADqB;AAAA,SAEWA,IAAD,KAAiCC,SAF3C;AAAA,CAAvB;;AAIA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CASlBC,OATkB;AAAA;;AAAA,SAUf,uBAAAA,OAAO,CAACC,SAAR,0CAAqBC,QAArB,KAAiC,EAVlB;AAAA,CAApB;;AAYA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CASjBH,OATiB,EAUd;AACH,MAAMI,OAAO,GAAGJ,OAAO,CAACK,KAAR,CAAcD,OAA9B;AAEA,SAAO3B,MAAM,CAAC6B,MAAP,CAAcF,OAAd,EAAuBG,MAAvB,GAED9B,MAAM,CAAC6B,MAAP,CAAcF,OAAd,EAAuBI,MAAvB,CAA8B,UAACC,MAAD;AAAA,WAAYA,MAAM,CAACZ,IAAnB;AAAA,GAA9B,CADF,CAIEa,GAJF,CAIM,UAACD,MAAD;AAAA,WAAYA,MAAM,CAACZ,IAAnB;AAAA,GAJN,CADG,GAMH,EANJ;AAOD,CApBD;;AAsBA,IAAMc,WAAW,GAAG,SAAdA,WAAc,CASlBX,OATkB,EAUf;AACH,MAAMY,QAAQ,GAAGZ,OAAO,CAACK,KAAR,CAAcO,QAA/B;AACA,SAAOnC,MAAM,CAAC6B,MAAP,CAAcM,QAAd,EAAwBL,MAAxB,uCAAqC9B,MAAM,CAAC6B,MAAP,CAAcM,QAAd,CAArC,IAAgE,EAAvE;AACD,CAbD;;AAeA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAS5Bb,OAT4B,EAUzB;AACH,MAAMc,KAAK,iDAAOX,UAAU,CAACH,OAAD,CAAjB,uCAA+BW,WAAW,CAACX,OAAD,CAA1C,EAAX;AAEA,SAAOvB,MAAM,CAAC6B,MAAP,CACLQ,KAAK,CAACC,MAAN,CAAa,UAACC,GAAD,EAAMC,GAAN,EAAc;AACzB,QAAI,CAACD,GAAG,CAACC,GAAG,CAACC,EAAL,CAAR,EAAkB;AAChBF,MAAAA,GAAG,CAACC,GAAG,CAACC,EAAL,CAAH,GAAcD,GAAd;AACD;;AAED,WAAOD,GAAP;AACD,GAND,EAMG,EANH,CADK,CAAP;AASD,CAtBD;;AAwBA,IAAMG,YAAY;AAAA,6EAAG,iBASnBnB,OATmB,EAUnBoB,KAVmB,EAWnBC,OAXmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAYnB3B,YAAAA,OAZmB,2DAcf,EAde;AAAA,6BAgBqCA,OAhBrC,CAgBX4B,KAhBW,EAgBXA,KAhBW,+BAgBH/B,mCAhBG;;AAAA,kBAkBf,OAAO6B,KAAP,KAAiB,QAlBF;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAmBQpB,OAAD,CAAgCmB,YAAhC,CACtB;AACEI,cAAAA,IAAI,EAAE;AAAEC,gBAAAA,aAAa,EAAEJ;AAAjB;AADR,aADsB,EAItB,EAJsB,EAKtB;AAAEE,cAAAA,KAAK,EAALA;AAAF,aALsB,CAnBP;;AAAA;AAmBXG,YAAAA,QAnBW;AA2BXX,YAAAA,MA3BW,GA2BmB,EA3BnB;AA4BjBW,YAAAA,QAAQ,CAACrB,OAAT,CAAiBsB,OAAjB,CAAyB,UAACjB,MAAD;AAAA,qBAAYb,cAAc,CAACa,MAAM,CAACZ,IAAR,CAAd,IAA+BiB,MAAK,CAACa,IAAN,CAAWlB,MAAM,CAACZ,IAAlB,CAA3C;AAAA,aAAzB;;AACA,gBAAIwB,OAAO,IAAIP,MAAf,EAAsB;AACpBO,cAAAA,OAAO,CAACP,MAAD,CAAP;AACD;;AA/BgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAAZK,YAAY;AAAA;AAAA;AAAA,GAAlB;;AAmCO,IAAMS,qBAAqB,GAAG,0BAAST,YAAT,EAAuB,GAAvB,EAA4B;AAC/DU,EAAAA,OAAO,EAAE,KADsD;AAE/DC,EAAAA,QAAQ,EAAE;AAFqD,CAA5B,CAA9B;;;AAKP,IAAMC,UAAU;AAAA,8EAAG,kBASjBC,MATiB,EAUjBZ,KAViB,EAWjBC,OAXiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAYjB3B,YAAAA,OAZiB,8DAeb,EAfa;;AAAA,kBAiBb,OAAO0B,KAAP,KAAiB,QAjBJ;AAAA;AAAA;AAAA;;AAAA,8BAqBX1B,OArBW,CAmBb4B,KAnBa,EAmBbA,KAnBa,gCAmBL/B,mCAnBK,4CAqBXG,OArBW,CAoBbuC,uBApBa,EAoBbA,uBApBa,sCAoBazC,8BApBb;AAsBTC,YAAAA,OAtBS;AAuBbyB,cAAAA,EAAE,EAAE;AAAEgB,gBAAAA,GAAG,EAAEF,MAAM,CAACG;AAAd;AAvBS,eAwBVF,uBAxBU,oBAwBVA,uBAAuB,CAAExC,OAxBf;;AA2Bf,gBAAI2B,KAAJ,EAAW;AAET3B,cAAAA,OAAO,CAAC2C,GAAR,GAAc,CAAC;AAAElB,gBAAAA,EAAE,EAAE;AAAEM,kBAAAA,aAAa,EAAEJ;AAAjB;AAAN,eAAD,EAAmC;AAAEG,gBAAAA,IAAI,EAAE;AAAEC,kBAAAA,aAAa,EAAEJ;AAAjB;AAAR,eAAnC,CAAd;AACD;;AA9Bc;AAAA,mBAgCQY,MAAM,CAACD,UAAP,CAErBtC,OAFqB;AAGnByB,cAAAA,EAAE,EAAE;AAHe,eAGTe,uBAHS,oBAGTA,uBAAuB,CAAEtC,IAHhB;AAInB2B,cAAAA,KAAK,EAALA;AAJmB,eAITW,uBAJS,oBAITA,uBAAuB,CAAEvC,OAJhB,EAhCR;;AAAA;AAgCT+B,YAAAA,QAhCS;AAsCTX,YAAAA,OAtCS,GAsCqB,EAtCrB;AAuCfW,YAAAA,QAAQ,CAACX,KAAT,CAAeY,OAAf,CAAuB,UAAC7B,IAAD;AAAA,qBAAUD,cAAc,CAACC,IAAD,CAAd,IAAwBiB,OAAK,CAACa,IAAN,CAAW9B,IAAX,CAAlC;AAAA,aAAvB;;AACA,gBAAIwB,OAAO,IAAIP,OAAf,EAAsB;AACpBO,cAAAA,OAAO,CAACP,OAAD,CAAP;AACD;;AA1Cc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAAViB,UAAU;AAAA;AAAA;AAAA,GAAhB;;AA8CO,IAAMM,mBAAmB,GAAG,0BAASN,UAAT,EAAqB,GAArB,EAA0B;AAC3DF,EAAAA,OAAO,EAAE,KADkD;AAE3DC,EAAAA,QAAQ,EAAE;AAFiD,CAA1B,CAA5B;;;AAKA,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,OAAD;AAAA,SAAsCA,OAAO,KAAK,GAAlD;AAAA,CAAzB;;;;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACD,OAAD;AAAA,SAAsCA,OAAO,KAAK,GAAlD;AAAA,CAAvB;;;;AAEA,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACF,OAAD;AAAA,SAAsCA,OAAO,KAAK,GAAlD;AAAA,CAAzB;;;;AAsHA,IAAMG,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,MAShC1C,OATgC,SAShCA,OATgC;AAAA,MAUhCgC,MAVgC,SAUhCA,MAVgC;AAAA,MAWhCW,mBAXgC,SAWhCA,mBAXgC;AAAA,SAYoD;AACpF,SAAK;AACHC,MAAAA,YAAY,EAAE,sBAACxB,KAAD,EAAQyB,IAAR,EAAcxB,OAAd,EAAwC;AAAA,YAAjB3B,OAAiB,uEAAP,EAAO;AACpD,YAAImD,IAAI,CAACC,OAAL,CAAa,GAAb,MAAsB,CAA1B,EAA6B,OAAO,EAAP;AAE7B,8BAAwDpD,OAAxD,CAAQ4B,KAAR;AAAA,YAAQA,KAAR,gCAAgB/B,mCAAhB;AACA,YAAMwD,gBAAgB,GAAG,CAAC3B,KAAD,GACrBrB,WAAW,CAACC,OAAD,CADU,GAErBD,WAAW,CAACC,OAAD,CAAX,CAAqBQ,MAArB,CAA4B,UAACwC,OAAD;AAAA;;AAAA,iBAAa5B,KAAK,IAAI,kBAAA4B,OAAO,CAACzB,IAAR,mCAAcuB,OAAd,CAAsB1B,KAAtB,OAAiC,CAAC,CAAxD;AAAA,SAA5B,CAFJ;AAKA2B,QAAAA,gBAAgB,CAACpD,IAAjB,CAAsB,UAACsD,CAAD,EAAIC,CAAJ,EAAU;AAAA;;AAC9B,cAAIC,KAAK,GAAG,YAAAF,CAAC,CAAC1B,IAAF,6BAAQ6B,WAAR,OAAyB,EAArC;AACA,cAAIC,KAAK,GAAG,YAAAH,CAAC,CAAC3B,IAAF,6BAAQ6B,WAAR,OAAyB,EAArC;;AACA,cAAIhC,KAAK,IAAI+B,KAAK,CAACL,OAAN,CAAc1B,KAAd,MAAyB,CAAtC,EAAyC;AACvC+B,YAAAA,KAAK,SAAOA,KAAZ;AACD;;AACD,cAAI/B,KAAK,IAAIiC,KAAK,CAACP,OAAN,CAAc1B,KAAd,MAAyB,CAAtC,EAAyC;AACvCiC,YAAAA,KAAK,SAAOA,KAAZ;AACD;;AACD,cAAIF,KAAK,GAAGE,KAAZ,EAAmB,OAAO,CAAC,CAAR;AACnB,cAAIF,KAAK,GAAGE,KAAZ,EAAmB,OAAO,CAAP;AAEnB,iBAAO,CAAP;AACD,SAbD;AAeA,YAAMC,MAAM,GAAGP,gBAAgB,CAACQ,KAAjB,CAAuB,CAAvB,EAA0BjC,KAA1B,CAAf;;AAEA,YAAID,OAAJ,EAAa;AACXA,UAAAA,OAAO,CAACiC,MAAD,EAASlC,KAAT,CAAP;AACD;;AAED,eAAOkC,MAAP;AACD,OAhCE;AAiCHE,MAAAA,MAAM,EAAE,gBAACC,MAAD;AAAA,eAAa;AACnBC,UAAAA,aAAa,EAAE,MADI;AAEnBC,UAAAA,GAAG,OAAKF,MAAM,CAAClC,IAFI;AAGnBsB,UAAAA,IAAI,QAAMY,MAAM,CAAClC;AAHE,SAAb;AAAA,OAjCL;AAsCHqC,MAAAA,IAAI,EAAE;AAtCH,KAD+E;AAyCpF,SAAK;AACHhB,MAAAA,YAAY,EAAE,sBAACxB,KAAD,EAAQyC,CAAR,EAAWxC,OAAX,EAAuB;AACnC,YAAI,CAACD,KAAL,EAAY,OAAO,EAAP;;AAEZ,YAAMkC,MAAM,GAAGQ,yBAAeC,UAAf,CAA0BhD,MAA1B,CAAiC,UAACC,GAAD,EAAMC,GAAN,EAAc;AAC5D,cAAID,GAAG,CAACT,MAAJ,IAAc,EAAlB,EAAsB,OAAOS,GAAP;;AAEtB,cAAIC,GAAG,CAAC+C,KAAJ,CAAUC,IAAV,CAAe,UAAC1C,IAAD;AAAA,mBAAUA,IAAI,CAAC2C,QAAL,CAAc9C,KAAd,CAAV;AAAA,WAAf,CAAJ,EAAoD;AAClD,gBAAM+C,KAAK,GAAGL,yBAAeM,QAAf,CAAwBnD,GAAG,CAACM,IAA5B,CAAd;;AACA,gBAAI4C,KAAK,CAACE,eAAV,EAA2B;AACzBrD,cAAAA,GAAG,CAACW,IAAJ,+BACKwC,KADL;AAEE5C,gBAAAA,IAAI,EAAK4C,KAAK,CAAC5C,IAAX,YAFN;AAGE8C,gBAAAA,eAAe,EAAEvE;AAHnB;AAKAqE,cAAAA,KAAK,CAACE,eAAN,CAAsB3C,OAAtB,CAA8B,UAAC4C,IAAD,EAAOC,KAAP;AAAA,uBAC5BvD,GAAG,CAACW,IAAJ,+BACKwC,KADL;AAEE5C,kBAAAA,IAAI,EAAK4C,KAAK,CAAC5C,IAAX,eAAwBgD,KAAK,GAAG,CAAhC,CAFN;AAGEF,kBAAAA,eAAe,EAAEvE,SAHnB;AAIE0E,kBAAAA,OAAO,EAAEF;AAJX,mBAD4B;AAAA,eAA9B;AAQD,aAdD,MAcO;AACLtD,cAAAA,GAAG,CAACW,IAAJ,CAASwC,KAAT;AACD;AACF;;AAED,iBAAOnD,GAAP;AACD,SAzBc,EAyBZ,EAzBY,CAAf;;AA2BA,YAAIK,OAAJ,EAAa;AACXA,UAAAA,OAAO,CAACiC,MAAD,EAASlC,KAAT,CAAP;AACD;;AAED,eAAOkC,MAAP;AACD,OApCE;AAqCHE,MAAAA,MAAM,EAAE,gBAACC,MAAD;AAAA,eAAa;AACnBC,UAAAA,aAAa,EAAE,MADI;AAEnBC,UAAAA,GAAG,EAAEF,MAAM,CAAClC,IAFO;AAGnBsB,UAAAA,IAAI,EAAEY,MAAM,CAACe;AAHM,SAAb;AAAA,OArCL;AA0CHZ,MAAAA,IAAI,EAAE;AA1CH,KAzC+E;AAqFpF,SAAK;AACHa,MAAAA,QAAQ,EAAE,kBAACC,IAAD,EAAU;AAClB/B,QAAAA,mBAAmB,CAAC+B,IAAD,CAAnB;AACD,OAHE;AAIH9B,MAAAA,YAAY,EAAE,sBACZxB,KADY,EAEZyC,CAFY,EAGZxC,OAHY,EAST;AAAA,YALH3B,OAKG,uEALO;AACR4B,UAAAA,KAAK,EAAE/B,mCADC;AAERoF,UAAAA,yBAAyB,EAAE,KAFnB;AAGR1C,UAAAA,uBAAuB,EAAEzC;AAHjB,SAKP;;AACH,YAAIE,OAAJ,YAAIA,OAAO,CAAEiF,yBAAb,EAAwC;AACtC,iBACEtC,mBADK,CAGLL,MAHK,EAILZ,KAJK,EAKL,UAACwD,IAAD,EAAU;AACR,gBAAIvD,OAAJ,EAAa;AACXA,cAAAA,OAAO,CAACuD,IAAD,EAAOxD,KAAP,CAAP;AACD;AACF,WATI,EAUL;AACEE,YAAAA,KAAK,EAAE5B,OAAO,CAAC4B,KADjB;AAEEW,YAAAA,uBAAuB,EAAEvC,OAAO,CAACuC;AAFnC,WAVK,CAAP;AAeD;;AAQD,YAAI,CAACb,KAAD,IAAU3C,MAAM,CAAC6B,MAAP,CAAcN,OAAO,CAACK,KAAR,CAAcD,OAA5B,EAAqCG,MAArC,GAA8C,GAA5D,EAAiE;AAC/D,cAAMO,OAAK,GAAGD,qBAAqB,CAACb,OAAD,CAAnC;;AAEA,cAAM6E,aAAa,GAAG/D,OAAK,CAACN,MAAN,CAAa,UAACX,IAAD,EAAU;AAAA;;AAC3C,gBAAI,CAACuB,KAAL,EAAY,OAAO,IAAP;;AACZ,gBAAI,eAAAvB,IAAI,CAAC0B,IAAL,gCAAW6B,WAAX,GAAyBN,OAAzB,CAAiC1B,KAAK,CAACgC,WAAN,EAAjC,OAA0D,CAAC,CAA/D,EAAkE;AAChE,qBAAO,IAAP;AACD;;AACD,gBAAIvD,IAAI,CAACqB,EAAL,CAAQkC,WAAR,GAAsBN,OAAtB,CAA8B1B,KAAK,CAACgC,WAAN,EAA9B,MAAuD,CAAC,CAA5D,EAA+D;AAC7D,qBAAO,IAAP;AACD;;AACD,mBAAO,KAAP;AACD,WATqB,CAAtB;;AAWA,cAAMwB,KAAI,GAAGC,aAAa,CAACtB,KAAd,CAAoB,CAApB,EAAuB7D,OAAvB,oBAAuBA,OAAO,CAAE4B,KAAhC,CAAb;;AAEA,cAAID,OAAJ,EAAa;AACXA,YAAAA,OAAO,CAACuD,KAAD,EAAOxD,KAAP,CAAP;AACD;;AAED,iBAAOwD,KAAP;AACD;;AAED,eACEhD,qBADK,CAGL5B,OAHK,EAILoB,KAJK,EAKL,UAACwD,IAAD,EAAU;AACR,cAAIvD,OAAJ,EAAa;AACXA,YAAAA,OAAO,CAACuD,IAAD,EAAOxD,KAAP,CAAP;AACD;AACF,SATI,EAUL;AACEE,UAAAA,KAAK,EAAE5B,OAAO,CAAC4B;AADjB,SAVK,CAAP;AAcD,OA3EE;AA4EHkC,MAAAA,MAAM,EAAE,gBAACC,MAAD;AAAA,eAAa;AACnBC,UAAAA,aAAa,EAAE,MADI;AAEnBC,UAAAA,GAAG,EAAEF,MAAM,CAACvC,EAFO;AAGnB2B,UAAAA,IAAI,SAAMY,MAAM,CAAClC,IAAP,IAAekC,MAAM,CAACvC,EAA5B;AAHe,SAAb;AAAA,OA5EL;AAiFH0C,MAAAA,IAAI,EAAE;AAjFH;AArF+E,GAZpD;AAAA,CAA3B;;;;AAsLA,IAAMkB,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,GAAD;AAAA,SACpC,CAACA,GAAG,CAACjC,OAAJ,CAAY,IAAZ,MAAsB,CAAtB,cAAmCiC,GAAnC,GAA2CA,GAA5C,EAAiDC,IAAjD,EADoC;AAAA,CAA/B;;;;AAGA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACF,GAAD,EAAkB;AACnD,MAAI,CAACA,GAAL,EAAU,OAAOA,GAAP;AAEV,MAAMG,eAAe,GAAGH,GAAG,CAACjC,OAAJ,CAAY,GAAZ,CAAxB;AACA,MAAIoC,eAAe,KAAK,CAAC,CAAzB,EAA4B,OAAOH,GAAP;AAE5B,SAAOA,GAAG,CAACI,SAAJ,CAAc,CAAd,EAAiBJ,GAAG,CAACjC,OAAJ,CAAY,GAAZ,CAAjB,CAAP;AACD,CAPM;;;;AASA,IAAMsC,EAAE,GAAG,SAALA,EAAK,CAACC,eAAD,EAA8C;AAAA,MAApBC,OAAoB,uEAAV,KAAU;AAC9D,MAAMC,KAAK,GAAGC,wBAAWC,GAAX,CAAe,QAAf,EAAyBC,KAAzB,IAAkCL,eAAe,GAAG,GAApD,CAAd;AACA,SAAOC,OAAO,GAAGK,IAAI,CAACC,KAAL,CAAWL,KAAX,CAAH,GAAuBA,KAArC;AACD,CAHM;;;;AAKA,IAAMM,EAAE,GAAG,SAALA,EAAK,CAACC,gBAAD,EAA+C;AAAA,MAApBR,OAAoB,uEAAV,KAAU;;AAC/D,MAAMS,MAAM,GAAGP,wBAAWC,GAAX,CAAe,QAAf,EAAyBM,MAAxC;;AAEA,MAAMR,KAAK,GAAGQ,MAAM,IAAID,gBAAgB,GAAG,GAAvB,CAApB;AACA,SAAOR,OAAO,GAAGK,IAAI,CAACC,KAAL,CAAWL,KAAX,CAAH,GAAuBA,KAArC;AACD,CALM;;;;AAOA,IAAMS,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,MAAC/C,CAAD,uEAAK,EAAL;AAAA,SAC9BA,CAAC,GAEG,CAAC,CAACgD,MAAM,CAAChD,CAAD,CAAN,GAAa0C,IAAI,CAACO,MAAL,KAAgB,EAA9B,KAAuCD,MAAM,CAAChD,CAAD,CAAN,GAAY,CAApD,EAAwDkD,QAAxD,CAAiE,EAAjE,CAFH,GAGG,CAAG,GAAH,SAAU,GAAV,SAAiB,GAAjB,SAAwB,GAAxB,SAA+B,IAA/B,EAAsCC,OAAtC,CAA8C,QAA9C,EAAwDJ,gBAAxD,CAJ0B;AAAA,CAAzB;;;AAQA,IAAMK,UAAU,GACrB,ikVADK;;AAGA,IAAMC,QAAQ,GACnB,0FADK","sourcesContent":["import type React from 'react';\nimport { Dimensions } from 'react-native';\n\nimport type { DebouncedFunc } from 'lodash';\nimport debounce from 'lodash/debounce';\nimport type {\n Channel,\n ChannelMemberAPIResponse,\n ChannelMemberResponse,\n CommandResponse,\n StreamChat,\n UserResponse,\n} from 'stream-chat';\n\nimport type { MentionAllAppUsersQuery } from '../contexts/messageInputContext/MessageInputContext';\nimport type {\n SuggestionCommand,\n SuggestionComponentType,\n SuggestionUser,\n} from '../contexts/suggestionsContext/SuggestionsContext';\nimport { compiledEmojis, Emoji } from '../emoji-data/compiled';\nimport type { IconProps } from '../icons/utils/base';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../types/types';\n\nexport type ReactionData = {\n Icon: React.FC<IconProps>;\n type: string;\n};\n\nexport const FileState = Object.freeze({\n // finished and uploaded state are the same thing. First is set on frontend,\n // while later is set on backend side\n // TODO: Unify both of them\n FINISHED: 'finished',\n NO_FILE: 'no_file',\n UPLOAD_FAILED: 'upload_failed',\n UPLOADED: 'uploaded',\n UPLOADING: 'uploading',\n});\n\nexport const ProgressIndicatorTypes: {\n IN_PROGRESS: 'in_progress';\n RETRY: 'retry';\n} = Object.freeze({\n IN_PROGRESS: 'in_progress',\n RETRY: 'retry',\n});\n\nexport const MessageStatusTypes = {\n FAILED: 'failed',\n RECEIVED: 'received',\n SENDING: 'sending',\n};\n\nconst defaultAutoCompleteSuggestionsLimit = 10;\nconst defaultMentionAllAppUsersQuery = {\n filters: {},\n options: {},\n sort: {},\n};\n\nconst isUserResponse = <Us extends DefaultUserType = DefaultUserType>(\n user: SuggestionUser<Us> | undefined,\n): user is SuggestionUser<Us> => (user as SuggestionUser<Us>) !== undefined;\n\nconst getCommands = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n) => channel.getConfig()?.commands || [];\n\nconst getMembers = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const members = channel.state.members;\n\n return Object.values(members).length\n ? (\n Object.values(members).filter((member) => member.user) as Array<\n ChannelMemberResponse<Us> & { user: UserResponse<Us> }\n >\n ).map((member) => member.user)\n : [];\n};\n\nconst getWatchers = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const watchers = channel.state.watchers;\n return Object.values(watchers).length ? [...Object.values(watchers)] : [];\n};\n\nconst getMembersAndWatchers = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const users = [...getMembers(channel), ...getWatchers(channel)];\n\n return Object.values(\n users.reduce((acc, cur) => {\n if (!acc[cur.id]) {\n acc[cur.id] = cur;\n }\n\n return acc;\n }, {} as { [key: string]: SuggestionUser<Us> }),\n );\n};\n\nconst queryMembers = async <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n query: SuggestionUser<Us>['name'],\n onReady?: (users: SuggestionUser<Us>[]) => void,\n options: {\n limit?: number;\n } = {},\n): Promise<void> => {\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n\n if (typeof query === 'string') {\n const response = (await (channel as unknown as Channel).queryMembers(\n {\n name: { $autocomplete: query },\n },\n {},\n { limit },\n )) as ChannelMemberAPIResponse<Us>;\n\n const users: SuggestionUser<Us>[] = [];\n response.members.forEach((member) => isUserResponse(member.user) && users.push(member.user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryMembersDebounced = debounce(queryMembers, 200, {\n leading: false,\n trailing: true,\n});\n\nconst queryUsers = async <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>,\n query: SuggestionUser<Us>['name'],\n onReady?: (users: SuggestionUser<Us>[]) => void,\n options: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<Us>;\n } = {},\n): Promise<void> => {\n if (typeof query === 'string') {\n const {\n limit = defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersQuery = defaultMentionAllAppUsersQuery,\n } = options;\n const filters = {\n id: { $ne: client.userID },\n ...mentionAllAppUsersQuery?.filters,\n };\n\n if (query) {\n // @ts-ignore\n filters.$or = [{ id: { $autocomplete: query } }, { name: { $autocomplete: query } }];\n }\n\n const response = await client.queryUsers(\n // @ts-ignore\n filters,\n { id: 1, ...mentionAllAppUsersQuery?.sort },\n { limit, ...mentionAllAppUsersQuery?.options },\n );\n const users: SuggestionUser<Us>[] = [];\n response.users.forEach((user) => isUserResponse(user) && users.push(user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryUsersDebounced = debounce(queryUsers, 200, {\n leading: false,\n trailing: true,\n});\n\nexport const isCommandTrigger = (trigger: Trigger): trigger is '/' => trigger === '/';\n\nexport const isEmojiTrigger = (trigger: Trigger): trigger is ':' => trigger === ':';\n\nexport const isMentionTrigger = (trigger: Trigger): trigger is '@' => trigger === '@';\n\nexport type Trigger = '/' | '@' | ':';\n\nexport type TriggerSettings<\n Co extends string = DefaultCommandType,\n Us extends UnknownType = DefaultUserType,\n> = {\n '/'?: {\n dataProvider: (\n query: CommandResponse<Co>['name'],\n text: string,\n onReady?: (data: CommandResponse<Co>[], q: CommandResponse<Co>['name']) => void,\n options?: {\n limit?: number;\n },\n ) => SuggestionCommand<Co>[];\n output: (entity: CommandResponse<Co>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n ':'?: {\n dataProvider: (\n query: Emoji['name'],\n _: string,\n onReady?: (data: Emoji[], q: Emoji['name']) => void,\n ) => Emoji[];\n output: (entity: Emoji) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n '@'?: {\n callback: (item: SuggestionUser<Us>) => void;\n dataProvider: (\n query: SuggestionUser<Us>['name'],\n _: string,\n onReady?: (data: SuggestionUser<Us>[], q: SuggestionUser<Us>['name']) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersEnabled?: boolean;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<Us>;\n },\n ) => SuggestionUser<Us>[] | Promise<void> | void;\n output: (entity: SuggestionUser<Us>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n};\n\nexport type ACITriggerSettingsParams<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = {\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>;\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>;\n onMentionSelectItem: (item: SuggestionUser<Us>) => void;\n};\n\nexport type QueryUsersFunction<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = (\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>,\n query: SuggestionUser<Us>['name'],\n onReady?: (users: SuggestionUser<Us>[]) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<Us>;\n },\n) => Promise<void>;\n\nexport type QueryMembersFunction<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = (\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n query: SuggestionUser<Us>['name'],\n onReady?: (users: SuggestionUser<Us>[]) => void,\n options?: {\n limit?: number;\n },\n) => Promise<void>;\n\n/**\n * ACI = AutoCompleteInput\n *\n * DataProvider accepts `onReady` function, which will execute once the data is ready.\n * Another approach would have been to simply return the data from dataProvider and let the\n * component await for it and then execute the required logic. We are going for callback instead\n * of async-await since we have debounce function in dataProvider. Which will delay the execution\n * of api call on trailing end of debounce (lets call it a1) but will return with result of\n * previous call without waiting for a1. So in this case, we want to execute onReady, when trailing\n * end of debounce executes.\n */\nexport const ACITriggerSettings = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>({\n channel,\n client,\n onMentionSelectItem,\n}: ACITriggerSettingsParams<At, Ch, Co, Ev, Me, Re, Us>): TriggerSettings<Co, Us> => ({\n '/': {\n dataProvider: (query, text, onReady, options = {}) => {\n if (text.indexOf('/') !== 0) return [];\n\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n const selectedCommands = !query\n ? getCommands(channel)\n : getCommands(channel).filter((command) => query && command.name?.indexOf(query) !== -1);\n\n // sort alphabetically unless the you're matching the first char\n selectedCommands.sort((a, b) => {\n let nameA = a.name?.toLowerCase() || '';\n let nameB = b.name?.toLowerCase() || '';\n if (query && nameA.indexOf(query) === 0) {\n nameA = `0${nameA}`;\n }\n if (query && nameB.indexOf(query) === 0) {\n nameB = `0${nameB}`;\n }\n if (nameA < nameB) return -1;\n if (nameA > nameB) return 1;\n\n return 0;\n });\n\n const result = selectedCommands.slice(0, limit);\n\n if (onReady) {\n onReady(result, query);\n }\n\n return result;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: `${entity.name}`,\n text: `/${entity.name}`,\n }),\n type: 'command',\n },\n ':': {\n dataProvider: (query, _, onReady) => {\n if (!query) return [];\n\n const result = compiledEmojis.emojiArray.reduce((acc, cur) => {\n if (acc.length >= 10) return acc;\n\n if (cur.names.some((name) => name.includes(query))) {\n const emoji = compiledEmojis.emojiLib[cur.name];\n if (emoji.skin_variations) {\n acc.push({\n ...emoji,\n name: `${emoji.name}-tone-1`,\n skin_variations: undefined,\n });\n emoji.skin_variations.forEach((tone, index) =>\n acc.push({\n ...emoji,\n name: `${emoji.name}-tone-${index + 2}`,\n skin_variations: undefined,\n unicode: tone,\n }),\n );\n } else {\n acc.push(emoji);\n }\n }\n\n return acc;\n }, [] as Emoji[]);\n\n if (onReady) {\n onReady(result, query);\n }\n\n return result;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.name,\n text: entity.unicode,\n }),\n type: 'emoji',\n },\n '@': {\n callback: (item) => {\n onMentionSelectItem(item);\n },\n dataProvider: (\n query,\n _,\n onReady,\n options = {\n limit: defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled: false,\n mentionAllAppUsersQuery: defaultMentionAllAppUsersQuery,\n },\n ) => {\n if (options?.mentionAllAppUsersEnabled) {\n return (\n queryUsersDebounced as DebouncedFunc<QueryUsersFunction<At, Ch, Co, Ev, Me, Re, Us>>\n )(\n client,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n mentionAllAppUsersQuery: options.mentionAllAppUsersQuery,\n },\n );\n }\n\n /**\n * By default, we return maximum 100 members via queryChannels api call.\n * Thus it is safe to assume, that if number of members in channel.state is < 100,\n * then all the members are already available on client side and we don't need to\n * make any api call to queryMembers endpoint.\n */\n if (!query || Object.values(channel.state.members).length < 100) {\n const users = getMembersAndWatchers(channel);\n\n const matchingUsers = users.filter((user) => {\n if (!query) return true;\n if (user.name?.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n if (user.id.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n return false;\n });\n\n const data = matchingUsers.slice(0, options?.limit);\n\n if (onReady) {\n onReady(data, query);\n }\n\n return data;\n }\n\n return (\n queryMembersDebounced as DebouncedFunc<QueryMembersFunction<At, Ch, Co, Ev, Me, Re, Us>>\n )(\n channel,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n },\n );\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.id,\n text: `@${entity.name || entity.id}`,\n }),\n type: 'mention',\n },\n});\n\nexport const makeImageCompatibleUrl = (url: string) =>\n (url.indexOf('//') === 0 ? `https:${url}` : url).trim();\n\nexport const getUrlWithoutParams = (url?: string) => {\n if (!url) return url;\n\n const indexOfQuestion = url.indexOf('?');\n if (indexOfQuestion === -1) return url;\n\n return url.substring(0, url.indexOf('?'));\n};\n\nexport const vw = (percentageWidth: number, rounded = false) => {\n const value = Dimensions.get('window').width * (percentageWidth / 100);\n return rounded ? Math.round(value) : value;\n};\n\nexport const vh = (percentageHeight: number, rounded = false) => {\n const height = Dimensions.get('window').height;\n\n const value = height * (percentageHeight / 100);\n return rounded ? Math.round(value) : value;\n};\n\nexport const generateRandomId = (a = ''): string =>\n a\n ? /* eslint-disable no-bitwise */\n ((Number(a) ^ (Math.random() * 16)) >> (Number(a) / 4)).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateRandomId);\n\n// source: https://raw.githubusercontent.com/mathiasbynens/emoji-regex/master/RGI_Emoji.js\n// [#\\*0-9]\\uFE0F\\u20E3 was replaced with [#*0-9]\\uFE0F\\u20E3 due to a lint warning\nexport const emojiRegex =\n /^(\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC68(?:\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83E\\uDDD1(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83E\\uDDD1(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u2764\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#*0-9]\\uFE0F\\u20E3|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])+$/;\n\nexport const urlRegex =\n /(?:\\s|^)((?:https?:\\/\\/)?(?:[a-z0-9-]+(?:\\.[a-z0-9-]+)+)(?::[0-9]+)?(?:\\/(?:[^\\s]+)?)?)/g;\n"]}
|
|
@@ -13,12 +13,12 @@ var _AttachmentActions = require("../../components/Attachment/AttachmentActions"
|
|
|
13
13
|
|
|
14
14
|
var _Card = require("../../components/Attachment/Card");
|
|
15
15
|
|
|
16
|
+
var _FileAttachment = require("../../components/Attachment/FileAttachment");
|
|
17
|
+
|
|
16
18
|
var _Gallery = require("../../components/Attachment/Gallery");
|
|
17
19
|
|
|
18
20
|
var _Giphy = require("../../components/Attachment/Giphy");
|
|
19
21
|
|
|
20
|
-
var _FileAttachment = require("../../components/Attachment/FileAttachment");
|
|
21
|
-
|
|
22
22
|
var _MessagesContext = require("../../contexts/messagesContext/MessagesContext");
|
|
23
23
|
|
|
24
24
|
var _this = this,
|