@sendbird/uikit-react 3.6.8 → 3.6.9
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 +66 -57
- package/App.js.map +1 -1
- package/CHANGELOG.md +167 -0
- package/Channel/components/ChannelHeader.js +22 -20
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +48 -42
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +18 -16
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +4 -4
- package/Channel/components/Message.js +42 -37
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +48 -35
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +44 -38
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +25 -21
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +20 -18
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +18 -16
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +4 -4
- package/Channel/context.js +15 -13
- package/Channel/context.js.map +1 -1
- package/Channel/utils/compareMessagesForGrouping.js +7 -6
- package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
- package/Channel/utils/getMessagePartsInfo.js +8 -7
- package/Channel/utils/getMessagePartsInfo.js.map +1 -1
- package/Channel.js +50 -42
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +16 -15
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +6 -6
- package/ChannelList/components/ChannelListUI.js +33 -31
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +31 -29
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +16 -15
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +9 -8
- package/ChannelList/context.js.map +1 -1
- package/ChannelList.js +33 -31
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-63f3007c.js → ChannelListProvider-ba11ee5f.js} +8 -8
- package/{ChannelListProvider-63f3007c.js.map → ChannelListProvider-ba11ee5f.js.map} +1 -1
- package/{ChannelProvider-d6dedff9.js → ChannelProvider-7400e8f6.js} +67 -24
- package/ChannelProvider-7400e8f6.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +14 -12
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +18 -17
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +15 -13
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +14 -13
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +16 -15
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +11 -10
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +14 -13
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +3 -3
- package/ChannelSettings.js +18 -17
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +15 -14
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +16 -15
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +13 -12
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +15 -14
- package/CreateChannel.js.map +1 -1
- package/{CreateChannelProvider-32ceb13a.js → CreateChannelProvider-b2487387.js} +1 -1
- package/{CreateChannelProvider-32ceb13a.js.map → CreateChannelProvider-b2487387.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +12 -10
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +1 -1
- package/CreateOpenChannel.js +11 -9
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +13 -12
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/EditUserProfile.js +14 -13
- package/EditUserProfile.js.map +1 -1
- package/{LocalizationContext-9a9a0064.js → LocalizationContext-c9b218d4.js} +3 -3
- package/{LocalizationContext-9a9a0064.js.map → LocalizationContext-c9b218d4.js.map} +1 -1
- package/{MediaQueryContext-aebb709a.js → MediaQueryContext-532b0a77.js} +1 -1
- package/{MediaQueryContext-aebb709a.js.map → MediaQueryContext-532b0a77.js.map} +1 -1
- package/{MemberList-54496842.js → MemberList-15511dd2.js} +7 -6
- package/{MemberList-54496842.js.map → MemberList-15511dd2.js.map} +1 -1
- package/Message/hooks/useDirtyGetMentions.js +1 -1
- package/Message/hooks/useDirtyGetMentions.js.map +1 -1
- package/MessageSearch/components/MessageSearchUI.js +13 -11
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +1 -1
- package/MessageSearch.js +13 -11
- package/MessageSearch.js.map +1 -1
- package/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/OpenChannel/components/OpenChannelInput.js +20 -20
- package/OpenChannel/components/OpenChannelMessage.js +35 -32
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +34 -33
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +34 -33
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +8 -8
- package/OpenChannel.js +34 -33
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +15 -13
- package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/OpenChannelList/components/OpenChannelPreview.js +3 -3
- package/OpenChannelList/context.js +3 -3
- package/OpenChannelList.js +15 -13
- package/OpenChannelList.js.map +1 -1
- package/{OpenChannelListProvider-6f1599b7.js → OpenChannelListProvider-a79c47d4.js} +3 -3
- package/{OpenChannelListProvider-6f1599b7.js.map → OpenChannelListProvider-a79c47d4.js.map} +1 -1
- package/{OpenChannelProvider-8fdab056.js → OpenChannelProvider-4f21a22d.js} +13 -8
- package/OpenChannelProvider-4f21a22d.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +16 -14
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +15 -13
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +19 -18
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +18 -17
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +15 -14
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +3 -3
- package/OpenChannelSettings.js +19 -18
- package/OpenChannelSettings.js.map +1 -1
- package/README.md +7 -0
- package/{RemoveMessageModal-715f4bd6.js → RemoveMessageModal-62276928.js} +7 -5
- package/RemoveMessageModal-62276928.js.map +1 -0
- package/SendbirdProvider.js +43 -24
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +39 -36
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +33 -23
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +6 -6
- package/Thread/components/ThreadList.js +43 -39
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +50 -40
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +48 -35
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +48 -43
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context.js +12 -8
- package/Thread/context.js.map +1 -1
- package/Thread.js +58 -44
- package/Thread.js.map +1 -1
- package/{ThreadProvider-696e3a32.js → ThreadProvider-593b6c29.js} +61 -15
- package/ThreadProvider-593b6c29.js.map +1 -0
- package/{UserProfileContext-9fba7a03.js → UserProfileContext-36e341fd.js} +1 -1
- package/{UserProfileContext-9fba7a03.js.map → UserProfileContext-36e341fd.js.map} +1 -1
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +12 -10
- package/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/VoiceRecorder/context.js +13 -11
- package/VoiceRecorder/context.js.map +1 -1
- package/VoiceRecorder/useVoiceRecorder.js +11 -9
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/{WebAudioUtils-ba28e2b0.js → WebAudioUtils-ca6a01e4.js} +2 -2
- package/{WebAudioUtils-ba28e2b0.js.map → WebAudioUtils-ca6a01e4.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-0f2ee8c1.js → _rollupPluginBabelHelpers-ea73a031.js} +1 -1
- package/_rollupPluginBabelHelpers-ea73a031.js.map +1 -0
- package/{actionTypes-670a9a48.js → actionTypes-bd59e881.js} +1 -1
- package/{actionTypes-670a9a48.js.map → actionTypes-bd59e881.js.map} +1 -1
- package/cjs/App.js +66 -57
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +22 -20
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +48 -42
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +18 -16
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +4 -4
- package/cjs/Channel/components/Message.js +42 -37
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +49 -36
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +44 -38
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +25 -21
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +20 -18
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +18 -16
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +4 -4
- package/cjs/Channel/context.js +15 -13
- package/cjs/Channel/context.js.map +1 -1
- package/cjs/Channel/utils/compareMessagesForGrouping.js +7 -6
- package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
- package/cjs/Channel/utils/getMessagePartsInfo.js +8 -7
- package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
- package/cjs/Channel.js +50 -42
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +16 -15
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
- package/cjs/ChannelList/components/ChannelListUI.js +33 -31
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +31 -29
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +16 -15
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +9 -8
- package/cjs/ChannelList/context.js.map +1 -1
- package/cjs/ChannelList.js +33 -31
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-1506b1fa.js → ChannelListProvider-69db317f.js} +8 -8
- package/cjs/{ChannelListProvider-1506b1fa.js.map → ChannelListProvider-69db317f.js.map} +1 -1
- package/cjs/{ChannelProvider-c8bc29d3.js → ChannelProvider-2ee005bc.js} +67 -24
- package/cjs/ChannelProvider-2ee005bc.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +14 -12
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -17
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +15 -13
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +15 -14
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +19 -18
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +11 -10
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +14 -13
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +3 -3
- package/cjs/ChannelSettings.js +18 -17
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +15 -14
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +16 -15
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +13 -12
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +15 -14
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/{CreateChannelProvider-f30302a5.js → CreateChannelProvider-1c4d626c.js} +1 -1
- package/cjs/{CreateChannelProvider-f30302a5.js.map → CreateChannelProvider-1c4d626c.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +12 -10
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +1 -1
- package/cjs/CreateOpenChannel.js +11 -9
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -12
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/cjs/EditUserProfile.js +14 -13
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/{LocalizationContext-9c99457f.js → LocalizationContext-eb7a59da.js} +3 -3
- package/cjs/{LocalizationContext-9c99457f.js.map → LocalizationContext-eb7a59da.js.map} +1 -1
- package/cjs/{MediaQueryContext-a5c77095.js → MediaQueryContext-ca045060.js} +1 -1
- package/cjs/{MediaQueryContext-a5c77095.js.map → MediaQueryContext-ca045060.js.map} +1 -1
- package/cjs/{MemberList-166dd7de.js → MemberList-eea5c64b.js} +8 -7
- package/cjs/{MemberList-166dd7de.js.map → MemberList-eea5c64b.js.map} +1 -1
- package/cjs/Message/hooks/useDirtyGetMentions.js +1 -1
- package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +13 -11
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +1 -1
- package/cjs/MessageSearch.js +13 -11
- package/cjs/MessageSearch.js.map +1 -1
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/cjs/OpenChannel/components/OpenChannelInput.js +20 -20
- package/cjs/OpenChannel/components/OpenChannelMessage.js +35 -32
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +34 -33
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +34 -33
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +8 -8
- package/cjs/OpenChannel.js +34 -33
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +15 -13
- package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
- package/cjs/OpenChannelList/context.js +3 -3
- package/cjs/OpenChannelList.js +15 -13
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/{OpenChannelListProvider-74ae7138.js → OpenChannelListProvider-25a0f74d.js} +3 -3
- package/cjs/{OpenChannelListProvider-74ae7138.js.map → OpenChannelListProvider-25a0f74d.js.map} +1 -1
- package/cjs/{OpenChannelProvider-57c10c09.js → OpenChannelProvider-036e515e.js} +13 -8
- package/cjs/OpenChannelProvider-036e515e.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +16 -14
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +15 -13
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +19 -18
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +22 -21
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -14
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +3 -3
- package/cjs/OpenChannelSettings.js +19 -18
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/{RemoveMessageModal-029b1c86.js → RemoveMessageModal-7ed24af4.js} +7 -5
- package/cjs/RemoveMessageModal-7ed24af4.js.map +1 -0
- package/cjs/SendbirdProvider.js +43 -24
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +39 -36
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +33 -23
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +6 -6
- package/cjs/Thread/components/ThreadList.js +43 -39
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +53 -43
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +49 -36
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +48 -43
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context.js +12 -8
- package/cjs/Thread/context.js.map +1 -1
- package/cjs/Thread.js +58 -44
- package/cjs/Thread.js.map +1 -1
- package/cjs/{ThreadProvider-9dfc3ad5.js → ThreadProvider-4c93de8a.js} +61 -15
- package/cjs/ThreadProvider-4c93de8a.js.map +1 -0
- package/cjs/{UserProfileContext-1f226141.js → UserProfileContext-abe57718.js} +1 -1
- package/cjs/{UserProfileContext-1f226141.js.map → UserProfileContext-abe57718.js.map} +1 -1
- package/cjs/VoicePlayer/context.js +3 -3
- package/cjs/VoicePlayer/useVoicePlayer.js +12 -10
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/cjs/VoiceRecorder/context.js +13 -11
- package/cjs/VoiceRecorder/context.js.map +1 -1
- package/cjs/VoiceRecorder/useVoiceRecorder.js +11 -9
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/cjs/{WebAudioUtils-250f7398.js → WebAudioUtils-348c38b8.js} +2 -2
- package/cjs/{WebAudioUtils-250f7398.js.map → WebAudioUtils-348c38b8.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-117c3ffb.js → _rollupPluginBabelHelpers-a85bd364.js} +1 -1
- package/cjs/_rollupPluginBabelHelpers-a85bd364.js.map +1 -0
- package/cjs/{actionTypes-01de4d11.js → actionTypes-412ca236.js} +1 -1
- package/cjs/{actionTypes-01de4d11.js.map → actionTypes-412ca236.js.map} +1 -1
- package/cjs/{color-a057a4c2.js → color-2f1198fc.js} +1 -1
- package/cjs/{color-a057a4c2.js.map → color-2f1198fc.js.map} +1 -1
- package/cjs/{compareIds-49d9aea6.js → compareIds-89c258a0.js} +1 -1
- package/cjs/{compareIds-49d9aea6.js.map → compareIds-89c258a0.js.map} +1 -1
- package/cjs/{const-cd9b71c8.js → const-24d498a6.js} +1 -1
- package/cjs/{const-cd9b71c8.js.map → const-24d498a6.js.map} +1 -1
- package/cjs/{const-8e4d382d.js → const-95881697.js} +1 -1
- package/cjs/{const-8e4d382d.js.map → const-95881697.js.map} +1 -1
- package/cjs/{consts-4a51c64b.js → consts-2957b793.js} +1 -1
- package/cjs/{consts-4a51c64b.js.map → consts-2957b793.js.map} +1 -1
- package/cjs/{consts-fb9dd3a0.js → consts-7b830cc5.js} +5 -1
- package/cjs/{consts-fb9dd3a0.js.map → consts-7b830cc5.js.map} +1 -1
- package/cjs/{consts-3afe4fa8.js → consts-c5d38c32.js} +1 -1
- package/cjs/{consts-3afe4fa8.js.map → consts-c5d38c32.js.map} +1 -1
- package/cjs/{consts-d866b64a.js → consts-dde4f05d.js} +1 -1
- package/cjs/{consts-d866b64a.js.map → consts-dde4f05d.js.map} +1 -1
- package/cjs/{context-d7bb15b5.js → context-b53bf38e.js} +2 -2
- package/cjs/{context-d7bb15b5.js.map → context-b53bf38e.js.map} +1 -1
- package/cjs/dist/index.css +371 -280
- package/cjs/dist/index.css.map +1 -1
- package/cjs/{index-df172622.js → index-03655429.js} +2 -2
- package/cjs/{index-df172622.js.map → index-03655429.js.map} +1 -1
- package/cjs/{index-dc15cf44.js → index-0f229ac7.js} +4 -4
- package/cjs/{index-dc15cf44.js.map → index-0f229ac7.js.map} +1 -1
- package/cjs/{index-a5aa0a9b.js → index-0f7049fb.js} +8 -7
- package/cjs/{index-a5aa0a9b.js.map → index-0f7049fb.js.map} +1 -1
- package/cjs/{index-5b3bc2e9.js → index-1f796e5a.js} +4 -4
- package/cjs/{index-5b3bc2e9.js.map → index-1f796e5a.js.map} +1 -1
- package/cjs/index-28c0a443.js +58 -0
- package/cjs/index-28c0a443.js.map +1 -0
- package/cjs/{index-15e4fb71.js → index-2fbc5922.js} +4 -4
- package/cjs/{index-15e4fb71.js.map → index-2fbc5922.js.map} +1 -1
- package/cjs/{index-5359bc78.js → index-2fd388b9.js} +6 -6
- package/cjs/{index-5359bc78.js.map → index-2fd388b9.js.map} +1 -1
- package/cjs/{index-9cffff55.js → index-494b5c25.js} +3 -3
- package/cjs/{index-9cffff55.js.map → index-494b5c25.js.map} +1 -1
- package/cjs/{index-b64ce51a.js → index-4d39de27.js} +10 -9
- package/cjs/index-4d39de27.js.map +1 -0
- package/cjs/{index-2413bae4.js → index-5628e0c0.js} +1 -1
- package/cjs/index-5628e0c0.js.map +1 -0
- package/cjs/{index-0599b6f2.js → index-613acaa0.js} +36 -4
- package/cjs/index-613acaa0.js.map +1 -0
- package/cjs/{index-fe1b738f.js → index-6e0a495a.js} +3 -3
- package/cjs/{index-fe1b738f.js.map → index-6e0a495a.js.map} +1 -1
- package/cjs/{index-2d4ea9ad.js → index-7e10ab98.js} +4 -4
- package/cjs/index-7e10ab98.js.map +1 -0
- package/cjs/{index-464461c9.js → index-910f48df.js} +20 -12
- package/cjs/index-910f48df.js.map +1 -0
- package/cjs/{index-d5522aef.js → index-967cbc91.js} +2 -2
- package/cjs/{index-d5522aef.js.map → index-967cbc91.js.map} +1 -1
- package/cjs/{index-0d4c4adf.js → index-9813a2f9.js} +3 -3
- package/cjs/{index-0d4c4adf.js.map → index-9813a2f9.js.map} +1 -1
- package/cjs/{index-913491a1.js → index-ae51b0df.js} +2 -2
- package/cjs/{index-913491a1.js.map → index-ae51b0df.js.map} +1 -1
- package/cjs/{index-ba4dea0c.js → index-c9a4a555.js} +1 -1
- package/cjs/{index-ba4dea0c.js.map → index-c9a4a555.js.map} +1 -1
- package/cjs/{index-c59af641.js → index-de4da1f2.js} +2 -2
- package/cjs/{index-c59af641.js.map → index-de4da1f2.js.map} +1 -1
- package/cjs/index-f0b55959.js +139 -0
- package/cjs/index-f0b55959.js.map +1 -0
- package/cjs/{index-4eb2a000.js → index-f40c4cf0.js} +2 -2
- package/cjs/{index-4eb2a000.js.map → index-f40c4cf0.js.map} +1 -1
- package/cjs/index.js +60 -55
- package/cjs/index.js.map +1 -1
- package/cjs/{index.module-2c2cf337.js → index.module-5c951066.js} +1 -1
- package/cjs/{index.module-2c2cf337.js.map → index.module-5c951066.js.map} +1 -1
- package/cjs/package.json +1 -1
- package/cjs/{resolvedReplyType-053d2dbc.js → resolvedReplyType-314fee09.js} +1 -1
- package/cjs/{resolvedReplyType-053d2dbc.js.map → resolvedReplyType-314fee09.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +3 -3
- package/cjs/stringFormatterUtils-3e53394c.js +16 -0
- package/cjs/stringFormatterUtils-3e53394c.js.map +1 -0
- package/cjs/{stringSet-dbdeec9c.js → stringSet-b75b75ae.js} +1 -1
- package/cjs/{stringSet-dbdeec9c.js.map → stringSet-b75b75ae.js.map} +1 -1
- package/cjs/{tokenize-7204c391.js → tokenize-42536b7a.js} +2 -2
- package/cjs/{tokenize-7204c391.js.map → tokenize-42536b7a.js.map} +1 -1
- package/cjs/{topics-c495cb3a.js → topics-2c35cfd7.js} +1 -1
- package/cjs/{topics-c495cb3a.js.map → topics-2c35cfd7.js.map} +1 -1
- package/cjs/{types-79ca7893.js → types-382588b3.js} +1 -1
- package/cjs/types-382588b3.js.map +1 -0
- package/cjs/ui/Accordion.js +2 -2
- package/cjs/ui/AccordionGroup.js +2 -2
- package/cjs/ui/AdminMessage.js +2 -2
- package/cjs/ui/Avatar.js +1 -1
- package/cjs/ui/Badge.js +4 -4
- package/cjs/ui/BottomSheet.js +6 -1
- package/cjs/ui/BottomSheet.js.map +1 -1
- package/cjs/ui/Button.js +10 -12
- package/cjs/ui/Button.js.map +1 -1
- package/cjs/ui/ChannelAvatar.js +2 -2
- package/cjs/ui/ConnectionStatus.js +4 -4
- package/cjs/ui/ContextMenu.js +6 -5
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +3 -3
- package/cjs/ui/EmojiReactions.js +14 -13
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +7 -6
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +14 -13
- package/cjs/ui/FileViewer.js.map +1 -1
- package/cjs/ui/Icon.js +3 -0
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/ImageRenderer.js +58 -14
- package/cjs/ui/ImageRenderer.js.map +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/MentionLabel.js +11 -10
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MentionUserLabel.js +1 -1
- package/cjs/ui/MessageContent.js +43 -34
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput/hooks/usePaste.js +4 -4
- package/cjs/ui/MessageInput.js +54 -40
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +9 -8
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +9 -8
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +18 -18
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +8 -8
- package/cjs/ui/MessageStatus.js +11 -10
- package/cjs/ui/MessageStatus.js.map +1 -1
- package/cjs/ui/Modal.js +26 -17
- package/cjs/ui/Modal.js.map +1 -1
- package/cjs/ui/OGMessageItemBody.js +14 -14
- package/cjs/ui/OpenChannelAdminMessage.js +2 -2
- package/cjs/ui/OpenChannelAvatar.js +5 -5
- package/cjs/ui/OpenchannelConversationHeader.js +6 -6
- package/cjs/ui/OpenchannelFileMessage.js +16 -15
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +18 -18
- package/cjs/ui/OpenchannelThumbnailMessage.js +15 -14
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +16 -15
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- package/cjs/ui/PlaceHolder.js +5 -5
- package/cjs/ui/PlaybackTime.js +2 -2
- package/cjs/ui/QuoteMessage.js +15 -13
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +14 -12
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +2 -2
- package/cjs/ui/ReactionButton.js +4 -4
- package/cjs/ui/SortByRow.js +1 -1
- package/cjs/ui/TextButton.js +1 -1
- package/cjs/ui/TextMessageItemBody.js +14 -14
- package/cjs/ui/ThreadReplies.js +5 -5
- package/cjs/ui/ThumbnailMessageItemBody.js +16 -17
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/cjs/ui/Toggle.js +1 -1
- package/cjs/ui/Tooltip.js +2 -2
- package/cjs/ui/UnknownMessageItemBody.js +7 -6
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
- package/cjs/ui/UserListItem.js +11 -10
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +9 -9
- package/cjs/ui/VoiceMessageItemBody.js +12 -10
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
- package/cjs/ui/VoiceMessgeInput.js +7 -7
- package/cjs/ui/Word.js +11 -10
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/{VoiceMessageInputWrapper-953affee.js → useHandleUploadFiles-84bd5a9a.js} +129 -8
- package/cjs/useHandleUploadFiles-84bd5a9a.js.map +1 -0
- package/cjs/{useLongPress-e7c92bb0.js → useLongPress-49aa9a49.js} +3 -3
- package/cjs/{useLongPress-e7c92bb0.js.map → useLongPress-49aa9a49.js.map} +1 -1
- package/cjs/useSendMultipleFilesMessage-c5266ca8.js +109 -0
- package/cjs/useSendMultipleFilesMessage-c5266ca8.js.map +1 -0
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/utils/message/isVoiceMessage.js +3 -2
- package/cjs/utils/message/isVoiceMessage.js.map +1 -1
- package/cjs/{utils-b6cca626.js → utils-1e9e97b5.js} +4 -4
- package/cjs/{utils-b6cca626.js.map → utils-1e9e97b5.js.map} +1 -1
- package/cjs/{utils-657ea6e9.js → utils-4e18a724.js} +1 -1
- package/cjs/{utils-657ea6e9.js.map → utils-4e18a724.js.map} +1 -1
- package/cjs/{utils-c2f38151.js → utils-8958cb75.js} +1 -1
- package/cjs/{utils-c2f38151.js.map → utils-8958cb75.js.map} +1 -1
- package/cjs/{utils-90a7cd20.js → utils-b3e9e1b8.js} +2 -2
- package/cjs/{utils-90a7cd20.js.map → utils-b3e9e1b8.js.map} +1 -1
- package/cjs/{utils-cc9de39b.js → utils-d5a929c9.js} +1 -1
- package/cjs/{utils-cc9de39b.js.map → utils-d5a929c9.js.map} +1 -1
- package/cjs/utils-d6285655.js +62 -0
- package/cjs/utils-d6285655.js.map +1 -0
- package/cjs/{uuid-b2882230.js → uuid-34728ced.js} +1 -1
- package/cjs/{uuid-b2882230.js.map → uuid-34728ced.js.map} +1 -1
- package/cjs/withSendbird.js +8 -1
- package/cjs/withSendbird.js.map +1 -1
- package/{color-65ef45d7.js → color-4cef414f.js} +1 -1
- package/{color-65ef45d7.js.map → color-4cef414f.js.map} +1 -1
- package/{compareIds-c0aa8024.js → compareIds-7e93f2e7.js} +1 -1
- package/{compareIds-c0aa8024.js.map → compareIds-7e93f2e7.js.map} +1 -1
- package/{const-2c36fe72.js → const-48ffde74.js} +1 -1
- package/{const-2c36fe72.js.map → const-48ffde74.js.map} +1 -1
- package/{const-537b3aa9.js → const-6c10846e.js} +1 -1
- package/{const-537b3aa9.js.map → const-6c10846e.js.map} +1 -1
- package/{consts-397a92f1.js → consts-439d56b4.js} +5 -2
- package/{consts-397a92f1.js.map → consts-439d56b4.js.map} +1 -1
- package/{consts-ee08d763.js → consts-a979689d.js} +1 -1
- package/{consts-ee08d763.js.map → consts-a979689d.js.map} +1 -1
- package/{consts-066d732d.js → consts-aad4bf65.js} +1 -1
- package/{consts-066d732d.js.map → consts-aad4bf65.js.map} +1 -1
- package/{consts-c105f2e8.js → consts-bd684c8d.js} +1 -1
- package/{consts-c105f2e8.js.map → consts-bd684c8d.js.map} +1 -1
- package/{context-524b02ab.js → context-9946197c.js} +2 -2
- package/{context-524b02ab.js.map → context-9946197c.js.map} +1 -1
- package/dist/index.css +371 -280
- package/dist/index.css.map +1 -1
- package/{index-2969a2df.js → index-0a50eba0.js} +20 -12
- package/index-0a50eba0.js.map +1 -0
- package/{index-72d247f7.js → index-1833cc50.js} +2 -2
- package/{index-72d247f7.js.map → index-1833cc50.js.map} +1 -1
- package/{index-3f6516a2.js → index-2d23ff73.js} +4 -4
- package/index-2d23ff73.js.map +1 -0
- package/{index-4236c5c8.js → index-320a1756.js} +2 -2
- package/{index-4236c5c8.js.map → index-320a1756.js.map} +1 -1
- package/{index-d6ceb67a.js → index-3370a58d.js} +2 -2
- package/{index-d6ceb67a.js.map → index-3370a58d.js.map} +1 -1
- package/{index-f1d37762.js → index-373d3069.js} +4 -4
- package/{index-f1d37762.js.map → index-373d3069.js.map} +1 -1
- package/index-44d3dac3.js +132 -0
- package/index-44d3dac3.js.map +1 -0
- package/{index-91634369.js → index-516ad99d.js} +1 -1
- package/{index-91634369.js.map → index-516ad99d.js.map} +1 -1
- package/{index-40e8e312.js → index-526cbeea.js} +2 -2
- package/{index-40e8e312.js.map → index-526cbeea.js.map} +1 -1
- package/{index-4c58b734.js → index-6bca558b.js} +8 -7
- package/{index-4c58b734.js.map → index-6bca558b.js.map} +1 -1
- package/{index-4c4b34c9.js → index-6d0ae6a0.js} +3 -3
- package/{index-4c4b34c9.js.map → index-6d0ae6a0.js.map} +1 -1
- package/{index-da7bc750.js → index-825c96d3.js} +3 -3
- package/{index-da7bc750.js.map → index-825c96d3.js.map} +1 -1
- package/{index-d972c8e3.js → index-9083293d.js} +4 -4
- package/{index-d972c8e3.js.map → index-9083293d.js.map} +1 -1
- package/{index-aa87ac03.js → index-a0bd5ef9.js} +3 -3
- package/{index-aa87ac03.js.map → index-a0bd5ef9.js.map} +1 -1
- package/{index-8017e2b5.js → index-b346dc02.js} +10 -9
- package/index-b346dc02.js.map +1 -0
- package/index-bae83553.js +51 -0
- package/index-bae83553.js.map +1 -0
- package/{index-39eeabbb.js → index-c323f04b.js} +33 -5
- package/index-c323f04b.js.map +1 -0
- package/{index-5ebb83a2.js → index-c5cb0bb2.js} +4 -4
- package/{index-5ebb83a2.js.map → index-c5cb0bb2.js.map} +1 -1
- package/{index-3e2f101e.js → index-d9b66555.js} +6 -6
- package/{index-3e2f101e.js.map → index-d9b66555.js.map} +1 -1
- package/{index-d16a8084.js → index-e2afa53f.js} +1 -1
- package/index-e2afa53f.js.map +1 -0
- package/{index-7c1266b5.js → index-fa19fef7.js} +2 -2
- package/{index-7c1266b5.js.map → index-fa19fef7.js.map} +1 -1
- package/index.d.ts +155 -31
- package/index.js +60 -55
- package/index.js.map +1 -1
- package/{index.module-b694546f.js → index.module-efef0194.js} +1 -1
- package/{index.module-b694546f.js.map → index.module-efef0194.js.map} +1 -1
- package/package.json +1 -1
- package/{resolvedReplyType-97610f1a.js → resolvedReplyType-84f1270f.js} +1 -1
- package/{resolvedReplyType-97610f1a.js.map → resolvedReplyType-84f1270f.js.map} +1 -1
- package/sendbirdSelectors.js +3 -3
- package/stringFormatterUtils-beea8d82.js +14 -0
- package/stringFormatterUtils-beea8d82.js.map +1 -0
- package/{stringSet-ed242956.js → stringSet-9fe06e0d.js} +1 -1
- package/{stringSet-ed242956.js.map → stringSet-9fe06e0d.js.map} +1 -1
- package/{tokenize-3c45100f.js → tokenize-d34eb5c6.js} +2 -2
- package/{tokenize-3c45100f.js.map → tokenize-d34eb5c6.js.map} +1 -1
- package/{topics-da8f3f42.js → topics-edd6182d.js} +1 -1
- package/{topics-da8f3f42.js.map → topics-edd6182d.js.map} +1 -1
- package/{types-3826bbff.js → types-269fec15.js} +1 -1
- package/types-269fec15.js.map +1 -0
- package/ui/Accordion.js +2 -2
- package/ui/AccordionGroup.js +2 -2
- package/ui/AdminMessage.js +2 -2
- package/ui/Avatar.js +1 -1
- package/ui/Badge.js +4 -4
- package/ui/BottomSheet.js +6 -1
- package/ui/BottomSheet.js.map +1 -1
- package/ui/Button.js +10 -12
- package/ui/Button.js.map +1 -1
- package/ui/ChannelAvatar.js +2 -2
- package/ui/ConnectionStatus.js +4 -4
- package/ui/ContextMenu.js +6 -5
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +3 -3
- package/ui/EmojiReactions.js +14 -13
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +7 -6
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +14 -13
- package/ui/FileViewer.js.map +1 -1
- package/ui/Icon.js +3 -0
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +1 -1
- package/ui/ImageRenderer.js +59 -15
- package/ui/ImageRenderer.js.map +1 -1
- package/ui/Input.js +2 -2
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- package/ui/MentionLabel.js +11 -10
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MentionUserLabel.js +1 -1
- package/ui/MessageContent.js +42 -33
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput/hooks/usePaste.js +4 -4
- package/ui/MessageInput.js +54 -40
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +9 -8
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +9 -8
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +18 -18
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +8 -8
- package/ui/MessageStatus.js +11 -10
- package/ui/MessageStatus.js.map +1 -1
- package/ui/Modal.js +26 -18
- package/ui/Modal.js.map +1 -1
- package/ui/OGMessageItemBody.js +14 -14
- package/ui/OpenChannelAdminMessage.js +2 -2
- package/ui/OpenChannelAvatar.js +5 -5
- package/ui/OpenchannelConversationHeader.js +6 -6
- package/ui/OpenchannelFileMessage.js +16 -15
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +18 -18
- package/ui/OpenchannelThumbnailMessage.js +15 -14
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +16 -15
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +5 -5
- package/ui/PlaybackTime.js +2 -2
- package/ui/QuoteMessage.js +15 -13
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +14 -12
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +2 -2
- package/ui/ReactionButton.js +4 -4
- package/ui/SortByRow.js +1 -1
- package/ui/TextButton.js +1 -1
- package/ui/TextMessageItemBody.js +14 -14
- package/ui/ThreadReplies.js +5 -5
- package/ui/ThumbnailMessageItemBody.js +14 -15
- package/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/ui/Toggle.js +1 -1
- package/ui/Tooltip.js +2 -2
- package/ui/UnknownMessageItemBody.js +7 -6
- package/ui/UnknownMessageItemBody.js.map +1 -1
- package/ui/UserListItem.js +11 -10
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +9 -9
- package/ui/VoiceMessageItemBody.js +12 -10
- package/ui/VoiceMessageItemBody.js.map +1 -1
- package/ui/VoiceMessgeInput.js +7 -7
- package/ui/Word.js +11 -10
- package/ui/Word.js.map +1 -1
- package/{VoiceMessageInputWrapper-b074aec5.js → useHandleUploadFiles-210750cc.js} +130 -10
- package/useHandleUploadFiles-210750cc.js.map +1 -0
- package/{useLongPress-0189f9c3.js → useLongPress-4b698dbb.js} +3 -3
- package/{useLongPress-0189f9c3.js.map → useLongPress-4b698dbb.js.map} +1 -1
- package/useSendMultipleFilesMessage-4a45ffbe.js +107 -0
- package/useSendMultipleFilesMessage-4a45ffbe.js.map +1 -0
- package/useSendbirdStateContext.js +1 -1
- package/utils/message/isVoiceMessage.js +3 -2
- package/utils/message/isVoiceMessage.js.map +1 -1
- package/{utils-40781609.js → utils-1bfac67e.js} +1 -1
- package/{utils-40781609.js.map → utils-1bfac67e.js.map} +1 -1
- package/{utils-cae5adba.js → utils-4d948dec.js} +2 -2
- package/{utils-cae5adba.js.map → utils-4d948dec.js.map} +1 -1
- package/{utils-3bd17cc2.js → utils-55c9df93.js} +1 -1
- package/{utils-3bd17cc2.js.map → utils-55c9df93.js.map} +1 -1
- package/utils-73dd35ca.js +57 -0
- package/utils-73dd35ca.js.map +1 -0
- package/{utils-373b8143.js → utils-a184f6ea.js} +1 -1
- package/{utils-373b8143.js.map → utils-a184f6ea.js.map} +1 -1
- package/{utils-b7161189.js → utils-ec15538c.js} +4 -4
- package/{utils-b7161189.js.map → utils-ec15538c.js.map} +1 -1
- package/{uuid-6d982751.js → uuid-9094f15c.js} +1 -1
- package/{uuid-6d982751.js.map → uuid-9094f15c.js.map} +1 -1
- package/withSendbird.js +8 -1
- package/withSendbird.js.map +1 -1
- package/ChannelProvider-d6dedff9.js.map +0 -1
- package/OpenChannelProvider-8fdab056.js.map +0 -1
- package/RemoveMessageModal-715f4bd6.js.map +0 -1
- package/ThreadProvider-696e3a32.js.map +0 -1
- package/VoiceMessageInputWrapper-b074aec5.js.map +0 -1
- package/_rollupPluginBabelHelpers-0f2ee8c1.js.map +0 -1
- package/cjs/ChannelProvider-c8bc29d3.js.map +0 -1
- package/cjs/OpenChannelProvider-57c10c09.js.map +0 -1
- package/cjs/RemoveMessageModal-029b1c86.js.map +0 -1
- package/cjs/ThreadProvider-9dfc3ad5.js.map +0 -1
- package/cjs/VoiceMessageInputWrapper-953affee.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-117c3ffb.js.map +0 -1
- package/cjs/index-0599b6f2.js.map +0 -1
- package/cjs/index-2413bae4.js.map +0 -1
- package/cjs/index-2d4ea9ad.js.map +0 -1
- package/cjs/index-464461c9.js.map +0 -1
- package/cjs/index-b64ce51a.js.map +0 -1
- package/cjs/types-79ca7893.js.map +0 -1
- package/index-2969a2df.js.map +0 -1
- package/index-39eeabbb.js.map +0 -1
- package/index-3f6516a2.js.map +0 -1
- package/index-8017e2b5.js.map +0 -1
- package/index-d16a8084.js.map +0 -1
- package/types-3826bbff.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
2
|
import DOMPurify from 'dompurify';
|
|
3
|
-
import { M as MENTION_USER_LABEL_CLASSNAME } from './consts-
|
|
4
|
-
import { T as TEXT_MESSAGE_BODY_CLASSNAME } from './consts-
|
|
5
|
-
import { O as OG_MESSAGE_BODY_CLASSNAME } from './consts-
|
|
3
|
+
import { M as MENTION_USER_LABEL_CLASSNAME } from './consts-bd684c8d.js';
|
|
4
|
+
import { T as TEXT_MESSAGE_BODY_CLASSNAME } from './consts-a979689d.js';
|
|
5
|
+
import { O as OG_MESSAGE_BODY_CLASSNAME } from './consts-aad4bf65.js';
|
|
6
6
|
|
|
7
7
|
// cretes a sanitized string from a mention user label
|
|
8
8
|
function renderToString(_ref) {
|
|
@@ -218,4 +218,4 @@ function usePaste(_ref) {
|
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
export { nodeListToArray as n, renderToString as r, sanitizeString as s, usePaste as u };
|
|
221
|
-
//# sourceMappingURL=index-
|
|
221
|
+
//# sourceMappingURL=index-2d23ff73.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-2d23ff73.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","_ref","userId","nickname","el","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","sanitized","join","sanitizeString","str","replace","i","concat","charCodeAt","nodeListToArray","childNodes","Array","from","error","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","_mentionNode$dataset","dataset","userid","getUsersFromWords","channel","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,5 +1,5 @@
|
|
|
1
1
|
import { useRef, useEffect, useCallback } from 'react';
|
|
2
|
-
import { S as SCROLL_BUFFER } from './consts-
|
|
2
|
+
import { S as SCROLL_BUFFER } from './consts-439d56b4.js';
|
|
3
3
|
|
|
4
4
|
function useDebounce(callback, delay) {
|
|
5
5
|
const timeoutRef = useRef(null);
|
|
@@ -73,4 +73,4 @@ function useHandleOnScrollCallback(_ref) {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
export { useHandleOnScrollCallback as a, useDebounce as u };
|
|
76
|
-
//# sourceMappingURL=index-
|
|
76
|
+
//# sourceMappingURL=index-320a1756.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-320a1756.js","sources":["../src/hooks/useDebounce.ts","../src/hooks/useHandleOnScrollCallback/index.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nexport function useDebounce<T extends(...args: any[]) => void>(callback: T, delay: number): T {\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n // Cleanup the timeout on unmount\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n function debounceFunction(...args: Parameters<T>) {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n callback(...args);\n }, delay);\n }\n\n return debounceFunction as T;\n}\n","import React, { useCallback } from 'react';\nimport { SCROLL_BUFFER } from '../../utils/consts';\nimport { useDebounce } from '../useDebounce';\n\nconst DELAY = 500;\n\nexport interface UseHandleOnScrollCallbackProps {\n hasMore: boolean;\n hasNext?: boolean;\n onScroll(callback: () => void): void;\n scrollRef: React.RefObject<HTMLDivElement>;\n setShowScrollDownButton?: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport function calcScrollBottom(scrollHeight: number, scrollTop: number): number {\n return scrollHeight - scrollTop;\n}\n\nexport function useHandleOnScrollCallback({\n hasMore,\n hasNext,\n onScroll,\n scrollRef,\n setShowScrollDownButton,\n}: UseHandleOnScrollCallbackProps): () => void {\n const scrollCb = useCallback(() => {\n const element = scrollRef?.current;\n if (element == null) {\n return;\n }\n\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n } = element;\n // https://sendbird.atlassian.net/browse/SBISSUE-11759\n // the edge case where channel is inside a page that already has scroll\n // scrollintoView will move the whole page, which we dont want\n const scrollBottom = calcScrollBottom(scrollHeight, scrollTop);\n // even if there is more to fetch or not,\n // we still have to show the scroll to bottom button\n if (typeof setShowScrollDownButton === 'function') {\n setShowScrollDownButton(scrollHeight > scrollTop + clientHeight + 1);\n }\n if (hasMore && scrollTop < SCROLL_BUFFER) {\n onScroll(() => {\n // sets the scroll position to the bottom of the new messages\n element.scrollTop = element.scrollHeight - scrollBottom;\n });\n }\n if (hasNext) {\n onScroll(() => {\n // sets the scroll position to the top of the new messages\n element.scrollTop = scrollTop - (scrollHeight - element.scrollHeight);\n });\n }\n }, [\n setShowScrollDownButton,\n hasMore,\n onScroll,\n scrollRef,\n ]);\n\n return useDebounce(scrollCb, DELAY);\n}\n"],"names":["useDebounce","callback","delay","timeoutRef","useRef","useEffect","current","clearTimeout","debounceFunction","_len","arguments","length","args","Array","_key","setTimeout","DELAY","calcScrollBottom","scrollHeight","scrollTop","useHandleOnScrollCallback","_ref","hasMore","hasNext","onScroll","scrollRef","setShowScrollDownButton","scrollCb","useCallback","element","clientHeight","scrollBottom","SCROLL_BUFFER"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as requiredArgs, t as toDate } from './index-
|
|
1
|
+
import { r as requiredArgs, t as toDate } from './index-1833cc50.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @name startOfDay
|
|
@@ -63,4 +63,4 @@ function isSameDay(dirtyDateLeft, dirtyDateRight) {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
export { isSameDay as i };
|
|
66
|
-
//# sourceMappingURL=index-
|
|
66
|
+
//# sourceMappingURL=index-3370a58d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-3370a58d.js","sources":["../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/isSameDay/index.js"],"sourcesContent":["import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}"],"names":[],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,UAAU,CAAC,SAAS,EAAE;AAC9C,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC7B,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC/B,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,EAAE,OAAO,IAAI,CAAC;AACd;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,SAAS,CAAC,aAAa,EAAE,cAAc,EAAE;AACjE,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC7B,EAAE,IAAI,kBAAkB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;AACrD,EAAE,IAAI,mBAAmB,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AACvD,EAAE,OAAO,kBAAkB,CAAC,OAAO,EAAE,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;AACxE;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React__default, { useState } from 'react';
|
|
2
2
|
import ContextMenu, { MenuItems, MenuItem } from './ui/ContextMenu.js';
|
|
3
|
-
import {
|
|
4
|
-
import { u as useLocalization } from './LocalizationContext-
|
|
3
|
+
import { w as isUserMessage, F as isSentMessage, G as isFailedMessage, H as isPendingMessage, p as isFileMessage, d as isVoiceMessage, R as isThreadMessage, I as copyToClipboard, J as getEmojiListAll } from './index-c323f04b.js';
|
|
4
|
+
import { u as useLocalization } from './LocalizationContext-c9b218d4.js';
|
|
5
5
|
import Icon, { IconTypes, IconColors } from './ui/Icon.js';
|
|
6
|
-
import { L as Label, a as LabelTypography, b as LabelColors } from './index-
|
|
6
|
+
import { L as Label, a as LabelTypography, b as LabelColors } from './index-fa19fef7.js';
|
|
7
7
|
import BottomSheet from './ui/BottomSheet.js';
|
|
8
8
|
import ImageRenderer from './ui/ImageRenderer.js';
|
|
9
9
|
import ReactionButton from './ui/ReactionButton.js';
|
|
@@ -447,4 +447,4 @@ const MobileMenu = props => {
|
|
|
447
447
|
};
|
|
448
448
|
|
|
449
449
|
export { MobileMenu as M };
|
|
450
|
-
//# sourceMappingURL=index-
|
|
450
|
+
//# sourceMappingURL=index-373d3069.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-f1d37762.js","sources":["../src/ui/MobileMenu/MobileContextMenu.tsx","../src/ui/MobileMenu/MobileBottomSheet.tsx","../src/ui/MobileMenu/index.tsx"],"sourcesContent":["import React from 'react';\nimport type { BaseMenuProps } from './types';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\n\nimport {\n isFailedMessage,\n isPendingMessage,\n isSentMessage,\n isUserMessage,\n copyToClipboard,\n isFileMessage,\n isThreadMessage,\n isVoiceMessage,\n} from '../../utils';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\n\nconst MobileContextMenu: React.FunctionComponent<BaseMenuProps> = (props: BaseMenuProps): React.ReactElement => {\n const {\n hideMenu,\n channel,\n message,\n replyType,\n userId,\n resendMessage,\n showEdit,\n showRemove,\n deleteMenuState,\n setQuoteMessage,\n parentRef,\n onReplyInThread,\n isOpenedFromThread = false,\n } = props;\n const isByMe = message?.sender?.userId === userId;\n const { stringSet } = useLocalization();\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemDeleteByState = isByMe && (deleteMenuState === undefined || deleteMenuState !== 'HIDE');\n const showMenuItemDeleteFinal = showMenuItemDeleteByState && showMenuItemDelete;\n\n const disableDelete = (\n (deleteMenuState !== undefined && deleteMenuState === 'DISABLE')\n || (message?.threadInfo?.replyCount ?? 0) > 0\n );\n\n const showMenuItemDownload: boolean = !isPendingMessage(message) && isFileMessage(message)\n && !(isVoiceMessage(message) && ((channel as GroupChannel)?.isSuper || (channel as GroupChannel)?.isBroadcast));\n const showMenuItemReply: boolean = (replyType === 'QUOTE_REPLY')\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && channel?.isGroupChannel();\n const showMenuItemThread: boolean = (replyType === 'THREAD') && !isOpenedFromThread\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && !isThreadMessage(message)\n && channel?.isGroupChannel();\n\n const fileMessage = message as FileMessage;\n return (\n <ContextMenu\n isOpen\n menuItems={() => (\n <MenuItems\n className=\"sendbird-message__mobile-context-menu\"\n parentRef={parentRef}\n parentContainRef={parentRef}\n closeDropdown={hideMenu}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-copy\"\n onClick={() => {\n hideMenu();\n copyToClipboard((message as UserMessage)?.message);\n }}\n dataSbId=\"ui_mobile_message_item_menu_copy\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet?.MESSAGE_MENU__COPY}\n </Label>\n <Icon\n type={IconTypes.COPY}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-reply\"\n onClick={() => {\n hideMenu();\n setQuoteMessage(message);\n }}\n disable={(message?.parentMessageId ?? 0) > 0}\n dataSbId=\"ui_mobile_message_item_menu_reply\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n (message?.parentMessageId ?? 0) > 0\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </Label>\n <Icon\n type={IconTypes.REPLY}\n fillColor={\n (message?.parentMessageId ?? 0) > 0\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-reply\"\n onClick={() => {\n hideMenu();\n onReplyInThread?.({ message });\n }}\n dataSbId=\"ui_mobile_message_item_menu_thread\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </Label>\n <Icon\n type={IconTypes.THREAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-edit\"\n onClick={() => {\n hideMenu();\n showEdit(true);\n }}\n dataSbId=\"ui_mobile_message_item_menu_edit\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </Label>\n <Icon\n type={IconTypes.EDIT}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-resend\"\n onClick={() => {\n hideMenu();\n resendMessage(message);\n }}\n dataSbId=\"ui_mobile_message_item_menu_resend\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </Label>\n <Icon\n type={IconTypes.REFRESH}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemDeleteFinal && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-delete\"\n onClick={() => {\n if (!disableDelete) {\n hideMenu();\n showRemove(true);\n }\n }}\n disable={disableDelete}\n dataSbId=\"ui_mobile_message_item_menu_delete\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n disableDelete\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </Label>\n <Icon\n type={IconTypes.DELETE}\n fillColor={\n disableDelete\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemDownload && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-save\"\n onClick={() => {\n hideMenu();\n }}\n dataSbId=\"ui_mobile_message_item_menu_download_file\"\n >\n <a\n className=\"sendbird-message__contextmenu--hyperlink\"\n rel=\"noopener noreferrer\"\n href={fileMessage?.url}\n target=\"_blank\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__SAVE}\n </Label>\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </a>\n </MenuItem>\n )}\n </MenuItems>\n )}\n />\n );\n};\n\nexport default MobileContextMenu;\n","import type { Emoji } from '@sendbird/chat';\nimport { FileMessage, Reaction, UserMessage } from '@sendbird/chat/message';\nimport React, { ReactElement, useState } from 'react';\n\nimport type { MobileBottomSheetProps } from './types';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\n\nimport {\n getEmojiListAll,\n isFailedMessage,\n isPendingMessage,\n isSentMessage,\n isUserMessage,\n copyToClipboard,\n isFileMessage,\n isVoiceMessage,\n isThreadMessage,\n} from '../../utils';\nimport BottomSheet from '../BottomSheet';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\n\nconst EMOJI_SIZE = 38;\n\nconst MobileBottomSheet: React.FunctionComponent<MobileBottomSheetProps> = (props: MobileBottomSheetProps) => {\n const {\n hideMenu,\n channel,\n emojiContainer,\n message,\n replyType,\n userId,\n resendMessage,\n toggleReaction,\n isReactionEnabled,\n showEdit,\n showRemove,\n deleteMenuState,\n setQuoteMessage,\n onReplyInThread,\n isOpenedFromThread = false,\n } = props;\n const isByMe = message?.sender?.userId === userId;\n const { stringSet } = useLocalization();\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemDeleteByState = isByMe && (deleteMenuState === undefined || deleteMenuState !== 'HIDE');\n const showMenuItemDeleteFinal = showMenuItemDeleteByState && showMenuItemDelete;\n\n const disableDelete = (\n (deleteMenuState !== undefined && deleteMenuState === 'DISABLE')\n || (message?.threadInfo?.replyCount ?? 0) > 0\n );\n\n const showMenuItemDownload: boolean = !isPendingMessage(message) && isFileMessage(message) && !isVoiceMessage(message);\n const showReaction: boolean = !isFailedMessage(message) && !isPendingMessage(message) && isReactionEnabled;\n const showMenuItemReply: boolean = (replyType === 'QUOTE_REPLY')\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel() && !(channel as GroupChannel)?.isBroadcast);\n const showMenuItemThread: boolean = (replyType === 'THREAD') && !isOpenedFromThread\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && !isThreadMessage(message)\n && (channel?.isGroupChannel() && !(channel as GroupChannel)?.isBroadcast);\n const disableReaction = message?.parentMessageId > 0;\n\n const fileMessage = message as FileMessage;\n const maxEmojisPerRow = Math.floor(window.innerWidth / EMOJI_SIZE) - 1;\n const [showEmojisOnly, setShowEmojisOnly] = useState<boolean>(false);\n const emojis = getEmojiListAll(emojiContainer);\n // calculate max emojis that can be shown in screen\n const visibleEmojis = showEmojisOnly\n ? emojis\n : emojis?.slice(0, maxEmojisPerRow);\n const canShowMoreEmojis = emojis.length > maxEmojisPerRow;\n return (\n <BottomSheet onBackdropClick={hideMenu}>\n <div className='sendbird-message__bottomsheet'>\n {\n showReaction && (\n <div className='sendbird-message__bottomsheet-reactions'>\n <ul\n className=\"sendbird-message__bottomsheet-reaction-bar\"\n >\n <div\n className={`\n sendbird-message__bottomsheet-reaction-bar__row\n ${showEmojisOnly ? 'sendbird-message__bottomsheet-reaction-bar__all' : ''}\n `}\n >\n {visibleEmojis.map((emoji: Emoji): React.ReactElement => {\n const isReacted: boolean = message?.reactions\n ?.filter((reaction: Reaction): boolean => reaction.key === emoji.key)[0]\n ?.userIds\n ?.some((reactorId: string): boolean => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width={`${EMOJI_SIZE}px`}\n height={`${EMOJI_SIZE}px`}\n selected={isReacted}\n onClick={(): void => {\n hideMenu();\n toggleReaction(message, emoji.key, isReacted);\n }}\n dataSbId={`ui_mobile_emoji_reactions_menu_${emoji.key}`}\n >\n <ImageRenderer\n url={emoji?.url || ''}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style: Record<string, unknown>): ReactElement => (\n <div style={style}>\n <Icon\n type={IconTypes.QUESTION}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n );\n })}\n {\n canShowMoreEmojis && !showEmojisOnly && (\n <ReactionButton\n key=\"emoji_more\"\n width=\"38px\"\n height=\"38px\"\n onClick={(): void => {\n setShowEmojisOnly(true);\n }}\n dataSbId=\"ui_mobile_emoji_reactions_menu_emojiadd\"\n >\n <ImageRenderer\n url={''}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style: Record<string, unknown>): React.ReactElement => (\n <div style={style}>\n <Icon\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n )\n }\n </div>\n </ul>\n </div>\n )\n }\n {\n !showEmojisOnly && (\n <div className='sendbird-message__bottomsheet--actions'>\n {showMenuItemCopy && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n copyToClipboard((message as UserMessage)?.message);\n }}\n >\n <Icon\n type={IconTypes.COPY}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__COPY}\n </Label>\n </div>\n )}\n {\n showMenuItemEdit && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n showEdit(true);\n }}\n >\n <Icon\n type={IconTypes.EDIT}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__EDIT}\n </Label>\n </div>\n )\n }\n {\n showMenuItemResend && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n resendMessage(message);\n }}\n >\n <Icon\n type={IconTypes.REFRESH}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__RESEND}\n </Label>\n </div>\n )\n }\n {\n showMenuItemReply && (\n <div\n className={`sendbird-message__bottomsheet--action\n ${disableReaction ? 'sendbird-message__bottomsheet--action-disabled' : ''}\n `}\n role=\"menuitem\"\n aria-disabled={disableReaction ? true : false}\n onClick={() => {\n if (!disableReaction) {\n hideMenu();\n setQuoteMessage(message);\n }\n }}\n >\n <Icon\n type={IconTypes.REPLY}\n fillColor={disableReaction\n ? IconColors.ON_BACKGROUND_3\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={disableReaction ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_1}\n >\n {stringSet?.MESSAGE_MENU__REPLY}\n </Label>\n </div>\n )\n }\n {showMenuItemThread && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n onReplyInThread?.({ message });\n }}\n >\n <Icon\n type={IconTypes.THREAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet.MESSAGE_MENU__THREAD}\n </Label>\n </div>\n )}\n {\n showMenuItemDeleteFinal && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n if (!disableDelete) {\n hideMenu();\n showRemove?.(true);\n }\n }}\n >\n <Icon\n type={IconTypes.DELETE}\n fillColor={\n disableDelete\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n disableDelete\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet?.MESSAGE_MENU__DELETE}\n </Label>\n </div>\n )\n }\n {\n showMenuItemDownload && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n }}\n >\n <a\n className=\"sendbird-message__bottomsheet--hyperlink\"\n rel=\"noopener noreferrer\"\n href={fileMessage?.url}\n target=\"_blank\"\n >\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__SAVE}\n </Label>\n </a>\n </div>\n )\n }\n </div>\n )\n }\n </div>\n </BottomSheet>\n );\n};\n\nexport default MobileBottomSheet;\n","import './mobile-menu.scss';\n\nimport React from 'react';\nimport MobileContextMenu from './MobileContextMenu';\nimport MobileBottomSheet from './MobileBottomSheet';\nimport type { MobileBottomSheetProps } from './types';\n\nconst MobileMenu: React.FC<MobileBottomSheetProps> = (props: MobileBottomSheetProps) => {\n const {\n message,\n hideMenu,\n userId,\n channel,\n isReactionEnabled = false,\n isByMe,\n replyType,\n disabled,\n deleteMenuState,\n showRemove,\n showEdit,\n resendMessage,\n setQuoteMessage,\n emojiContainer,\n toggleReaction,\n parentRef,\n onReplyInThread,\n isOpenedFromThread,\n } = props;\n return (\n <>\n {\n isReactionEnabled\n ? (\n <MobileBottomSheet\n channel={channel}\n message={message}\n hideMenu={hideMenu}\n isByMe={isByMe}\n userId={userId}\n replyType={replyType}\n disabled={disabled}\n showRemove={showRemove}\n showEdit={showEdit}\n deleteMenuState={deleteMenuState}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n emojiContainer={emojiContainer}\n toggleReaction={toggleReaction}\n isReactionEnabled={isReactionEnabled}\n onReplyInThread={onReplyInThread}\n isOpenedFromThread={isOpenedFromThread}\n />\n ) : (\n <MobileContextMenu\n channel={channel}\n userId={userId}\n message={message}\n hideMenu={hideMenu}\n isByMe={isByMe}\n showEdit={showEdit}\n replyType={replyType}\n disabled={disabled}\n deleteMenuState={deleteMenuState}\n showRemove={showRemove}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n parentRef={parentRef}\n onReplyInThread={onReplyInThread}\n isOpenedFromThread={isOpenedFromThread}\n />\n )\n }\n </>\n );\n};\n\nexport default MobileMenu;\n"],"names":["MobileContextMenu","props","_message$sender","_message$threadInfo$r","_message$threadInfo","hideMenu","channel","message","replyType","userId","resendMessage","showEdit","showRemove","deleteMenuState","setQuoteMessage","parentRef","onReplyInThread","isOpenedFromThread","isByMe","sender","stringSet","useLocalization","showMenuItemCopy","isUserMessage","showMenuItemEdit","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemDeleteByState","undefined","showMenuItemDeleteFinal","disableDelete","threadInfo","replyCount","showMenuItemDownload","isFileMessage","isVoiceMessage","isSuper","isBroadcast","showMenuItemReply","isGroupChannel","showMenuItemThread","isThreadMessage","fileMessage","React","createElement","ContextMenu","isOpen","menuItems","_message$parentMessag","_message$parentMessag2","_message$parentMessag3","MenuItems","className","parentContainRef","closeDropdown","MenuItem","onClick","copyToClipboard","dataSbId","Label","type","LabelTypography","SUBTITLE_1","color","LabelColors","ONBACKGROUND_1","MESSAGE_MENU__COPY","Icon","IconTypes","COPY","fillColor","IconColors","PRIMARY","width","height","disable","parentMessageId","ONBACKGROUND_4","MESSAGE_MENU__REPLY","REPLY","ON_BACKGROUND_4","MESSAGE_MENU__THREAD","THREAD","MESSAGE_MENU__EDIT","EDIT","MESSAGE_MENU__RESEND","REFRESH","MESSAGE_MENU__DELETE","DELETE","rel","href","url","target","MESSAGE_MENU__SAVE","DOWNLOAD","EMOJI_SIZE","MobileBottomSheet","emojiContainer","toggleReaction","isReactionEnabled","showReaction","disableReaction","maxEmojisPerRow","Math","floor","window","innerWidth","showEmojisOnly","setShowEmojisOnly","useState","emojis","getEmojiListAll","visibleEmojis","slice","canShowMoreEmojis","length","BottomSheet","onBackdropClick","map","emoji","_message$reactions","_message$reactions$fi","_message$reactions$fi2","isReacted","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","ImageRenderer","placeHolder","style","QUESTION","ON_BACKGROUND_3","EMOJI_MORE","role","MobileMenu","disabled","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-373d3069.js","sources":["../src/ui/MobileMenu/MobileContextMenu.tsx","../src/ui/MobileMenu/MobileBottomSheet.tsx","../src/ui/MobileMenu/index.tsx"],"sourcesContent":["import React from 'react';\nimport type { BaseMenuProps } from './types';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\n\nimport {\n isFailedMessage,\n isPendingMessage,\n isSentMessage,\n isUserMessage,\n copyToClipboard,\n isFileMessage,\n isThreadMessage,\n isVoiceMessage,\n} from '../../utils';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\n\nconst MobileContextMenu: React.FunctionComponent<BaseMenuProps> = (props: BaseMenuProps): React.ReactElement => {\n const {\n hideMenu,\n channel,\n message,\n replyType,\n userId,\n resendMessage,\n showEdit,\n showRemove,\n deleteMenuState,\n setQuoteMessage,\n parentRef,\n onReplyInThread,\n isOpenedFromThread = false,\n } = props;\n const isByMe = message?.sender?.userId === userId;\n const { stringSet } = useLocalization();\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemDeleteByState = isByMe && (deleteMenuState === undefined || deleteMenuState !== 'HIDE');\n const showMenuItemDeleteFinal = showMenuItemDeleteByState && showMenuItemDelete;\n\n const disableDelete = (\n (deleteMenuState !== undefined && deleteMenuState === 'DISABLE')\n || (message?.threadInfo?.replyCount ?? 0) > 0\n );\n\n const showMenuItemDownload: boolean = !isPendingMessage(message) && isFileMessage(message)\n && !(isVoiceMessage(message) && ((channel as GroupChannel)?.isSuper || (channel as GroupChannel)?.isBroadcast));\n const showMenuItemReply: boolean = (replyType === 'QUOTE_REPLY')\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && channel?.isGroupChannel();\n const showMenuItemThread: boolean = (replyType === 'THREAD') && !isOpenedFromThread\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && !isThreadMessage(message)\n && channel?.isGroupChannel();\n\n const fileMessage = message as FileMessage;\n return (\n <ContextMenu\n isOpen\n menuItems={() => (\n <MenuItems\n className=\"sendbird-message__mobile-context-menu\"\n parentRef={parentRef}\n parentContainRef={parentRef}\n closeDropdown={hideMenu}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-copy\"\n onClick={() => {\n hideMenu();\n copyToClipboard((message as UserMessage)?.message);\n }}\n dataSbId=\"ui_mobile_message_item_menu_copy\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet?.MESSAGE_MENU__COPY}\n </Label>\n <Icon\n type={IconTypes.COPY}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-reply\"\n onClick={() => {\n hideMenu();\n setQuoteMessage(message);\n }}\n disable={(message?.parentMessageId ?? 0) > 0}\n dataSbId=\"ui_mobile_message_item_menu_reply\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n (message?.parentMessageId ?? 0) > 0\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </Label>\n <Icon\n type={IconTypes.REPLY}\n fillColor={\n (message?.parentMessageId ?? 0) > 0\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-reply\"\n onClick={() => {\n hideMenu();\n onReplyInThread?.({ message });\n }}\n dataSbId=\"ui_mobile_message_item_menu_thread\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </Label>\n <Icon\n type={IconTypes.THREAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-edit\"\n onClick={() => {\n hideMenu();\n showEdit(true);\n }}\n dataSbId=\"ui_mobile_message_item_menu_edit\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </Label>\n <Icon\n type={IconTypes.EDIT}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-resend\"\n onClick={() => {\n hideMenu();\n resendMessage(message);\n }}\n dataSbId=\"ui_mobile_message_item_menu_resend\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </Label>\n <Icon\n type={IconTypes.REFRESH}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemDeleteFinal && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-delete\"\n onClick={() => {\n if (!disableDelete) {\n hideMenu();\n showRemove(true);\n }\n }}\n disable={disableDelete}\n dataSbId=\"ui_mobile_message_item_menu_delete\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n disableDelete\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </Label>\n <Icon\n type={IconTypes.DELETE}\n fillColor={\n disableDelete\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemDownload && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-save\"\n onClick={() => {\n hideMenu();\n }}\n dataSbId=\"ui_mobile_message_item_menu_download_file\"\n >\n <a\n className=\"sendbird-message__contextmenu--hyperlink\"\n rel=\"noopener noreferrer\"\n href={fileMessage?.url}\n target=\"_blank\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__SAVE}\n </Label>\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </a>\n </MenuItem>\n )}\n </MenuItems>\n )}\n />\n );\n};\n\nexport default MobileContextMenu;\n","import type { Emoji } from '@sendbird/chat';\nimport { FileMessage, Reaction, UserMessage } from '@sendbird/chat/message';\nimport React, { ReactElement, useState } from 'react';\n\nimport type { MobileBottomSheetProps } from './types';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\n\nimport {\n getEmojiListAll,\n isFailedMessage,\n isPendingMessage,\n isSentMessage,\n isUserMessage,\n copyToClipboard,\n isFileMessage,\n isVoiceMessage,\n isThreadMessage,\n} from '../../utils';\nimport BottomSheet from '../BottomSheet';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\n\nconst EMOJI_SIZE = 38;\n\nconst MobileBottomSheet: React.FunctionComponent<MobileBottomSheetProps> = (props: MobileBottomSheetProps) => {\n const {\n hideMenu,\n channel,\n emojiContainer,\n message,\n replyType,\n userId,\n resendMessage,\n toggleReaction,\n isReactionEnabled,\n showEdit,\n showRemove,\n deleteMenuState,\n setQuoteMessage,\n onReplyInThread,\n isOpenedFromThread = false,\n } = props;\n const isByMe = message?.sender?.userId === userId;\n const { stringSet } = useLocalization();\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemDeleteByState = isByMe && (deleteMenuState === undefined || deleteMenuState !== 'HIDE');\n const showMenuItemDeleteFinal = showMenuItemDeleteByState && showMenuItemDelete;\n\n const disableDelete = (\n (deleteMenuState !== undefined && deleteMenuState === 'DISABLE')\n || (message?.threadInfo?.replyCount ?? 0) > 0\n );\n\n const showMenuItemDownload: boolean = !isPendingMessage(message) && isFileMessage(message) && !isVoiceMessage(message);\n const showReaction: boolean = !isFailedMessage(message) && !isPendingMessage(message) && isReactionEnabled;\n const showMenuItemReply: boolean = (replyType === 'QUOTE_REPLY')\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel() && !(channel as GroupChannel)?.isBroadcast);\n const showMenuItemThread: boolean = (replyType === 'THREAD') && !isOpenedFromThread\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && !isThreadMessage(message)\n && (channel?.isGroupChannel() && !(channel as GroupChannel)?.isBroadcast);\n const disableReaction = message?.parentMessageId > 0;\n\n const fileMessage = message as FileMessage;\n const maxEmojisPerRow = Math.floor(window.innerWidth / EMOJI_SIZE) - 1;\n const [showEmojisOnly, setShowEmojisOnly] = useState<boolean>(false);\n const emojis = getEmojiListAll(emojiContainer);\n // calculate max emojis that can be shown in screen\n const visibleEmojis = showEmojisOnly\n ? emojis\n : emojis?.slice(0, maxEmojisPerRow);\n const canShowMoreEmojis = emojis.length > maxEmojisPerRow;\n return (\n <BottomSheet onBackdropClick={hideMenu}>\n <div className='sendbird-message__bottomsheet'>\n {\n showReaction && (\n <div className='sendbird-message__bottomsheet-reactions'>\n <ul\n className=\"sendbird-message__bottomsheet-reaction-bar\"\n >\n <div\n className={`\n sendbird-message__bottomsheet-reaction-bar__row\n ${showEmojisOnly ? 'sendbird-message__bottomsheet-reaction-bar__all' : ''}\n `}\n >\n {visibleEmojis.map((emoji: Emoji): React.ReactElement => {\n const isReacted: boolean = message?.reactions\n ?.filter((reaction: Reaction): boolean => reaction.key === emoji.key)[0]\n ?.userIds\n ?.some((reactorId: string): boolean => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width={`${EMOJI_SIZE}px`}\n height={`${EMOJI_SIZE}px`}\n selected={isReacted}\n onClick={(): void => {\n hideMenu();\n toggleReaction(message, emoji.key, isReacted);\n }}\n dataSbId={`ui_mobile_emoji_reactions_menu_${emoji.key}`}\n >\n <ImageRenderer\n url={emoji?.url || ''}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style: Record<string, unknown>): ReactElement => (\n <div style={style}>\n <Icon\n type={IconTypes.QUESTION}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n );\n })}\n {\n canShowMoreEmojis && !showEmojisOnly && (\n <ReactionButton\n key=\"emoji_more\"\n width=\"38px\"\n height=\"38px\"\n onClick={(): void => {\n setShowEmojisOnly(true);\n }}\n dataSbId=\"ui_mobile_emoji_reactions_menu_emojiadd\"\n >\n <ImageRenderer\n url={''}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style: Record<string, unknown>): React.ReactElement => (\n <div style={style}>\n <Icon\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n )\n }\n </div>\n </ul>\n </div>\n )\n }\n {\n !showEmojisOnly && (\n <div className='sendbird-message__bottomsheet--actions'>\n {showMenuItemCopy && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n copyToClipboard((message as UserMessage)?.message);\n }}\n >\n <Icon\n type={IconTypes.COPY}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__COPY}\n </Label>\n </div>\n )}\n {\n showMenuItemEdit && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n showEdit(true);\n }}\n >\n <Icon\n type={IconTypes.EDIT}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__EDIT}\n </Label>\n </div>\n )\n }\n {\n showMenuItemResend && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n resendMessage(message);\n }}\n >\n <Icon\n type={IconTypes.REFRESH}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__RESEND}\n </Label>\n </div>\n )\n }\n {\n showMenuItemReply && (\n <div\n className={`sendbird-message__bottomsheet--action\n ${disableReaction ? 'sendbird-message__bottomsheet--action-disabled' : ''}\n `}\n role=\"menuitem\"\n aria-disabled={disableReaction ? true : false}\n onClick={() => {\n if (!disableReaction) {\n hideMenu();\n setQuoteMessage(message);\n }\n }}\n >\n <Icon\n type={IconTypes.REPLY}\n fillColor={disableReaction\n ? IconColors.ON_BACKGROUND_3\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={disableReaction ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_1}\n >\n {stringSet?.MESSAGE_MENU__REPLY}\n </Label>\n </div>\n )\n }\n {showMenuItemThread && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n onReplyInThread?.({ message });\n }}\n >\n <Icon\n type={IconTypes.THREAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet.MESSAGE_MENU__THREAD}\n </Label>\n </div>\n )}\n {\n showMenuItemDeleteFinal && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n if (!disableDelete) {\n hideMenu();\n showRemove?.(true);\n }\n }}\n >\n <Icon\n type={IconTypes.DELETE}\n fillColor={\n disableDelete\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n disableDelete\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet?.MESSAGE_MENU__DELETE}\n </Label>\n </div>\n )\n }\n {\n showMenuItemDownload && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n }}\n >\n <a\n className=\"sendbird-message__bottomsheet--hyperlink\"\n rel=\"noopener noreferrer\"\n href={fileMessage?.url}\n target=\"_blank\"\n >\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__SAVE}\n </Label>\n </a>\n </div>\n )\n }\n </div>\n )\n }\n </div>\n </BottomSheet>\n );\n};\n\nexport default MobileBottomSheet;\n","import './mobile-menu.scss';\n\nimport React from 'react';\nimport MobileContextMenu from './MobileContextMenu';\nimport MobileBottomSheet from './MobileBottomSheet';\nimport type { MobileBottomSheetProps } from './types';\n\nconst MobileMenu: React.FC<MobileBottomSheetProps> = (props: MobileBottomSheetProps) => {\n const {\n message,\n hideMenu,\n userId,\n channel,\n isReactionEnabled = false,\n isByMe,\n replyType,\n disabled,\n deleteMenuState,\n showRemove,\n showEdit,\n resendMessage,\n setQuoteMessage,\n emojiContainer,\n toggleReaction,\n parentRef,\n onReplyInThread,\n isOpenedFromThread,\n } = props;\n return (\n <>\n {\n isReactionEnabled\n ? (\n <MobileBottomSheet\n channel={channel}\n message={message}\n hideMenu={hideMenu}\n isByMe={isByMe}\n userId={userId}\n replyType={replyType}\n disabled={disabled}\n showRemove={showRemove}\n showEdit={showEdit}\n deleteMenuState={deleteMenuState}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n emojiContainer={emojiContainer}\n toggleReaction={toggleReaction}\n isReactionEnabled={isReactionEnabled}\n onReplyInThread={onReplyInThread}\n isOpenedFromThread={isOpenedFromThread}\n />\n ) : (\n <MobileContextMenu\n channel={channel}\n userId={userId}\n message={message}\n hideMenu={hideMenu}\n isByMe={isByMe}\n showEdit={showEdit}\n replyType={replyType}\n disabled={disabled}\n deleteMenuState={deleteMenuState}\n showRemove={showRemove}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n parentRef={parentRef}\n onReplyInThread={onReplyInThread}\n isOpenedFromThread={isOpenedFromThread}\n />\n )\n }\n </>\n );\n};\n\nexport default MobileMenu;\n"],"names":["MobileContextMenu","props","_message$sender","_message$threadInfo$r","_message$threadInfo","hideMenu","channel","message","replyType","userId","resendMessage","showEdit","showRemove","deleteMenuState","setQuoteMessage","parentRef","onReplyInThread","isOpenedFromThread","isByMe","sender","stringSet","useLocalization","showMenuItemCopy","isUserMessage","showMenuItemEdit","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemDeleteByState","undefined","showMenuItemDeleteFinal","disableDelete","threadInfo","replyCount","showMenuItemDownload","isFileMessage","isVoiceMessage","isSuper","isBroadcast","showMenuItemReply","isGroupChannel","showMenuItemThread","isThreadMessage","fileMessage","React","createElement","ContextMenu","isOpen","menuItems","_message$parentMessag","_message$parentMessag2","_message$parentMessag3","MenuItems","className","parentContainRef","closeDropdown","MenuItem","onClick","copyToClipboard","dataSbId","Label","type","LabelTypography","SUBTITLE_1","color","LabelColors","ONBACKGROUND_1","MESSAGE_MENU__COPY","Icon","IconTypes","COPY","fillColor","IconColors","PRIMARY","width","height","disable","parentMessageId","ONBACKGROUND_4","MESSAGE_MENU__REPLY","REPLY","ON_BACKGROUND_4","MESSAGE_MENU__THREAD","THREAD","MESSAGE_MENU__EDIT","EDIT","MESSAGE_MENU__RESEND","REFRESH","MESSAGE_MENU__DELETE","DELETE","rel","href","url","target","MESSAGE_MENU__SAVE","DOWNLOAD","EMOJI_SIZE","MobileBottomSheet","emojiContainer","toggleReaction","isReactionEnabled","showReaction","disableReaction","maxEmojisPerRow","Math","floor","window","innerWidth","showEmojisOnly","setShowEmojisOnly","useState","emojis","getEmojiListAll","visibleEmojis","slice","canShowMoreEmojis","length","BottomSheet","onBackdropClick","map","emoji","_message$reactions","_message$reactions$fi","_message$reactions$fi2","isReacted","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","ImageRenderer","placeHolder","style","QUESTION","ON_BACKGROUND_3","EMOJI_MORE","role","MobileMenu","disabled","Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import React__default, { useMemo, useState } from 'react';
|
|
2
|
+
import Icon, { IconTypes, IconColors } from './ui/Icon.js';
|
|
3
|
+
import ImageRenderer from './ui/ImageRenderer.js';
|
|
4
|
+
import { m as getClassName, S as isGifFileInfo } from './index-c323f04b.js';
|
|
5
|
+
import { F as FileViewer } from './index-b346dc02.js';
|
|
6
|
+
import { u as useMediaQueryContext } from './MediaQueryContext-532b0a77.js';
|
|
7
|
+
import { K } from './index.module-efef0194.js';
|
|
8
|
+
|
|
9
|
+
function ImageGrid(_ref) {
|
|
10
|
+
var _message$reactions;
|
|
11
|
+
let {
|
|
12
|
+
children,
|
|
13
|
+
className,
|
|
14
|
+
message,
|
|
15
|
+
isReactionEnabled
|
|
16
|
+
} = _ref;
|
|
17
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
18
|
+
className: "sendbird-image-grid-wrap"
|
|
19
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
20
|
+
className: getClassName([className, 'sendbird-image-grid', isReactionEnabled && (message === null || message === void 0 ? void 0 : (_message$reactions = message.reactions) === null || _message$reactions === void 0 ? void 0 : _message$reactions.length) > 0 ? 'reactions' : ''])
|
|
21
|
+
}, children));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function useThreadMessageKindKeySelector(_ref) {
|
|
25
|
+
let {
|
|
26
|
+
threadMessageKind,
|
|
27
|
+
isMobile
|
|
28
|
+
} = _ref;
|
|
29
|
+
const threadMessageKindKey = useMemo(() => {
|
|
30
|
+
return K(threadMessageKind).with(ThreadMessageKind.PARENT, () => isMobile ? 'THREAD_PARENT_MOBILE' : 'THREAD_PARENT_WEB').with(ThreadMessageKind.CHILD, () => isMobile ? 'THREAD_CHILD_MOBILE' : 'THREAD_CHILD_WEB').otherwise(() => isMobile ? 'CHAT_MOBILE' : 'CHAT_WEB');
|
|
31
|
+
}, [isMobile, threadMessageKind]);
|
|
32
|
+
return threadMessageKindKey;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const GRID_WIDTH_CHAT_WEB = 400;
|
|
36
|
+
const GRID_SIDE_PADDING = 8;
|
|
37
|
+
const GRID_GAP = 4;
|
|
38
|
+
const TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN = 54;
|
|
39
|
+
const PROFILE_IMAGE_WIDTH = 40;
|
|
40
|
+
const CHAT_MOBILE_SIDE_PADDING = 48;
|
|
41
|
+
const THREAD_PARENT_WIDTH = 320;
|
|
42
|
+
const THREAD_PARENT_SIDE_PADDING = 28;
|
|
43
|
+
const THREAD_PARENT_GRID_MARGIN_LEFT = 12;
|
|
44
|
+
const THREAD_CHILD_WIDTH = 200;
|
|
45
|
+
const THREAD_CHILD_SIDE_PADDING = 8;
|
|
46
|
+
const THREAD_CHILD_MOBILE_SIDE_PADDING = 32;
|
|
47
|
+
const THREAD_CHILD_MOBILE_TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN = 60;
|
|
48
|
+
const MULTIPLE_FILES_IMAGE_SIDE_LENGTH = {
|
|
49
|
+
CHAT_WEB: `calc(${GRID_WIDTH_CHAT_WEB / 2}px - ${(GRID_SIDE_PADDING + GRID_GAP) / 2}px)`,
|
|
50
|
+
CHAT_MOBILE: `calc(50vw - ${(CHAT_MOBILE_SIDE_PADDING + PROFILE_IMAGE_WIDTH + TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN + GRID_SIDE_PADDING + GRID_GAP) / 2}px)`,
|
|
51
|
+
THREAD_PARENT_WEB: `calc(${(THREAD_PARENT_WIDTH - (THREAD_PARENT_SIDE_PADDING + PROFILE_IMAGE_WIDTH + THREAD_PARENT_GRID_MARGIN_LEFT + GRID_GAP)) / 2}px)`,
|
|
52
|
+
THREAD_PARENT_MOBILE: `calc(50vw - ${(THREAD_PARENT_SIDE_PADDING + PROFILE_IMAGE_WIDTH + THREAD_PARENT_GRID_MARGIN_LEFT + GRID_GAP) / 2}px)`,
|
|
53
|
+
THREAD_CHILD_WEB: `calc(${(THREAD_CHILD_WIDTH - THREAD_CHILD_SIDE_PADDING - GRID_GAP) / 2}px)`,
|
|
54
|
+
THREAD_CHILD_MOBILE: `calc(50vw - ${(THREAD_CHILD_MOBILE_SIDE_PADDING + PROFILE_IMAGE_WIDTH + THREAD_CHILD_MOBILE_TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN + GRID_SIDE_PADDING + GRID_GAP) / 2}px)`
|
|
55
|
+
};
|
|
56
|
+
const MULTIPLE_FILES_IMAGE_BORDER_RADIUS = {
|
|
57
|
+
CHAT_WEB: '6px',
|
|
58
|
+
CHAT_MOBILE: '6px',
|
|
59
|
+
THREAD_PARENT_WEB: '6px',
|
|
60
|
+
THREAD_PARENT_MOBILE: '6px',
|
|
61
|
+
THREAD_CHILD_WEB: '6px',
|
|
62
|
+
THREAD_CHILD_MOBILE: '6px'
|
|
63
|
+
};
|
|
64
|
+
const MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH = '40px';
|
|
65
|
+
|
|
66
|
+
const ThreadMessageKind = {
|
|
67
|
+
PARENT: 'parent',
|
|
68
|
+
CHILD: 'child'
|
|
69
|
+
};
|
|
70
|
+
function MultipleFilesMessageItemBody(_ref) {
|
|
71
|
+
let {
|
|
72
|
+
className,
|
|
73
|
+
message,
|
|
74
|
+
isReactionEnabled = false,
|
|
75
|
+
threadMessageKind
|
|
76
|
+
} = _ref;
|
|
77
|
+
const {
|
|
78
|
+
isMobile
|
|
79
|
+
} = useMediaQueryContext();
|
|
80
|
+
const [fileInfoList] = useState(message.fileInfoList);
|
|
81
|
+
const threadMessageKindKey = useThreadMessageKindKeySelector({
|
|
82
|
+
threadMessageKind,
|
|
83
|
+
isMobile
|
|
84
|
+
});
|
|
85
|
+
const [currentIndex, setCurrentIndex] = useState(-1);
|
|
86
|
+
function onClose() {
|
|
87
|
+
setCurrentIndex(-1);
|
|
88
|
+
}
|
|
89
|
+
function onClickLeft() {
|
|
90
|
+
setCurrentIndex(currentIndex === 0 ? fileInfoList.length - 1 : currentIndex - 1);
|
|
91
|
+
}
|
|
92
|
+
function onClickRight() {
|
|
93
|
+
setCurrentIndex(currentIndex === fileInfoList.length - 1 ? 0 : currentIndex + 1);
|
|
94
|
+
}
|
|
95
|
+
return threadMessageKindKey && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, currentIndex > -1 && /*#__PURE__*/React__default.createElement(FileViewer, {
|
|
96
|
+
message: message,
|
|
97
|
+
currentIndex: currentIndex,
|
|
98
|
+
onClickLeft: onClickLeft,
|
|
99
|
+
onClickRight: onClickRight,
|
|
100
|
+
onClose: onClose
|
|
101
|
+
}), /*#__PURE__*/React__default.createElement(ImageGrid, {
|
|
102
|
+
className: className,
|
|
103
|
+
message: message,
|
|
104
|
+
isReactionEnabled: isReactionEnabled
|
|
105
|
+
}, fileInfoList.map((fileInfo, index) => {
|
|
106
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
107
|
+
className: "sendbird-multiple-files-image-renderer-wrapper",
|
|
108
|
+
onClick: () => setCurrentIndex(index),
|
|
109
|
+
key: `sendbird-multiple-files-image-renderer-${index}-${fileInfo.plainUrl}`
|
|
110
|
+
}, /*#__PURE__*/React__default.createElement(ImageRenderer, {
|
|
111
|
+
url: fileInfo.url,
|
|
112
|
+
fixedSize: false,
|
|
113
|
+
width: MULTIPLE_FILES_IMAGE_SIDE_LENGTH[threadMessageKindKey],
|
|
114
|
+
maxSideLength: MULTIPLE_FILES_IMAGE_SIDE_LENGTH.CHAT_WEB,
|
|
115
|
+
height: MULTIPLE_FILES_IMAGE_SIDE_LENGTH[threadMessageKindKey],
|
|
116
|
+
borderRadius: MULTIPLE_FILES_IMAGE_BORDER_RADIUS[threadMessageKindKey],
|
|
117
|
+
shadeOnHover: true,
|
|
118
|
+
isGif: isGifFileInfo(fileInfo),
|
|
119
|
+
defaultComponent: /*#__PURE__*/React__default.createElement("div", {
|
|
120
|
+
className: "sendbird-multiple-files-image-renderer__thumbnail__placeholder"
|
|
121
|
+
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
122
|
+
type: IconTypes.THUMBNAIL_NONE,
|
|
123
|
+
fillColor: IconColors.ON_BACKGROUND_2,
|
|
124
|
+
width: MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH,
|
|
125
|
+
height: MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH
|
|
126
|
+
}))
|
|
127
|
+
}));
|
|
128
|
+
})));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export { MultipleFilesMessageItemBody as M, ThreadMessageKind as T };
|
|
132
|
+
//# sourceMappingURL=index-44d3dac3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-44d3dac3.js","sources":["../src/ui/ImageGrid/index.tsx","../src/ui/MultipleFilesMessageItemBody/useThreadMessageKindKeySelector.ts","../src/ui/MultipleFilesMessageItemBody/const.ts","../src/ui/MultipleFilesMessageItemBody/index.tsx"],"sourcesContent":["import React, { ReactElement } from 'react';\nimport './index.scss';\nimport { getClassName } from '../../utils';\nimport { MultipleFilesMessage } from '@sendbird/chat/message';\n\ninterface ImageGridProps {\n children: ReactElement[];\n className?: string;\n message: MultipleFilesMessage;\n isReactionEnabled?: boolean;\n}\n\nexport default function ImageGrid({\n children,\n className,\n message,\n isReactionEnabled,\n}: ImageGridProps): ReactElement {\n return (\n <div className='sendbird-image-grid-wrap'>\n <div className={getClassName([\n className,\n 'sendbird-image-grid',\n (isReactionEnabled && message?.reactions?.length > 0) ? 'reactions' : '',\n ])}>\n { children }\n </div>\n </div>\n );\n}\n","import { useMemo } from 'react';\nimport { ThreadMessageKind, ThreadMessageKindType } from './index';\nimport { match } from 'ts-pattern';\n\ninterface DynamicSideLengthProps {\n threadMessageKind: ThreadMessageKindType;\n isMobile: boolean;\n}\n\nexport function useThreadMessageKindKeySelector({\n threadMessageKind,\n isMobile,\n}: DynamicSideLengthProps): string {\n const threadMessageKindKey = useMemo(() => {\n return match(threadMessageKind)\n .with(ThreadMessageKind.PARENT, () => (isMobile\n ? 'THREAD_PARENT_MOBILE'\n : 'THREAD_PARENT_WEB'\n ))\n .with(ThreadMessageKind.CHILD, () => (isMobile\n ? 'THREAD_CHILD_MOBILE'\n : 'THREAD_CHILD_WEB'\n ))\n .otherwise(() => (isMobile\n ? 'CHAT_MOBILE'\n : 'CHAT_WEB'\n ));\n }, [isMobile, threadMessageKind]);\n return threadMessageKindKey;\n}\n","const GRID_WIDTH_CHAT_WEB = 400;\nconst GRID_SIDE_PADDING = 8;\nconst GRID_GAP = 4;\nconst TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN = 54;\nconst PROFILE_IMAGE_WIDTH = 40;\n\nconst CHAT_MOBILE_SIDE_PADDING = 48;\n\nconst THREAD_PARENT_WIDTH = 320;\nconst THREAD_PARENT_SIDE_PADDING = 28;\nconst THREAD_PARENT_GRID_MARGIN_LEFT = 12;\n\nconst THREAD_CHILD_WIDTH = 200;\nconst THREAD_CHILD_SIDE_PADDING = 8;\nconst THREAD_CHILD_MOBILE_SIDE_PADDING = 32;\nconst THREAD_CHILD_MOBILE_TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN = 60;\n\nexport const MULTIPLE_FILES_IMAGE_SIDE_LENGTH = {\n CHAT_WEB: `calc(${GRID_WIDTH_CHAT_WEB / 2}px - ${(GRID_SIDE_PADDING + GRID_GAP) / 2}px)`,\n CHAT_MOBILE: `calc(50vw - ${(CHAT_MOBILE_SIDE_PADDING + PROFILE_IMAGE_WIDTH + TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN + GRID_SIDE_PADDING + GRID_GAP) / 2}px)`,\n THREAD_PARENT_WEB: `calc(${(THREAD_PARENT_WIDTH - (THREAD_PARENT_SIDE_PADDING + PROFILE_IMAGE_WIDTH + THREAD_PARENT_GRID_MARGIN_LEFT + GRID_GAP)) / 2}px)`,\n THREAD_PARENT_MOBILE: `calc(50vw - ${(THREAD_PARENT_SIDE_PADDING + PROFILE_IMAGE_WIDTH + THREAD_PARENT_GRID_MARGIN_LEFT + GRID_GAP) / 2}px)`,\n THREAD_CHILD_WEB: `calc(${(THREAD_CHILD_WIDTH - THREAD_CHILD_SIDE_PADDING - GRID_GAP) / 2}px)`,\n THREAD_CHILD_MOBILE: `calc(50vw - ${(THREAD_CHILD_MOBILE_SIDE_PADDING + PROFILE_IMAGE_WIDTH + THREAD_CHILD_MOBILE_TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN + GRID_SIDE_PADDING + GRID_GAP) / 2}px)`,\n};\nexport const MULTIPLE_FILES_IMAGE_BORDER_RADIUS = {\n CHAT_WEB: '6px',\n CHAT_MOBILE: '6px',\n THREAD_PARENT_WEB: '6px',\n THREAD_PARENT_MOBILE: '6px',\n THREAD_CHILD_WEB: '6px',\n THREAD_CHILD_MOBILE: '6px',\n};\nexport const MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH = '40px';\n","import React, { ReactElement, useState } from 'react';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport { MultipleFilesMessage, UploadedFileInfo } from '@sendbird/chat/message';\nimport ImageRenderer from '../ImageRenderer';\nimport ImageGrid from '../ImageGrid';\nimport FileViewer from '../FileViewer';\nimport './index.scss';\nimport { useMediaQueryContext } from '../../lib/MediaQueryContext';\nimport { useThreadMessageKindKeySelector } from './useThreadMessageKindKeySelector';\nimport {\n MULTIPLE_FILES_IMAGE_BORDER_RADIUS,\n MULTIPLE_FILES_IMAGE_SIDE_LENGTH,\n MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH,\n} from './const';\nimport { isGifFileInfo } from '../../utils';\n\nexport const ThreadMessageKind = {\n PARENT: 'parent',\n CHILD: 'child',\n} as const;\n\nexport type ThreadMessageKindType = typeof ThreadMessageKind[keyof typeof ThreadMessageKind];\n\ninterface Props {\n className?: string;\n message: MultipleFilesMessage;\n isByMe?: boolean;\n mouseHover?: boolean;\n isReactionEnabled?: boolean;\n truncateLimit?: number;\n threadMessageKind?: ThreadMessageKindType;\n}\n\nexport default function MultipleFilesMessageItemBody({\n className,\n message,\n isReactionEnabled = false,\n threadMessageKind,\n}: Props): ReactElement {\n const { isMobile } = useMediaQueryContext();\n const [fileInfoList] = useState<UploadedFileInfo[]>(message.fileInfoList);\n const threadMessageKindKey = useThreadMessageKindKeySelector({ threadMessageKind, isMobile });\n const [currentIndex, setCurrentIndex] = useState(-1);\n\n function onClose() {\n setCurrentIndex(-1);\n }\n\n function onClickLeft() {\n setCurrentIndex(\n currentIndex === 0\n ? fileInfoList.length - 1\n : currentIndex - 1,\n );\n }\n\n function onClickRight() {\n setCurrentIndex(\n currentIndex === fileInfoList.length - 1\n ? 0\n : currentIndex + 1,\n );\n }\n\n return threadMessageKindKey && (\n <>\n {\n currentIndex > -1 && (\n <FileViewer\n message={message}\n currentIndex={currentIndex}\n onClickLeft={onClickLeft}\n onClickRight={onClickRight}\n onClose={onClose}\n />\n )\n }\n <ImageGrid\n className={className}\n message={message}\n isReactionEnabled={isReactionEnabled}\n >\n {\n fileInfoList.map((fileInfo: UploadedFileInfo, index: number) => {\n return <div\n className='sendbird-multiple-files-image-renderer-wrapper'\n onClick={() => setCurrentIndex(index)}\n key={`sendbird-multiple-files-image-renderer-${index}-${fileInfo.plainUrl}`}\n >\n <ImageRenderer\n url={fileInfo.url}\n fixedSize={false}\n width={MULTIPLE_FILES_IMAGE_SIDE_LENGTH[threadMessageKindKey]}\n maxSideLength={MULTIPLE_FILES_IMAGE_SIDE_LENGTH.CHAT_WEB}\n height={MULTIPLE_FILES_IMAGE_SIDE_LENGTH[threadMessageKindKey]}\n borderRadius={MULTIPLE_FILES_IMAGE_BORDER_RADIUS[threadMessageKindKey]}\n shadeOnHover={true}\n isGif={isGifFileInfo(fileInfo)}\n defaultComponent={\n <div\n className=\"sendbird-multiple-files-image-renderer__thumbnail__placeholder\"\n >\n <Icon\n type={IconTypes.THUMBNAIL_NONE}\n fillColor={IconColors.ON_BACKGROUND_2}\n width={MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH}\n height={MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH}\n />\n </div>\n }\n />\n </div>;\n })\n }\n </ImageGrid>\n </>\n );\n}\n"],"names":["ImageGrid","_ref","_message$reactions","children","className","message","isReactionEnabled","React","createElement","getClassName","reactions","length","useThreadMessageKindKeySelector","threadMessageKind","isMobile","threadMessageKindKey","useMemo","match","with","ThreadMessageKind","PARENT","CHILD","otherwise","GRID_WIDTH_CHAT_WEB","GRID_SIDE_PADDING","GRID_GAP","TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN","PROFILE_IMAGE_WIDTH","CHAT_MOBILE_SIDE_PADDING","THREAD_PARENT_WIDTH","THREAD_PARENT_SIDE_PADDING","THREAD_PARENT_GRID_MARGIN_LEFT","THREAD_CHILD_WIDTH","THREAD_CHILD_SIDE_PADDING","THREAD_CHILD_MOBILE_SIDE_PADDING","THREAD_CHILD_MOBILE_TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN","MULTIPLE_FILES_IMAGE_SIDE_LENGTH","CHAT_WEB","CHAT_MOBILE","THREAD_PARENT_WEB","THREAD_PARENT_MOBILE","THREAD_CHILD_WEB","THREAD_CHILD_MOBILE","MULTIPLE_FILES_IMAGE_BORDER_RADIUS","MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH","MultipleFilesMessageItemBody","useMediaQueryContext","fileInfoList","useState","currentIndex","setCurrentIndex","onClose","onClickLeft","onClickRight","Fragment","FileViewer","map","fileInfo","index","onClick","key","plainUrl","ImageRenderer","url","fixedSize","width","maxSideLength","height","borderRadius","shadeOnHover","isGif","isGifFileInfo","defaultComponent","Icon","type","IconTypes","THUMBNAIL_NONE","fillColor","IconColors","ON_BACKGROUND_2"],"mappings":";;;;;;;;AAYe,SAASA,SAASA,CAAAC,IAAA,EAKA;AAAA,EAAA,IAAAC,kBAAA,CAAA;EAAA,IALC;IAChCC,QAAQ;IACRC,SAAS;IACTC,OAAO;AACPC,IAAAA,iBAAAA;AACc,GAAC,GAAAL,IAAA,CAAA;EACf,oBACEM,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKJ,IAAAA,SAAS,EAAC,0BAAA;GACbG,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKJ,IAAAA,SAAS,EAAEK,YAAY,CAAC,CAC3BL,SAAS,EACT,qBAAqB,EACpBE,iBAAiB,IAAI,CAAAD,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAAH,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,kBAAA,GAAPG,OAAO,CAAEK,SAAS,MAAAR,IAAAA,IAAAA,kBAAA,uBAAlBA,kBAAA,CAAoBS,MAAM,IAAG,CAAC,GAAI,WAAW,GAAG,EAAE,CACzE,CAAA;GACGR,EAAAA,QAAQ,CACN,CACF,CAAA;AAEV;;ACpBO,SAASS,+BAA+BA,CAAAX,IAAA,EAGZ;EAAA,IAHa;IAC9CY,iBAAiB;AACjBC,IAAAA,QAAAA;AACsB,GAAC,GAAAb,IAAA,CAAA;AACvB,EAAA,MAAMc,oBAAoB,GAAGC,OAAO,CAAC,MAAM;AACzC,IAAA,OAAOC,CAAK,CAACJ,iBAAiB,CAAC,CAC5BK,IAAI,CAACC,iBAAiB,CAACC,MAAM,EAAE,MAAON,QAAQ,GAC3C,sBAAsB,GACtB,mBACH,CAAC,CACDI,IAAI,CAACC,iBAAiB,CAACE,KAAK,EAAE,MAAOP,QAAQ,GAC1C,qBAAqB,GACrB,kBACH,CAAC,CACDQ,SAAS,CAAC,MAAOR,QAAQ,GACtB,aAAa,GACb,UACH,CAAC,CAAA;AACN,GAAC,EAAE,CAACA,QAAQ,EAAED,iBAAiB,CAAC,CAAC,CAAA;AACjC,EAAA,OAAOE,oBAAoB,CAAA;AAC7B;;AC7BA,MAAMQ,mBAAmB,GAAG,GAAG,CAAA;AAC/B,MAAMC,iBAAiB,GAAG,CAAC,CAAA;AAC3B,MAAMC,QAAQ,GAAG,CAAC,CAAA;AAClB,MAAMC,mCAAmC,GAAG,EAAE,CAAA;AAC9C,MAAMC,mBAAmB,GAAG,EAAE,CAAA;AAE9B,MAAMC,wBAAwB,GAAG,EAAE,CAAA;AAEnC,MAAMC,mBAAmB,GAAG,GAAG,CAAA;AAC/B,MAAMC,0BAA0B,GAAG,EAAE,CAAA;AACrC,MAAMC,8BAA8B,GAAG,EAAE,CAAA;AAEzC,MAAMC,kBAAkB,GAAG,GAAG,CAAA;AAC9B,MAAMC,yBAAyB,GAAG,CAAC,CAAA;AACnC,MAAMC,gCAAgC,GAAG,EAAE,CAAA;AAC3C,MAAMC,uDAAuD,GAAG,EAAE,CAAA;AAE3D,MAAMC,gCAAgC,GAAG;AAC9CC,EAAAA,QAAQ,EAAG,CAAA,KAAA,EAAOd,mBAAmB,GAAG,CAAE,CAAA,KAAA,EAAO,CAACC,iBAAiB,GAAGC,QAAQ,IAAI,CAAE,CAAI,GAAA,CAAA;AACxFa,EAAAA,WAAW,EAAG,CAAA,YAAA,EAAc,CAACV,wBAAwB,GAAGD,mBAAmB,GAAGD,mCAAmC,GAAGF,iBAAiB,GAAGC,QAAQ,IAAI,CAAE,CAAI,GAAA,CAAA;AAC1Jc,EAAAA,iBAAiB,EAAG,CAAA,KAAA,EAAO,CAACV,mBAAmB,IAAIC,0BAA0B,GAAGH,mBAAmB,GAAGI,8BAA8B,GAAGN,QAAQ,CAAC,IAAI,CAAE,CAAI,GAAA,CAAA;AAC1Je,EAAAA,oBAAoB,EAAG,CAAA,YAAA,EAAc,CAACV,0BAA0B,GAAGH,mBAAmB,GAAGI,8BAA8B,GAAGN,QAAQ,IAAI,CAAE,CAAI,GAAA,CAAA;EAC5IgB,gBAAgB,EAAG,CAAO,KAAA,EAAA,CAACT,kBAAkB,GAAGC,yBAAyB,GAAGR,QAAQ,IAAI,CAAE,CAAI,GAAA,CAAA;AAC9FiB,EAAAA,mBAAmB,EAAG,CAAA,YAAA,EAAc,CAACR,gCAAgC,GAAGP,mBAAmB,GAAGQ,uDAAuD,GAAGX,iBAAiB,GAAGC,QAAQ,IAAI,CAAE,CAAA,GAAA,CAAA;AAC5L,CAAC,CAAA;AACM,MAAMkB,kCAAkC,GAAG;AAChDN,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,iBAAiB,EAAE,KAAK;AACxBC,EAAAA,oBAAoB,EAAE,KAAK;AAC3BC,EAAAA,gBAAgB,EAAE,KAAK;AACvBC,EAAAA,mBAAmB,EAAE,KAAA;AACvB,CAAC,CAAA;AACM,MAAME,0CAA0C,GAAG,MAAM;;AChBzD,MAAMzB,iBAAiB,GAAG;AAC/BC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAA;AACT,EAAU;AAcK,SAASwB,4BAA4BA,CAAA5C,IAAA,EAK5B;EAAA,IAL6B;IACnDG,SAAS;IACTC,OAAO;AACPC,IAAAA,iBAAiB,GAAG,KAAK;AACzBO,IAAAA,iBAAAA;AACK,GAAC,GAAAZ,IAAA,CAAA;EACN,MAAM;AAAEa,IAAAA,QAAAA;GAAU,GAAGgC,oBAAoB,EAAE,CAAA;EAC3C,MAAM,CAACC,YAAY,CAAC,GAAGC,QAAQ,CAAqB3C,OAAO,CAAC0C,YAAY,CAAC,CAAA;EACzE,MAAMhC,oBAAoB,GAAGH,+BAA+B,CAAC;IAAEC,iBAAiB;AAAEC,IAAAA,QAAAA;AAAS,GAAC,CAAC,CAAA;EAC7F,MAAM,CAACmC,YAAY,EAAEC,eAAe,CAAC,GAAGF,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;EAEpD,SAASG,OAAOA,GAAG;IACjBD,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AACrB,GAAA;EAEA,SAASE,WAAWA,GAAG;AACrBF,IAAAA,eAAe,CACbD,YAAY,KAAK,CAAC,GACdF,YAAY,CAACpC,MAAM,GAAG,CAAC,GACvBsC,YAAY,GAAG,CAAC,CACrB,CAAA;AACH,GAAA;EAEA,SAASI,YAAYA,GAAG;AACtBH,IAAAA,eAAe,CACbD,YAAY,KAAKF,YAAY,CAACpC,MAAM,GAAG,CAAC,GACpC,CAAC,GACDsC,YAAY,GAAG,CAAC,CACrB,CAAA;AACH,GAAA;AAEA,EAAA,OAAOlC,oBAAoB,iBACzBR,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAA+C,QAAA,QAEIL,YAAY,GAAG,CAAC,CAAC,iBACf1C,cAAA,CAAAC,aAAA,CAAC+C,UAAU,EAAA;AACTlD,IAAAA,OAAO,EAAEA,OAAQ;AACjB4C,IAAAA,YAAY,EAAEA,YAAa;AAC3BG,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,YAAY,EAAEA,YAAa;AAC3BF,IAAAA,OAAO,EAAEA,OAAAA;AAAQ,GAAA,CAEpB,eAEH5C,cAAA,CAAAC,aAAA,CAACR,SAAS,EAAA;AACRI,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,iBAAiB,EAAEA,iBAAAA;GAGjByC,EAAAA,YAAY,CAACS,GAAG,CAAC,CAACC,QAA0B,EAAEC,KAAa,KAAK;IAC9D,oBAAOnD,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACLJ,MAAAA,SAAS,EAAC,gDAAgD;AAC1DuD,MAAAA,OAAO,EAAEA,MAAMT,eAAe,CAACQ,KAAK,CAAE;AACtCE,MAAAA,GAAG,EAAG,CAAyCF,uCAAAA,EAAAA,KAAM,CAAGD,CAAAA,EAAAA,QAAQ,CAACI,QAAS,CAAA,CAAA;AAAE,KAAA,eAE5EtD,cAAA,CAAAC,aAAA,CAACsD,aAAa,EAAA;MACZC,GAAG,EAAEN,QAAQ,CAACM,GAAI;AAClBC,MAAAA,SAAS,EAAE,KAAM;AACjBC,MAAAA,KAAK,EAAE7B,gCAAgC,CAACrB,oBAAoB,CAAE;MAC9DmD,aAAa,EAAE9B,gCAAgC,CAACC,QAAS;AACzD8B,MAAAA,MAAM,EAAE/B,gCAAgC,CAACrB,oBAAoB,CAAE;AAC/DqD,MAAAA,YAAY,EAAEzB,kCAAkC,CAAC5B,oBAAoB,CAAE;AACvEsD,MAAAA,YAAY,EAAE,IAAK;AACnBC,MAAAA,KAAK,EAAEC,aAAa,CAACd,QAAQ,CAAE;MAC/Be,gBAAgB,eACdjE,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEJ,QAAAA,SAAS,EAAC,gEAAA;AAAgE,OAAA,eAE1EG,cAAA,CAAAC,aAAA,CAACiE,IAAI,EAAA;QACHC,IAAI,EAAEC,SAAS,CAACC,cAAe;QAC/BC,SAAS,EAAEC,UAAU,CAACC,eAAgB;AACtCd,QAAAA,KAAK,EAAErB,0CAA2C;AAClDuB,QAAAA,MAAM,EAAEvB,0CAAAA;OACR,CAAA,CAAA;AAEL,KAAA,CACD,CACE,CAAA;GACP,CAAC,CAEM,CAEf,CAAA;AACH;;;;"}
|