@sendbird/uikit-react 3.7.0-rc.0 → 3.7.0
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/App.js +52 -52
- package/Channel/components/ChannelHeader.js +22 -22
- package/Channel/components/ChannelUI.js +46 -46
- package/Channel/components/FileViewer.js +19 -19
- package/Channel/components/FrozenNotification.js +4 -4
- package/Channel/components/Message.js +42 -42
- package/Channel/components/MessageInput.js +33 -33
- package/Channel/components/MessageList.js +42 -42
- package/Channel/components/RemoveMessageModal.js +23 -23
- package/Channel/components/SuggestedMentionList.js +19 -19
- package/Channel/components/TypingIndicator.js +18 -18
- package/Channel/components/UnreadCount.js +4 -4
- package/Channel/context.js +15 -15
- package/Channel/utils/compareMessagesForGrouping.js +6 -6
- package/Channel/utils/getMessagePartsInfo.js +7 -7
- package/Channel.js +46 -46
- package/ChannelList/components/AddChannel.js +16 -16
- package/ChannelList/components/ChannelListHeader.js +6 -6
- package/ChannelList/components/ChannelListUI.js +32 -32
- package/ChannelList/components/ChannelPreview.js +30 -30
- package/ChannelList/components/ChannelPreviewAction.js +15 -15
- package/ChannelList/context.js +8 -8
- package/ChannelList.js +32 -32
- package/{ChannelListProvider-f520f5b3.js → ChannelListProvider-eccd99c6.js} +8 -8
- package/{ChannelListProvider-f520f5b3.js.map → ChannelListProvider-eccd99c6.js.map} +1 -1
- package/{ChannelProvider-7f6fd1f8.js → ChannelProvider-9ba5893a.js} +42 -43
- package/ChannelProvider-9ba5893a.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +14 -14
- package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
- package/ChannelSettings/components/EditDetailsModal.js +14 -14
- package/ChannelSettings/components/LeaveChannel.js +13 -13
- package/ChannelSettings/components/ModerationPanel.js +15 -15
- package/ChannelSettings/components/UserListItem.js +11 -11
- package/ChannelSettings/components/UserPanel.js +14 -14
- package/ChannelSettings/context.js +3 -3
- package/ChannelSettings.js +17 -17
- package/CreateChannel/components/CreateChannelUI.js +14 -14
- package/CreateChannel/components/InviteUsers.js +14 -14
- package/CreateChannel/components/SelectChannelType.js +11 -11
- package/CreateChannel/context.js +3 -3
- package/CreateChannel.js +14 -14
- package/{CreateChannelProvider-c25dd81b.js → CreateChannelProvider-a2885972.js} +1 -1
- package/{CreateChannelProvider-c25dd81b.js.map → CreateChannelProvider-a2885972.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +12 -12
- package/CreateOpenChannel/context.js +1 -1
- package/CreateOpenChannel.js +12 -12
- package/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/EditUserProfile.js +13 -13
- package/{LocalizationContext-d18a86d8.js → LocalizationContext-287ee149.js} +3 -3
- package/{LocalizationContext-d18a86d8.js.map → LocalizationContext-287ee149.js.map} +1 -1
- package/{MediaQueryContext-3eeeec4f.js → MediaQueryContext-114ca049.js} +1 -1
- package/{MediaQueryContext-3eeeec4f.js.map → MediaQueryContext-114ca049.js.map} +1 -1
- package/{MemberList-469dae9b.js → MemberList-4e71a841.js} +7 -7
- package/{MemberList-469dae9b.js.map → MemberList-4e71a841.js.map} +1 -1
- package/MessageSearch/components/MessageSearchUI.js +12 -12
- package/MessageSearch/context.js +1 -1
- package/MessageSearch.js +12 -12
- package/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/OpenChannel/components/OpenChannelHeader.js +11 -11
- package/OpenChannel/components/OpenChannelInput.js +21 -21
- package/OpenChannel/components/OpenChannelMessage.js +32 -32
- package/OpenChannel/components/OpenChannelMessageList.js +34 -34
- package/OpenChannel/components/OpenChannelUI.js +34 -34
- package/OpenChannel/context.js +7 -7
- package/OpenChannel.js +34 -34
- package/OpenChannelList/components/OpenChannelListUI.js +14 -14
- package/OpenChannelList/components/OpenChannelPreview.js +4 -4
- package/OpenChannelList/context.js +2 -2
- package/OpenChannelList.js +14 -14
- package/{OpenChannelListProvider-24e735a1.js → OpenChannelListProvider-45d4ab54.js} +2 -2
- package/{OpenChannelListProvider-24e735a1.js.map → OpenChannelListProvider-45d4ab54.js.map} +1 -1
- package/{OpenChannelProvider-e9cb0f98.js → OpenChannelProvider-9818f9ed.js} +6 -6
- package/{OpenChannelProvider-e9cb0f98.js.map → OpenChannelProvider-9818f9ed.js.map} +1 -1
- package/OpenChannelSettings/components/EditDetailsModal.js +14 -14
- package/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
- package/OpenChannelSettings/components/OperatorUI.js +17 -17
- package/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/OpenChannelSettings/context.js +3 -3
- package/OpenChannelSettings.js +17 -17
- package/{RemoveMessageModal-f0cd37a5.js → RemoveMessageModal-007c2f04.js} +6 -6
- package/{RemoveMessageModal-f0cd37a5.js.map → RemoveMessageModal-007c2f04.js.map} +1 -1
- package/SendbirdProvider.js +18 -18
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +38 -38
- package/Thread/components/ParentMessageInfoItem.js +25 -25
- package/Thread/components/ThreadHeader.js +6 -6
- package/Thread/components/ThreadList.js +42 -42
- package/Thread/components/ThreadListItem.js +42 -42
- package/Thread/components/ThreadMessageInput.js +33 -33
- package/Thread/components/ThreadUI.js +45 -45
- package/Thread/context.js +12 -10
- package/Thread/context.js.map +1 -1
- package/Thread.js +45 -45
- package/{UserProfileContext-26e71f9a.js → UserProfileContext-2001a468.js} +1 -1
- package/{UserProfileContext-26e71f9a.js.map → UserProfileContext-2001a468.js.map} +1 -1
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +12 -12
- package/VoiceRecorder/context.js +12 -12
- package/VoiceRecorder/useVoiceRecorder.js +11 -11
- package/{WebAudioUtils-dbb010a5.js → WebAudioUtils-31f7c8eb.js} +2 -2
- package/{WebAudioUtils-dbb010a5.js.map → WebAudioUtils-31f7c8eb.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-07dcbc2b.js → _rollupPluginBabelHelpers-e92eb032.js} +1 -1
- package/_rollupPluginBabelHelpers-e92eb032.js.map +1 -0
- package/{actionTypes-3cd49b5c.js → actionTypes-324495ed.js} +1 -1
- package/{actionTypes-3cd49b5c.js.map → actionTypes-324495ed.js.map} +1 -1
- package/cjs/App.js +52 -52
- package/cjs/Channel/components/ChannelHeader.js +22 -22
- package/cjs/Channel/components/ChannelUI.js +46 -46
- package/cjs/Channel/components/FileViewer.js +19 -19
- package/cjs/Channel/components/FrozenNotification.js +4 -4
- package/cjs/Channel/components/Message.js +42 -42
- package/cjs/Channel/components/MessageInput.js +33 -33
- package/cjs/Channel/components/MessageList.js +42 -42
- package/cjs/Channel/components/RemoveMessageModal.js +23 -23
- package/cjs/Channel/components/SuggestedMentionList.js +19 -19
- package/cjs/Channel/components/TypingIndicator.js +18 -18
- package/cjs/Channel/components/UnreadCount.js +4 -4
- package/cjs/Channel/context.js +15 -15
- package/cjs/Channel/utils/compareMessagesForGrouping.js +6 -6
- package/cjs/Channel/utils/getMessagePartsInfo.js +7 -7
- package/cjs/Channel.js +46 -46
- package/cjs/ChannelList/components/AddChannel.js +16 -16
- package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
- package/cjs/ChannelList/components/ChannelListUI.js +32 -32
- package/cjs/ChannelList/components/ChannelPreview.js +30 -30
- package/cjs/ChannelList/components/ChannelPreviewAction.js +15 -15
- package/cjs/ChannelList/context.js +8 -8
- package/cjs/ChannelList.js +32 -32
- package/cjs/{ChannelListProvider-a418de2e.js → ChannelListProvider-d0ad5a84.js} +8 -8
- package/cjs/{ChannelListProvider-a418de2e.js.map → ChannelListProvider-d0ad5a84.js.map} +1 -1
- package/cjs/{ChannelProvider-7fa98120.js → ChannelProvider-fc111e5f.js} +42 -43
- package/cjs/ChannelProvider-fc111e5f.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +14 -14
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +17 -17
- package/cjs/ChannelSettings/components/EditDetailsModal.js +14 -14
- package/cjs/ChannelSettings/components/LeaveChannel.js +13 -13
- package/cjs/ChannelSettings/components/ModerationPanel.js +15 -15
- package/cjs/ChannelSettings/components/UserListItem.js +11 -11
- package/cjs/ChannelSettings/components/UserPanel.js +14 -14
- package/cjs/ChannelSettings/context.js +3 -3
- package/cjs/ChannelSettings.js +17 -17
- package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
- package/cjs/CreateChannel/components/InviteUsers.js +14 -14
- package/cjs/CreateChannel/components/SelectChannelType.js +11 -11
- package/cjs/CreateChannel/context.js +3 -3
- package/cjs/CreateChannel.js +14 -14
- package/cjs/{CreateChannelProvider-70c9cb7c.js → CreateChannelProvider-c3c843e4.js} +1 -1
- package/cjs/{CreateChannelProvider-70c9cb7c.js.map → CreateChannelProvider-c3c843e4.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +12 -12
- package/cjs/CreateOpenChannel/context.js +1 -1
- package/cjs/CreateOpenChannel.js +12 -12
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/cjs/EditUserProfile.js +13 -13
- package/cjs/{LocalizationContext-5009012e.js → LocalizationContext-58b6ed7c.js} +3 -3
- package/cjs/{LocalizationContext-5009012e.js.map → LocalizationContext-58b6ed7c.js.map} +1 -1
- package/cjs/{MediaQueryContext-d6fdbe43.js → MediaQueryContext-6141d955.js} +1 -1
- package/cjs/{MediaQueryContext-d6fdbe43.js.map → MediaQueryContext-6141d955.js.map} +1 -1
- package/cjs/{MemberList-529a0086.js → MemberList-2bd3db33.js} +7 -7
- package/cjs/{MemberList-529a0086.js.map → MemberList-2bd3db33.js.map} +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +12 -12
- package/cjs/MessageSearch/context.js +1 -1
- package/cjs/MessageSearch.js +12 -12
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/cjs/OpenChannel/components/OpenChannelHeader.js +11 -11
- package/cjs/OpenChannel/components/OpenChannelInput.js +21 -21
- package/cjs/OpenChannel/components/OpenChannelMessage.js +32 -32
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +34 -34
- package/cjs/OpenChannel/components/OpenChannelUI.js +34 -34
- package/cjs/OpenChannel/context.js +7 -7
- package/cjs/OpenChannel.js +34 -34
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +14 -14
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
- package/cjs/OpenChannelList/context.js +2 -2
- package/cjs/OpenChannelList.js +14 -14
- package/cjs/{OpenChannelListProvider-0b8cd3bf.js → OpenChannelListProvider-a8560978.js} +2 -2
- package/cjs/{OpenChannelListProvider-0b8cd3bf.js.map → OpenChannelListProvider-a8560978.js.map} +1 -1
- package/cjs/{OpenChannelProvider-d8cc11fe.js → OpenChannelProvider-39f13647.js} +6 -6
- package/cjs/{OpenChannelProvider-d8cc11fe.js.map → OpenChannelProvider-39f13647.js.map} +1 -1
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +14 -14
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
- package/cjs/OpenChannelSettings/components/OperatorUI.js +17 -17
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/cjs/OpenChannelSettings/context.js +3 -3
- package/cjs/OpenChannelSettings.js +17 -17
- package/cjs/{RemoveMessageModal-f029d40e.js → RemoveMessageModal-afc3e268.js} +6 -6
- package/cjs/{RemoveMessageModal-f029d40e.js.map → RemoveMessageModal-afc3e268.js.map} +1 -1
- package/cjs/SendbirdProvider.js +18 -18
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +38 -38
- package/cjs/Thread/components/ParentMessageInfoItem.js +25 -25
- package/cjs/Thread/components/ThreadHeader.js +6 -6
- package/cjs/Thread/components/ThreadList.js +42 -42
- package/cjs/Thread/components/ThreadListItem.js +42 -42
- package/cjs/Thread/components/ThreadMessageInput.js +33 -33
- package/cjs/Thread/components/ThreadUI.js +45 -45
- package/cjs/Thread/context.js +12 -10
- package/cjs/Thread/context.js.map +1 -1
- package/cjs/Thread.js +45 -45
- package/cjs/{UserProfileContext-922a43ec.js → UserProfileContext-c6d7abb7.js} +1 -1
- package/cjs/{UserProfileContext-922a43ec.js.map → UserProfileContext-c6d7abb7.js.map} +1 -1
- package/cjs/VoicePlayer/context.js +3 -3
- package/cjs/VoicePlayer/useVoicePlayer.js +12 -12
- package/cjs/VoiceRecorder/context.js +12 -12
- package/cjs/VoiceRecorder/useVoiceRecorder.js +11 -11
- package/cjs/{WebAudioUtils-29717597.js → WebAudioUtils-36803ab2.js} +2 -2
- package/cjs/{WebAudioUtils-29717597.js.map → WebAudioUtils-36803ab2.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-94c18dc1.js → _rollupPluginBabelHelpers-f5b0dfb9.js} +1 -1
- package/cjs/_rollupPluginBabelHelpers-f5b0dfb9.js.map +1 -0
- package/cjs/{actionTypes-7fa02f94.js → actionTypes-327123b5.js} +1 -1
- package/cjs/{actionTypes-7fa02f94.js.map → actionTypes-327123b5.js.map} +1 -1
- package/cjs/{color-477ddbd4.js → color-5bf5a8f5.js} +1 -1
- package/cjs/{color-477ddbd4.js.map → color-5bf5a8f5.js.map} +1 -1
- package/cjs/{compareIds-de541666.js → compareIds-28c6af62.js} +1 -1
- package/cjs/{compareIds-de541666.js.map → compareIds-28c6af62.js.map} +1 -1
- package/cjs/{const-640252c1.js → const-876980e8.js} +1 -1
- package/cjs/{const-640252c1.js.map → const-876980e8.js.map} +1 -1
- package/cjs/{const-9def5c09.js → const-c9e7a340.js} +1 -1
- package/cjs/{const-9def5c09.js.map → const-c9e7a340.js.map} +1 -1
- package/cjs/{consts-a3b7ae99.js → consts-61d83828.js} +1 -1
- package/cjs/{consts-a3b7ae99.js.map → consts-61d83828.js.map} +1 -1
- package/cjs/{consts-54f5c12d.js → consts-b3c4f548.js} +1 -1
- package/cjs/{consts-54f5c12d.js.map → consts-b3c4f548.js.map} +1 -1
- package/cjs/{consts-85cd42fa.js → consts-b711321c.js} +1 -1
- package/cjs/{consts-85cd42fa.js.map → consts-b711321c.js.map} +1 -1
- package/cjs/{consts-95462b21.js → consts-f54b15c2.js} +1 -1
- package/cjs/{consts-95462b21.js.map → consts-f54b15c2.js.map} +1 -1
- package/cjs/{context-9814fafe.js → context-6684538e.js} +2 -2
- package/cjs/{context-9814fafe.js.map → context-6684538e.js.map} +1 -1
- package/cjs/dist/index.css +55 -55
- package/cjs/dist/index.css.map +1 -1
- package/cjs/hooks/useModal.js +11 -11
- package/cjs/{index-826b76d5.js → index-134e9852.js} +2 -2
- package/cjs/{index-826b76d5.js.map → index-134e9852.js.map} +1 -1
- package/cjs/{index-b6d51e74.js → index-3448df64.js} +2 -2
- package/cjs/{index-b6d51e74.js.map → index-3448df64.js.map} +1 -1
- package/cjs/{index-80a11b6a.js → index-45933be9.js} +2 -2
- package/cjs/{index-80a11b6a.js.map → index-45933be9.js.map} +1 -1
- package/cjs/{index-ee3bf381.js → index-4c378655.js} +4 -4
- package/cjs/{index-ee3bf381.js.map → index-4c378655.js.map} +1 -1
- package/cjs/{index-6b0644d7.js → index-4e939c26.js} +9 -9
- package/cjs/{index-6b0644d7.js.map → index-4e939c26.js.map} +1 -1
- package/cjs/{index-aeb36f01.js → index-520e12b8.js} +7 -7
- package/cjs/{index-aeb36f01.js.map → index-520e12b8.js.map} +1 -1
- package/cjs/{index-609b07a2.js → index-54279ec2.js} +1 -1
- package/cjs/{index-609b07a2.js.map → index-54279ec2.js.map} +1 -1
- package/cjs/{index-c22e0cbf.js → index-692ea6aa.js} +2 -2
- package/cjs/{index-c22e0cbf.js.map → index-692ea6aa.js.map} +1 -1
- package/cjs/{index-83d2aed9.js → index-7627b546.js} +3 -3
- package/cjs/{index-83d2aed9.js.map → index-7627b546.js.map} +1 -1
- package/cjs/{index-0ec5a831.js → index-a95c4ab4.js} +3 -3
- package/cjs/{index-0ec5a831.js.map → index-a95c4ab4.js.map} +1 -1
- package/cjs/{index-35820a94.js → index-b5a9b4b7.js} +2 -2
- package/cjs/{index-35820a94.js.map → index-b5a9b4b7.js.map} +1 -1
- package/cjs/{index-daf80c58.js → index-b8ba4548.js} +1 -1
- package/cjs/{index-daf80c58.js.map → index-b8ba4548.js.map} +1 -1
- package/cjs/{index-7b0c6630.js → index-bc6623d7.js} +11 -11
- package/cjs/{index-7b0c6630.js.map → index-bc6623d7.js.map} +1 -1
- package/cjs/{index-bdf7089c.js → index-cc2e05a4.js} +5 -5
- package/cjs/{index-bdf7089c.js.map → index-cc2e05a4.js.map} +1 -1
- package/cjs/{index-e81e2882.js → index-ce07a2a3.js} +4 -4
- package/cjs/{index-e81e2882.js.map → index-ce07a2a3.js.map} +1 -1
- package/cjs/{index-b995f638.js → index-dbe8dd84.js} +3 -3
- package/cjs/{index-b995f638.js.map → index-dbe8dd84.js.map} +1 -1
- package/cjs/{index-0a25b9b2.js → index-e5e6d9b0.js} +4 -4
- package/cjs/{index-0a25b9b2.js.map → index-e5e6d9b0.js.map} +1 -1
- package/cjs/{index-fd8a0abb.js → index-e8928da6.js} +1 -1
- package/cjs/{index-fd8a0abb.js.map → index-e8928da6.js.map} +1 -1
- package/cjs/index.js +56 -56
- package/cjs/{resolvedReplyType-c20ef661.js → resolvedReplyType-c4564ebe.js} +1 -1
- package/cjs/{resolvedReplyType-c20ef661.js.map → resolvedReplyType-c4564ebe.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +1 -1
- package/cjs/{stringFormatterUtils-e324636c.js → stringFormatterUtils-92dbef3c.js} +3 -3
- package/cjs/{stringFormatterUtils-e324636c.js.map → stringFormatterUtils-92dbef3c.js.map} +1 -1
- package/cjs/{stringSet-98b52c49.js → stringSet-1539ac47.js} +1 -1
- package/cjs/{stringSet-98b52c49.js.map → stringSet-1539ac47.js.map} +1 -1
- package/cjs/{tokenize-91bdbeb0.js → tokenize-d5286fa8.js} +3 -3
- package/cjs/{tokenize-91bdbeb0.js.map → tokenize-d5286fa8.js.map} +1 -1
- package/cjs/{tslib.es6-2f2b0bca.js → tslib.es6-c74b513f.js} +1 -1
- package/cjs/{tslib.es6-2f2b0bca.js.map → tslib.es6-c74b513f.js.map} +1 -1
- package/cjs/{types-66554668.js → types-d0d770c3.js} +1 -1
- package/cjs/{types-66554668.js.map → types-d0d770c3.js.map} +1 -1
- package/cjs/{types-31ed2276.js → types-feda9656.js} +1 -1
- package/cjs/{types-31ed2276.js.map → types-feda9656.js.map} +1 -1
- package/cjs/ui/Accordion.js +3 -3
- package/cjs/ui/AccordionGroup.js +2 -2
- package/cjs/ui/AdminMessage.js +3 -3
- package/cjs/ui/Avatar.js +2 -2
- package/cjs/ui/Badge.js +5 -5
- package/cjs/ui/BottomSheet.js +6 -6
- package/cjs/ui/Button.js +4 -4
- package/cjs/ui/ChannelAvatar.js +3 -3
- package/cjs/ui/ConnectionStatus.js +4 -4
- package/cjs/ui/ContextMenu.js +6 -6
- package/cjs/ui/DateSeparator.js +4 -4
- package/cjs/ui/EmojiReactions.js +15 -15
- package/cjs/ui/FileMessageItemBody.js +7 -7
- package/cjs/ui/FileViewer.js +14 -14
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/ImageRenderer.js +1 -1
- package/cjs/ui/Input.js +2 -2
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +2 -2
- package/cjs/ui/Loader.js +1 -1
- package/cjs/ui/MentionLabel.js +11 -11
- package/cjs/ui/MentionUserLabel.js +1 -1
- package/cjs/ui/MessageContent.js +37 -37
- package/cjs/ui/MessageInput/hooks/usePaste.js +5 -5
- package/cjs/ui/MessageInput.js +16 -16
- package/cjs/ui/MessageItemMenu.js +19 -19
- package/cjs/ui/MessageItemReactionMenu.js +10 -10
- package/cjs/ui/MessageSearchFileItem.js +12 -12
- package/cjs/ui/MessageSearchItem.js +9 -9
- package/cjs/ui/MessageStatus.js +11 -11
- package/cjs/ui/Modal.js +10 -10
- package/cjs/ui/OGMessageItemBody.js +14 -14
- package/cjs/ui/OpenChannelAdminMessage.js +3 -3
- package/cjs/ui/OpenChannelAvatar.js +6 -6
- package/cjs/ui/OpenchannelConversationHeader.js +6 -6
- package/cjs/ui/OpenchannelFileMessage.js +17 -17
- package/cjs/ui/OpenchannelOGMessage.js +19 -19
- package/cjs/ui/OpenchannelThumbnailMessage.js +16 -16
- package/cjs/ui/OpenchannelUserMessage.js +17 -17
- package/cjs/ui/PlaceHolder.js +5 -5
- package/cjs/ui/PlaybackTime.js +2 -2
- package/cjs/ui/QuoteMessage.js +8 -8
- package/cjs/ui/QuoteMessageInput.js +8 -8
- package/cjs/ui/ReactionBadge.js +3 -3
- package/cjs/ui/ReactionButton.js +5 -5
- package/cjs/ui/SortByRow.js +2 -2
- package/cjs/ui/TextButton.js +2 -2
- package/cjs/ui/TextMessageItemBody.js +14 -14
- package/cjs/ui/ThreadReplies.js +6 -6
- package/cjs/ui/ThumbnailMessageItemBody.js +8 -8
- package/cjs/ui/Toggle.js +1 -1
- package/cjs/ui/Tooltip.js +3 -3
- package/cjs/ui/TooltipWrapper.js +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +7 -7
- package/cjs/ui/UserListItem.js +11 -11
- package/cjs/ui/UserProfile.js +9 -9
- package/cjs/ui/VoiceMessageItemBody.js +12 -12
- package/cjs/ui/VoiceMessgeInput.js +8 -8
- package/cjs/ui/Word.js +11 -11
- package/cjs/{useHandleUploadFiles-fbe6ad64.js → useHandleUploadFiles-39e8d107.js} +11 -11
- package/cjs/{useHandleUploadFiles-fbe6ad64.js.map → useHandleUploadFiles-39e8d107.js.map} +1 -1
- package/cjs/{useLongPress-c1da8ba7.js → useLongPress-18b7af79.js} +3 -3
- package/cjs/{useLongPress-c1da8ba7.js.map → useLongPress-18b7af79.js.map} +1 -1
- package/cjs/{useSendMultipleFilesMessage-87e0ffa3.js → useSendMultipleFilesMessage-d6a3d5cf.js} +3 -3
- package/cjs/{useSendMultipleFilesMessage-87e0ffa3.js.map → useSendMultipleFilesMessage-d6a3d5cf.js.map} +1 -1
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/{useStatefulFileInfoList-aa70b6b9.js → useStatefulFileInfoList-c510792f.js} +4 -4
- package/cjs/{useStatefulFileInfoList-aa70b6b9.js.map → useStatefulFileInfoList-c510792f.js.map} +1 -1
- package/cjs/utils/message/isVoiceMessage.js +3 -3
- package/cjs/{utils-46483130.js → utils-1d0f1e0c.js} +1 -1
- package/cjs/{utils-46483130.js.map → utils-1d0f1e0c.js.map} +1 -1
- package/cjs/{utils-55fc6797.js → utils-9193a195.js} +4 -4
- package/cjs/{utils-55fc6797.js.map → utils-9193a195.js.map} +1 -1
- package/cjs/{utils-851724e0.js → utils-93ca9d57.js} +3 -3
- package/cjs/{utils-851724e0.js.map → utils-93ca9d57.js.map} +1 -1
- package/cjs/{utils-e313131f.js → utils-98441ba6.js} +1 -1
- package/cjs/{utils-e313131f.js.map → utils-98441ba6.js.map} +1 -1
- package/cjs/{utils-0fac6ad1.js → utils-e6c4b2b0.js} +2 -2
- package/cjs/{utils-0fac6ad1.js.map → utils-e6c4b2b0.js.map} +1 -1
- package/cjs/{utils-180c6bc8.js → utils-eb6d90e0.js} +1 -1
- package/cjs/{utils-180c6bc8.js.map → utils-eb6d90e0.js.map} +1 -1
- package/cjs/{uuid-c74bbbb6.js → uuid-9a117e16.js} +1 -1
- package/cjs/{uuid-c74bbbb6.js.map → uuid-9a117e16.js.map} +1 -1
- package/cjs/withSendbird.js +1 -1
- package/{color-1383d4ab.js → color-57373b4c.js} +1 -1
- package/{color-1383d4ab.js.map → color-57373b4c.js.map} +1 -1
- package/{compareIds-b56b02f1.js → compareIds-7e517404.js} +1 -1
- package/{compareIds-b56b02f1.js.map → compareIds-7e517404.js.map} +1 -1
- package/{const-e3326913.js → const-73db0277.js} +1 -1
- package/{const-e3326913.js.map → const-73db0277.js.map} +1 -1
- package/{const-4bc3721f.js → const-93731a4c.js} +1 -1
- package/{const-4bc3721f.js.map → const-93731a4c.js.map} +1 -1
- package/{consts-f0ba9b80.js → consts-4ec7d640.js} +1 -1
- package/{consts-f0ba9b80.js.map → consts-4ec7d640.js.map} +1 -1
- package/{consts-7f4d53a3.js → consts-57c888b9.js} +1 -1
- package/{consts-7f4d53a3.js.map → consts-57c888b9.js.map} +1 -1
- package/{consts-833420ed.js → consts-be37687e.js} +1 -1
- package/{consts-833420ed.js.map → consts-be37687e.js.map} +1 -1
- package/{consts-aa64aca8.js → consts-d9c5f25a.js} +1 -1
- package/{consts-aa64aca8.js.map → consts-d9c5f25a.js.map} +1 -1
- package/{context-ae47ac54.js → context-729493c4.js} +2 -2
- package/{context-ae47ac54.js.map → context-729493c4.js.map} +1 -1
- package/dist/index.css +55 -55
- package/dist/index.css.map +1 -1
- package/hooks/useModal.js +11 -11
- package/{index-c7ed4aef.js → index-04bd1a59.js} +1 -1
- package/{index-c7ed4aef.js.map → index-04bd1a59.js.map} +1 -1
- package/{index-c6095960.js → index-09847c0f.js} +1 -1
- package/{index-c6095960.js.map → index-09847c0f.js.map} +1 -1
- package/{index-7a1085b6.js → index-0f017704.js} +11 -11
- package/{index-7a1085b6.js.map → index-0f017704.js.map} +1 -1
- package/{index-c81fd6ec.js → index-2d27aeef.js} +2 -2
- package/{index-c81fd6ec.js.map → index-2d27aeef.js.map} +1 -1
- package/{index-ec0c048b.js → index-493689bd.js} +4 -4
- package/{index-ec0c048b.js.map → index-493689bd.js.map} +1 -1
- package/{index-1969ccd8.js → index-494f9e79.js} +2 -2
- package/{index-1969ccd8.js.map → index-494f9e79.js.map} +1 -1
- package/{index-942c5fa2.js → index-4b4e9682.js} +7 -7
- package/{index-942c5fa2.js.map → index-4b4e9682.js.map} +1 -1
- package/{index-89b3b8ba.js → index-62d5f020.js} +9 -9
- package/{index-89b3b8ba.js.map → index-62d5f020.js.map} +1 -1
- package/{index-1432c287.js → index-682a192c.js} +2 -2
- package/{index-1432c287.js.map → index-682a192c.js.map} +1 -1
- package/{index-8c72f0bd.js → index-686a551d.js} +2 -2
- package/{index-8c72f0bd.js.map → index-686a551d.js.map} +1 -1
- package/{index-40447645.js → index-6b3b1eca.js} +5 -5
- package/{index-40447645.js.map → index-6b3b1eca.js.map} +1 -1
- package/{index-fc1642cb.js → index-776554c0.js} +3 -3
- package/{index-fc1642cb.js.map → index-776554c0.js.map} +1 -1
- package/{index-12103973.js → index-92741c7e.js} +2 -2
- package/{index-12103973.js.map → index-92741c7e.js.map} +1 -1
- package/{index-3d508585.js → index-a0638563.js} +4 -4
- package/{index-3d508585.js.map → index-a0638563.js.map} +1 -1
- package/{index-eec0ce47.js → index-c22e4772.js} +4 -4
- package/{index-eec0ce47.js.map → index-c22e4772.js.map} +1 -1
- package/{index-124a5766.js → index-e04159fe.js} +3 -3
- package/{index-124a5766.js.map → index-e04159fe.js.map} +1 -1
- package/{index-d3f61405.js → index-e4277f9c.js} +1 -1
- package/{index-d3f61405.js.map → index-e4277f9c.js.map} +1 -1
- package/{index-dc1827ea.js → index-f8a9cb51.js} +3 -3
- package/{index-dc1827ea.js.map → index-f8a9cb51.js.map} +1 -1
- package/index.d.ts +1 -1
- package/index.js +56 -56
- package/package.json +1 -1
- package/{resolvedReplyType-0532593c.js → resolvedReplyType-fb987595.js} +1 -1
- package/{resolvedReplyType-0532593c.js.map → resolvedReplyType-fb987595.js.map} +1 -1
- package/sendbirdSelectors.js +1 -1
- package/{stringFormatterUtils-444f6f4c.js → stringFormatterUtils-abbe70ba.js} +3 -3
- package/{stringFormatterUtils-444f6f4c.js.map → stringFormatterUtils-abbe70ba.js.map} +1 -1
- package/{stringSet-1106c8ec.js → stringSet-6422c6b9.js} +1 -1
- package/{stringSet-1106c8ec.js.map → stringSet-6422c6b9.js.map} +1 -1
- package/{tokenize-d17bf862.js → tokenize-eae44765.js} +3 -3
- package/{tokenize-d17bf862.js.map → tokenize-eae44765.js.map} +1 -1
- package/{tslib.es6-0c779aab.js → tslib.es6-c2fb729e.js} +1 -1
- package/{tslib.es6-0c779aab.js.map → tslib.es6-c2fb729e.js.map} +1 -1
- package/{types-50e412d8.js → types-781e0bab.js} +1 -1
- package/{types-50e412d8.js.map → types-781e0bab.js.map} +1 -1
- package/{types-4ffc52f6.js → types-9d43ac6e.js} +1 -1
- package/{types-4ffc52f6.js.map → types-9d43ac6e.js.map} +1 -1
- package/ui/Accordion.js +3 -3
- package/ui/AccordionGroup.js +2 -2
- package/ui/AdminMessage.js +3 -3
- package/ui/Avatar.js +2 -2
- package/ui/Badge.js +5 -5
- package/ui/BottomSheet.js +6 -6
- package/ui/Button.js +5 -5
- package/ui/ChannelAvatar.js +3 -3
- package/ui/ConnectionStatus.js +4 -4
- package/ui/ContextMenu.js +6 -6
- package/ui/DateSeparator.js +4 -4
- package/ui/EmojiReactions.js +15 -15
- package/ui/FileMessageItemBody.js +7 -7
- package/ui/FileViewer.js +14 -14
- package/ui/IconButton.js +1 -1
- package/ui/ImageRenderer.js +1 -1
- package/ui/Input.js +2 -2
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- package/ui/Loader.js +1 -1
- package/ui/MentionLabel.js +11 -11
- package/ui/MentionUserLabel.js +1 -1
- package/ui/MessageContent.js +37 -37
- package/ui/MessageInput/hooks/usePaste.js +5 -5
- package/ui/MessageInput.js +16 -16
- package/ui/MessageItemMenu.js +19 -19
- package/ui/MessageItemReactionMenu.js +10 -10
- package/ui/MessageSearchFileItem.js +12 -12
- package/ui/MessageSearchItem.js +9 -9
- package/ui/MessageStatus.js +11 -11
- package/ui/Modal.js +10 -10
- package/ui/OGMessageItemBody.js +14 -14
- package/ui/OpenChannelAdminMessage.js +3 -3
- package/ui/OpenChannelAvatar.js +6 -6
- package/ui/OpenchannelConversationHeader.js +6 -6
- package/ui/OpenchannelFileMessage.js +17 -17
- package/ui/OpenchannelOGMessage.js +19 -19
- package/ui/OpenchannelThumbnailMessage.js +16 -16
- package/ui/OpenchannelUserMessage.js +17 -17
- package/ui/PlaceHolder.js +5 -5
- package/ui/PlaybackTime.js +2 -2
- package/ui/QuoteMessage.js +8 -8
- package/ui/QuoteMessageInput.js +8 -8
- package/ui/ReactionBadge.js +3 -3
- package/ui/ReactionButton.js +5 -5
- package/ui/SortByRow.js +2 -2
- package/ui/TextButton.js +2 -2
- package/ui/TextMessageItemBody.js +14 -14
- package/ui/ThreadReplies.js +6 -6
- package/ui/ThumbnailMessageItemBody.js +8 -8
- package/ui/Toggle.js +1 -1
- package/ui/Tooltip.js +3 -3
- package/ui/TooltipWrapper.js +1 -1
- package/ui/UnknownMessageItemBody.js +7 -7
- package/ui/UserListItem.js +11 -11
- package/ui/UserProfile.js +9 -9
- package/ui/VoiceMessageItemBody.js +12 -12
- package/ui/VoiceMessgeInput.js +8 -8
- package/ui/Word.js +11 -11
- package/{useHandleUploadFiles-33aff88e.js → useHandleUploadFiles-5ede1bfe.js} +11 -11
- package/{useHandleUploadFiles-33aff88e.js.map → useHandleUploadFiles-5ede1bfe.js.map} +1 -1
- package/{useLongPress-322bb6a3.js → useLongPress-f8655a14.js} +3 -3
- package/{useLongPress-322bb6a3.js.map → useLongPress-f8655a14.js.map} +1 -1
- package/{useSendMultipleFilesMessage-4489a0f6.js → useSendMultipleFilesMessage-b8256698.js} +3 -3
- package/{useSendMultipleFilesMessage-4489a0f6.js.map → useSendMultipleFilesMessage-b8256698.js.map} +1 -1
- package/useSendbirdStateContext.js +1 -1
- package/{useStatefulFileInfoList-dd95f949.js → useStatefulFileInfoList-5e68b93f.js} +4 -4
- package/{useStatefulFileInfoList-dd95f949.js.map → useStatefulFileInfoList-5e68b93f.js.map} +1 -1
- package/utils/message/isVoiceMessage.js +3 -3
- package/{utils-48a3ef27.js → utils-2c1f072b.js} +1 -1
- package/{utils-48a3ef27.js.map → utils-2c1f072b.js.map} +1 -1
- package/{utils-74c161a0.js → utils-6c50a6d1.js} +1 -1
- package/{utils-74c161a0.js.map → utils-6c50a6d1.js.map} +1 -1
- package/{utils-40040f8e.js → utils-aa4086dc.js} +4 -4
- package/{utils-40040f8e.js.map → utils-aa4086dc.js.map} +1 -1
- package/{utils-e98a7f8c.js → utils-bfc0ab3b.js} +3 -3
- package/{utils-e98a7f8c.js.map → utils-bfc0ab3b.js.map} +1 -1
- package/{utils-158c1683.js → utils-fa321757.js} +1 -1
- package/{utils-158c1683.js.map → utils-fa321757.js.map} +1 -1
- package/{utils-3660243c.js → utils-fc1f5aa0.js} +2 -2
- package/{utils-3660243c.js.map → utils-fc1f5aa0.js.map} +1 -1
- package/{uuid-3c77ef7b.js → uuid-c15b8b3b.js} +1 -1
- package/{uuid-3c77ef7b.js.map → uuid-c15b8b3b.js.map} +1 -1
- package/withSendbird.js +1 -1
- package/ChannelProvider-7f6fd1f8.js.map +0 -1
- package/_rollupPluginBabelHelpers-07dcbc2b.js.map +0 -1
- package/cjs/ChannelProvider-7fa98120.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-94c18dc1.js.map +0 -1
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var DOMPurify = require('dompurify');
|
|
5
|
-
var tslib_es6 = require('./tslib.es6-
|
|
6
|
-
var consts = require('./consts-
|
|
7
|
-
var consts$2 = require('./consts-
|
|
8
|
-
var consts$1 = require('./consts-
|
|
5
|
+
var tslib_es6 = require('./tslib.es6-c74b513f.js');
|
|
6
|
+
var consts = require('./consts-b3c4f548.js');
|
|
7
|
+
var consts$2 = require('./consts-61d83828.js');
|
|
8
|
+
var consts$1 = require('./consts-b711321c.js');
|
|
9
9
|
|
|
10
10
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
11
|
|
|
@@ -224,4 +224,4 @@ exports.nodeListToArray = nodeListToArray;
|
|
|
224
224
|
exports.renderToString = renderToString;
|
|
225
225
|
exports.sanitizeString = sanitizeString;
|
|
226
226
|
exports.usePaste = usePaste;
|
|
227
|
-
//# sourceMappingURL=index-
|
|
227
|
+
//# sourceMappingURL=index-cc2e05a4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-bdf7089c.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\n/**\n * NodeList cannot be used with Array methods\n * @param {childNodes} NodeList\n * @returns Array of child nodes\n */\nexport const nodeListToArray = (childNodes) => {\n try {\n return Array.from(childNodes);\n } catch (error) {\n return [];\n }\n};\n\nexport function isChannelTypeSupportsMultipleFilesMessage(channel) {\n return channel\n && channel?.isGroupChannel?.()\n && !channel.isBroadcast\n && !channel.isSuper;\n}\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from '../../../TextMessageItemBody/consts';\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\nimport { nodeListToArray } from '../../utils';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector)),\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return nodeListToArray(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return nodeListToArray(textMessageBody.childNodes);\n }\n\n return nodeListToArray(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n};\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// exported, should be backward compatible\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n\n// to do -> In the future donot export default\nexport default usePaste;\n"],"names":["renderToString","_a","userId","nickname","el","concat","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","slice","sanitized","__spreadArray","join","sanitizeString","str","replace","i","charCodeAt","nodeListToArray","childNodes","Array","from","error","isChannelTypeSupportsMultipleFilesMessage","channel","_channel$isGroupChann","isGroupChannel","call","isBroadcast","isSuper","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","text_1","dataset","userid","getUsersFromWords","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-cc2e05a4.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\n/**\n * NodeList cannot be used with Array methods\n * @param {childNodes} NodeList\n * @returns Array of child nodes\n */\nexport const nodeListToArray = (childNodes) => {\n try {\n return Array.from(childNodes);\n } catch (error) {\n return [];\n }\n};\n\nexport function isChannelTypeSupportsMultipleFilesMessage(channel) {\n return channel\n && channel?.isGroupChannel?.()\n && !channel.isBroadcast\n && !channel.isSuper;\n}\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from '../../../TextMessageItemBody/consts';\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\nimport { nodeListToArray } from '../../utils';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector)),\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return nodeListToArray(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return nodeListToArray(textMessageBody.childNodes);\n }\n\n return nodeListToArray(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n};\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// exported, should be backward compatible\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n\n// to do -> In the future donot export default\nexport default usePaste;\n"],"names":["renderToString","_a","userId","nickname","el","concat","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","slice","sanitized","__spreadArray","join","sanitizeString","str","replace","i","charCodeAt","nodeListToArray","childNodes","Array","from","error","isChannelTypeSupportsMultipleFilesMessage","channel","_channel$isGroupChann","isGroupChannel","call","isBroadcast","isSuper","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","text_1","dataset","userid","getUsersFromWords","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var index = require('./index-
|
|
5
|
-
var tokenize = require('./tokenize-
|
|
4
|
+
var index = require('./index-54279ec2.js');
|
|
5
|
+
var tokenize = require('./tokenize-d5286fa8.js');
|
|
6
6
|
var Message_context = require('./Message/context.js');
|
|
7
7
|
var ui_MentionLabel = require('./ui/MentionLabel.js');
|
|
8
8
|
var ui_LinkLabel = require('./ui/LinkLabel.js');
|
|
9
|
-
var ui_Label = require('./index-
|
|
9
|
+
var ui_Label = require('./index-b5a9b4b7.js');
|
|
10
10
|
|
|
11
11
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
12
|
|
|
@@ -56,4 +56,4 @@ function TextFragment(_a) {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
exports.TextFragment = TextFragment;
|
|
59
|
-
//# sourceMappingURL=index-
|
|
59
|
+
//# sourceMappingURL=index-ce07a2a3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-ce07a2a3.js","sources":["../../src/modules/Message/utils/tokens/keyGenerator.ts","../../src/modules/Message/components/TextFragment/index.tsx"],"sourcesContent":["// this function is used to generate a unique key for token in message\n// it changes with updated time and index\n// messageUpdatedAt is the key part of this key generator\nexport function keyGenerator(\n createdAt: number,\n messageUpdatedAt: number,\n index: number,\n): string {\n return `sb-msg_${createdAt}_${messageUpdatedAt}_${index}`;\n}\n","import React from 'react';\nimport { UserMessage } from '@sendbird/chat/message';\nimport { match } from 'ts-pattern';\n\nimport { TOKEN_TYPES, Token } from '../../utils/tokens/types';\nimport { useMessageContext } from '../../context/MessageProvider';\nimport { keyGenerator } from '../../utils/tokens/keyGenerator';\nimport MentionLabel from '../../../../ui/MentionLabel';\nimport { USER_MENTION_PREFIX } from '../../consts';\nimport LinkLabel from '../../../../ui/LinkLabel';\nimport { LabelTypography } from '../../../../ui/Label';\nimport { getWhiteSpacePreservedText } from '../../utils/tokens/tokenize';\n\nexport type TextFragmentProps = {\n tokens: Token[];\n};\n\nexport default function TextFragment({\n tokens,\n}: TextFragmentProps): React.ReactElement {\n const messageStore = useMessageContext();\n\n const message = messageStore?.message as UserMessage;\n const isByMe = messageStore?.isByMe;\n const { updatedAt, createdAt } = message;\n\n return (\n <>\n {tokens?.map((token, idx) => {\n const key = keyGenerator(createdAt, updatedAt, idx);\n return match(token.type)\n .with(TOKEN_TYPES.mention, () => (\n <span className=\"sendbird-word\" key={key}>\n <MentionLabel\n mentionTemplate={USER_MENTION_PREFIX}\n mentionedUserId={token.userId}\n mentionedUserNickname={token.value}\n isByMe={isByMe}\n />\n </span>\n ))\n .with(TOKEN_TYPES.url, () => (\n <span className=\"sendbird-word\" key={key}>\n <LinkLabel\n className=\"sendbird-word__url\"\n src={token.value}\n type={LabelTypography.BODY_1}\n >\n {token.value}\n </LinkLabel>\n </span>\n ))\n .otherwise(() => <React.Fragment key={key}>{getWhiteSpacePreservedText(token.value)}</React.Fragment>);\n })}\n </>\n );\n}\n"],"names":["keyGenerator","createdAt","messageUpdatedAt","index","concat","TextFragment","_a","tokens","messageStore","useMessageContext","message","isByMe","updatedAt","React","createElement","Fragment","map","token","idx","key","match","type","with","TOKEN_TYPES","mention","className","MentionLabel","mentionTemplate","USER_MENTION_PREFIX","mentionedUserId","userId","mentionedUserNickname","value","url","LinkLabel","src","LabelTypography","BODY_1","otherwise","getWhiteSpacePreservedText"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;SACgBA,YAAYA,CAC1BC,SAAiB,EACjBC,gBAAwB,EACxBC,KAAa,EAAA;AAEb,EAAA,OAAO,iBAAUF,SAAS,EAAA,GAAA,CAAA,CAAAG,MAAA,CAAIF,gBAAgB,EAAI,GAAA,CAAA,CAAAE,MAAA,CAAAD,KAAK,CAAE,CAAA;AAC3D;;ACQwB,SAAAE,YAAYA,CAACC,EAEjB,EAAA;AADlB,EAAA,IAAAC,MAAM,GAAAD,EAAA,CAAAC,MAAA,CAAA;AAEN,EAAA,IAAMC,YAAY,GAAGC,iCAAiB,EAAE,CAAA;AAExC,EAAA,IAAMC,OAAO,GAAGF,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,YAAY,CAAEE,OAAsB,CAAA;AACpD,EAAA,IAAMC,MAAM,GAAGH,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,YAAY,CAAEG,MAAM,CAAA;AAC3B,EAAA,IAAAC,SAAS,GAAgBF,OAAO,CAAAE,SAAvB;IAAEX,SAAS,GAAKS,OAAO,CAAAT,SAAZ,CAAA;AAE5B,EAAA,oBACEY,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAA,EACGR,MAAM,KAAN,IAAA,IAAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,MAAM,CAAES,GAAG,CAAC,UAACC,KAAK,EAAEC,GAAG,EAAA;IACtB,IAAMC,GAAG,GAAGnB,YAAY,CAACC,SAAS,EAAEW,SAAS,EAAEM,GAAG,CAAC,CAAA;AACnD,IAAA,OAAOE,OAAK,CAACH,KAAK,CAACI,IAAI,CAAC,CACrBC,IAAI,CAACC,oBAAW,CAACC,OAAO,EAAE,YAAM;MAAA,oBAC/BX,yBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMW,QAAAA,SAAS,EAAC,eAAe;AAACN,QAAAA,GAAG,EAAEA,GAAAA;AAAI,OAAA,eACvCN,yBAAA,CAAAC,aAAA,CAACY,eAAY,EAAA;AACXC,QAAAA,eAAe,EAAEC,4BAAoB;QACrCC,eAAe,EAAEZ,KAAK,CAACa,MAAO;QAC9BC,qBAAqB,EAAEd,KAAK,CAACe,KAAM;AACnCrB,QAAAA,MAAM,EAAEA,MAAAA;AAAO,OAEnB,CAAM,CAAC,CAAA;KACR,CAAC,CACDW,IAAI,CAACC,oBAAW,CAACU,GAAG,EAAE,YAAM;MAAA,oBAC3BpB,yBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMW,QAAAA,SAAS,EAAC,eAAe;AAACN,QAAAA,GAAG,EAAEA,GAAAA;AAAI,OAAA,eACvCN,yBAAA,CAAAC,aAAA,CAACoB,uBAAS,EAAA;AACRT,QAAAA,SAAS,EAAC,oBAAoB;QAC9BU,GAAG,EAAElB,KAAK,CAACe,KAAM;QACjBX,IAAI,EAAEe,wBAAe,CAACC,MAAAA;AAAO,OAAA,EAE5BpB,KAAK,CAACe,KACE,CACP,CAAC,CAAA;AAToB,KAU5B,CAAC,CACDM,SAAS,CAAC,YAAA;AAAM,MAAA,oBAAAzB,yBAAA,CAAAC,aAAA,CAACD,yBAAK,CAACE,QAAQ,EAAA;AAACI,QAAAA,GAAG,EAAEA,GAAAA;AAAI,OAAA,EAAEoB,mCAA0B,CAACtB,KAAK,CAACe,KAAK,CAAkB,CAAC,CAAA;AAApF,KAAoF,CAAC,CAAA;AAC1G,GAAC,CACH,CAAG,CAAA;AAEP;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('./tslib.es6-
|
|
3
|
+
var tslib_es6 = require('./tslib.es6-c74b513f.js');
|
|
4
4
|
var utils_message_getOutgoingMessageState = require('./utils/message/getOutgoingMessageState.js');
|
|
5
|
-
var index = require('./index-
|
|
5
|
+
var index = require('./index-54279ec2.js');
|
|
6
6
|
|
|
7
7
|
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types
|
|
8
8
|
var SUPPORTED_MIMES = {
|
|
@@ -738,4 +738,4 @@ exports.isVideoMessage = isVideoMessage;
|
|
|
738
738
|
exports.isVoiceMessage = isVoiceMessage;
|
|
739
739
|
exports.isVoiceMessageMimeType = isVoiceMessageMimeType;
|
|
740
740
|
exports.truncateString = truncateString;
|
|
741
|
-
//# sourceMappingURL=index-
|
|
741
|
+
//# sourceMappingURL=index-dbe8dd84.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-b995f638.js","sources":["../../src/utils/index.ts"],"sourcesContent":["import SendbirdChat, { Emoji, EmojiCategory, EmojiContainer, User } from '@sendbird/chat';\nimport { GroupChannel, Member, SendbirdGroupChat, GroupChannelListQuery } from '@sendbird/chat/groupChannel';\nimport {\n AdminMessage,\n BaseMessage,\n FileMessage,\n MessageListParams,\n MultipleFilesMessage,\n Reaction,\n UploadedFileInfo,\n UserMessage,\n} from '@sendbird/chat/message';\nimport { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport { getOutgoingMessageState, OutgoingMessageStates } from './exports/getOutgoingMessageState';\nimport { Nullable } from '../types';\nimport { match } from 'ts-pattern';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nexport const SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/svg+xml',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n 'video/quicktime', // .mov\n ],\n AUDIO: [\n 'audio/aac',\n 'audio/midi',\n 'audio/x-midi',\n 'audio/mpeg',\n 'audio/ogg',\n 'audio/opus',\n 'audio/wav',\n 'audio/webm',\n 'audio/3gpp',\n 'audio/3gpp2',\n 'audio/mp3',\n ],\n DOCUMENT: [\n 'text/plain',\n 'text/css',\n 'text/csv',\n 'text/html',\n 'text/calendar',\n 'text/javascript',\n 'text/xml',\n ],\n APPLICATION: [\n 'application/x-abiword',\n 'application/x-freearc',\n 'application/vnd.amazon.ebook',\n 'application/octet-stream',\n 'application/x-bzip',\n 'application/x-bzip2',\n 'application/x-cdf',\n 'application/x-csh',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-fontobject',\n 'application/epub+zip',\n 'application/gzip',\n 'application/java-archive',\n 'application/json',\n 'application/ld+json',\n 'application/vnd.apple.installer+xml',\n 'application/vnd.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text',\n 'application/ogg',\n 'application/pdf',\n 'application/x-httpd-php',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.rar',\n 'application/rtf',\n 'application/x-sh',\n 'application/x-tar',\n 'application/vnd.visio',\n 'application/xhtml+xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/xml',\n 'application/vnd.mozilla.xul+xml',\n 'application/zip',\n 'application/x-7z-compressed',\n ],\n};\n\nexport const getMimeTypesUIKitAccepts = (acceptableMimeTypes?: Array<string>): string => {\n const { IMAGE, VIDEO, AUDIO } = SUPPORTED_MIMES;\n\n if (Array.isArray(acceptableMimeTypes) && acceptableMimeTypes.length > 0) {\n return (\n acceptableMimeTypes\n .reduce((accumulator: Array<string>, acceptableMimeType: string): Array<string> => (\n accumulator.concat(\n match(acceptableMimeType)\n .with('image', () => IMAGE)\n .with('video', () => VIDEO)\n .with('audio', () => AUDIO)\n .otherwise(() => []),\n )\n ), [])\n .join()\n );\n }\n return (\n Object.values(SUPPORTED_MIMES)\n .reduce((accumulator: Array<string>, mimeTypes: Array<string>) => (\n accumulator.concat(mimeTypes)\n ), [])\n .join()\n );\n // concat() is fater than flat()\n};\n\n/* eslint-disable no-redeclare */\nexport interface UIKitMessageTypes {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n}\nexport const UIKitMessageTypes: UIKitMessageTypes = {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n/* eslint-disable no-redeclare */\nexport interface UIKitFileTypes {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n}\nexport const UIKitFileTypes: UIKitFileTypes = {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n};\n\n/* eslint-disable no-redeclare */\nexport interface SendingMessageStatus {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n}\nconst SendingMessageStatus: SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport type CoreMessageType = AdminMessage | UserMessage | FileMessage | MultipleFilesMessage;\nexport type SendableMessageType = UserMessage | FileMessage | MultipleFilesMessage;\n\nexport const isTextuallyNull = (text: string): boolean => {\n if (text === '' || text === null) {\n return true;\n }\n return false;\n};\n\nexport const isImage = (type: string): boolean => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type: string): boolean => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const isGif = (type: string): boolean => type === 'image/gif';\nexport const isSupportedFileView = (type: string): boolean => isImage(type) || isVideo(type);\nexport const isAudio = (type: string): boolean => SUPPORTED_MIMES.AUDIO.indexOf(type) >= 0;\n\nexport const getUIKitFileTypes = (): UIKitFileTypes => ({ ...UIKitFileTypes });\nexport const getUIKitFileType = (type: string): string => {\n if (isGif(type)) return UIKitFileTypes.GIF;\n if (isImage(type)) return UIKitFileTypes.IMAGE;\n if (isVideo(type)) return UIKitFileTypes.VIDEO;\n if (isAudio(type)) return UIKitFileTypes.AUDIO;\n return UIKitFileTypes.OTHERS;\n};\n\nexport const isSentMessage = (\n message: SendableMessageType,\n): boolean => (message.sendingStatus === 'succeeded');\nexport const isDeliveredMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.DELIVERED\n || getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\nexport const isReadMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\n// TODO: Remove channel from the params, it seems unnecessary\nexport const isFailedMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'failed');\nexport const isPendingMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'pending');\nexport const isSentStatus = (state: string): boolean => (\n state === OutgoingMessageStates.SENT\n || state === OutgoingMessageStates.DELIVERED\n || state === OutgoingMessageStates.READ\n);\n\nexport const isAdminMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isAdminMessage'] && typeof message.isAdminMessage === 'function'\n ? message.isAdminMessage()\n : message?.messageType === 'admin'\n )\n);\nexport const isUserMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isUserMessage'] && typeof message.isUserMessage === 'function'\n ? message.isUserMessage()\n : message?.messageType === 'user'\n )\n);\nexport const isFileMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isFileMessage'] && typeof message.isFileMessage === 'function'\n ? message.isFileMessage()\n : message?.messageType === 'file'\n )\n);\nexport const isMultipleFilesMessage = (\n message: CoreMessageType,\n): boolean => (\n message && (\n message['isMultipleFilesMessage'] && typeof message.isMultipleFilesMessage === 'function'\n ? message.isMultipleFilesMessage()\n : (\n message.messageType === 'file'\n && Object.prototype.hasOwnProperty.call(message, 'fileInfoList')\n )\n )\n);\nexport const isParentMessage = (message: CoreMessageType): boolean => (\n !message.parentMessageId && !message.parentMessage && (message.threadInfo?.replyCount ?? 0) > 0\n);\nexport const isThreadMessage = (message: CoreMessageType): boolean => (\n !!message.parentMessageId && !!message.parentMessage\n);\nexport const isOGMessage = (message: SendableMessageType): boolean => !!(\n message && isUserMessage(message) && message?.ogMetaData && (\n message.ogMetaData?.url\n || message.ogMetaData?.title\n || message.ogMetaData?.description\n || message.ogMetaData?.defaultImage\n )\n);\nexport const isTextMessage = (message: SendableMessageType): boolean => (\n isUserMessage(message)\n);\nexport const isThumbnailMessage = (message: SendableMessageType): boolean => (\n message && isFileMessage(message) && isSupportedFileView((message as FileMessage).type)\n);\nexport const isImageMessage = (message: FileMessage): boolean => message && isThumbnailMessage(message) && isImage(message.type);\nexport const isImageFileInfo = (fileInfo: UploadedFileInfo): boolean => fileInfo\n && (isImage(fileInfo.mimeType) || isGif(fileInfo.mimeType));\nexport const isVideoMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isVideo((message as FileMessage).type)\n);\nexport const isGifMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isGif((message as FileMessage).type)\n);\nexport const isAudioMessage = (message: FileMessage): boolean => message && isFileMessage(message) && isAudio(message.type);\nexport const isAudioMessageMimeType = (type: string): boolean => (/^audio\\//.test(type));\nexport const isVoiceMessageMimeType = (type: string): boolean => (/^voice\\//.test(type));\nexport const isVoiceMessage = (message: Nullable<SendableMessageType>): boolean => {\n // ex) audio/m4a OR audio/m4a;sbu_type=voice\n if (!(message && isFileMessage(message)) || !(message as FileMessage).type) {\n return false;\n }\n const [mimeType, typeParameter] = (message as FileMessage).type.split(';');\n\n if (!isAudioMessageMimeType(mimeType)) {\n return false;\n }\n\n if (typeParameter) {\n const [key, value] = typeParameter.split('=');\n return key === 'sbu_type' && value === 'voice';\n }\n // ex) message.metaArrays = [{ key: 'KEY_INTERNAL_MESSAGE_TYPE', value: ['voice/m4a'] }]\n return isVoiceMessageMimeType(message?.metaArrays?.find((metaArray) => metaArray.key === 'KEY_INTERNAL_MESSAGE_TYPE')?.value?.[0] ?? '');\n};\n\nexport const isEditedMessage = (\n message: CoreMessageType,\n): boolean => isUserMessage(message) && (message?.updatedAt > 0);\nexport const isEnabledOGMessage = (message: UserMessage): boolean => (\n (!message || !message.ogMetaData || !message.ogMetaData.url) ? false : true\n);\n\nexport const getUIKitMessageTypes = (): UIKitMessageTypes => ({ ...UIKitMessageTypes });\n\n/**\n * Do not use this for MultipleFilesMessage. Use isMultipleFilesMessage() instead.\n */\nexport const getUIKitMessageType = (\n message: CoreMessageType,\n): string => {\n if (isAdminMessage(message as AdminMessage)) return UIKitMessageTypes.ADMIN;\n if (isUserMessage(message as UserMessage)) {\n return isOGMessage(message as UserMessage) ? UIKitMessageTypes.OG : UIKitMessageTypes.TEXT;\n }\n // This is only a safeguard to not return UNKNOWN for MFM.\n if (isMultipleFilesMessage(message as FileMessage)) {\n return UIKitMessageTypes.MULTIPLE_FILES;\n }\n if (isFileMessage(message as FileMessage)) {\n if (isThumbnailMessage(message as FileMessage)) {\n return UIKitMessageTypes.THUMBNAIL;\n }\n if (isVoiceMessage(message as FileMessage)) {\n return UIKitFileTypes.VOICE;\n }\n return UIKitMessageTypes.FILE;\n }\n return UIKitMessageTypes.UNKNOWN;\n};\n/**\n * @deprecated use SendingStatus of @sendbird/chat instead\n * */\nexport const getSendingMessageStatus = (): SendingMessageStatus => ({ ...SendingMessageStatus });\n\nconst reducer = (accumulator: Array<string>, currentValue: string | Array<string>): Array<any> => {\n if (Array.isArray(currentValue)) {\n return [...accumulator, ...currentValue];\n } else {\n accumulator.push(currentValue);\n return accumulator;\n }\n};\nexport const getClassName = (classNames: string | Array<string | Array<string>>): string => (\n Array.isArray(classNames)\n ? classNames.reduce(reducer, []).join(' ')\n : classNames\n);\nexport const isReactedBy = (userId: string, reaction: Reaction): boolean => (\n reaction.userIds.some((reactorUserId: string): boolean => reactorUserId === userId)\n);\ninterface StringSet {\n TOOLTIP__YOU: string;\n TOOLTIP__AND_YOU: string;\n TOOLTIP__UNKNOWN_USER: string;\n}\nexport const getEmojiTooltipString = (reaction: Reaction, userId: string, memberNicknamesMap: Map<string, string>, stringSet: StringSet): string => {\n let you = '';\n if (isReactedBy(userId, reaction)) {\n you = reaction.userIds.length === 1 ? stringSet.TOOLTIP__YOU : stringSet.TOOLTIP__AND_YOU;\n }\n return (`${reaction.userIds\n .filter((reactorUserId: string) => reactorUserId !== userId)\n .map((reactorUserId: string) => (memberNicknamesMap.get(reactorUserId) || stringSet.TOOLTIP__UNKNOWN_USER))\n .join(', ')}${you}`);\n};\n\n// TODO: Use the interface after language tranlsatation of Sendbird.js\ninterface UIKitStore {\n stores: {\n sdkStore: {\n sdk: SendbirdChat | SendbirdOpenChat | SendbirdGroupChat,\n },\n userStore: {\n user: User,\n },\n },\n config: {\n isReactionEnabled: boolean,\n }\n}\nexport const getCurrentUserId = (store: UIKitStore): string => (store?.stores?.userStore?.user?.userId);\nexport const getUseReaction = (store: UIKitStore, channel: GroupChannel | OpenChannel): boolean => {\n if (!store?.config?.isReactionEnabled)\n return false;\n if (!store?.stores?.sdkStore?.sdk?.appInfo?.useReaction)\n return false;\n if (channel?.isGroupChannel())\n return !((channel as GroupChannel).isBroadcast || (channel as GroupChannel).isSuper);\n return store?.config?.isReactionEnabled;\n};\n\nexport const isMessageSentByMe = (\n userId: string,\n message: SendableMessageType,\n): boolean => (\n !!(userId && message?.sender?.userId && userId === message.sender.userId)\n);\n\nconst URL_REG = /^((http|https):\\/\\/)?([a-z\\d]+\\.)+[a-z]{2,6}(\\:[0-9]{1,5})?(\\/[-a-zA-Z\\d%_.~+&=]*)*(\\?[;&a-zA-Z\\d%_.~+=-]*)?(\\#[-a-zA-Z\\d_]*)?$/;\nexport const isUrl = (text: string): boolean => URL_REG.test(text);\n\nconst MENTION_TAG_REG = /\\@\\{.*?\\}/i;\nexport const isMentionedText = (text: string): boolean => MENTION_TAG_REG.test(text);\n\nexport const truncateString = (fullStr: string, strLen?: number): string => {\n if (!strLen) strLen = 40;\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getEmojiListAll = (emojiContainer: EmojiContainer): Array<Emoji> => (\n emojiContainer?.emojiCategories?.map((emojiCategory: EmojiCategory) => emojiCategory.emojis)\n .reduce((prevArr: Array<Emoji>, currArr: Array<Emoji>) => prevArr.concat(currArr), [])\n);\nexport const getEmojiMapAll = (emojiContainer: EmojiContainer): Map<string, Emoji> => {\n const emojiMap = new Map();\n emojiContainer?.emojiCategories?.forEach((category: EmojiCategory) => {\n category?.emojis?.forEach((emoji: Emoji): void => {\n if (emoji && emoji.key) {\n emojiMap.set(emoji.key, emoji);\n }\n });\n });\n return emojiMap;\n};\nconst findEmojiUrl = (targetKey: string) => ({ key }) => key === targetKey;\nexport const getEmojiUrl = (emojiContainer?: EmojiContainer, emojiKey?: string): string => {\n const isFindingKey = findEmojiUrl(emojiKey ?? '');\n return emojiContainer?.emojiCategories\n .find((category) => category.emojis.some(isFindingKey))?.emojis\n .find(isFindingKey)\n ?.url || '';\n};\n\nexport const getUserName = (user: User): string => (user?.friendName || user?.nickname || user?.userId);\nexport const getSenderName = (message: SendableMessageType): string => (\n message?.sender && getUserName(message?.sender)\n);\n\nexport const hasSameMembers = <T>(a: T[], b: T[]): boolean => {\n if (a === b) {\n return true;\n }\n if (a == null || b == null) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n\n const sortedA = [...a].sort();\n const sortedB = [...b].sort();\n\n for (let i = 0; i < sortedA.length; ++i) {\n if (sortedA[i] !== sortedB[i]) {\n return false;\n }\n }\n return true;\n};\nexport const isFriend = (user: Nullable<User>): boolean => {\n if (!user) return false;\n return !!(user.friendDiscoveryKey || user.friendName);\n};\n\nexport const filterMessageListParams = (\n params: MessageListParams,\n message: SendableMessageType,\n): boolean => {\n const { customTypesFilter = [] } = params;\n // @ts-ignore\n if (params?.messageTypeFilter && params.messageTypeFilter !== message.messageType) {\n return false;\n }\n if (customTypesFilter?.length > 0) {\n const customTypes = customTypesFilter.filter((item) => item !== '*');\n // Because Chat SDK inserts '*' when customTypes is empty\n if (customTypes.length > 0 && !customTypes.includes(message.customType)) {\n return false;\n }\n }\n if (params?.senderUserIdsFilter && params?.senderUserIdsFilter?.length > 0) {\n if (message?.isUserMessage?.() || message?.isFileMessage?.()) {\n const messageSender = (message as SendableMessageType).sender || message['_sender'];\n if (!params?.senderUserIdsFilter?.includes(messageSender?.userId)) {\n return false;\n }\n } else {\n return false;\n }\n }\n if (!params?.includeParentMessageInfo && (message?.parentMessageId || message?.parentMessage)) {\n return false;\n }\n return true;\n};\n\nexport const filterChannelListParams = (params: GroupChannelListQuery, channel: GroupChannel, currentUserId: string): boolean => {\n const {\n includeEmpty,\n includeFrozen,\n searchFilter,\n userIdsFilter,\n customTypesFilter,\n channelUrlsFilter,\n customTypeStartsWithFilter,\n channelNameContainsFilter,\n nicknameContainsFilter,\n myMemberStateFilter,\n hiddenChannelFilter,\n unreadChannelFilter,\n publicChannelFilter,\n superChannelFilter,\n metadataKey = '',\n metadataValues = ['a', 'b'],\n metadataValueStartsWith,\n } = params;\n\n if (!includeEmpty && channel?.lastMessage === null) {\n return false;\n }\n if (searchFilter?.query && (searchFilter?.fields?.length ?? 0) > 0) {\n const searchQuery = searchFilter.query;\n const searchFields = searchFilter.fields;\n if (searchQuery && searchFields && searchFields.length > 0) {\n if (!searchFields.some((searchField) => {\n switch (searchField) {\n case 'channel_name': {\n return channel?.name?.toLowerCase().includes(searchQuery.toLowerCase());\n }\n case 'member_nickname': {\n return channel?.members?.some((member: Member) => member.nickname.toLowerCase().includes(searchQuery.toLowerCase()));\n }\n default: {\n return true;\n }\n }\n })) {\n return false;\n }\n }\n }\n if (userIdsFilter?.userIds?.length > 0) {\n const { includeMode, queryType } = userIdsFilter;\n const userIds: Array<string> = userIdsFilter.userIds;\n const memberIds = channel?.members?.map((member: Member) => member.userId);\n if (!includeMode) { // exact match\n if (!userIds.includes(currentUserId)) {\n userIds.push(currentUserId); // add the caller's userId if not added already.\n }\n if (channel?.members?.length > userIds.length) {\n return false; // userIds may contain one or more non-member(s).\n }\n if (!hasSameMembers(userIds, memberIds)) {\n return false;\n }\n } else if (userIds.length > 0) { // inclusive\n switch (queryType) {\n case 'AND': {\n if (userIds.some((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n case 'OR': {\n if (userIds.every((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n }\n if (includeEmpty === false && channel?.lastMessage === null) {\n return false;\n }\n if (includeFrozen === false && channel?.isFrozen === true) {\n return false;\n }\n if (customTypesFilter && !customTypesFilter.includes(channel?.customType)) {\n return false;\n }\n if (customTypeStartsWithFilter && !new RegExp(`^${customTypeStartsWithFilter}`).test(channel?.customType)) {\n return false;\n }\n if (channelNameContainsFilter && !channel?.name?.toLowerCase().includes(channelNameContainsFilter.toLowerCase())) {\n return false;\n }\n if (nicknameContainsFilter) {\n const lowerCasedSubString = nicknameContainsFilter.toLowerCase();\n if (channel?.members?.every((member: Member) => !member.nickname.toLowerCase().includes(lowerCasedSubString))) {\n return false;\n }\n }\n if (channelUrlsFilter && !channelUrlsFilter.includes(channel?.url)) {\n return false;\n }\n if (myMemberStateFilter) {\n switch (myMemberStateFilter) {\n case 'joined_only':\n if (channel?.myMemberState !== 'joined') {\n return false;\n }\n break;\n case 'invited_only':\n if (channel?.myMemberState !== 'invited') {\n return false;\n }\n break;\n case 'invited_by_friend':\n if (channel?.myMemberState !== 'invited' || !isFriend(channel?.inviter)) {\n return false;\n }\n break;\n case 'invited_by_non_friend':\n if (channel?.myMemberState !== 'invited' || isFriend(channel?.inviter)) {\n return false;\n }\n break;\n }\n }\n if (hiddenChannelFilter) {\n switch (hiddenChannelFilter) {\n case 'unhidden_only':\n if (channel?.isHidden || channel?.hiddenState !== 'unhidden') {\n return false;\n }\n break;\n case 'hidden_only':\n if (!channel?.isHidden) {\n return false;\n }\n break;\n case 'hidden_allow_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_allow_auto_unhide') {\n return false;\n }\n break;\n case 'hidden_prevent_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_prevent_auto_unhide') {\n return false;\n }\n break;\n }\n }\n if (unreadChannelFilter) {\n switch (unreadChannelFilter) {\n case 'unread_message':\n if (channel?.unreadMessageCount === 0) {\n return false;\n }\n break;\n }\n }\n if (publicChannelFilter) {\n switch (publicChannelFilter) {\n case 'public':\n if (!channel?.isPublic) {\n return false;\n }\n break;\n case 'private':\n if (channel?.isPublic) {\n return false;\n }\n break;\n }\n }\n if (superChannelFilter) {\n switch (superChannelFilter) {\n case 'super':\n if (!channel?.isSuper) {\n return false;\n }\n break;\n case 'nonsuper':\n if (channel?.isSuper) {\n return false;\n }\n break;\n }\n }\n const { cachedMetaData = {} } = channel;\n if (metadataKey && (metadataValues || metadataValueStartsWith)) {\n const metadataValue: string = cachedMetaData[metadataKey];\n if (!metadataValue) {\n return false;\n }\n if (metadataValues && !metadataValues.every(value => metadataValue.includes(value))) {\n return false;\n }\n if (metadataValueStartsWith && !metadataValue.startsWith(metadataValueStartsWith)) {\n return false;\n }\n }\n return true;\n};\n\nexport const binarySearch = (list: Array<number>, number: number): number => { // [100, 99, 98, 97, ...]\n const pivot = Math.floor(list.length / 2);\n if (list[pivot] === number) {\n return pivot;\n }\n const leftList = list.slice(0, pivot);\n const rightList = list.slice(pivot + 1, list.length);\n if (list[pivot] > number) {\n return pivot + 1 + (rightList.length === 0 ? 0 : binarySearch(rightList, number));\n } else {\n return (leftList.length === 0) ? pivot : binarySearch(leftList, number);\n }\n};\n// This is required when channel is displayed on channel list by filter\nexport const getChannelsWithUpsertedChannel = (channels: Array<GroupChannel>, channel: GroupChannel): Array<GroupChannel> => {\n if (channels.some((ch: GroupChannel) => ch.url === channel?.url)) {\n return channels.map((ch: GroupChannel) => (ch.url === channel?.url ? channel : ch));\n }\n const targetIndex = binarySearch(\n channels.map((channel: GroupChannel) => channel?.lastMessage?.createdAt || channel?.createdAt),\n channel?.lastMessage?.createdAt || channel?.createdAt,\n );\n return [...channels.slice(0, targetIndex), channel, ...channels.slice(targetIndex, channels.length)];\n};\n\nexport const getMatchedUserIds = (word: string, users: Array<User>, _template?: string): boolean => {\n const template = _template || '@'; // Use global variable\n // const matchedUserIds = [];\n // users.map((user) => user?.userId).forEach((userId) => {\n // if (word.indexOf(`${template}{${userId}}`) > -1) {\n // matchedUserIds.push(userId);\n // }\n // });\n // return matchedUserIds;\n return users.map((user) => user?.userId).some((userId) => word.indexOf(`${template}{${userId}}`) > -1);\n};\n\nexport enum StringObjType {\n normal = 'normal',\n mention = 'mention',\n url = 'url',\n}\nexport interface StringObj {\n type: StringObjType;\n value: string;\n userId?: string;\n}\n\n/**\n * @deprecated\n * use modules/message/utils/tokenize instead\n */\nexport const convertWordToStringObj = (word: string, _users: Array<User>, _template?: string): Array<StringObj> => {\n const users = _users || [];\n const template = _template || '@'; // Use global variable\n const resultArray: Array<StringObj> = [];\n const regex = RegExp(`${template}{(${users.map((user) => user?.userId).join('|')})}`, 'g');\n let excutionResult;\n let lastIndex = 0;\n while ((excutionResult = regex.exec(word)) !== null) {\n const [template, userId] = excutionResult;\n const endIndex = regex.lastIndex;\n const startIndex = endIndex - template.length;\n // Normal text\n const normalText = word.slice(lastIndex, startIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n // Mention template\n const mentionedUser = users.find((user) => user?.userId === userId);\n if (!mentionedUser) {\n resultArray.push({\n type: StringObjType.normal,\n value: template, // because template is the origin text\n });\n } else {\n resultArray.push({\n type: StringObjType.mention,\n value: mentionedUser?.nickname || '(No name)',\n userId: userId,\n });\n }\n lastIndex = endIndex;\n }\n if (lastIndex < word.length) {\n // Normal text\n const normalText = word.slice(lastIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n }\n return resultArray;\n};\n\nexport const arrayEqual = (array1: Array<unknown>, array2: Array<unknown>): boolean => {\n if (Array.isArray(array1) && Array.isArray(array2) && array1.length === array2.length) {\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n\nexport const isSendableMessage = (message?: BaseMessage | null): message is SendableMessageType => {\n return Boolean(message) && 'sender' in message;\n};\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","AUDIO","DOCUMENT","APPLICATION","getMimeTypesUIKitAccepts","acceptableMimeTypes","Array","isArray","length","reduce","accumulator","acceptableMimeType","concat","match","with","otherwise","join","Object","values","mimeTypes","UIKitMessageTypes","ADMIN","TEXT","FILE","MULTIPLE_FILES","THUMBNAIL","OG","UNKNOWN","UIKitFileTypes","GIF","VOICE","OTHERS","isTextuallyNull","text","isImage","type","indexOf","isVideo","isGif","isSupportedFileView","isAudio","getUIKitFileTypes","__assign","getUIKitFileType","isSentMessage","message","sendingStatus","isReadMessage","channel","getOutgoingMessageState","OutgoingMessageStates","READ","isFailedMessage","isPendingMessage","isSentStatus","state","SENT","DELIVERED","isAdminMessage","messageType","isUserMessage","isFileMessage","isMultipleFilesMessage","prototype","hasOwnProperty","call","isThreadMessage","parentMessageId","parentMessage","isOGMessage","ogMetaData","_a","url","_b","title","_c","description","_d","defaultImage","isTextMessage","isThumbnailMessage","isImageMessage","isImageFileInfo","fileInfo","mimeType","isVideoMessage","isGifMessage","isAudioMessage","isAudioMessageMimeType","test","isVoiceMessageMimeType","isVoiceMessage","_e","split","typeParameter","_f","key","value","metaArrays","find","metaArray","isEditedMessage","updatedAt","getUIKitMessageTypes","getUIKitMessageType","reducer","currentValue","__spreadArray","push","getClassName","classNames","isReactedBy","userId","reaction","userIds","some","reactorUserId","getEmojiTooltipString","memberNicknamesMap","stringSet","you","TOOLTIP__YOU","TOOLTIP__AND_YOU","filter","map","get","TOOLTIP__UNKNOWN_USER","URL_REG","isUrl","truncateString","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","substr","copyToClipboard","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","getEmojiListAll","emojiContainer","emojiCategories","emojiCategory","emojis","prevArr","currArr","getEmojiMapAll","emojiMap","Map","forEach","category","emoji","set","findEmojiUrl","targetKey","getEmojiUrl","emojiKey","isFindingKey","getUserName","user","friendName","nickname","getSenderName","sender","hasSameMembers","a","b","sortedA","sort","sortedB","i","isFriend","friendDiscoveryKey","filterMessageListParams","params","customTypesFilter","messageTypeFilter","customTypes","item","includes","customType","senderUserIdsFilter","messageSender","includeParentMessageInfo","filterChannelListParams","currentUserId","includeEmpty","includeFrozen","searchFilter","userIdsFilter","channelUrlsFilter","customTypeStartsWithFilter","channelNameContainsFilter","nicknameContainsFilter","myMemberStateFilter","hiddenChannelFilter","unreadChannelFilter","publicChannelFilter","superChannelFilter","_h","metadataKey","_j","metadataValues","metadataValueStartsWith","lastMessage","query","fields","searchQuery_1","searchFields","searchField","name","toLowerCase","members","member","includeMode","queryType","memberIds_1","every","isFrozen","RegExp","lowerCasedSubString_1","_g","myMemberState","inviter","isHidden","hiddenState","unreadMessageCount","isPublic","isSuper","_k","cachedMetaData","metadataValue_1","startsWith","binarySearch","list","number","pivot","leftList","slice","rightList","getChannelsWithUpsertedChannel","channels","ch","targetIndex","createdAt","StringObjType","convertWordToStringObj","word","_users","_template","users","template","resultArray","regex","excutionResult","lastIndex","template_1","endIndex","startIndex","normalText","normal","mentionedUser","mention","exec","arrayEqual","array1","array2","isSendableMessage","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-dbe8dd84.js","sources":["../../src/utils/index.ts"],"sourcesContent":["import SendbirdChat, { Emoji, EmojiCategory, EmojiContainer, User } from '@sendbird/chat';\nimport { GroupChannel, Member, SendbirdGroupChat, GroupChannelListQuery } from '@sendbird/chat/groupChannel';\nimport {\n AdminMessage,\n BaseMessage,\n FileMessage,\n MessageListParams,\n MultipleFilesMessage,\n Reaction,\n UploadedFileInfo,\n UserMessage,\n} from '@sendbird/chat/message';\nimport { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport { getOutgoingMessageState, OutgoingMessageStates } from './exports/getOutgoingMessageState';\nimport { Nullable } from '../types';\nimport { match } from 'ts-pattern';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nexport const SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/svg+xml',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n 'video/quicktime', // .mov\n ],\n AUDIO: [\n 'audio/aac',\n 'audio/midi',\n 'audio/x-midi',\n 'audio/mpeg',\n 'audio/ogg',\n 'audio/opus',\n 'audio/wav',\n 'audio/webm',\n 'audio/3gpp',\n 'audio/3gpp2',\n 'audio/mp3',\n ],\n DOCUMENT: [\n 'text/plain',\n 'text/css',\n 'text/csv',\n 'text/html',\n 'text/calendar',\n 'text/javascript',\n 'text/xml',\n ],\n APPLICATION: [\n 'application/x-abiword',\n 'application/x-freearc',\n 'application/vnd.amazon.ebook',\n 'application/octet-stream',\n 'application/x-bzip',\n 'application/x-bzip2',\n 'application/x-cdf',\n 'application/x-csh',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-fontobject',\n 'application/epub+zip',\n 'application/gzip',\n 'application/java-archive',\n 'application/json',\n 'application/ld+json',\n 'application/vnd.apple.installer+xml',\n 'application/vnd.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text',\n 'application/ogg',\n 'application/pdf',\n 'application/x-httpd-php',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.rar',\n 'application/rtf',\n 'application/x-sh',\n 'application/x-tar',\n 'application/vnd.visio',\n 'application/xhtml+xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/xml',\n 'application/vnd.mozilla.xul+xml',\n 'application/zip',\n 'application/x-7z-compressed',\n ],\n};\n\nexport const getMimeTypesUIKitAccepts = (acceptableMimeTypes?: Array<string>): string => {\n const { IMAGE, VIDEO, AUDIO } = SUPPORTED_MIMES;\n\n if (Array.isArray(acceptableMimeTypes) && acceptableMimeTypes.length > 0) {\n return (\n acceptableMimeTypes\n .reduce((accumulator: Array<string>, acceptableMimeType: string): Array<string> => (\n accumulator.concat(\n match(acceptableMimeType)\n .with('image', () => IMAGE)\n .with('video', () => VIDEO)\n .with('audio', () => AUDIO)\n .otherwise(() => []),\n )\n ), [])\n .join()\n );\n }\n return (\n Object.values(SUPPORTED_MIMES)\n .reduce((accumulator: Array<string>, mimeTypes: Array<string>) => (\n accumulator.concat(mimeTypes)\n ), [])\n .join()\n );\n // concat() is fater than flat()\n};\n\n/* eslint-disable no-redeclare */\nexport interface UIKitMessageTypes {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n}\nexport const UIKitMessageTypes: UIKitMessageTypes = {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n/* eslint-disable no-redeclare */\nexport interface UIKitFileTypes {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n}\nexport const UIKitFileTypes: UIKitFileTypes = {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n};\n\n/* eslint-disable no-redeclare */\nexport interface SendingMessageStatus {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n}\nconst SendingMessageStatus: SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport type CoreMessageType = AdminMessage | UserMessage | FileMessage | MultipleFilesMessage;\nexport type SendableMessageType = UserMessage | FileMessage | MultipleFilesMessage;\n\nexport const isTextuallyNull = (text: string): boolean => {\n if (text === '' || text === null) {\n return true;\n }\n return false;\n};\n\nexport const isImage = (type: string): boolean => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type: string): boolean => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const isGif = (type: string): boolean => type === 'image/gif';\nexport const isSupportedFileView = (type: string): boolean => isImage(type) || isVideo(type);\nexport const isAudio = (type: string): boolean => SUPPORTED_MIMES.AUDIO.indexOf(type) >= 0;\n\nexport const getUIKitFileTypes = (): UIKitFileTypes => ({ ...UIKitFileTypes });\nexport const getUIKitFileType = (type: string): string => {\n if (isGif(type)) return UIKitFileTypes.GIF;\n if (isImage(type)) return UIKitFileTypes.IMAGE;\n if (isVideo(type)) return UIKitFileTypes.VIDEO;\n if (isAudio(type)) return UIKitFileTypes.AUDIO;\n return UIKitFileTypes.OTHERS;\n};\n\nexport const isSentMessage = (\n message: SendableMessageType,\n): boolean => (message.sendingStatus === 'succeeded');\nexport const isDeliveredMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.DELIVERED\n || getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\nexport const isReadMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\n// TODO: Remove channel from the params, it seems unnecessary\nexport const isFailedMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'failed');\nexport const isPendingMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'pending');\nexport const isSentStatus = (state: string): boolean => (\n state === OutgoingMessageStates.SENT\n || state === OutgoingMessageStates.DELIVERED\n || state === OutgoingMessageStates.READ\n);\n\nexport const isAdminMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isAdminMessage'] && typeof message.isAdminMessage === 'function'\n ? message.isAdminMessage()\n : message?.messageType === 'admin'\n )\n);\nexport const isUserMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isUserMessage'] && typeof message.isUserMessage === 'function'\n ? message.isUserMessage()\n : message?.messageType === 'user'\n )\n);\nexport const isFileMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isFileMessage'] && typeof message.isFileMessage === 'function'\n ? message.isFileMessage()\n : message?.messageType === 'file'\n )\n);\nexport const isMultipleFilesMessage = (\n message: CoreMessageType,\n): boolean => (\n message && (\n message['isMultipleFilesMessage'] && typeof message.isMultipleFilesMessage === 'function'\n ? message.isMultipleFilesMessage()\n : (\n message.messageType === 'file'\n && Object.prototype.hasOwnProperty.call(message, 'fileInfoList')\n )\n )\n);\nexport const isParentMessage = (message: CoreMessageType): boolean => (\n !message.parentMessageId && !message.parentMessage && (message.threadInfo?.replyCount ?? 0) > 0\n);\nexport const isThreadMessage = (message: CoreMessageType): boolean => (\n !!message.parentMessageId && !!message.parentMessage\n);\nexport const isOGMessage = (message: SendableMessageType): boolean => !!(\n message && isUserMessage(message) && message?.ogMetaData && (\n message.ogMetaData?.url\n || message.ogMetaData?.title\n || message.ogMetaData?.description\n || message.ogMetaData?.defaultImage\n )\n);\nexport const isTextMessage = (message: SendableMessageType): boolean => (\n isUserMessage(message)\n);\nexport const isThumbnailMessage = (message: SendableMessageType): boolean => (\n message && isFileMessage(message) && isSupportedFileView((message as FileMessage).type)\n);\nexport const isImageMessage = (message: FileMessage): boolean => message && isThumbnailMessage(message) && isImage(message.type);\nexport const isImageFileInfo = (fileInfo: UploadedFileInfo): boolean => fileInfo\n && (isImage(fileInfo.mimeType) || isGif(fileInfo.mimeType));\nexport const isVideoMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isVideo((message as FileMessage).type)\n);\nexport const isGifMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isGif((message as FileMessage).type)\n);\nexport const isAudioMessage = (message: FileMessage): boolean => message && isFileMessage(message) && isAudio(message.type);\nexport const isAudioMessageMimeType = (type: string): boolean => (/^audio\\//.test(type));\nexport const isVoiceMessageMimeType = (type: string): boolean => (/^voice\\//.test(type));\nexport const isVoiceMessage = (message: Nullable<SendableMessageType>): boolean => {\n // ex) audio/m4a OR audio/m4a;sbu_type=voice\n if (!(message && isFileMessage(message)) || !(message as FileMessage).type) {\n return false;\n }\n const [mimeType, typeParameter] = (message as FileMessage).type.split(';');\n\n if (!isAudioMessageMimeType(mimeType)) {\n return false;\n }\n\n if (typeParameter) {\n const [key, value] = typeParameter.split('=');\n return key === 'sbu_type' && value === 'voice';\n }\n // ex) message.metaArrays = [{ key: 'KEY_INTERNAL_MESSAGE_TYPE', value: ['voice/m4a'] }]\n return isVoiceMessageMimeType(message?.metaArrays?.find((metaArray) => metaArray.key === 'KEY_INTERNAL_MESSAGE_TYPE')?.value?.[0] ?? '');\n};\n\nexport const isEditedMessage = (\n message: CoreMessageType,\n): boolean => isUserMessage(message) && (message?.updatedAt > 0);\nexport const isEnabledOGMessage = (message: UserMessage): boolean => (\n (!message || !message.ogMetaData || !message.ogMetaData.url) ? false : true\n);\n\nexport const getUIKitMessageTypes = (): UIKitMessageTypes => ({ ...UIKitMessageTypes });\n\n/**\n * Do not use this for MultipleFilesMessage. Use isMultipleFilesMessage() instead.\n */\nexport const getUIKitMessageType = (\n message: CoreMessageType,\n): string => {\n if (isAdminMessage(message as AdminMessage)) return UIKitMessageTypes.ADMIN;\n if (isUserMessage(message as UserMessage)) {\n return isOGMessage(message as UserMessage) ? UIKitMessageTypes.OG : UIKitMessageTypes.TEXT;\n }\n // This is only a safeguard to not return UNKNOWN for MFM.\n if (isMultipleFilesMessage(message as FileMessage)) {\n return UIKitMessageTypes.MULTIPLE_FILES;\n }\n if (isFileMessage(message as FileMessage)) {\n if (isThumbnailMessage(message as FileMessage)) {\n return UIKitMessageTypes.THUMBNAIL;\n }\n if (isVoiceMessage(message as FileMessage)) {\n return UIKitFileTypes.VOICE;\n }\n return UIKitMessageTypes.FILE;\n }\n return UIKitMessageTypes.UNKNOWN;\n};\n/**\n * @deprecated use SendingStatus of @sendbird/chat instead\n * */\nexport const getSendingMessageStatus = (): SendingMessageStatus => ({ ...SendingMessageStatus });\n\nconst reducer = (accumulator: Array<string>, currentValue: string | Array<string>): Array<any> => {\n if (Array.isArray(currentValue)) {\n return [...accumulator, ...currentValue];\n } else {\n accumulator.push(currentValue);\n return accumulator;\n }\n};\nexport const getClassName = (classNames: string | Array<string | Array<string>>): string => (\n Array.isArray(classNames)\n ? classNames.reduce(reducer, []).join(' ')\n : classNames\n);\nexport const isReactedBy = (userId: string, reaction: Reaction): boolean => (\n reaction.userIds.some((reactorUserId: string): boolean => reactorUserId === userId)\n);\ninterface StringSet {\n TOOLTIP__YOU: string;\n TOOLTIP__AND_YOU: string;\n TOOLTIP__UNKNOWN_USER: string;\n}\nexport const getEmojiTooltipString = (reaction: Reaction, userId: string, memberNicknamesMap: Map<string, string>, stringSet: StringSet): string => {\n let you = '';\n if (isReactedBy(userId, reaction)) {\n you = reaction.userIds.length === 1 ? stringSet.TOOLTIP__YOU : stringSet.TOOLTIP__AND_YOU;\n }\n return (`${reaction.userIds\n .filter((reactorUserId: string) => reactorUserId !== userId)\n .map((reactorUserId: string) => (memberNicknamesMap.get(reactorUserId) || stringSet.TOOLTIP__UNKNOWN_USER))\n .join(', ')}${you}`);\n};\n\n// TODO: Use the interface after language tranlsatation of Sendbird.js\ninterface UIKitStore {\n stores: {\n sdkStore: {\n sdk: SendbirdChat | SendbirdOpenChat | SendbirdGroupChat,\n },\n userStore: {\n user: User,\n },\n },\n config: {\n isReactionEnabled: boolean,\n }\n}\nexport const getCurrentUserId = (store: UIKitStore): string => (store?.stores?.userStore?.user?.userId);\nexport const getUseReaction = (store: UIKitStore, channel: GroupChannel | OpenChannel): boolean => {\n if (!store?.config?.isReactionEnabled)\n return false;\n if (!store?.stores?.sdkStore?.sdk?.appInfo?.useReaction)\n return false;\n if (channel?.isGroupChannel())\n return !((channel as GroupChannel).isBroadcast || (channel as GroupChannel).isSuper);\n return store?.config?.isReactionEnabled;\n};\n\nexport const isMessageSentByMe = (\n userId: string,\n message: SendableMessageType,\n): boolean => (\n !!(userId && message?.sender?.userId && userId === message.sender.userId)\n);\n\nconst URL_REG = /^((http|https):\\/\\/)?([a-z\\d]+\\.)+[a-z]{2,6}(\\:[0-9]{1,5})?(\\/[-a-zA-Z\\d%_.~+&=]*)*(\\?[;&a-zA-Z\\d%_.~+=-]*)?(\\#[-a-zA-Z\\d_]*)?$/;\nexport const isUrl = (text: string): boolean => URL_REG.test(text);\n\nconst MENTION_TAG_REG = /\\@\\{.*?\\}/i;\nexport const isMentionedText = (text: string): boolean => MENTION_TAG_REG.test(text);\n\nexport const truncateString = (fullStr: string, strLen?: number): string => {\n if (!strLen) strLen = 40;\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getEmojiListAll = (emojiContainer: EmojiContainer): Array<Emoji> => (\n emojiContainer?.emojiCategories?.map((emojiCategory: EmojiCategory) => emojiCategory.emojis)\n .reduce((prevArr: Array<Emoji>, currArr: Array<Emoji>) => prevArr.concat(currArr), [])\n);\nexport const getEmojiMapAll = (emojiContainer: EmojiContainer): Map<string, Emoji> => {\n const emojiMap = new Map();\n emojiContainer?.emojiCategories?.forEach((category: EmojiCategory) => {\n category?.emojis?.forEach((emoji: Emoji): void => {\n if (emoji && emoji.key) {\n emojiMap.set(emoji.key, emoji);\n }\n });\n });\n return emojiMap;\n};\nconst findEmojiUrl = (targetKey: string) => ({ key }) => key === targetKey;\nexport const getEmojiUrl = (emojiContainer?: EmojiContainer, emojiKey?: string): string => {\n const isFindingKey = findEmojiUrl(emojiKey ?? '');\n return emojiContainer?.emojiCategories\n .find((category) => category.emojis.some(isFindingKey))?.emojis\n .find(isFindingKey)\n ?.url || '';\n};\n\nexport const getUserName = (user: User): string => (user?.friendName || user?.nickname || user?.userId);\nexport const getSenderName = (message: SendableMessageType): string => (\n message?.sender && getUserName(message?.sender)\n);\n\nexport const hasSameMembers = <T>(a: T[], b: T[]): boolean => {\n if (a === b) {\n return true;\n }\n if (a == null || b == null) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n\n const sortedA = [...a].sort();\n const sortedB = [...b].sort();\n\n for (let i = 0; i < sortedA.length; ++i) {\n if (sortedA[i] !== sortedB[i]) {\n return false;\n }\n }\n return true;\n};\nexport const isFriend = (user: Nullable<User>): boolean => {\n if (!user) return false;\n return !!(user.friendDiscoveryKey || user.friendName);\n};\n\nexport const filterMessageListParams = (\n params: MessageListParams,\n message: SendableMessageType,\n): boolean => {\n const { customTypesFilter = [] } = params;\n // @ts-ignore\n if (params?.messageTypeFilter && params.messageTypeFilter !== message.messageType) {\n return false;\n }\n if (customTypesFilter?.length > 0) {\n const customTypes = customTypesFilter.filter((item) => item !== '*');\n // Because Chat SDK inserts '*' when customTypes is empty\n if (customTypes.length > 0 && !customTypes.includes(message.customType)) {\n return false;\n }\n }\n if (params?.senderUserIdsFilter && params?.senderUserIdsFilter?.length > 0) {\n if (message?.isUserMessage?.() || message?.isFileMessage?.()) {\n const messageSender = (message as SendableMessageType).sender || message['_sender'];\n if (!params?.senderUserIdsFilter?.includes(messageSender?.userId)) {\n return false;\n }\n } else {\n return false;\n }\n }\n if (!params?.includeParentMessageInfo && (message?.parentMessageId || message?.parentMessage)) {\n return false;\n }\n return true;\n};\n\nexport const filterChannelListParams = (params: GroupChannelListQuery, channel: GroupChannel, currentUserId: string): boolean => {\n const {\n includeEmpty,\n includeFrozen,\n searchFilter,\n userIdsFilter,\n customTypesFilter,\n channelUrlsFilter,\n customTypeStartsWithFilter,\n channelNameContainsFilter,\n nicknameContainsFilter,\n myMemberStateFilter,\n hiddenChannelFilter,\n unreadChannelFilter,\n publicChannelFilter,\n superChannelFilter,\n metadataKey = '',\n metadataValues = ['a', 'b'],\n metadataValueStartsWith,\n } = params;\n\n if (!includeEmpty && channel?.lastMessage === null) {\n return false;\n }\n if (searchFilter?.query && (searchFilter?.fields?.length ?? 0) > 0) {\n const searchQuery = searchFilter.query;\n const searchFields = searchFilter.fields;\n if (searchQuery && searchFields && searchFields.length > 0) {\n if (!searchFields.some((searchField) => {\n switch (searchField) {\n case 'channel_name': {\n return channel?.name?.toLowerCase().includes(searchQuery.toLowerCase());\n }\n case 'member_nickname': {\n return channel?.members?.some((member: Member) => member.nickname.toLowerCase().includes(searchQuery.toLowerCase()));\n }\n default: {\n return true;\n }\n }\n })) {\n return false;\n }\n }\n }\n if (userIdsFilter?.userIds?.length > 0) {\n const { includeMode, queryType } = userIdsFilter;\n const userIds: Array<string> = userIdsFilter.userIds;\n const memberIds = channel?.members?.map((member: Member) => member.userId);\n if (!includeMode) { // exact match\n if (!userIds.includes(currentUserId)) {\n userIds.push(currentUserId); // add the caller's userId if not added already.\n }\n if (channel?.members?.length > userIds.length) {\n return false; // userIds may contain one or more non-member(s).\n }\n if (!hasSameMembers(userIds, memberIds)) {\n return false;\n }\n } else if (userIds.length > 0) { // inclusive\n switch (queryType) {\n case 'AND': {\n if (userIds.some((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n case 'OR': {\n if (userIds.every((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n }\n if (includeEmpty === false && channel?.lastMessage === null) {\n return false;\n }\n if (includeFrozen === false && channel?.isFrozen === true) {\n return false;\n }\n if (customTypesFilter && !customTypesFilter.includes(channel?.customType)) {\n return false;\n }\n if (customTypeStartsWithFilter && !new RegExp(`^${customTypeStartsWithFilter}`).test(channel?.customType)) {\n return false;\n }\n if (channelNameContainsFilter && !channel?.name?.toLowerCase().includes(channelNameContainsFilter.toLowerCase())) {\n return false;\n }\n if (nicknameContainsFilter) {\n const lowerCasedSubString = nicknameContainsFilter.toLowerCase();\n if (channel?.members?.every((member: Member) => !member.nickname.toLowerCase().includes(lowerCasedSubString))) {\n return false;\n }\n }\n if (channelUrlsFilter && !channelUrlsFilter.includes(channel?.url)) {\n return false;\n }\n if (myMemberStateFilter) {\n switch (myMemberStateFilter) {\n case 'joined_only':\n if (channel?.myMemberState !== 'joined') {\n return false;\n }\n break;\n case 'invited_only':\n if (channel?.myMemberState !== 'invited') {\n return false;\n }\n break;\n case 'invited_by_friend':\n if (channel?.myMemberState !== 'invited' || !isFriend(channel?.inviter)) {\n return false;\n }\n break;\n case 'invited_by_non_friend':\n if (channel?.myMemberState !== 'invited' || isFriend(channel?.inviter)) {\n return false;\n }\n break;\n }\n }\n if (hiddenChannelFilter) {\n switch (hiddenChannelFilter) {\n case 'unhidden_only':\n if (channel?.isHidden || channel?.hiddenState !== 'unhidden') {\n return false;\n }\n break;\n case 'hidden_only':\n if (!channel?.isHidden) {\n return false;\n }\n break;\n case 'hidden_allow_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_allow_auto_unhide') {\n return false;\n }\n break;\n case 'hidden_prevent_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_prevent_auto_unhide') {\n return false;\n }\n break;\n }\n }\n if (unreadChannelFilter) {\n switch (unreadChannelFilter) {\n case 'unread_message':\n if (channel?.unreadMessageCount === 0) {\n return false;\n }\n break;\n }\n }\n if (publicChannelFilter) {\n switch (publicChannelFilter) {\n case 'public':\n if (!channel?.isPublic) {\n return false;\n }\n break;\n case 'private':\n if (channel?.isPublic) {\n return false;\n }\n break;\n }\n }\n if (superChannelFilter) {\n switch (superChannelFilter) {\n case 'super':\n if (!channel?.isSuper) {\n return false;\n }\n break;\n case 'nonsuper':\n if (channel?.isSuper) {\n return false;\n }\n break;\n }\n }\n const { cachedMetaData = {} } = channel;\n if (metadataKey && (metadataValues || metadataValueStartsWith)) {\n const metadataValue: string = cachedMetaData[metadataKey];\n if (!metadataValue) {\n return false;\n }\n if (metadataValues && !metadataValues.every(value => metadataValue.includes(value))) {\n return false;\n }\n if (metadataValueStartsWith && !metadataValue.startsWith(metadataValueStartsWith)) {\n return false;\n }\n }\n return true;\n};\n\nexport const binarySearch = (list: Array<number>, number: number): number => { // [100, 99, 98, 97, ...]\n const pivot = Math.floor(list.length / 2);\n if (list[pivot] === number) {\n return pivot;\n }\n const leftList = list.slice(0, pivot);\n const rightList = list.slice(pivot + 1, list.length);\n if (list[pivot] > number) {\n return pivot + 1 + (rightList.length === 0 ? 0 : binarySearch(rightList, number));\n } else {\n return (leftList.length === 0) ? pivot : binarySearch(leftList, number);\n }\n};\n// This is required when channel is displayed on channel list by filter\nexport const getChannelsWithUpsertedChannel = (channels: Array<GroupChannel>, channel: GroupChannel): Array<GroupChannel> => {\n if (channels.some((ch: GroupChannel) => ch.url === channel?.url)) {\n return channels.map((ch: GroupChannel) => (ch.url === channel?.url ? channel : ch));\n }\n const targetIndex = binarySearch(\n channels.map((channel: GroupChannel) => channel?.lastMessage?.createdAt || channel?.createdAt),\n channel?.lastMessage?.createdAt || channel?.createdAt,\n );\n return [...channels.slice(0, targetIndex), channel, ...channels.slice(targetIndex, channels.length)];\n};\n\nexport const getMatchedUserIds = (word: string, users: Array<User>, _template?: string): boolean => {\n const template = _template || '@'; // Use global variable\n // const matchedUserIds = [];\n // users.map((user) => user?.userId).forEach((userId) => {\n // if (word.indexOf(`${template}{${userId}}`) > -1) {\n // matchedUserIds.push(userId);\n // }\n // });\n // return matchedUserIds;\n return users.map((user) => user?.userId).some((userId) => word.indexOf(`${template}{${userId}}`) > -1);\n};\n\nexport enum StringObjType {\n normal = 'normal',\n mention = 'mention',\n url = 'url',\n}\nexport interface StringObj {\n type: StringObjType;\n value: string;\n userId?: string;\n}\n\n/**\n * @deprecated\n * use modules/message/utils/tokenize instead\n */\nexport const convertWordToStringObj = (word: string, _users: Array<User>, _template?: string): Array<StringObj> => {\n const users = _users || [];\n const template = _template || '@'; // Use global variable\n const resultArray: Array<StringObj> = [];\n const regex = RegExp(`${template}{(${users.map((user) => user?.userId).join('|')})}`, 'g');\n let excutionResult;\n let lastIndex = 0;\n while ((excutionResult = regex.exec(word)) !== null) {\n const [template, userId] = excutionResult;\n const endIndex = regex.lastIndex;\n const startIndex = endIndex - template.length;\n // Normal text\n const normalText = word.slice(lastIndex, startIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n // Mention template\n const mentionedUser = users.find((user) => user?.userId === userId);\n if (!mentionedUser) {\n resultArray.push({\n type: StringObjType.normal,\n value: template, // because template is the origin text\n });\n } else {\n resultArray.push({\n type: StringObjType.mention,\n value: mentionedUser?.nickname || '(No name)',\n userId: userId,\n });\n }\n lastIndex = endIndex;\n }\n if (lastIndex < word.length) {\n // Normal text\n const normalText = word.slice(lastIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n }\n return resultArray;\n};\n\nexport const arrayEqual = (array1: Array<unknown>, array2: Array<unknown>): boolean => {\n if (Array.isArray(array1) && Array.isArray(array2) && array1.length === array2.length) {\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n\nexport const isSendableMessage = (message?: BaseMessage | null): message is SendableMessageType => {\n return Boolean(message) && 'sender' in message;\n};\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","AUDIO","DOCUMENT","APPLICATION","getMimeTypesUIKitAccepts","acceptableMimeTypes","Array","isArray","length","reduce","accumulator","acceptableMimeType","concat","match","with","otherwise","join","Object","values","mimeTypes","UIKitMessageTypes","ADMIN","TEXT","FILE","MULTIPLE_FILES","THUMBNAIL","OG","UNKNOWN","UIKitFileTypes","GIF","VOICE","OTHERS","isTextuallyNull","text","isImage","type","indexOf","isVideo","isGif","isSupportedFileView","isAudio","getUIKitFileTypes","__assign","getUIKitFileType","isSentMessage","message","sendingStatus","isReadMessage","channel","getOutgoingMessageState","OutgoingMessageStates","READ","isFailedMessage","isPendingMessage","isSentStatus","state","SENT","DELIVERED","isAdminMessage","messageType","isUserMessage","isFileMessage","isMultipleFilesMessage","prototype","hasOwnProperty","call","isThreadMessage","parentMessageId","parentMessage","isOGMessage","ogMetaData","_a","url","_b","title","_c","description","_d","defaultImage","isTextMessage","isThumbnailMessage","isImageMessage","isImageFileInfo","fileInfo","mimeType","isVideoMessage","isGifMessage","isAudioMessage","isAudioMessageMimeType","test","isVoiceMessageMimeType","isVoiceMessage","_e","split","typeParameter","_f","key","value","metaArrays","find","metaArray","isEditedMessage","updatedAt","getUIKitMessageTypes","getUIKitMessageType","reducer","currentValue","__spreadArray","push","getClassName","classNames","isReactedBy","userId","reaction","userIds","some","reactorUserId","getEmojiTooltipString","memberNicknamesMap","stringSet","you","TOOLTIP__YOU","TOOLTIP__AND_YOU","filter","map","get","TOOLTIP__UNKNOWN_USER","URL_REG","isUrl","truncateString","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","substr","copyToClipboard","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","getEmojiListAll","emojiContainer","emojiCategories","emojiCategory","emojis","prevArr","currArr","getEmojiMapAll","emojiMap","Map","forEach","category","emoji","set","findEmojiUrl","targetKey","getEmojiUrl","emojiKey","isFindingKey","getUserName","user","friendName","nickname","getSenderName","sender","hasSameMembers","a","b","sortedA","sort","sortedB","i","isFriend","friendDiscoveryKey","filterMessageListParams","params","customTypesFilter","messageTypeFilter","customTypes","item","includes","customType","senderUserIdsFilter","messageSender","includeParentMessageInfo","filterChannelListParams","currentUserId","includeEmpty","includeFrozen","searchFilter","userIdsFilter","channelUrlsFilter","customTypeStartsWithFilter","channelNameContainsFilter","nicknameContainsFilter","myMemberStateFilter","hiddenChannelFilter","unreadChannelFilter","publicChannelFilter","superChannelFilter","_h","metadataKey","_j","metadataValues","metadataValueStartsWith","lastMessage","query","fields","searchQuery_1","searchFields","searchField","name","toLowerCase","members","member","includeMode","queryType","memberIds_1","every","isFrozen","RegExp","lowerCasedSubString_1","_g","myMemberState","inviter","isHidden","hiddenState","unreadMessageCount","isPublic","isSuper","_k","cachedMetaData","metadataValue_1","startsWith","binarySearch","list","number","pivot","leftList","slice","rightList","getChannelsWithUpsertedChannel","channels","ch","targetIndex","createdAt","StringObjType","convertWordToStringObj","word","_users","_template","users","template","resultArray","regex","excutionResult","lastIndex","template_1","endIndex","startIndex","normalText","normal","mentionedUser","mention","exec","arrayEqual","array1","array2","isSendableMessage","Boolean"],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var ui_ContextMenu = require('./ui/ContextMenu.js');
|
|
5
|
-
var index = require('./index-
|
|
6
|
-
var LocalizationContext = require('./LocalizationContext-
|
|
5
|
+
var index = require('./index-dbe8dd84.js');
|
|
6
|
+
var LocalizationContext = require('./LocalizationContext-58b6ed7c.js');
|
|
7
7
|
var ui_Icon = require('./ui/Icon.js');
|
|
8
|
-
var ui_Label = require('./index-
|
|
8
|
+
var ui_Label = require('./index-b5a9b4b7.js');
|
|
9
9
|
var ui_BottomSheet = require('./ui/BottomSheet.js');
|
|
10
10
|
var ui_ImageRenderer = require('./ui/ImageRenderer.js');
|
|
11
11
|
var ui_ReactionButton = require('./ui/ReactionButton.js');
|
|
@@ -465,4 +465,4 @@ var MobileMenu = function (props) {
|
|
|
465
465
|
};
|
|
466
466
|
|
|
467
467
|
exports.MobileMenu = MobileMenu;
|
|
468
|
-
//# sourceMappingURL=index-
|
|
468
|
+
//# sourceMappingURL=index-e5e6d9b0.js.map
|