@sendbird/uikit-react 3.5.0-mobile-web-0 → 3.5.0-mobile-web-1
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 +56 -56
- package/App.js.map +1 -1
- package/CHANGELOG.md +43 -1
- package/Channel/components/ChannelHeader.js +18 -18
- package/Channel/components/ChannelUI.js +40 -40
- package/Channel/components/FileViewer.js +14 -14
- package/Channel/components/FrozenNotification.js +4 -4
- package/Channel/components/Message.js +35 -35
- package/Channel/components/MessageInput.js +32 -29
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +36 -36
- package/Channel/components/RemoveMessageModal.js +16 -16
- package/Channel/components/SuggestedMentionList.js +16 -16
- package/Channel/components/TypingIndicator.js +14 -14
- package/Channel/components/UnreadCount.js +4 -4
- package/Channel/context.js +11 -11
- package/Channel.js +40 -40
- package/ChannelList/components/AddChannel.js +14 -14
- package/ChannelList/components/ChannelListHeader.js +6 -6
- package/ChannelList/components/ChannelListUI.js +29 -29
- package/ChannelList/components/ChannelPreview.js +26 -26
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +15 -14
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +7 -7
- package/ChannelList.js +29 -29
- package/{ChannelListProvider-42fb305a.js → ChannelListProvider-86b6d956.js} +7 -7
- package/{ChannelListProvider-42fb305a.js.map → ChannelListProvider-86b6d956.js.map} +1 -1
- package/{ChannelProvider-42ea1a96.js → ChannelProvider-b41fde4c.js} +32 -15
- package/ChannelProvider-b41fde4c.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +11 -11
- package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
- package/ChannelSettings/components/EditDetailsModal.js +11 -11
- package/ChannelSettings/components/LeaveChannel.js +11 -11
- package/ChannelSettings/components/ModerationPanel.js +27 -21
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +10 -10
- package/ChannelSettings/components/UserPanel.js +13 -13
- package/ChannelSettings/context.js +3 -3
- package/ChannelSettings.js +17 -17
- package/CreateChannel/components/CreateChannelUI.js +13 -13
- package/CreateChannel/components/InviteUsers.js +13 -13
- package/CreateChannel/components/SelectChannelType.js +10 -10
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +13 -13
- package/{CreateChannelProvider-37af96d2.js → CreateChannelProvider-2b669e7e.js} +1 -1
- package/{CreateChannelProvider-37af96d2.js.map → CreateChannelProvider-2b669e7e.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
- package/CreateOpenChannel/context.js +1 -1
- package/CreateOpenChannel.js +9 -9
- package/EditUserProfile/components/EditUserProfileUI.js +12 -12
- package/EditUserProfile.js +12 -12
- package/{LocalizationContext-1839d2db.js → LocalizationContext-57b46f6c.js} +3 -3
- package/{LocalizationContext-1839d2db.js.map → LocalizationContext-57b46f6c.js.map} +1 -1
- package/{MediaQueryContext-0e0b3a1b.js → MediaQueryContext-fbe7af77.js} +12 -12
- package/MediaQueryContext-fbe7af77.js.map +1 -0
- package/{MemberList-28589b39.js → MemberList-6ff1e7fa.js} +17 -11
- package/MemberList-6ff1e7fa.js.map +1 -0
- package/MessageSearch/components/MessageSearchUI.js +11 -11
- package/MessageSearch/context.js +1 -1
- package/MessageSearch.js +11 -11
- package/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/OpenChannel/components/OpenChannelInput.js +33 -25
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +27 -27
- package/OpenChannel/components/OpenChannelMessageList.js +31 -31
- package/OpenChannel/components/OpenChannelUI.js +31 -31
- package/OpenChannel/context.js +8 -8
- package/OpenChannel.js +31 -31
- package/OpenChannelList/components/OpenChannelListUI.js +13 -13
- package/OpenChannelList/components/OpenChannelPreview.js +3 -3
- package/OpenChannelList/context.js +3 -3
- package/OpenChannelList.js +13 -13
- package/{OpenChannelListProvider-71a32f2d.js → OpenChannelListProvider-700cf3de.js} +3 -3
- package/{OpenChannelListProvider-71a32f2d.js.map → OpenChannelListProvider-700cf3de.js.map} +1 -1
- package/{OpenChannelProvider-377a0b6e.js → OpenChannelProvider-b634e564.js} +7 -7
- package/{OpenChannelProvider-377a0b6e.js.map → OpenChannelProvider-b634e564.js.map} +1 -1
- package/OpenChannelSettings/components/EditDetailsModal.js +12 -12
- package/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
- package/OpenChannelSettings/components/OperatorUI.js +32 -24
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +14 -14
- package/OpenChannelSettings/context.js +3 -3
- package/OpenChannelSettings.js +17 -17
- package/{RemoveMessageModal-558db27f.js → RemoveMessageModal-625b3778.js} +3 -3
- package/{RemoveMessageModal-558db27f.js.map → RemoveMessageModal-625b3778.js.map} +1 -1
- package/SendbirdProvider.js +253 -185
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +40 -36
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +21 -21
- package/Thread/components/ThreadHeader.js +6 -6
- package/Thread/components/ThreadList.js +35 -35
- package/Thread/components/ThreadListItem.js +41 -37
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +29 -31
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +39 -39
- package/Thread/context.js +8 -8
- package/Thread.js +39 -39
- package/{ThreadProvider-0b73628e.js → ThreadProvider-a3d3b241.js} +7 -7
- package/{ThreadProvider-0b73628e.js.map → ThreadProvider-a3d3b241.js.map} +1 -1
- package/{UserProfileContext-7e645551.js → UserProfileContext-29074346.js} +1 -1
- package/{UserProfileContext-7e645551.js.map → UserProfileContext-29074346.js.map} +1 -1
- package/{VoiceMessageInputWrapper-0b5a78a1.js → VoiceMessageInputWrapper-bdc53de4.js} +7 -7
- package/{VoiceMessageInputWrapper-0b5a78a1.js.map → VoiceMessageInputWrapper-bdc53de4.js.map} +1 -1
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +3 -3
- package/VoiceRecorder/context.js +3 -3
- package/VoiceRecorder/useVoiceRecorder.js +2 -2
- package/{WebAudioUtils-fbdb41cd.js → WebAudioUtils-c3ea2db7.js} +1 -1
- package/{WebAudioUtils-fbdb41cd.js.map → WebAudioUtils-c3ea2db7.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-ce69e916.js → _rollupPluginBabelHelpers-0bc76382.js} +1 -1
- package/_rollupPluginBabelHelpers-0bc76382.js.map +1 -0
- package/{actionTypes-a5283c75.js → actionTypes-45ec82e6.js} +1 -1
- package/{actionTypes-a5283c75.js.map → actionTypes-45ec82e6.js.map} +1 -1
- package/cjs/App.js +56 -56
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +18 -18
- package/cjs/Channel/components/ChannelUI.js +40 -40
- package/cjs/Channel/components/FileViewer.js +14 -14
- package/cjs/Channel/components/FrozenNotification.js +4 -4
- package/cjs/Channel/components/Message.js +35 -35
- package/cjs/Channel/components/MessageInput.js +32 -29
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +36 -36
- package/cjs/Channel/components/RemoveMessageModal.js +16 -16
- package/cjs/Channel/components/SuggestedMentionList.js +16 -16
- package/cjs/Channel/components/TypingIndicator.js +14 -14
- package/cjs/Channel/components/UnreadCount.js +4 -4
- package/cjs/Channel/context.js +11 -11
- package/cjs/Channel.js +40 -40
- package/cjs/ChannelList/components/AddChannel.js +14 -14
- package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
- package/cjs/ChannelList/components/ChannelListUI.js +29 -29
- package/cjs/ChannelList/components/ChannelPreview.js +26 -26
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +15 -14
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +7 -7
- package/cjs/ChannelList.js +29 -29
- package/cjs/{ChannelListProvider-b3ffe21a.js → ChannelListProvider-46e379c7.js} +7 -7
- package/cjs/{ChannelListProvider-b3ffe21a.js.map → ChannelListProvider-46e379c7.js.map} +1 -1
- package/cjs/{ChannelProvider-b6890429.js → ChannelProvider-2bfafa25.js} +32 -14
- package/cjs/ChannelProvider-2bfafa25.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +11 -11
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +17 -17
- package/cjs/ChannelSettings/components/EditDetailsModal.js +11 -11
- package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
- package/cjs/ChannelSettings/components/ModerationPanel.js +27 -21
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +10 -10
- package/cjs/ChannelSettings/components/UserPanel.js +13 -13
- package/cjs/ChannelSettings/context.js +3 -3
- package/cjs/ChannelSettings.js +17 -17
- package/cjs/CreateChannel/components/CreateChannelUI.js +13 -13
- package/cjs/CreateChannel/components/InviteUsers.js +13 -13
- package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +13 -13
- package/cjs/{CreateChannelProvider-e1376032.js → CreateChannelProvider-ef7e4c91.js} +1 -1
- package/cjs/{CreateChannelProvider-e1376032.js.map → CreateChannelProvider-ef7e4c91.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
- package/cjs/CreateOpenChannel/context.js +1 -1
- package/cjs/CreateOpenChannel.js +9 -9
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
- package/cjs/EditUserProfile.js +12 -12
- package/cjs/{LocalizationContext-461a0816.js → LocalizationContext-b42fa07d.js} +3 -3
- package/cjs/{LocalizationContext-461a0816.js.map → LocalizationContext-b42fa07d.js.map} +1 -1
- package/cjs/{MediaQueryContext-de7c63bc.js → MediaQueryContext-372b55a6.js} +12 -12
- package/cjs/MediaQueryContext-372b55a6.js.map +1 -0
- package/cjs/{MemberList-593809cb.js → MemberList-d878307c.js} +17 -11
- package/cjs/MemberList-d878307c.js.map +1 -0
- package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
- package/cjs/MessageSearch/context.js +1 -1
- package/cjs/MessageSearch.js +11 -11
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/cjs/OpenChannel/components/OpenChannelInput.js +33 -25
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +27 -27
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +31 -31
- package/cjs/OpenChannel/components/OpenChannelUI.js +31 -31
- package/cjs/OpenChannel/context.js +8 -8
- package/cjs/OpenChannel.js +31 -31
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
- package/cjs/OpenChannelList/context.js +3 -3
- package/cjs/OpenChannelList.js +13 -13
- package/cjs/{OpenChannelListProvider-39c11f87.js → OpenChannelListProvider-d1cbe71b.js} +3 -3
- package/cjs/{OpenChannelListProvider-39c11f87.js.map → OpenChannelListProvider-d1cbe71b.js.map} +1 -1
- package/cjs/{OpenChannelProvider-e794e881.js → OpenChannelProvider-94eb45b4.js} +7 -7
- package/cjs/{OpenChannelProvider-e794e881.js.map → OpenChannelProvider-94eb45b4.js.map} +1 -1
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +12 -12
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
- package/cjs/OpenChannelSettings/components/OperatorUI.js +32 -24
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +14 -14
- package/cjs/OpenChannelSettings/context.js +3 -3
- package/cjs/OpenChannelSettings.js +17 -17
- package/cjs/{RemoveMessageModal-29fa1a05.js → RemoveMessageModal-83d3158a.js} +3 -3
- package/cjs/{RemoveMessageModal-29fa1a05.js.map → RemoveMessageModal-83d3158a.js.map} +1 -1
- package/cjs/SendbirdProvider.js +253 -185
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +40 -36
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +21 -21
- package/cjs/Thread/components/ThreadHeader.js +6 -6
- package/cjs/Thread/components/ThreadList.js +35 -35
- package/cjs/Thread/components/ThreadListItem.js +41 -37
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +29 -31
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +39 -39
- package/cjs/Thread/context.js +8 -8
- package/cjs/Thread.js +39 -39
- package/cjs/{ThreadProvider-e2098298.js → ThreadProvider-3ff0ff63.js} +7 -7
- package/cjs/{ThreadProvider-e2098298.js.map → ThreadProvider-3ff0ff63.js.map} +1 -1
- package/cjs/{UserProfileContext-1bcc48a2.js → UserProfileContext-c87514d3.js} +1 -1
- package/cjs/{UserProfileContext-1bcc48a2.js.map → UserProfileContext-c87514d3.js.map} +1 -1
- package/cjs/{VoiceMessageInputWrapper-f18d6a5e.js → VoiceMessageInputWrapper-6e1d03d7.js} +7 -7
- package/cjs/{VoiceMessageInputWrapper-f18d6a5e.js.map → VoiceMessageInputWrapper-6e1d03d7.js.map} +1 -1
- package/cjs/VoicePlayer/context.js +3 -3
- package/cjs/VoicePlayer/useVoicePlayer.js +3 -3
- package/cjs/VoiceRecorder/context.js +3 -3
- package/cjs/VoiceRecorder/useVoiceRecorder.js +2 -2
- package/cjs/{WebAudioUtils-aedad0b1.js → WebAudioUtils-de98e939.js} +1 -1
- package/cjs/{WebAudioUtils-aedad0b1.js.map → WebAudioUtils-de98e939.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-919a4db3.js → _rollupPluginBabelHelpers-3a9d1641.js} +1 -1
- package/cjs/_rollupPluginBabelHelpers-3a9d1641.js.map +1 -0
- package/cjs/{actionTypes-1e75e6e9.js → actionTypes-ecb5bef6.js} +1 -1
- package/cjs/{actionTypes-1e75e6e9.js.map → actionTypes-ecb5bef6.js.map} +1 -1
- package/cjs/{color-48ff06b2.js → color-a4e73e6f.js} +1 -1
- package/cjs/{color-48ff06b2.js.map → color-a4e73e6f.js.map} +1 -1
- package/cjs/{compareIds-8ed822c1.js → compareIds-a7029d6a.js} +1 -1
- package/cjs/{compareIds-8ed822c1.js.map → compareIds-a7029d6a.js.map} +1 -1
- package/cjs/{const-49de651c.js → const-3ab3e45c.js} +1 -1
- package/cjs/{const-49de651c.js.map → const-3ab3e45c.js.map} +1 -1
- package/cjs/{const-852d5677.js → const-68cf2709.js} +1 -1
- package/cjs/{const-852d5677.js.map → const-68cf2709.js.map} +1 -1
- package/cjs/{consts-5851f376.js → consts-26d4668c.js} +1 -1
- package/cjs/{consts-5851f376.js.map → consts-26d4668c.js.map} +1 -1
- package/cjs/{consts-2580246d.js → consts-ad8ba629.js} +1 -1
- package/cjs/{consts-2580246d.js.map → consts-ad8ba629.js.map} +1 -1
- package/cjs/{consts-e9ee4cf4.js → consts-bb2a67c7.js} +1 -1
- package/cjs/{consts-e9ee4cf4.js.map → consts-bb2a67c7.js.map} +1 -1
- package/cjs/{consts-6f02fcc4.js → consts-f71467c8.js} +1 -1
- package/cjs/{consts-6f02fcc4.js.map → consts-f71467c8.js.map} +1 -1
- package/cjs/{context-4d89551f.js → context-b81d493d.js} +2 -2
- package/cjs/{context-4d89551f.js.map → context-b81d493d.js.map} +1 -1
- package/cjs/dist/index.css +169 -151
- package/cjs/dist/index.css.map +1 -1
- package/cjs/{index-bca3d144.js → index-0b8a1074.js} +6 -3
- package/cjs/index-0b8a1074.js.map +1 -0
- package/cjs/{index-f4682499.js → index-1c18afa8.js} +4 -4
- package/cjs/{index-f4682499.js.map → index-1c18afa8.js.map} +1 -1
- package/cjs/{index-1a223893.js → index-3f079f3e.js} +18 -13
- package/cjs/index-3f079f3e.js.map +1 -0
- package/cjs/{index-44186883.js → index-72e412f7.js} +2 -2
- package/cjs/{index-44186883.js.map → index-72e412f7.js.map} +1 -1
- package/cjs/{index-60ea6503.js → index-7ec4fe06.js} +3 -3
- package/cjs/{index-60ea6503.js.map → index-7ec4fe06.js.map} +1 -1
- package/cjs/{index-a51f1b7d.js → index-811da6ee.js} +5 -5
- package/cjs/{index-a51f1b7d.js.map → index-811da6ee.js.map} +1 -1
- package/cjs/{index-60bf4d5c.js → index-849f44b0.js} +2 -2
- package/cjs/{index-60bf4d5c.js.map → index-849f44b0.js.map} +1 -1
- package/cjs/{index-5e6194f8.js → index-97005534.js} +1 -1
- package/cjs/{index-5e6194f8.js.map → index-97005534.js.map} +1 -1
- package/cjs/{index-0126dbb4.js → index-9b23b5c2.js} +4 -4
- package/cjs/{index-0126dbb4.js.map → index-9b23b5c2.js.map} +1 -1
- package/cjs/{index-420b8e6d.js → index-9d9e563e.js} +3 -3
- package/cjs/{index-420b8e6d.js.map → index-9d9e563e.js.map} +1 -1
- package/cjs/{index-f5399132.js → index-a401f2b6.js} +54 -32
- package/cjs/index-a401f2b6.js.map +1 -0
- package/cjs/{index-849c0736.js → index-afada680.js} +2 -2
- package/cjs/{index-849c0736.js.map → index-afada680.js.map} +1 -1
- package/cjs/{index-223e9372.js → index-c38404d2.js} +2 -2
- package/cjs/{index-223e9372.js.map → index-c38404d2.js.map} +1 -1
- package/cjs/{index-6a46ed00.js → index-cb1d7ac4.js} +3 -3
- package/cjs/{index-6a46ed00.js.map → index-cb1d7ac4.js.map} +1 -1
- package/cjs/{index-a7025294.js → index-e1d69370.js} +6 -6
- package/cjs/{index-a7025294.js.map → index-e1d69370.js.map} +1 -1
- package/cjs/{index-7a68d56f.js → index-e8b83547.js} +1 -1
- package/cjs/{index-7a68d56f.js.map → index-e8b83547.js.map} +1 -1
- package/cjs/{index-81aad270.js → index-f4f6d794.js} +12 -7
- package/cjs/index-f4f6d794.js.map +1 -0
- package/cjs/index.js +51 -51
- package/cjs/{index.module-10ef9afc.js → index.module-d2876b1c.js} +1 -1
- package/cjs/{index.module-10ef9afc.js.map → index.module-d2876b1c.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +3 -3
- package/cjs/{stringSet-d1cee26a.js → stringSet-4f30313f.js} +1 -1
- package/cjs/{stringSet-d1cee26a.js.map → stringSet-4f30313f.js.map} +1 -1
- package/cjs/{tokenize-d3bb1637.js → tokenize-e944d548.js} +2 -2
- package/cjs/{tokenize-d3bb1637.js.map → tokenize-e944d548.js.map} +1 -1
- package/cjs/{topics-00c67dd6.js → topics-3226c6ee.js} +1 -1
- package/cjs/{topics-00c67dd6.js.map → topics-3226c6ee.js.map} +1 -1
- package/cjs/{types-2e9e46b2.js → types-31174fcc.js} +1 -1
- package/cjs/{types-2e9e46b2.js.map → types-31174fcc.js.map} +1 -1
- 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 +1 -1
- package/cjs/ui/Button.js +2 -2
- package/cjs/ui/ChannelAvatar.js +2 -2
- package/cjs/ui/ConnectionStatus.js +4 -4
- package/cjs/ui/ContextMenu.js +9 -7
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +3 -3
- package/cjs/ui/EmojiReactions.js +17 -15
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +6 -6
- package/cjs/ui/FileViewer.js +8 -8
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/Input.js +2 -2
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +2 -2
- package/cjs/ui/MentionLabel.js +10 -10
- package/cjs/ui/MentionUserLabel.js +1 -1
- package/cjs/ui/MessageContent.js +33 -29
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput.js +12 -12
- package/cjs/ui/MessageItemMenu.js +22 -15
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +10 -9
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +10 -10
- package/cjs/ui/MessageSearchItem.js +8 -8
- package/cjs/ui/MessageStatus.js +10 -10
- package/cjs/ui/Modal.js +7 -7
- 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 +19 -17
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +26 -22
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +18 -16
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +23 -19
- 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 +6 -6
- package/cjs/ui/QuoteMessageInput.js +6 -6
- package/cjs/ui/ReactionBadge.js +2 -2
- package/cjs/ui/ReactionButton.js +7 -5
- package/cjs/ui/ReactionButton.js.map +1 -1
- 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 +5 -5
- package/cjs/ui/Toggle.js +1 -1
- package/cjs/ui/Tooltip.js +2 -2
- package/cjs/ui/UnknownMessageItemBody.js +6 -6
- package/cjs/ui/UserListItem.js +10 -10
- package/cjs/ui/UserProfile.js +9 -9
- package/cjs/ui/VoiceMessageItemBody.js +5 -5
- package/cjs/ui/VoiceMessgeInput.js +7 -7
- package/cjs/ui/Word.js +10 -10
- package/cjs/{useDirtyGetMentions-7b6c8a19.js → useDirtyGetMentions-97c6e05a.js} +1 -1
- package/cjs/{useDirtyGetMentions-7b6c8a19.js.map → useDirtyGetMentions-97c6e05a.js.map} +1 -1
- package/cjs/{useLongPress-4c2e9a3b.js → useLongPress-bf1e8eee.js} +3 -3
- package/cjs/{useLongPress-4c2e9a3b.js.map → useLongPress-bf1e8eee.js.map} +1 -1
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/utils/message/isVoiceMessage.js +2 -2
- package/cjs/{utils-3dacb9bc.js → utils-146517a9.js} +1 -1
- package/cjs/{utils-3dacb9bc.js.map → utils-146517a9.js.map} +1 -1
- package/cjs/{utils-f1c09ec3.js → utils-411a893e.js} +2 -2
- package/cjs/{utils-f1c09ec3.js.map → utils-411a893e.js.map} +1 -1
- package/cjs/{utils-22d05a53.js → utils-dbaff0d0.js} +1 -1
- package/cjs/{utils-22d05a53.js.map → utils-dbaff0d0.js.map} +1 -1
- package/cjs/{utils-c5d4c36e.js → utils-de654d3c.js} +1 -1
- package/cjs/{utils-c5d4c36e.js.map → utils-de654d3c.js.map} +1 -1
- package/cjs/{uuid-d86ea01f.js → uuid-5ab4f88b.js} +1 -1
- package/cjs/{uuid-d86ea01f.js.map → uuid-5ab4f88b.js.map} +1 -1
- package/cjs/withSendbird.js +1 -1
- package/{color-4ca8a2ea.js → color-2ed716e6.js} +1 -1
- package/{color-4ca8a2ea.js.map → color-2ed716e6.js.map} +1 -1
- package/{compareIds-08858dd3.js → compareIds-bc881fe7.js} +1 -1
- package/{compareIds-08858dd3.js.map → compareIds-bc881fe7.js.map} +1 -1
- package/{const-714046e0.js → const-8daee9fc.js} +1 -1
- package/{const-714046e0.js.map → const-8daee9fc.js.map} +1 -1
- package/{const-a77c08c9.js → const-e51dda0c.js} +1 -1
- package/{const-a77c08c9.js.map → const-e51dda0c.js.map} +1 -1
- package/{consts-9393e7c8.js → consts-3c0ff1ed.js} +1 -1
- package/{consts-9393e7c8.js.map → consts-3c0ff1ed.js.map} +1 -1
- package/{consts-d46e0fc1.js → consts-7aab5aff.js} +1 -1
- package/{consts-d46e0fc1.js.map → consts-7aab5aff.js.map} +1 -1
- package/{consts-aecb8fab.js → consts-d0b365df.js} +1 -1
- package/{consts-aecb8fab.js.map → consts-d0b365df.js.map} +1 -1
- package/{consts-decd9c7d.js → consts-d0cfee49.js} +1 -1
- package/{consts-decd9c7d.js.map → consts-d0cfee49.js.map} +1 -1
- package/{context-9a6b8b8a.js → context-cde5c2bf.js} +2 -2
- package/{context-9a6b8b8a.js.map → context-cde5c2bf.js.map} +1 -1
- package/dist/index.css +169 -151
- package/dist/index.css.map +1 -1
- package/{index-20880943.js → index-0f22e96e.js} +3 -3
- package/{index-20880943.js.map → index-0f22e96e.js.map} +1 -1
- package/{index-400417a1.js → index-1e5cf284.js} +4 -4
- package/{index-400417a1.js.map → index-1e5cf284.js.map} +1 -1
- package/{index-5db37327.js → index-1ec11afb.js} +3 -3
- package/{index-5db37327.js.map → index-1ec11afb.js.map} +1 -1
- package/{index-9781d2b9.js → index-37531f98.js} +2 -2
- package/{index-9781d2b9.js.map → index-37531f98.js.map} +1 -1
- package/{index-b96440b7.js → index-3f1fa3f9.js} +2 -2
- package/{index-b96440b7.js.map → index-3f1fa3f9.js.map} +1 -1
- package/{index-e1cd2fcf.js → index-4023d1b2.js} +2 -2
- package/{index-e1cd2fcf.js.map → index-4023d1b2.js.map} +1 -1
- package/{index-3130ac38.js → index-5141f766.js} +4 -4
- package/{index-3130ac38.js.map → index-5141f766.js.map} +1 -1
- package/{index-7c9ebc67.js → index-5a1c1956.js} +5 -5
- package/{index-7c9ebc67.js.map → index-5a1c1956.js.map} +1 -1
- package/{index-bf72ef7c.js → index-735cb5a3.js} +18 -13
- package/index-735cb5a3.js.map +1 -0
- package/{index-3165e396.js → index-7bff4ce0.js} +1 -1
- package/{index-3165e396.js.map → index-7bff4ce0.js.map} +1 -1
- package/{index-d9c12cf4.js → index-865112db.js} +1 -1
- package/{index-d9c12cf4.js.map → index-865112db.js.map} +1 -1
- package/{index-edfb3327.js → index-ac642e0b.js} +54 -32
- package/index-ac642e0b.js.map +1 -0
- package/{index-5644a6c0.js → index-d847a382.js} +3 -3
- package/{index-5644a6c0.js.map → index-d847a382.js.map} +1 -1
- package/{index-fd51c7d1.js → index-e2601165.js} +7 -4
- package/index-e2601165.js.map +1 -0
- package/{index-06f34585.js → index-f1701c11.js} +2 -2
- package/{index-06f34585.js.map → index-f1701c11.js.map} +1 -1
- package/{index-c6df8184.js → index-fa140763.js} +6 -6
- package/{index-c6df8184.js.map → index-fa140763.js.map} +1 -1
- package/{index-fd95258e.js → index-fa37119a.js} +12 -7
- package/index-fa37119a.js.map +1 -0
- package/index.d.ts +3 -2
- package/index.js +51 -51
- package/{index.module-8c144786.js → index.module-9202ebbd.js} +1 -1
- package/{index.module-8c144786.js.map → index.module-9202ebbd.js.map} +1 -1
- package/package.json +1 -1
- package/sendbirdSelectors.js +3 -3
- package/{stringSet-d368e289.js → stringSet-7a8ce1ce.js} +1 -1
- package/{stringSet-d368e289.js.map → stringSet-7a8ce1ce.js.map} +1 -1
- package/{tokenize-7056afb7.js → tokenize-003bf3f7.js} +2 -2
- package/{tokenize-7056afb7.js.map → tokenize-003bf3f7.js.map} +1 -1
- package/{topics-f9628f1f.js → topics-5ff88d6f.js} +1 -1
- package/{topics-f9628f1f.js.map → topics-5ff88d6f.js.map} +1 -1
- package/{types-2b508dbc.js → types-bffbc5f5.js} +1 -1
- package/{types-2b508dbc.js.map → types-bffbc5f5.js.map} +1 -1
- 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 +1 -1
- package/ui/Button.js +2 -2
- package/ui/ChannelAvatar.js +2 -2
- package/ui/ConnectionStatus.js +4 -4
- package/ui/ContextMenu.js +9 -7
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +3 -3
- package/ui/EmojiReactions.js +17 -15
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +6 -6
- package/ui/FileViewer.js +8 -8
- package/ui/IconButton.js +1 -1
- package/ui/Input.js +2 -2
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- package/ui/MentionLabel.js +10 -10
- package/ui/MentionUserLabel.js +1 -1
- package/ui/MessageContent.js +33 -29
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput.js +12 -12
- package/ui/MessageItemMenu.js +22 -15
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +10 -9
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +10 -10
- package/ui/MessageSearchItem.js +8 -8
- package/ui/MessageStatus.js +10 -10
- package/ui/Modal.js +7 -7
- 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 +19 -17
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +26 -22
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +18 -16
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +23 -19
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +5 -5
- package/ui/PlaybackTime.js +2 -2
- package/ui/QuoteMessage.js +6 -6
- package/ui/QuoteMessageInput.js +6 -6
- package/ui/ReactionBadge.js +2 -2
- package/ui/ReactionButton.js +7 -5
- package/ui/ReactionButton.js.map +1 -1
- 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 +5 -5
- package/ui/Toggle.js +1 -1
- package/ui/Tooltip.js +2 -2
- package/ui/UnknownMessageItemBody.js +6 -6
- package/ui/UserListItem.js +10 -10
- package/ui/UserProfile.js +9 -9
- package/ui/VoiceMessageItemBody.js +5 -5
- package/ui/VoiceMessgeInput.js +7 -7
- package/ui/Word.js +10 -10
- package/{useDirtyGetMentions-e0c0f521.js → useDirtyGetMentions-aac697f4.js} +1 -1
- package/{useDirtyGetMentions-e0c0f521.js.map → useDirtyGetMentions-aac697f4.js.map} +1 -1
- package/{useLongPress-685c7391.js → useLongPress-fbab35a9.js} +3 -3
- package/{useLongPress-685c7391.js.map → useLongPress-fbab35a9.js.map} +1 -1
- package/useSendbirdStateContext.js +1 -1
- package/utils/message/isVoiceMessage.js +2 -2
- package/{utils-f82ad058.js → utils-0d88f863.js} +1 -1
- package/{utils-f82ad058.js.map → utils-0d88f863.js.map} +1 -1
- package/{utils-256f157f.js → utils-388a790e.js} +1 -1
- package/{utils-256f157f.js.map → utils-388a790e.js.map} +1 -1
- package/{utils-4979f950.js → utils-6f2bb331.js} +1 -1
- package/{utils-4979f950.js.map → utils-6f2bb331.js.map} +1 -1
- package/{utils-fbc09760.js → utils-af761f03.js} +2 -2
- package/{utils-fbc09760.js.map → utils-af761f03.js.map} +1 -1
- package/{uuid-720c99c0.js → uuid-1f1bbd9c.js} +1 -1
- package/{uuid-720c99c0.js.map → uuid-1f1bbd9c.js.map} +1 -1
- package/withSendbird.js +1 -1
- package/ChannelProvider-42ea1a96.js.map +0 -1
- package/MediaQueryContext-0e0b3a1b.js.map +0 -1
- package/MemberList-28589b39.js.map +0 -1
- package/_rollupPluginBabelHelpers-ce69e916.js.map +0 -1
- package/cjs/ChannelProvider-b6890429.js.map +0 -1
- package/cjs/MediaQueryContext-de7c63bc.js.map +0 -1
- package/cjs/MemberList-593809cb.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-919a4db3.js.map +0 -1
- package/cjs/index-1a223893.js.map +0 -1
- package/cjs/index-81aad270.js.map +0 -1
- package/cjs/index-bca3d144.js.map +0 -1
- package/cjs/index-f5399132.js.map +0 -1
- package/index-bf72ef7c.js.map +0 -1
- package/index-edfb3327.js.map +0 -1
- package/index-fd51c7d1.js.map +0 -1
- package/index-fd95258e.js.map +0 -1
package/ui/MessageContent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageContent.js","sources":["../../src/ui/MessageContent/index.tsx"],"sourcesContent":["import React, {\n ReactElement,\n useContext,\n useRef,\n useState,\n} from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport UserProfile from '../UserProfile';\nimport MessageStatus from '../MessageStatus';\nimport MessageItemMenu from '../MessageItemMenu';\nimport MessageItemReactionMenu from '../MessageItemReactionMenu';\nimport ContextMenu, { MenuItems } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport EmojiReactions from '../EmojiReactions';\n\nimport ClientAdminMessage from '../AdminMessage';\nimport TextMessageItemBody from '../TextMessageItemBody';\nimport FileMessageItemBody from '../FileMessageItemBody';\nimport ThumbnailMessageItemBody from '../ThumbnailMessageItemBody';\nimport OGMessageItemBody from '../OGMessageItemBody';\nimport UnknownMessageItemBody from '../UnknownMessageItemBody';\nimport QuoteMessage from '../QuoteMessage';\n\nimport {\n getClassName,\n getUIKitMessageTypes,\n getUIKitMessageType,\n isTextMessage,\n isOGMessage,\n isThumbnailMessage,\n getSenderName,\n isVoiceMessage,\n} from '../../utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport { ReplyType } from '../../index';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { EmojiContainer } from '@sendbird/chat';\nimport { AdminMessage, FileMessage, Sender, UserMessage } from '@sendbird/chat/message';\nimport useLongPress from '../../hooks/useLongPress';\nimport MobileMenu from '../MobileMenu';\nimport { useMediaQueryContext } from '../../lib/MediaQueryContext';\nimport ThreadReplies from '../ThreadReplies';\nimport { ThreadReplySelectType } from '../../modules/Channel/context/const';\nimport VoiceMessageItemBody from '../VoiceMessageItemBody';\nimport { Nullable } from '../../types';\nimport { noop } from '../../utils/utils';\n\n// should initialize in UserProfileContext.jsx\nexport interface UserProfileContextInterface {\n disableUserProfile: boolean;\n isOpenChannel: boolean;\n renderUserProfile?: (props: { user: Sender, close: () => void }) => React.ReactElement,\n}\n\ninterface Props {\n className?: string | Array<string>;\n userId: string;\n channel: Nullable<GroupChannel>;\n message: AdminMessage | UserMessage | FileMessage;\n disabled?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n isReactionEnabled?: boolean;\n disableQuoteMessage?: boolean;\n replyType?: ReplyType;\n threadReplySelectType?: ThreadReplySelectType;\n nicknamesMap?: Map<string, string>;\n emojiContainer?: EmojiContainer;\n scrollToMessage?: (createdAt: number, messageId: number) => void;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n showFileViewer?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => Promise<UserMessage | FileMessage>;\n toggleReaction?: (message: UserMessage | FileMessage, reactionKey: string, isReacted: boolean) => void;\n setQuoteMessage?: (message: UserMessage | FileMessage) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n onQuoteMessageClick?: (props: { message: UserMessage | FileMessage }) => void;\n onMessageHeightChange?: () => void;\n}\nexport default function MessageContent({\n className,\n userId,\n channel,\n message,\n disabled = false,\n chainTop = false,\n chainBottom = false,\n isReactionEnabled = false,\n disableQuoteMessage = false,\n replyType,\n threadReplySelectType,\n nicknamesMap,\n emojiContainer,\n scrollToMessage,\n showEdit,\n showRemove,\n showFileViewer,\n resendMessage,\n toggleReaction,\n setQuoteMessage,\n onReplyInThread,\n onQuoteMessageClick,\n onMessageHeightChange,\n}: Props): ReactElement {\n const messageTypes = getUIKitMessageTypes();\n const { dateLocale } = useLocalization();\n const { config } = useSendbirdStateContext?.() || {};\n const { disableUserProfile, renderUserProfile }: UserProfileContextInterface = useContext(UserProfileContext);\n const avatarRef = useRef(null);\n const contentRef = useRef(null);\n const { isMobile } = useMediaQueryContext();\n const [showMenu, setShowMenu] = useState(false);\n const [mouseHover, setMouseHover] = useState(false);\n const [supposedHover, setSupposedHover] = useState(false);\n\n const isByMe = (userId === (message as UserMessage | FileMessage)?.sender?.userId)\n || ((message as UserMessage | FileMessage)?.sendingStatus === 'pending')\n || ((message as UserMessage | FileMessage)?.sendingStatus === 'failed');\n const isByMeClassName = isByMe ? 'outgoing' : 'incoming';\n const chainTopClassName = chainTop ? 'chain-top' : '';\n const isReactionEnabledInChannel = isReactionEnabled && !channel?.isEphemeral;\n const isReactionEnabledClassName = isReactionEnabledInChannel ? 'use-reactions' : '';\n const supposedHoverClassName = supposedHover ? 'sendbird-mouse-hover' : '';\n const useReplying = !!((replyType === 'QUOTE_REPLY' || replyType === 'THREAD')\n && message?.parentMessageId && message?.parentMessage\n && !disableQuoteMessage\n );\n const useReplyingClassName = useReplying ? 'use-quote' : '';\n\n // Thread replies\n const displayThreadReplies = message?.threadInfo?.replyCount > 0 && replyType === 'THREAD';\n\n // onMouseDown: (e: React.MouseEvent<T>) => void;\n // onTouchStart: (e: React.TouchEvent<T>) => void;\n // onMouseUp: (e: React.MouseEvent<T>) => void;\n // onMouseLeave: (e: React.MouseEvent<T>) => void;\n // onTouchEnd: (e: React.TouchEvent<T>) => void;\n const longPress = useLongPress({\n onLongPress: () => {\n if (isMobile) {\n setShowMenu(true);\n }\n },\n onClick: noop,\n }, {\n delay: 300,\n shouldPreventDefault: false,\n });\n\n if (message?.isAdminMessage?.() || message?.messageType === 'admin') {\n return (<ClientAdminMessage message={message as AdminMessage} />);\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-content', isByMeClassName])}\n onMouseOver={() => setMouseHover(true)}\n onMouseLeave={() => setMouseHover(false)}\n >\n {/* left */}\n <div className={getClassName(['sendbird-message-content__left', isReactionEnabledClassName, isByMeClassName, useReplyingClassName])}>\n {(!isByMe && !chainBottom) && (\n /** user profile */\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <Avatar\n className={`sendbird-message-content__left__avatar ${displayThreadReplies ? 'use-thread-replies' : ''}`}\n // @ts-ignore\n src={channel?.members?.find((member) => member?.userId === message?.sender?.userId)?.profileUrl || message?.sender?.profileUrl || ''}\n // TODO: Divide getting profileUrl logic to utils\n ref={avatarRef}\n width=\"28px\"\n height=\"28px\"\n onClick={(): void => { if (!disableUserProfile) toggleDropdown(); }}\n />\n )}\n menuItems={(closeDropdown: () => void): ReactElement => (\n <MenuItems\n /**\n * parentRef: For catching location(x, y) of MenuItems\n * parentContainRef: For toggling more options(menus & reactions)\n */\n parentRef={avatarRef}\n parentContainRef={avatarRef}\n closeDropdown={closeDropdown}\n style={{ paddingTop: '0px', paddingBottom: '0px' }}\n >\n {renderUserProfile\n // @ts-ignore\n ? renderUserProfile({ user: message?.sender, close: closeDropdown })\n // @ts-ignore\n : (<UserProfile user={message.sender} onSuccess={closeDropdown} />)\n }\n </MenuItems>\n )}\n />\n )}\n {/* outgoing menu */}\n {isByMe && !isMobile && (\n <div className={getClassName(['sendbird-message-content-menu', isReactionEnabledClassName, supposedHoverClassName, isByMeClassName])}>\n <MessageItemMenu\n className=\"sendbird-message-content-menu__normal-menu\"\n channel={channel}\n message={message as UserMessage | FileMessage}\n isByMe={isByMe}\n replyType={replyType}\n disabled={disabled}\n showEdit={showEdit}\n showRemove={showRemove}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n setSupposedHover={setSupposedHover}\n onReplyInThread={({ message }) => {\n if (threadReplySelectType === ThreadReplySelectType.THREAD) {\n onReplyInThread({ message });\n } else if (threadReplySelectType === ThreadReplySelectType.PARENT) {\n scrollToMessage(message.parentMessage.createdAt, message.parentMessageId);\n }\n }}\n />\n {isReactionEnabledInChannel && (\n <MessageItemReactionMenu\n className=\"sendbird-message-content-menu__reaction-menu\"\n message={message as UserMessage | FileMessage}\n userId={userId}\n spaceFromTrigger={{}}\n emojiContainer={emojiContainer}\n toggleReaction={toggleReaction}\n setSupposedHover={setSupposedHover}\n />\n )}\n </div>\n )}\n </div>\n {/* middle */}\n <div\n className=\"sendbird-message-content__middle\"\n {...(isMobile ? { ...longPress } : {})}\n ref={contentRef}\n >\n {(!isByMe && !chainTop && !useReplying) && (\n <Label\n className=\"sendbird-message-content__middle__sender-name\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {\n // @ts-ignore\n channel?.members?.find((member) => member?.userId === message?.sender?.userId)?.nickname\n || getSenderName(message as UserMessage | FileMessage)\n // TODO: Divide getting profileUrl logic to utils\n }\n </Label>\n )}\n {/* quote message */}\n {(useReplying) ? (\n <div className={getClassName(['sendbird-message-content__middle__quote-message', isByMe ? 'outgoing' : 'incoming', useReplyingClassName])}>\n <QuoteMessage\n message={message as UserMessage | FileMessage}\n userId={userId}\n isByMe={isByMe}\n isUnavailable={(replyType === 'THREAD' && (channel?.joinedAt ?? 0 * 1000) > (message.parentMessage?.createdAt ?? 0))}\n onClick={() => {\n if (replyType === 'THREAD' && threadReplySelectType === ThreadReplySelectType.THREAD) {\n onQuoteMessageClick?.({ message: message as UserMessage | FileMessage });\n }\n if (\n (replyType === 'QUOTE_REPLY' || (replyType === 'THREAD' && threadReplySelectType === ThreadReplySelectType.PARENT))\n && message?.parentMessage?.createdAt && message?.parentMessageId\n ) {\n scrollToMessage(message.parentMessage.createdAt, message.parentMessageId);\n }\n }}\n />\n </div>\n ) : null}\n {/* container: message item body + emoji reactions */}\n <div className={getClassName(['sendbird-message-content__middle__body-container'])} >\n {/* message status component */}\n {(isByMe && !chainBottom) && (\n <div className={getClassName(['sendbird-message-content__middle__body-container__created-at', 'left', supposedHoverClassName])}>\n <div className=\"sendbird-message-content__middle__body-container__created-at__component-container\">\n <MessageStatus\n message={message as UserMessage | FileMessage}\n channel={channel}\n />\n </div>\n </div>\n )}\n {/* message item body components */}\n {isTextMessage(message as UserMessage) && (\n <TextMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message as UserMessage}\n isByMe={isByMe}\n mouseHover={mouseHover}\n isMentionEnabled={config?.isMentionEnabled || false}\n isReactionEnabled={isReactionEnabledInChannel}\n />\n )}\n {(isOGMessage(message as UserMessage)) && (\n <OGMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message as UserMessage}\n isByMe={isByMe}\n mouseHover={mouseHover}\n isMentionEnabled={config?.isMentionEnabled || false}\n isReactionEnabled={isReactionEnabledInChannel}\n onMessageHeightChange={onMessageHeightChange}\n />\n )}\n {(getUIKitMessageType((message as FileMessage)) === messageTypes.FILE) && (\n <FileMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message as FileMessage}\n isByMe={isByMe}\n mouseHover={mouseHover}\n isReactionEnabled={isReactionEnabledInChannel}\n />\n )}\n {isVoiceMessage(message as FileMessage) && (\n <VoiceMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message as FileMessage}\n channelUrl={channel?.url ?? ''}\n isByMe={isByMe}\n isReactionEnabled={isReactionEnabledInChannel}\n />\n )}\n {(isThumbnailMessage(message as FileMessage)) && (\n <ThumbnailMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message as FileMessage}\n isByMe={isByMe}\n mouseHover={mouseHover}\n isReactionEnabled={isReactionEnabledInChannel}\n showFileViewer={showFileViewer}\n />\n )}\n {(getUIKitMessageType((message as FileMessage)) === messageTypes.UNKNOWN) && (\n <UnknownMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message}\n isByMe={isByMe}\n mouseHover={mouseHover}\n isReactionEnabled={isReactionEnabledInChannel}\n />\n )}\n {/* reactions */}\n {(isReactionEnabledInChannel && message?.reactions?.length > 0) && (\n <div className={getClassName([\n 'sendbird-message-content-reactions',\n (!isByMe || isThumbnailMessage(message as FileMessage) || isOGMessage(message as UserMessage)) ? '' : 'primary',\n mouseHover ? 'mouse-hover' : '',\n ])}>\n <EmojiReactions\n userId={userId}\n message={message as UserMessage | FileMessage}\n channel={channel}\n isByMe={isByMe}\n emojiContainer={emojiContainer}\n memberNicknamesMap={nicknamesMap}\n toggleReaction={toggleReaction}\n />\n </div>\n )}\n {(!isByMe && !chainBottom) && (\n <Label\n className={getClassName(['sendbird-message-content__middle__body-container__created-at', 'right', supposedHoverClassName])}\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {format(message?.createdAt || 0, 'p', {\n locale: dateLocale,\n })}\n </Label>\n )}\n </div>\n {/* thread replies */}\n {displayThreadReplies && (\n <ThreadReplies\n className=\"sendbird-message-content__middle__thread-replies\"\n threadInfo={message?.threadInfo}\n onClick={() => onReplyInThread?.({ message: message as UserMessage | FileMessage })}\n />\n )}\n </div>\n {/* right */}\n <div className={getClassName(['sendbird-message-content__right', chainTopClassName, isReactionEnabledClassName, useReplyingClassName])}>\n {/* incoming menu */}\n {!isByMe && !isMobile && (\n <div className={getClassName(['sendbird-message-content-menu', chainTopClassName, supposedHoverClassName, isByMeClassName])}>\n {isReactionEnabledInChannel && (\n <MessageItemReactionMenu\n className=\"sendbird-message-content-menu__reaction-menu\"\n message={message as UserMessage | FileMessage}\n userId={userId}\n spaceFromTrigger={{}}\n emojiContainer={emojiContainer}\n toggleReaction={toggleReaction}\n setSupposedHover={setSupposedHover}\n />\n )}\n <MessageItemMenu\n className=\"sendbird-message-content-menu__normal-menu\"\n channel={channel}\n message={message as UserMessage | FileMessage}\n isByMe={isByMe}\n replyType={replyType}\n disabled={disabled}\n showRemove={showRemove}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n setSupposedHover={setSupposedHover}\n onReplyInThread={({ message }) => {\n if (threadReplySelectType === ThreadReplySelectType.THREAD) {\n onReplyInThread({ message });\n } else if (threadReplySelectType === ThreadReplySelectType.PARENT) {\n scrollToMessage(message.parentMessage.createdAt, message.parentMessageId);\n }\n }}\n />\n </div>\n )}\n </div>\n {\n showMenu && (\n message?.isUserMessage?.() || message?.isFileMessage?.()\n ) && (\n <MobileMenu\n parentRef={contentRef}\n channel={channel}\n hideMenu={() => { setShowMenu(false); }}\n message={message}\n isReactionEnabled={isReactionEnabledInChannel}\n isByMe={isByMe}\n userId={userId}\n replyType={replyType}\n disabled={disabled}\n showRemove={showRemove}\n emojiContainer={emojiContainer}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n toggleReaction={toggleReaction}\n showEdit={showEdit}\n onReplyInThread={({ message }) => {\n if (threadReplySelectType === ThreadReplySelectType.THREAD) {\n onReplyInThread?.({ message });\n } else if (threadReplySelectType === ThreadReplySelectType.PARENT) {\n scrollToMessage?.(message?.parentMessage?.createdAt || 0, message?.parentMessageId || 0);\n }\n }}\n />\n )\n }\n </div>\n );\n}\n"],"names":["MessageContent","_ref","_sender","_message$threadInfo","_message$isAdminMessa","_channel$members2","_channel$members2$fin","_channel$joinedAt","_message$parentMessag","_message$parentMessag2","_channel$url","_message$reactions","_message$isUserMessag","_message$isFileMessag","className","userId","channel","message","disabled","chainTop","chainBottom","isReactionEnabled","disableQuoteMessage","replyType","threadReplySelectType","nicknamesMap","emojiContainer","scrollToMessage","showEdit","showRemove","showFileViewer","resendMessage","toggleReaction","setQuoteMessage","onReplyInThread","onQuoteMessageClick","onMessageHeightChange","messageTypes","getUIKitMessageTypes","dateLocale","useLocalization","config","useSendbirdStateContext","disableUserProfile","renderUserProfile","useContext","UserProfileContext","avatarRef","useRef","contentRef","isMobile","useMediaQueryContext","showMenu","setShowMenu","useState","mouseHover","setMouseHover","supposedHover","setSupposedHover","isByMe","sender","sendingStatus","isByMeClassName","chainTopClassName","isReactionEnabledInChannel","isEphemeral","isReactionEnabledClassName","supposedHoverClassName","useReplying","parentMessageId","parentMessage","useReplyingClassName","displayThreadReplies","threadInfo","replyCount","longPress","useLongPress","onLongPress","onClick","noop","delay","shouldPreventDefault","isAdminMessage","call","messageType","React","createElement","ClientAdminMessage","getClassName","onMouseOver","onMouseLeave","ContextMenu","menuTrigger","toggleDropdown","_channel$members","_channel$members$find","_message$sender2","Avatar","src","members","find","member","_message$sender","profileUrl","ref","width","height","menuItems","closeDropdown","MenuItems","parentRef","parentContainRef","style","paddingTop","paddingBottom","user","close","UserProfile","onSuccess","MessageItemMenu","_ref2","ThreadReplySelectType","THREAD","PARENT","createdAt","MessageItemReactionMenu","spaceFromTrigger","_extends","_objectSpread","Label","type","LabelTypography","CAPTION_2","color","LabelColors","ONBACKGROUND_2","_message$sender3","nickname","getSenderName","QuoteMessage","isUnavailable","joinedAt","_message$parentMessag3","MessageStatus","isTextMessage","TextMessageItemBody","isMentionEnabled","isOGMessage","OGMessageItemBody","getUIKitMessageType","FILE","FileMessageItemBody","isVoiceMessage","VoiceMessageItemBody","channelUrl","url","isThumbnailMessage","ThumbnailMessageItemBody","UNKNOWN","UnknownMessageItemBody","reactions","length","EmojiReactions","memberNicknamesMap","CAPTION_3","format","locale","ThreadReplies","_ref3","isUserMessage","isFileMessage","MobileMenu","hideMenu","_ref4","_message$parentMessag4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA;;AAgCe,SAASA,cAAcA,CAAAC,IAAA,EAwBd;EAAA,IAAAC,OAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,qBAAA,CAAA;EAAA,IAxBe;IACrCC,SAAS;IACTC,MAAM;IACNC,OAAO;IACPC,OAAO;AACPC,IAAAA,QAAQ,GAAG,KAAK;AAChBC,IAAAA,QAAQ,GAAG,KAAK;AAChBC,IAAAA,WAAW,GAAG,KAAK;AACnBC,IAAAA,iBAAiB,GAAG,KAAK;AACzBC,IAAAA,mBAAmB,GAAG,KAAK;IAC3BC,SAAS;IACTC,qBAAqB;IACrBC,YAAY;IACZC,cAAc;IACdC,eAAe;IACfC,QAAQ;IACRC,UAAU;IACVC,cAAc;IACdC,aAAa;IACbC,cAAc;IACdC,eAAe;IACfC,eAAe;IACfC,mBAAmB;AACnBC,IAAAA,qBAAAA;AACK,GAAC,GAAAnC,IAAA,CAAA;EACN,MAAMoC,YAAY,GAAGC,oBAAoB,EAAE,CAAA;EAC3C,MAAM;AAAEC,IAAAA,UAAAA;GAAY,GAAGC,eAAe,EAAE,CAAA;EACxC,MAAM;AAAEC,IAAAA,MAAAA;GAAQ,GAAG,CAAAC,uBAAuB,KAAvBA,IAAAA,IAAAA,uBAAuB,uBAAvBA,uBAAuB,EAAI,KAAI,EAAE,CAAA;EACpD,MAAM;IAAEC,kBAAkB;AAAEC,IAAAA,iBAAAA;AAA+C,GAAC,GAAGC,UAAU,CAACC,kBAAkB,CAAC,CAAA;AAC7G,EAAA,MAAMC,SAAS,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC9B,EAAA,MAAMC,UAAU,GAAGD,MAAM,CAAC,IAAI,CAAC,CAAA;EAC/B,MAAM;AAAEE,IAAAA,QAAAA;GAAU,GAAGC,oBAAoB,EAAE,CAAA;EAC3C,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EAC/C,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGF,QAAQ,CAAC,KAAK,CAAC,CAAA;EACnD,MAAM,CAACG,aAAa,EAAEC,gBAAgB,CAAC,GAAGJ,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEzD,EAAA,MAAMK,MAAM,GAAI5C,MAAM,MAAME,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAAf,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,OAAA,GAAPe,OAAO,CAAgC2C,MAAM,MAAA,IAAA,IAAA1D,OAAA,KAA9CA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAA,CAAgDa,MAAM,CAAA,IAC3E,CAACE,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAgC4C,aAAa,MAAK,SAAU,IACpE,CAAC5C,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAgC4C,aAAa,MAAK,QAAS,CAAA;AACzE,EAAA,MAAMC,eAAe,GAAGH,MAAM,GAAG,UAAU,GAAG,UAAU,CAAA;AACxD,EAAA,MAAMI,iBAAiB,GAAG5C,QAAQ,GAAG,WAAW,GAAG,EAAE,CAAA;EACrD,MAAM6C,0BAA0B,GAAG3C,iBAAiB,IAAI,EAACL,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAPA,OAAO,CAAEiD,WAAW,CAAA,CAAA;AAC7E,EAAA,MAAMC,0BAA0B,GAAGF,0BAA0B,GAAG,eAAe,GAAG,EAAE,CAAA;AACpF,EAAA,MAAMG,sBAAsB,GAAGV,aAAa,GAAG,sBAAsB,GAAG,EAAE,CAAA;AAC1E,EAAA,MAAMW,WAAW,GAAG,CAAC,EAAE,CAAC7C,SAAS,KAAK,aAAa,IAAIA,SAAS,KAAK,QAAQ,KACxEN,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAPA,OAAO,CAAEoD,eAAe,IAAIpD,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,IAAAA,OAAO,CAAEqD,aAAa,IAClD,CAAChD,mBAAmB,CACxB,CAAA;AACD,EAAA,MAAMiD,oBAAoB,GAAGH,WAAW,GAAG,WAAW,GAAG,EAAE,CAAA;;AAE3D;EACA,MAAMI,oBAAoB,GAAG,CAAAvD,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAd,mBAAA,GAAPc,OAAO,CAAEwD,UAAU,MAAAtE,IAAAA,IAAAA,mBAAA,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAAqBuE,UAAU,IAAG,CAAC,IAAInD,SAAS,KAAK,QAAQ,CAAA;;AAE1F;AACA;AACA;AACA;AACA;EACA,MAAMoD,SAAS,GAAGC,YAAY,CAAC;IAC7BC,WAAW,EAAEA,MAAM;AACjB,MAAA,IAAI3B,QAAQ,EAAE;QACZG,WAAW,CAAC,IAAI,CAAC,CAAA;AACnB,OAAA;KACD;AACDyB,IAAAA,OAAO,EAAEC,IAAAA;AACX,GAAC,EAAE;AACDC,IAAAA,KAAK,EAAE,GAAG;AACVC,IAAAA,oBAAoB,EAAE,KAAA;AACxB,GAAC,CAAC,CAAA;AAEF,EAAA,IAAIhE,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAA,CAAAb,qBAAA,GAAPa,OAAO,CAAEiE,cAAc,MAAA,IAAA,IAAA9E,qBAAA,KAAA,KAAA,CAAA,IAAvBA,qBAAA,CAAA+E,IAAA,CAAAlE,OAAO,CAAoB,IAAI,CAAAA,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEmE,WAAW,MAAK,OAAO,EAAE;AACnE,IAAA,oBAAQC,cAAA,CAAAC,aAAA,CAACC,YAAkB,EAAA;AAACtE,MAAAA,OAAO,EAAEA,OAAAA;KAA2B,CAAA,CAAA;AAClE,GAAA;EACA,oBACEoE,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACExE,SAAS,EAAE0E,YAAY,CAAC,CAAC1E,SAAS,EAAE,0BAA0B,EAAEgD,eAAe,CAAC,CAAE;AAClF2B,IAAAA,WAAW,EAAEA,MAAMjC,aAAa,CAAC,IAAI,CAAE;AACvCkC,IAAAA,YAAY,EAAEA,MAAMlC,aAAa,CAAC,KAAK,CAAA;GAGvC6B,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKxE,SAAS,EAAE0E,YAAY,CAAC,CAAC,gCAAgC,EAAEtB,0BAA0B,EAAEJ,eAAe,EAAES,oBAAoB,CAAC,CAAA;AAAE,GAAA,EAChI,CAACZ,MAAM,IAAI,CAACvC,WAAW;AAAA;AACvB;EACAiE,cAAA,CAAAC,aAAA,CAACK,WAAW,EAAA;AACVC,IAAAA,WAAW,EAAGC,cAA0B,IAAA;AAAA,MAAA,IAAAC,gBAAA,EAAAC,qBAAA,EAAAC,gBAAA,CAAA;AAAA,MAAA,oBACtCX,cAAA,CAAAC,aAAA,CAACW,MAAM,EAAA;AACLnF,QAAAA,SAAS,EAAG,CAAyC0D,uCAAAA,EAAAA,oBAAoB,GAAG,oBAAoB,GAAG,EAAG,CAAA,CAAA;AACtG;AAAA;QACA0B,GAAG,EAAE,CAAAlF,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA8E,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,gBAAA,GAAP9E,OAAO,CAAEmF,OAAO,MAAAL,IAAAA,IAAAA,gBAAA,wBAAAC,qBAAA,GAAhBD,gBAAA,CAAkBM,IAAI,CAAEC,MAAM,IAAA;AAAA,UAAA,IAAAC,eAAA,CAAA;UAAA,OAAK,CAAAD,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAEtF,MAAM,OAAKE,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAAqF,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,eAAA,GAAPrF,OAAO,CAAE2C,MAAM,cAAA0C,eAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAA,CAAiBvF,MAAM,CAAA,CAAA;SAAC,CAAA,MAAA,IAAA,IAAAgF,qBAAA,KAA9EA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAgFQ,UAAU,MAAItF,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA+E,gBAAA,GAAP/E,OAAO,CAAE2C,MAAM,MAAA,IAAA,IAAAoC,gBAAA,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAA,CAAiBO,UAAU,CAAI,IAAA,EAAA;AAClI;AAAA;AACAC,QAAAA,GAAG,EAAEzD,SAAU;AACf0D,QAAAA,KAAK,EAAC,MAAM;AACZC,QAAAA,MAAM,EAAC,MAAM;QACb5B,OAAO,EAAEA,MAAY;AAAE,UAAA,IAAI,CAACnC,kBAAkB,EAAEkD,cAAc,EAAE,CAAA;AAAE,SAAA;OAClE,CAAA,CAAA;KACF;AACFc,IAAAA,SAAS,EAAGC,aAAyB,iBACnCvB,cAAA,CAAAC,aAAA,CAACuB,SAAAA;AACC;AAChB;AACA;AACA,QAHgB;AAIAC,MAAAA,SAAS,EAAE/D,SAAU;AACrBgE,MAAAA,gBAAgB,EAAEhE,SAAU;AAC5B6D,MAAAA,aAAa,EAAEA,aAAc;AAC7BI,MAAAA,KAAK,EAAE;AAAEC,QAAAA,UAAU,EAAE,KAAK;AAAEC,QAAAA,aAAa,EAAE,KAAA;AAAM,OAAA;KAEhDtE,EAAAA,iBAAAA;AACC;AAAA,MACEA,iBAAiB,CAAC;AAAEuE,MAAAA,IAAI,EAAElG,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAE2C,MAAM;AAAEwD,MAAAA,KAAK,EAAER,aAAAA;KAAe,CAAA;AACnE;AAAA,mBACGvB,cAAA,CAAAC,aAAA,CAAC+B,WAAW,EAAA;MAACF,IAAI,EAAElG,OAAO,CAAC2C,MAAO;AAAC0D,MAAAA,SAAS,EAAEV,aAAAA;KAAkB,CAAA,CAAA;GAK5E,CAAA,EAEAjD,MAAM,IAAI,CAACT,QAAQ,iBAClBmC,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKxE,SAAS,EAAE0E,YAAY,CAAC,CAAC,+BAA+B,EAAEtB,0BAA0B,EAAEC,sBAAsB,EAAEL,eAAe,CAAC,CAAA;AAAE,GAAA,eACnIuB,cAAA,CAAAC,aAAA,CAACiC,eAAe,EAAA;AACdzG,IAAAA,SAAS,EAAC,4CAA4C;AACtDE,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,OAAO,EAAEA,OAAqC;AAC9C0C,IAAAA,MAAM,EAAEA,MAAO;AACfpC,IAAAA,SAAS,EAAEA,SAAU;AACrBL,IAAAA,QAAQ,EAAEA,QAAS;AACnBU,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,UAAU,EAAEA,UAAW;AACvBE,IAAAA,aAAa,EAAEA,aAAc;AAC7BE,IAAAA,eAAe,EAAEA,eAAgB;AACjCyB,IAAAA,gBAAgB,EAAEA,gBAAiB;IACnCxB,eAAe,EAAEsF,KAAA,IAAiB;MAAA,IAAhB;AAAEvG,QAAAA,OAAAA;AAAQ,OAAC,GAAAuG,KAAA,CAAA;AAC3B,MAAA,IAAIhG,qBAAqB,KAAKiG,qBAAqB,CAACC,MAAM,EAAE;AAC1DxF,QAAAA,eAAe,CAAC;AAAEjB,UAAAA,OAAAA;AAAQ,SAAC,CAAC,CAAA;AAC9B,OAAC,MAAM,IAAIO,qBAAqB,KAAKiG,qBAAqB,CAACE,MAAM,EAAE;QACjEhG,eAAe,CAACV,OAAO,CAACqD,aAAa,CAACsD,SAAS,EAAE3G,OAAO,CAACoD,eAAe,CAAC,CAAA;AAC3E,OAAA;AACF,KAAA;AAAE,GAAA,CACF,EACDL,0BAA0B,iBACzBqB,cAAA,CAAAC,aAAA,CAACuC,uBAAuB,EAAA;AACtB/G,IAAAA,SAAS,EAAC,8CAA8C;AACxDG,IAAAA,OAAO,EAAEA,OAAqC;AAC9CF,IAAAA,MAAM,EAAEA,MAAO;IACf+G,gBAAgB,EAAE,EAAG;AACrBpG,IAAAA,cAAc,EAAEA,cAAe;AAC/BM,IAAAA,cAAc,EAAEA,cAAe;AAC/B0B,IAAAA,gBAAgB,EAAEA,gBAAAA;AAAiB,GAAA,CAEtC,CAEJ,CACG,eAEN2B,cAAA,CAAAC,aAAA,QAAAyC,QAAA,CAAA;AACEjH,IAAAA,SAAS,EAAC,kCAAA;AAAkC,GAAA,EACvCoC,QAAQ,GAAA8E,cAAA,KAAQrD,SAAS,CAAA,GAAK,EAAE,EAAA;AACrC6B,IAAAA,GAAG,EAAEvD,UAAAA;AAAW,GAAA,CAAA,EAEd,CAACU,MAAM,IAAI,CAACxC,QAAQ,IAAI,CAACiD,WAAW,iBACpCiB,cAAA,CAAAC,aAAA,CAAC2C,KAAK,EAAA;AACJnH,IAAAA,SAAS,EAAC,+CAA+C;IACzDoH,IAAI,EAAEC,eAAe,CAACC,SAAU;IAChCC,KAAK,EAAEC,WAAW,CAACC,cAAAA;AAAe,GAAA;AAGhC;AACA,EAAA,CAAAvH,OAAO,KAAPA,IAAAA,IAAAA,OAAO,wBAAAX,iBAAA,GAAPW,OAAO,CAAEmF,OAAO,MAAA9F,IAAAA,IAAAA,iBAAA,wBAAAC,qBAAA,GAAhBD,iBAAA,CAAkB+F,IAAI,CAAEC,MAAM,IAAA;AAAA,IAAA,IAAAmC,gBAAA,CAAA;IAAA,OAAK,CAAAnC,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAEtF,MAAM,OAAKE,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAAuH,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,gBAAA,GAAPvH,OAAO,CAAE2C,MAAM,cAAA4E,gBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,gBAAA,CAAiBzH,MAAM,CAAA,CAAA;GAAC,CAAA,MAAA,IAAA,IAAAT,qBAAA,KAA9EA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAgFmI,QAAQ,KACrFC,aAAa,CAACzH,OAAO,CAAA;AACxB;AAAA,GAGL,EAECmD,WAAW,gBACXiB,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKxE,IAAAA,SAAS,EAAE0E,YAAY,CAAC,CAAC,iDAAiD,EAAE7B,MAAM,GAAG,UAAU,GAAG,UAAU,EAAEY,oBAAoB,CAAC,CAAA;AAAE,GAAA,eACxIc,cAAA,CAAAC,aAAA,CAACqD,YAAY,EAAA;AACX1H,IAAAA,OAAO,EAAEA,OAAqC;AAC9CF,IAAAA,MAAM,EAAEA,MAAO;AACf4C,IAAAA,MAAM,EAAEA,MAAO;AACfiF,IAAAA,aAAa,EAAGrH,SAAS,KAAK,QAAQ,IAAI,CAAA,CAAAhB,iBAAA,GAACS,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAE6H,QAAQ,cAAAtI,iBAAA,KAAA,KAAA,CAAA,GAAAA,iBAAA,GAAI,CAAC,GAAG,IAAI,KAAA,CAAAC,qBAAA,GAAAC,CAAAA,sBAAA,GAAKQ,OAAO,CAACqD,aAAa,MAAA7D,IAAAA,IAAAA,sBAAA,uBAArBA,sBAAA,CAAuBmH,SAAS,MAAApH,IAAAA,IAAAA,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAG;IACrHsE,OAAO,EAAEA,MAAM;AAAA,MAAA,IAAAgE,sBAAA,CAAA;MACb,IAAIvH,SAAS,KAAK,QAAQ,IAAIC,qBAAqB,KAAKiG,qBAAqB,CAACC,MAAM,EAAE;AACpFvF,QAAAA,mBAAmB,KAAnBA,IAAAA,IAAAA,mBAAmB,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAmB,CAAG;AAAElB,UAAAA,OAAO,EAAEA,OAAAA;AAAqC,SAAC,CAAC,CAAA;AAC1E,OAAA;AACA,MAAA,IACE,CAACM,SAAS,KAAK,aAAa,IAAKA,SAAS,KAAK,QAAQ,IAAIC,qBAAqB,KAAKiG,qBAAqB,CAACE,MAAO,KAC/G1G,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,IAAA,CAAA6H,sBAAA,GAAP7H,OAAO,CAAEqD,aAAa,MAAAwE,IAAAA,IAAAA,sBAAA,eAAtBA,sBAAA,CAAwBlB,SAAS,IAAI3G,OAAO,KAAPA,IAAAA,IAAAA,OAAO,eAAPA,OAAO,CAAEoD,eAAe,EAChE;QACA1C,eAAe,CAACV,OAAO,CAACqD,aAAa,CAACsD,SAAS,EAAE3G,OAAO,CAACoD,eAAe,CAAC,CAAA;AAC3E,OAAA;AACF,KAAA;AAAE,GAAA,CACF,CACE,GACJ,IAAI,eAERgB,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKxE,IAAAA,SAAS,EAAE0E,YAAY,CAAC,CAAC,kDAAkD,CAAC,CAAA;AAAE,GAAA,EAE/E7B,MAAM,IAAI,CAACvC,WAAW,iBACtBiE,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKxE,SAAS,EAAE0E,YAAY,CAAC,CAAC,8DAA8D,EAAE,MAAM,EAAErB,sBAAsB,CAAC,CAAA;GAC3HkB,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKxE,IAAAA,SAAS,EAAC,mFAAA;AAAmF,GAAA,eAChGuE,cAAA,CAAAC,aAAA,CAACyD,aAAa,EAAA;AACZ9H,IAAAA,OAAO,EAAEA,OAAqC;AAC9CD,IAAAA,OAAO,EAAEA,OAAAA;AAAQ,GAAA,CACjB,CACE,CAET,EAEAgI,aAAa,CAAC/H,OAAO,CAAgB,iBACpCoE,cAAA,CAAAC,aAAA,CAAC2D,mBAAmB,EAAA;AAClBnI,IAAAA,SAAS,EAAC,qDAAqD;AAC/DG,IAAAA,OAAO,EAAEA,OAAuB;AAChC0C,IAAAA,MAAM,EAAEA,MAAO;AACfJ,IAAAA,UAAU,EAAEA,UAAW;IACvB2F,gBAAgB,EAAE,CAAAzG,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAEyG,gBAAgB,KAAI,KAAM;AACpD7H,IAAAA,iBAAiB,EAAE2C,0BAAAA;GAEtB,CAAA,EACCmF,WAAW,CAAClI,OAAO,CAAgB,iBACnCoE,cAAA,CAAAC,aAAA,CAAC8D,iBAAiB,EAAA;AAChBtI,IAAAA,SAAS,EAAC,qDAAqD;AAC/DG,IAAAA,OAAO,EAAEA,OAAuB;AAChC0C,IAAAA,MAAM,EAAEA,MAAO;AACfJ,IAAAA,UAAU,EAAEA,UAAW;IACvB2F,gBAAgB,EAAE,CAAAzG,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAEyG,gBAAgB,KAAI,KAAM;AACpD7H,IAAAA,iBAAiB,EAAE2C,0BAA2B;AAC9C5B,IAAAA,qBAAqB,EAAEA,qBAAAA;AAAsB,GAAA,CAEhD,EACCiH,mBAAmB,CAAEpI,OAAO,CAAiB,KAAKoB,YAAY,CAACiH,IAAI,iBACnEjE,cAAA,CAAAC,aAAA,CAACiE,mBAAmB,EAAA;AAClBzI,IAAAA,SAAS,EAAC,qDAAqD;AAC/DG,IAAAA,OAAO,EAAEA,OAAuB;AAChC0C,IAAAA,MAAM,EAAEA,MAAO;AACfJ,IAAAA,UAAU,EAAEA,UAAW;AACvBlC,IAAAA,iBAAiB,EAAE2C,0BAAAA;GAEtB,CAAA,EACAwF,cAAc,CAACvI,OAAO,CAAgB,iBACrCoE,cAAA,CAAAC,aAAA,CAACmE,oBAAoB,EAAA;AACnB3I,IAAAA,SAAS,EAAC,qDAAqD;AAC/DG,IAAAA,OAAO,EAAEA,OAAuB;AAChCyI,IAAAA,UAAU,EAAAhJ,CAAAA,YAAA,GAAEM,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAE2I,GAAG,MAAAjJ,IAAAA,IAAAA,YAAA,KAAAA,KAAAA,CAAAA,GAAAA,YAAA,GAAI,EAAG;AAC/BiD,IAAAA,MAAM,EAAEA,MAAO;AACftC,IAAAA,iBAAiB,EAAE2C,0BAAAA;GAEtB,CAAA,EACC4F,kBAAkB,CAAC3I,OAAO,CAAgB,iBAC1CoE,cAAA,CAAAC,aAAA,CAACuE,wBAAwB,EAAA;AACvB/I,IAAAA,SAAS,EAAC,qDAAqD;AAC/DG,IAAAA,OAAO,EAAEA,OAAuB;AAChC0C,IAAAA,MAAM,EAAEA,MAAO;AACfJ,IAAAA,UAAU,EAAEA,UAAW;AACvBlC,IAAAA,iBAAiB,EAAE2C,0BAA2B;AAC9ClC,IAAAA,cAAc,EAAEA,cAAAA;AAAe,GAAA,CAElC,EACCuH,mBAAmB,CAAEpI,OAAO,CAAiB,KAAKoB,YAAY,CAACyH,OAAO,iBACtEzE,cAAA,CAAAC,aAAA,CAACyE,sBAAsB,EAAA;AACrBjJ,IAAAA,SAAS,EAAC,qDAAqD;AAC/DG,IAAAA,OAAO,EAAEA,OAAQ;AACjB0C,IAAAA,MAAM,EAAEA,MAAO;AACfJ,IAAAA,UAAU,EAAEA,UAAW;AACvBlC,IAAAA,iBAAiB,EAAE2C,0BAAAA;GAEtB,CAAA,EAECA,0BAA0B,IAAI,CAAA/C,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAN,kBAAA,GAAPM,OAAO,CAAE+I,SAAS,MAAArJ,IAAAA,IAAAA,kBAAA,KAAlBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAoBsJ,MAAM,IAAG,CAAC,iBAC5D5E,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKxE,IAAAA,SAAS,EAAE0E,YAAY,CAAC,CAC3B,oCAAoC,EACnC,CAAC7B,MAAM,IAAIiG,kBAAkB,CAAC3I,OAAO,CAAgB,IAAIkI,WAAW,CAAClI,OAAO,CAAgB,GAAI,EAAE,GAAG,SAAS,EAC/GsC,UAAU,GAAG,aAAa,GAAG,EAAE,CAChC,CAAA;AAAE,GAAA,eACD8B,cAAA,CAAAC,aAAA,CAAC4E,cAAc,EAAA;AACbnJ,IAAAA,MAAM,EAAEA,MAAO;AACfE,IAAAA,OAAO,EAAEA,OAAqC;AAC9CD,IAAAA,OAAO,EAAEA,OAAQ;AACjB2C,IAAAA,MAAM,EAAEA,MAAO;AACfjC,IAAAA,cAAc,EAAEA,cAAe;AAC/ByI,IAAAA,kBAAkB,EAAE1I,YAAa;AACjCO,IAAAA,cAAc,EAAEA,cAAAA;AAAe,GAAA,CAC/B,CAEL,EACC,CAAC2B,MAAM,IAAI,CAACvC,WAAW,iBACvBiE,cAAA,CAAAC,aAAA,CAAC2C,KAAK,EAAA;IACJnH,SAAS,EAAE0E,YAAY,CAAC,CAAC,8DAA8D,EAAE,OAAO,EAAErB,sBAAsB,CAAC,CAAE;IAC3H+D,IAAI,EAAEC,eAAe,CAACiC,SAAU;IAChC/B,KAAK,EAAEC,WAAW,CAACC,cAAAA;AAAe,GAAA,EAEjC8B,MAAM,CAAC,CAAApJ,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAE2G,SAAS,KAAI,CAAC,EAAE,GAAG,EAAE;AACpC0C,IAAAA,MAAM,EAAE/H,UAAAA;GACT,CAAC,CAEL,CACG,EAELiC,oBAAoB,iBACnBa,cAAA,CAAAC,aAAA,CAACiF,aAAa,EAAA;AACZzJ,IAAAA,SAAS,EAAC,kDAAkD;AAC5D2D,IAAAA,UAAU,EAAExD,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEwD,UAAW;IAChCK,OAAO,EAAEA,MAAM5C,eAAe,aAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAG;AAAEjB,MAAAA,OAAO,EAAEA,OAAAA;KAAsC,CAAA;AAAE,GAAA,CAEvF,CACG,eAENoE,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKxE,SAAS,EAAE0E,YAAY,CAAC,CAAC,iCAAiC,EAAEzB,iBAAiB,EAAEG,0BAA0B,EAAEK,oBAAoB,CAAC,CAAA;GAElI,EAAA,CAACZ,MAAM,IAAI,CAACT,QAAQ,iBACnBmC,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKxE,SAAS,EAAE0E,YAAY,CAAC,CAAC,+BAA+B,EAAEzB,iBAAiB,EAAEI,sBAAsB,EAAEL,eAAe,CAAC,CAAA;AAAE,GAAA,EACzHE,0BAA0B,iBACzBqB,cAAA,CAAAC,aAAA,CAACuC,uBAAuB,EAAA;AACtB/G,IAAAA,SAAS,EAAC,8CAA8C;AACxDG,IAAAA,OAAO,EAAEA,OAAqC;AAC9CF,IAAAA,MAAM,EAAEA,MAAO;IACf+G,gBAAgB,EAAE,EAAG;AACrBpG,IAAAA,cAAc,EAAEA,cAAe;AAC/BM,IAAAA,cAAc,EAAEA,cAAe;AAC/B0B,IAAAA,gBAAgB,EAAEA,gBAAAA;AAAiB,GAAA,CAEtC,eACD2B,cAAA,CAAAC,aAAA,CAACiC,eAAe,EAAA;AACdzG,IAAAA,SAAS,EAAC,4CAA4C;AACtDE,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,OAAO,EAAEA,OAAqC;AAC9C0C,IAAAA,MAAM,EAAEA,MAAO;AACfpC,IAAAA,SAAS,EAAEA,SAAU;AACrBL,IAAAA,QAAQ,EAAEA,QAAS;AACnBW,IAAAA,UAAU,EAAEA,UAAW;AACvBE,IAAAA,aAAa,EAAEA,aAAc;AAC7BE,IAAAA,eAAe,EAAEA,eAAgB;AACjCyB,IAAAA,gBAAgB,EAAEA,gBAAiB;IACnCxB,eAAe,EAAEsI,KAAA,IAAiB;MAAA,IAAhB;AAAEvJ,QAAAA,OAAAA;AAAQ,OAAC,GAAAuJ,KAAA,CAAA;AAC3B,MAAA,IAAIhJ,qBAAqB,KAAKiG,qBAAqB,CAACC,MAAM,EAAE;AAC1DxF,QAAAA,eAAe,CAAC;AAAEjB,UAAAA,OAAAA;AAAQ,SAAC,CAAC,CAAA;AAC9B,OAAC,MAAM,IAAIO,qBAAqB,KAAKiG,qBAAqB,CAACE,MAAM,EAAE;QACjEhG,eAAe,CAACV,OAAO,CAACqD,aAAa,CAACsD,SAAS,EAAE3G,OAAO,CAACoD,eAAe,CAAC,CAAA;AAC3E,OAAA;AACF,KAAA;GACA,CAAA,CAEL,CACG,EAEJjB,QAAQ,KACN,CAAAnC,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAAL,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAPK,OAAO,CAAEwJ,aAAa,MAAA7J,IAAAA,IAAAA,qBAAA,uBAAtBA,qBAAA,CAAAuE,IAAA,CAAAlE,OAAO,CAAmB,MAAIA,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAAJ,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAPI,OAAO,CAAEyJ,aAAa,MAAA,IAAA,IAAA7J,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,qBAAA,CAAAsE,IAAA,CAAAlE,OAAO,CAAmB,CAAA,CACzD,iBACCoE,cAAA,CAAAC,aAAA,CAACqF,UAAU,EAAA;AACT7D,IAAAA,SAAS,EAAE7D,UAAW;AACtBjC,IAAAA,OAAO,EAAEA,OAAQ;IACjB4J,QAAQ,EAAEA,MAAM;MAAEvH,WAAW,CAAC,KAAK,CAAC,CAAA;KAAI;AACxCpC,IAAAA,OAAO,EAAEA,OAAQ;AACjBI,IAAAA,iBAAiB,EAAE2C,0BAA2B;AAC9CL,IAAAA,MAAM,EAAEA,MAAO;AACf5C,IAAAA,MAAM,EAAEA,MAAO;AACfQ,IAAAA,SAAS,EAAEA,SAAU;AACrBL,IAAAA,QAAQ,EAAEA,QAAS;AACnBW,IAAAA,UAAU,EAAEA,UAAW;AACvBH,IAAAA,cAAc,EAAEA,cAAe;AAC/BK,IAAAA,aAAa,EAAEA,aAAc;AAC7BE,IAAAA,eAAe,EAAEA,eAAgB;AACjCD,IAAAA,cAAc,EAAEA,cAAe;AAC/BJ,IAAAA,QAAQ,EAAEA,QAAS;IACnBM,eAAe,EAAE2I,KAAA,IAAiB;MAAA,IAAhB;AAAE5J,QAAAA,OAAAA;AAAQ,OAAC,GAAA4J,KAAA,CAAA;AAC3B,MAAA,IAAIrJ,qBAAqB,KAAKiG,qBAAqB,CAACC,MAAM,EAAE;AAC1DxF,QAAAA,eAAe,KAAfA,IAAAA,IAAAA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAG;AAAEjB,UAAAA,OAAAA;AAAQ,SAAC,CAAC,CAAA;AAChC,OAAC,MAAM,IAAIO,qBAAqB,KAAKiG,qBAAqB,CAACE,MAAM,EAAE;AAAA,QAAA,IAAAmD,sBAAA,CAAA;AACjEnJ,QAAAA,eAAe,KAAfA,IAAAA,IAAAA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAG,CAAAV,OAAO,KAAPA,IAAAA,IAAAA,OAAO,wBAAA6J,sBAAA,GAAP7J,OAAO,CAAEqD,aAAa,MAAAwG,IAAAA,IAAAA,sBAAA,KAAtBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAwBlD,SAAS,KAAI,CAAC,EAAE,CAAA3G,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEoD,eAAe,KAAI,CAAC,CAAC,CAAA;AAC1F,OAAA;AACF,KAAA;AAAE,GAAA,CAEL,CAEC,CAAA;AAEV;;;;"}
|
|
1
|
+
{"version":3,"file":"MessageContent.js","sources":["../../src/ui/MessageContent/index.tsx"],"sourcesContent":["import React, {\n ReactElement,\n useContext,\n useRef,\n useState,\n} from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport UserProfile from '../UserProfile';\nimport MessageStatus from '../MessageStatus';\nimport MessageItemMenu from '../MessageItemMenu';\nimport MessageItemReactionMenu from '../MessageItemReactionMenu';\nimport ContextMenu, { MenuItems } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport EmojiReactions from '../EmojiReactions';\n\nimport ClientAdminMessage from '../AdminMessage';\nimport TextMessageItemBody from '../TextMessageItemBody';\nimport FileMessageItemBody from '../FileMessageItemBody';\nimport ThumbnailMessageItemBody from '../ThumbnailMessageItemBody';\nimport OGMessageItemBody from '../OGMessageItemBody';\nimport UnknownMessageItemBody from '../UnknownMessageItemBody';\nimport QuoteMessage from '../QuoteMessage';\n\nimport {\n getClassName,\n getUIKitMessageTypes,\n getUIKitMessageType,\n isTextMessage,\n isOGMessage,\n isThumbnailMessage,\n getSenderName,\n isVoiceMessage,\n} from '../../utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport { ReplyType } from '../../index';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { EmojiContainer } from '@sendbird/chat';\nimport { AdminMessage, FileMessage, Sender, UserMessage } from '@sendbird/chat/message';\nimport useLongPress from '../../hooks/useLongPress';\nimport MobileMenu from '../MobileMenu';\nimport { useMediaQueryContext } from '../../lib/MediaQueryContext';\nimport ThreadReplies from '../ThreadReplies';\nimport { ThreadReplySelectType } from '../../modules/Channel/context/const';\nimport VoiceMessageItemBody from '../VoiceMessageItemBody';\nimport { Nullable } from '../../types';\nimport { noop } from '../../utils/utils';\n\n// should initialize in UserProfileContext.jsx\nexport interface UserProfileContextInterface {\n disableUserProfile: boolean;\n isOpenChannel: boolean;\n renderUserProfile?: (props: { user: Sender, close: () => void }) => React.ReactElement,\n}\n\ninterface Props {\n className?: string | Array<string>;\n userId: string;\n channel: Nullable<GroupChannel>;\n message: AdminMessage | UserMessage | FileMessage;\n disabled?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n isReactionEnabled?: boolean;\n disableQuoteMessage?: boolean;\n replyType?: ReplyType;\n threadReplySelectType?: ThreadReplySelectType;\n nicknamesMap?: Map<string, string>;\n emojiContainer?: EmojiContainer;\n scrollToMessage?: (createdAt: number, messageId: number) => void;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n showFileViewer?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => Promise<UserMessage | FileMessage>;\n toggleReaction?: (message: UserMessage | FileMessage, reactionKey: string, isReacted: boolean) => void;\n setQuoteMessage?: (message: UserMessage | FileMessage) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n onQuoteMessageClick?: (props: { message: UserMessage | FileMessage }) => void;\n onMessageHeightChange?: () => void;\n}\nexport default function MessageContent({\n className,\n userId,\n channel,\n message,\n disabled = false,\n chainTop = false,\n chainBottom = false,\n isReactionEnabled = false,\n disableQuoteMessage = false,\n replyType,\n threadReplySelectType,\n nicknamesMap,\n emojiContainer,\n scrollToMessage,\n showEdit,\n showRemove,\n showFileViewer,\n resendMessage,\n toggleReaction,\n setQuoteMessage,\n onReplyInThread,\n onQuoteMessageClick,\n onMessageHeightChange,\n}: Props): ReactElement {\n const messageTypes = getUIKitMessageTypes();\n const { dateLocale } = useLocalization();\n const { config } = useSendbirdStateContext?.() || {};\n const { disableUserProfile, renderUserProfile }: UserProfileContextInterface = useContext(UserProfileContext);\n const avatarRef = useRef(null);\n const contentRef = useRef(null);\n const { isMobile } = useMediaQueryContext();\n const [showMenu, setShowMenu] = useState(false);\n const [mouseHover, setMouseHover] = useState(false);\n const [supposedHover, setSupposedHover] = useState(false);\n\n const isByMe = (userId === (message as UserMessage | FileMessage)?.sender?.userId)\n || ((message as UserMessage | FileMessage)?.sendingStatus === 'pending')\n || ((message as UserMessage | FileMessage)?.sendingStatus === 'failed');\n const isByMeClassName = isByMe ? 'outgoing' : 'incoming';\n const chainTopClassName = chainTop ? 'chain-top' : '';\n const isReactionEnabledInChannel = isReactionEnabled && !channel?.isEphemeral;\n const isReactionEnabledClassName = isReactionEnabledInChannel ? 'use-reactions' : '';\n const supposedHoverClassName = supposedHover ? 'sendbird-mouse-hover' : '';\n const useReplying = !!((replyType === 'QUOTE_REPLY' || replyType === 'THREAD')\n && message?.parentMessageId && message?.parentMessage\n && !disableQuoteMessage\n );\n const useReplyingClassName = useReplying ? 'use-quote' : '';\n\n // Thread replies\n const displayThreadReplies = message?.threadInfo?.replyCount > 0 && replyType === 'THREAD';\n\n // onMouseDown: (e: React.MouseEvent<T>) => void;\n // onTouchStart: (e: React.TouchEvent<T>) => void;\n // onMouseUp: (e: React.MouseEvent<T>) => void;\n // onMouseLeave: (e: React.MouseEvent<T>) => void;\n // onTouchEnd: (e: React.TouchEvent<T>) => void;\n const longPress = useLongPress({\n onLongPress: () => {\n if (isMobile) {\n setShowMenu(true);\n }\n },\n onClick: noop,\n }, {\n delay: 300,\n shouldPreventDefault: false,\n });\n\n if (message?.isAdminMessage?.() || message?.messageType === 'admin') {\n return (<ClientAdminMessage message={message as AdminMessage} />);\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-content', isByMeClassName])}\n onMouseOver={() => setMouseHover(true)}\n onMouseLeave={() => setMouseHover(false)}\n >\n {/* left */}\n <div className={getClassName(['sendbird-message-content__left', isReactionEnabledClassName, isByMeClassName, useReplyingClassName])}>\n {(!isByMe && !chainBottom) && (\n /** user profile */\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <Avatar\n className={`sendbird-message-content__left__avatar ${displayThreadReplies ? 'use-thread-replies' : ''}`}\n // @ts-ignore\n src={channel?.members?.find((member) => member?.userId === message?.sender?.userId)?.profileUrl || message?.sender?.profileUrl || ''}\n // TODO: Divide getting profileUrl logic to utils\n ref={avatarRef}\n width=\"28px\"\n height=\"28px\"\n onClick={(): void => { if (!disableUserProfile) toggleDropdown(); }}\n />\n )}\n menuItems={(closeDropdown: () => void): ReactElement => (\n <MenuItems\n /**\n * parentRef: For catching location(x, y) of MenuItems\n * parentContainRef: For toggling more options(menus & reactions)\n */\n parentRef={avatarRef}\n parentContainRef={avatarRef}\n closeDropdown={closeDropdown}\n style={{ paddingTop: '0px', paddingBottom: '0px' }}\n >\n {renderUserProfile\n // @ts-ignore\n ? renderUserProfile({ user: message?.sender, close: closeDropdown })\n // @ts-ignore\n : (<UserProfile user={message.sender} onSuccess={closeDropdown} />)\n }\n </MenuItems>\n )}\n />\n )}\n {/* outgoing menu */}\n {isByMe && !isMobile && (\n <div className={getClassName(['sendbird-message-content-menu', isReactionEnabledClassName, supposedHoverClassName, isByMeClassName])}>\n <MessageItemMenu\n className=\"sendbird-message-content-menu__normal-menu\"\n channel={channel}\n message={message as UserMessage | FileMessage}\n isByMe={isByMe}\n replyType={replyType}\n disabled={disabled}\n showEdit={showEdit}\n showRemove={showRemove}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n setSupposedHover={setSupposedHover}\n onReplyInThread={({ message }) => {\n if (threadReplySelectType === ThreadReplySelectType.THREAD) {\n onReplyInThread({ message });\n } else if (threadReplySelectType === ThreadReplySelectType.PARENT) {\n scrollToMessage(message.parentMessage.createdAt, message.parentMessageId);\n }\n }}\n />\n {isReactionEnabledInChannel && (\n <MessageItemReactionMenu\n className=\"sendbird-message-content-menu__reaction-menu\"\n message={message as UserMessage | FileMessage}\n userId={userId}\n spaceFromTrigger={{}}\n emojiContainer={emojiContainer}\n toggleReaction={toggleReaction}\n setSupposedHover={setSupposedHover}\n />\n )}\n </div>\n )}\n </div>\n {/* middle */}\n <div\n className=\"sendbird-message-content__middle\"\n {...(isMobile ? { ...longPress } : {})}\n ref={contentRef}\n >\n {(!isByMe && !chainTop && !useReplying) && (\n <Label\n className=\"sendbird-message-content__middle__sender-name\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {\n // @ts-ignore\n channel?.members?.find((member) => member?.userId === message?.sender?.userId)?.nickname\n || getSenderName(message as UserMessage | FileMessage)\n // TODO: Divide getting profileUrl logic to utils\n }\n </Label>\n )}\n {/* quote message */}\n {(useReplying) ? (\n <div className={getClassName(['sendbird-message-content__middle__quote-message', isByMe ? 'outgoing' : 'incoming', useReplyingClassName])}>\n <QuoteMessage\n className=\"sendbird-message-content__middle__quote-message__quote\"\n message={message as UserMessage | FileMessage}\n userId={userId}\n isByMe={isByMe}\n isUnavailable={(replyType === 'THREAD' && (channel?.joinedAt ?? 0 * 1000) > (message.parentMessage?.createdAt ?? 0))}\n onClick={() => {\n if (replyType === 'THREAD' && threadReplySelectType === ThreadReplySelectType.THREAD) {\n onQuoteMessageClick?.({ message: message as UserMessage | FileMessage });\n }\n if (\n (replyType === 'QUOTE_REPLY' || (replyType === 'THREAD' && threadReplySelectType === ThreadReplySelectType.PARENT))\n && message?.parentMessage?.createdAt && message?.parentMessageId\n ) {\n scrollToMessage(message.parentMessage.createdAt, message.parentMessageId);\n }\n }}\n />\n </div>\n ) : null}\n {/* container: message item body + emoji reactions */}\n <div className={getClassName(['sendbird-message-content__middle__body-container'])} >\n {/* message status component */}\n {(isByMe && !chainBottom) && (\n <div className={getClassName(['sendbird-message-content__middle__body-container__created-at', 'left', supposedHoverClassName])}>\n <div className=\"sendbird-message-content__middle__body-container__created-at__component-container\">\n <MessageStatus\n message={message as UserMessage | FileMessage}\n channel={channel}\n />\n </div>\n </div>\n )}\n {/* message item body components */}\n {isTextMessage(message as UserMessage) && (\n <TextMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message as UserMessage}\n isByMe={isByMe}\n mouseHover={mouseHover}\n isMentionEnabled={config?.isMentionEnabled || false}\n isReactionEnabled={isReactionEnabledInChannel}\n />\n )}\n {(isOGMessage(message as UserMessage)) && (\n <OGMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message as UserMessage}\n isByMe={isByMe}\n mouseHover={mouseHover}\n isMentionEnabled={config?.isMentionEnabled || false}\n isReactionEnabled={isReactionEnabledInChannel}\n onMessageHeightChange={onMessageHeightChange}\n />\n )}\n {(getUIKitMessageType((message as FileMessage)) === messageTypes.FILE) && (\n <FileMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message as FileMessage}\n isByMe={isByMe}\n mouseHover={mouseHover}\n isReactionEnabled={isReactionEnabledInChannel}\n />\n )}\n {isVoiceMessage(message as FileMessage) && (\n <VoiceMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message as FileMessage}\n channelUrl={channel?.url ?? ''}\n isByMe={isByMe}\n isReactionEnabled={isReactionEnabledInChannel}\n />\n )}\n {(isThumbnailMessage(message as FileMessage)) && (\n <ThumbnailMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message as FileMessage}\n isByMe={isByMe}\n mouseHover={mouseHover}\n isReactionEnabled={isReactionEnabledInChannel}\n showFileViewer={showFileViewer}\n style={isMobile ? { width: '100%' } : {}}\n />\n )}\n {(getUIKitMessageType((message as FileMessage)) === messageTypes.UNKNOWN) && (\n <UnknownMessageItemBody\n className=\"sendbird-message-content__middle__message-item-body\"\n message={message}\n isByMe={isByMe}\n mouseHover={mouseHover}\n isReactionEnabled={isReactionEnabledInChannel}\n />\n )}\n {/* reactions */}\n {(isReactionEnabledInChannel && message?.reactions?.length > 0) && (\n <div className={getClassName([\n 'sendbird-message-content-reactions',\n (!isByMe || isThumbnailMessage(message as FileMessage) || isOGMessage(message as UserMessage)) ? '' : 'primary',\n mouseHover ? 'mouse-hover' : '',\n ])}>\n <EmojiReactions\n userId={userId}\n message={message as UserMessage | FileMessage}\n channel={channel}\n isByMe={isByMe}\n emojiContainer={emojiContainer}\n memberNicknamesMap={nicknamesMap}\n toggleReaction={toggleReaction}\n />\n </div>\n )}\n {(!isByMe && !chainBottom) && (\n <Label\n className={getClassName(['sendbird-message-content__middle__body-container__created-at', 'right', supposedHoverClassName])}\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {format(message?.createdAt || 0, 'p', {\n locale: dateLocale,\n })}\n </Label>\n )}\n </div>\n {/* thread replies */}\n {displayThreadReplies && (\n <ThreadReplies\n className=\"sendbird-message-content__middle__thread-replies\"\n threadInfo={message?.threadInfo}\n onClick={() => onReplyInThread?.({ message: message as UserMessage | FileMessage })}\n />\n )}\n </div>\n {/* right */}\n <div className={getClassName(['sendbird-message-content__right', chainTopClassName, isReactionEnabledClassName, useReplyingClassName])}>\n {/* incoming menu */}\n {!isByMe && !isMobile && (\n <div className={getClassName(['sendbird-message-content-menu', chainTopClassName, supposedHoverClassName, isByMeClassName])}>\n {isReactionEnabledInChannel && (\n <MessageItemReactionMenu\n className=\"sendbird-message-content-menu__reaction-menu\"\n message={message as UserMessage | FileMessage}\n userId={userId}\n spaceFromTrigger={{}}\n emojiContainer={emojiContainer}\n toggleReaction={toggleReaction}\n setSupposedHover={setSupposedHover}\n />\n )}\n <MessageItemMenu\n className=\"sendbird-message-content-menu__normal-menu\"\n channel={channel}\n message={message as UserMessage | FileMessage}\n isByMe={isByMe}\n replyType={replyType}\n disabled={disabled}\n showRemove={showRemove}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n setSupposedHover={setSupposedHover}\n onReplyInThread={({ message }) => {\n if (threadReplySelectType === ThreadReplySelectType.THREAD) {\n onReplyInThread({ message });\n } else if (threadReplySelectType === ThreadReplySelectType.PARENT) {\n scrollToMessage(message.parentMessage.createdAt, message.parentMessageId);\n }\n }}\n />\n </div>\n )}\n </div>\n {\n showMenu && (\n message?.isUserMessage?.() || message?.isFileMessage?.()\n ) && (\n <MobileMenu\n parentRef={contentRef}\n channel={channel}\n hideMenu={() => { setShowMenu(false); }}\n message={message}\n isReactionEnabled={isReactionEnabledInChannel}\n isByMe={isByMe}\n userId={userId}\n replyType={replyType}\n disabled={disabled}\n showRemove={showRemove}\n emojiContainer={emojiContainer}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n toggleReaction={toggleReaction}\n showEdit={showEdit}\n onReplyInThread={({ message }) => {\n if (threadReplySelectType === ThreadReplySelectType.THREAD) {\n onReplyInThread?.({ message });\n } else if (threadReplySelectType === ThreadReplySelectType.PARENT) {\n scrollToMessage?.(message?.parentMessage?.createdAt || 0, message?.parentMessageId || 0);\n }\n }}\n />\n )\n }\n </div>\n );\n}\n"],"names":["MessageContent","_ref","_sender","_message$threadInfo","_message$isAdminMessa","_channel$members2","_channel$members2$fin","_channel$joinedAt","_message$parentMessag","_message$parentMessag2","_channel$url","_message$reactions","_message$isUserMessag","_message$isFileMessag","className","userId","channel","message","disabled","chainTop","chainBottom","isReactionEnabled","disableQuoteMessage","replyType","threadReplySelectType","nicknamesMap","emojiContainer","scrollToMessage","showEdit","showRemove","showFileViewer","resendMessage","toggleReaction","setQuoteMessage","onReplyInThread","onQuoteMessageClick","onMessageHeightChange","messageTypes","getUIKitMessageTypes","dateLocale","useLocalization","config","useSendbirdStateContext","disableUserProfile","renderUserProfile","useContext","UserProfileContext","avatarRef","useRef","contentRef","isMobile","useMediaQueryContext","showMenu","setShowMenu","useState","mouseHover","setMouseHover","supposedHover","setSupposedHover","isByMe","sender","sendingStatus","isByMeClassName","chainTopClassName","isReactionEnabledInChannel","isEphemeral","isReactionEnabledClassName","supposedHoverClassName","useReplying","parentMessageId","parentMessage","useReplyingClassName","displayThreadReplies","threadInfo","replyCount","longPress","useLongPress","onLongPress","onClick","noop","delay","shouldPreventDefault","isAdminMessage","call","messageType","React","createElement","ClientAdminMessage","getClassName","onMouseOver","onMouseLeave","ContextMenu","menuTrigger","toggleDropdown","_channel$members","_channel$members$find","_message$sender2","Avatar","src","members","find","member","_message$sender","profileUrl","ref","width","height","menuItems","closeDropdown","MenuItems","parentRef","parentContainRef","style","paddingTop","paddingBottom","user","close","UserProfile","onSuccess","MessageItemMenu","_ref2","ThreadReplySelectType","THREAD","PARENT","createdAt","MessageItemReactionMenu","spaceFromTrigger","_extends","_objectSpread","Label","type","LabelTypography","CAPTION_2","color","LabelColors","ONBACKGROUND_2","_message$sender3","nickname","getSenderName","QuoteMessage","isUnavailable","joinedAt","_message$parentMessag3","MessageStatus","isTextMessage","TextMessageItemBody","isMentionEnabled","isOGMessage","OGMessageItemBody","getUIKitMessageType","FILE","FileMessageItemBody","isVoiceMessage","VoiceMessageItemBody","channelUrl","url","isThumbnailMessage","ThumbnailMessageItemBody","UNKNOWN","UnknownMessageItemBody","reactions","length","EmojiReactions","memberNicknamesMap","CAPTION_3","format","locale","ThreadReplies","_ref3","isUserMessage","isFileMessage","MobileMenu","hideMenu","_ref4","_message$parentMessag4"],"mappings":"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"}
|
package/ui/MessageInput.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-
|
|
1
|
+
import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-0bc76382.js';
|
|
2
2
|
import React__default, { useCallback, useContext, useRef, useState, useMemo, useEffect } from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-
|
|
5
|
-
import { U as USER_MENTION_TEMP_CHAR } from '../const-
|
|
4
|
+
import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-8daee9fc.js';
|
|
5
|
+
import { U as USER_MENTION_TEMP_CHAR } from '../const-e51dda0c.js';
|
|
6
6
|
import IconButton from './IconButton.js';
|
|
7
7
|
import Button, { ButtonTypes, ButtonSizes } from './Button.js';
|
|
8
8
|
import DOMPurify from 'dompurify';
|
|
9
|
-
import { M as MENTION_USER_LABEL_CLASSNAME } from '../consts-
|
|
9
|
+
import { M as MENTION_USER_LABEL_CLASSNAME } from '../consts-d0b365df.js';
|
|
10
10
|
import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
11
|
-
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-
|
|
12
|
-
import { a as LocalizationContext } from '../LocalizationContext-
|
|
13
|
-
import {
|
|
14
|
-
import { T as TEXT_MESSAGE_BODY_CLASSNAME } from '../consts-
|
|
15
|
-
import { O as OG_MESSAGE_BODY_CLASSNAME } from '../consts-
|
|
16
|
-
import { t as tokenizeMessage, T as TOKEN_TYPES, U as USER_MENTION_PREFIX } from '../tokenize-
|
|
17
|
-
import '../stringSet-
|
|
18
|
-
import '../index-
|
|
11
|
+
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-4023d1b2.js';
|
|
12
|
+
import { a as LocalizationContext } from '../LocalizationContext-57b46f6c.js';
|
|
13
|
+
import { j as arrayEqual, h as getClassName } from '../index-e2601165.js';
|
|
14
|
+
import { T as TEXT_MESSAGE_BODY_CLASSNAME } from '../consts-d0cfee49.js';
|
|
15
|
+
import { O as OG_MESSAGE_BODY_CLASSNAME } from '../consts-7aab5aff.js';
|
|
16
|
+
import { t as tokenizeMessage, T as TOKEN_TYPES, U as USER_MENTION_PREFIX } from '../tokenize-003bf3f7.js';
|
|
17
|
+
import '../stringSet-7a8ce1ce.js';
|
|
18
|
+
import '../index-865112db.js';
|
|
19
19
|
import '../utils/message/getOutgoingMessageState.js';
|
|
20
20
|
|
|
21
21
|
// cretes a sanitized string from a mention user label
|
package/ui/MessageItemMenu.js
CHANGED
|
@@ -2,18 +2,18 @@ import React__default, { useContext, useRef } from 'react';
|
|
|
2
2
|
import ContextMenu, { MenuItems, MenuItem } from './ContextMenu.js';
|
|
3
3
|
import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
4
4
|
import IconButton from './IconButton.js';
|
|
5
|
-
import {
|
|
6
|
-
import { a as LocalizationContext } from '../LocalizationContext-
|
|
7
|
-
import { R as Role } from '../types-
|
|
8
|
-
import '../_rollupPluginBabelHelpers-
|
|
5
|
+
import { q as isUserMessage, C as isSentMessage, D as isFailedMessage, E as isPendingMessage, h as getClassName, F as copyToClipboard } from '../index-e2601165.js';
|
|
6
|
+
import { a as LocalizationContext } from '../LocalizationContext-57b46f6c.js';
|
|
7
|
+
import { R as Role } from '../types-bffbc5f5.js';
|
|
8
|
+
import '../_rollupPluginBabelHelpers-0bc76382.js';
|
|
9
9
|
import 'react-dom';
|
|
10
10
|
import './SortByRow.js';
|
|
11
|
-
import '../uuid-
|
|
12
|
-
import '../index-
|
|
11
|
+
import '../uuid-1f1bbd9c.js';
|
|
12
|
+
import '../index-4023d1b2.js';
|
|
13
13
|
import 'prop-types';
|
|
14
|
-
import '../stringSet-
|
|
14
|
+
import '../stringSet-7a8ce1ce.js';
|
|
15
15
|
import '../utils/message/getOutgoingMessageState.js';
|
|
16
|
-
import '../index-
|
|
16
|
+
import '../index-865112db.js';
|
|
17
17
|
|
|
18
18
|
function MessageItemMenu(_ref) {
|
|
19
19
|
var _channel$isGroupChann;
|
|
@@ -93,14 +93,16 @@ function MessageItemMenu(_ref) {
|
|
|
93
93
|
onClick: () => {
|
|
94
94
|
copyToClipboard(message === null || message === void 0 ? void 0 : message.message);
|
|
95
95
|
closeDropdown();
|
|
96
|
-
}
|
|
96
|
+
},
|
|
97
|
+
dataSbId: "ui_message_item_menu_copy"
|
|
97
98
|
}, stringSet.MESSAGE_MENU__COPY), showMenuItemReply && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
98
99
|
className: "sendbird-message-item-menu__list__menu-item menu-item-reply",
|
|
99
100
|
onClick: () => {
|
|
100
101
|
setQuoteMessage(message);
|
|
101
102
|
closeDropdown();
|
|
102
103
|
},
|
|
103
|
-
disable: (message === null || message === void 0 ? void 0 : message.parentMessageId) > 0
|
|
104
|
+
disable: (message === null || message === void 0 ? void 0 : message.parentMessageId) > 0,
|
|
105
|
+
dataSbId: "ui_message_item_menu_reply"
|
|
104
106
|
}, stringSet.MESSAGE_MENU__REPLY), showMenuItemThread && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
105
107
|
className: "sendbird-message-item-menu__list__menu-item menu-item-thread",
|
|
106
108
|
onClick: () => {
|
|
@@ -108,13 +110,15 @@ function MessageItemMenu(_ref) {
|
|
|
108
110
|
message
|
|
109
111
|
});
|
|
110
112
|
closeDropdown();
|
|
111
|
-
}
|
|
113
|
+
},
|
|
114
|
+
dataSbId: "ui_message_item_menu_thread"
|
|
112
115
|
}, stringSet.MESSAGE_MENU__THREAD), showMenuItemOpenInChannel && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
113
116
|
className: "sendbird-message-item-menu__list__menu-item menu-item-open-channel",
|
|
114
117
|
onClick: () => {
|
|
115
118
|
onMoveToParentMessage === null || onMoveToParentMessage === void 0 ? void 0 : onMoveToParentMessage();
|
|
116
119
|
closeDropdown();
|
|
117
|
-
}
|
|
120
|
+
},
|
|
121
|
+
dataSbId: "ui_message_item_menu_open_in_channel"
|
|
118
122
|
}, stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL), showMenuItemEdit && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
119
123
|
className: "sendbird-message-item-menu__list__menu-item menu-item-edit",
|
|
120
124
|
onClick: () => {
|
|
@@ -122,7 +126,8 @@ function MessageItemMenu(_ref) {
|
|
|
122
126
|
showEdit(true);
|
|
123
127
|
closeDropdown();
|
|
124
128
|
}
|
|
125
|
-
}
|
|
129
|
+
},
|
|
130
|
+
dataSbId: "ui_message_item_menu_edit"
|
|
126
131
|
}, stringSet.MESSAGE_MENU__EDIT), showMenuItemResend && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
127
132
|
className: "sendbird-message-item-menu__list__menu-item menu-item-resend",
|
|
128
133
|
onClick: () => {
|
|
@@ -130,7 +135,8 @@ function MessageItemMenu(_ref) {
|
|
|
130
135
|
resendMessage(message);
|
|
131
136
|
closeDropdown();
|
|
132
137
|
}
|
|
133
|
-
}
|
|
138
|
+
},
|
|
139
|
+
dataSbId: "ui_message_item_menu_resend"
|
|
134
140
|
}, stringSet.MESSAGE_MENU__RESEND), showMenuItemDelete && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
135
141
|
className: "sendbird-message-item-menu__list__menu-item menu-item-delete",
|
|
136
142
|
onClick: () => {
|
|
@@ -139,7 +145,8 @@ function MessageItemMenu(_ref) {
|
|
|
139
145
|
closeDropdown();
|
|
140
146
|
}
|
|
141
147
|
},
|
|
142
|
-
disable: typeof disableDeleteMessage === 'boolean' ? disableDeleteMessage : (message === null || message === void 0 ? void 0 : (_message$threadInfo = message.threadInfo) === null || _message$threadInfo === void 0 ? void 0 : _message$threadInfo.replyCount) > 0
|
|
148
|
+
disable: typeof disableDeleteMessage === 'boolean' ? disableDeleteMessage : (message === null || message === void 0 ? void 0 : (_message$threadInfo = message.threadInfo) === null || _message$threadInfo === void 0 ? void 0 : _message$threadInfo.replyCount) > 0,
|
|
149
|
+
dataSbId: "ui_message_item_menu_delete"
|
|
143
150
|
}, stringSet.MESSAGE_MENU__DELETE));
|
|
144
151
|
}
|
|
145
152
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageItemMenu.js","sources":["../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { ReplyType } from '../../index';\nimport { Role } from '../../lib/types';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => void;\n setQuoteMessage?: (message: UserMessage | FileMessage) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_ref","_channel$isGroupChann","className","message","channel","isByMe","disabled","replyType","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","_message$threadInfo","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageItemMenu.js","sources":["../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { ReplyType } from '../../index';\nimport { Role } from '../../lib/types';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => void;\n setQuoteMessage?: (message: UserMessage | FileMessage) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_copy\"\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n dataSbId=\"ui_message_item_menu_reply\"\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_thread\"\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_open_in_channel\"\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_edit\"\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_resend\"\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n dataSbId=\"ui_message_item_menu_delete\"\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_ref","_channel$isGroupChann","className","message","channel","isByMe","disabled","replyType","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","_message$threadInfo","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","dataSbId","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
|
|
@@ -4,18 +4,18 @@ import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
|
4
4
|
import IconButton from './IconButton.js';
|
|
5
5
|
import ImageRenderer from './ImageRenderer.js';
|
|
6
6
|
import ReactionButton from './ReactionButton.js';
|
|
7
|
-
import { E as isPendingMessage, D as isFailedMessage,
|
|
8
|
-
import '../_rollupPluginBabelHelpers-
|
|
7
|
+
import { E as isPendingMessage, D as isFailedMessage, h as getClassName, G as getEmojiListAll } from '../index-e2601165.js';
|
|
8
|
+
import '../_rollupPluginBabelHelpers-0bc76382.js';
|
|
9
9
|
import 'react-dom';
|
|
10
10
|
import './SortByRow.js';
|
|
11
|
-
import '../uuid-
|
|
12
|
-
import '../index-
|
|
11
|
+
import '../uuid-1f1bbd9c.js';
|
|
12
|
+
import '../index-4023d1b2.js';
|
|
13
13
|
import 'prop-types';
|
|
14
|
-
import '../stringSet-
|
|
14
|
+
import '../stringSet-7a8ce1ce.js';
|
|
15
15
|
import '../utils/message/getOutgoingMessageState.js';
|
|
16
|
-
import '../useLongPress-
|
|
17
|
-
import '../MediaQueryContext-
|
|
18
|
-
import '../utils-
|
|
16
|
+
import '../useLongPress-fbab35a9.js';
|
|
17
|
+
import '../MediaQueryContext-fbe7af77.js';
|
|
18
|
+
import '../utils-388a790e.js';
|
|
19
19
|
|
|
20
20
|
function MessageItemReactionMenu(_ref) {
|
|
21
21
|
let {
|
|
@@ -79,7 +79,8 @@ function MessageItemReactionMenu(_ref) {
|
|
|
79
79
|
onClick: () => {
|
|
80
80
|
closeDropdown();
|
|
81
81
|
toggleReaction(message, emoji.key, isReacted);
|
|
82
|
-
}
|
|
82
|
+
},
|
|
83
|
+
dataSbId: `ui_emoji_reactions_menu_${emoji.key}`
|
|
83
84
|
}, /*#__PURE__*/React__default.createElement(ImageRenderer, {
|
|
84
85
|
url: emoji.url,
|
|
85
86
|
width: "28px",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageItemReactionMenu.js","sources":["../../src/ui/MessageItemReactionMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useRef } from 'react';\nimport type { FileMessage, Reaction, UserMessage } from '@sendbird/chat/message';\nimport type { Emoji, EmojiContainer } from '@sendbird/chat';\n\nimport ContextMenu, { EmojiListItems } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport { getClassName, getEmojiListAll, isPendingMessage, isFailedMessage } from '../../utils';\nimport { SpaceFromTriggerType } from '../../types';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n userId: string;\n spaceFromTrigger?: SpaceFromTriggerType;\n emojiContainer?: EmojiContainer;\n toggleReaction?: (message: UserMessage | FileMessage, reactionKey: string, isReacted: boolean) => void;\n setSupposedHover?: (bool: boolean) => void;\n}\n\nexport default function MessageItemReactionMenu({\n className,\n message,\n userId,\n spaceFromTrigger = { x: 0, y: 0 },\n emojiContainer,\n toggleReaction,\n setSupposedHover,\n}: Props): ReactElement {\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n if (isPendingMessage(message) || isFailedMessage(message)) {\n return null;\n }\n\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-reaction-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-reaction-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-reaction-menu__trigger__icon\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <EmojiListItems\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={spaceFromTrigger}\n >\n {getEmojiListAll(emojiContainer).map((emoji: Emoji): ReactElement => {\n const isReacted: boolean = message?.reactions\n ?.filter((reaction: Reaction) => reaction.key === emoji.key)[0]?.userIds\n ?.some((reactorId: string) => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width=\"36px\"\n height=\"36px\"\n selected={isReacted}\n onClick={() => {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n <ImageRenderer\n url={emoji.url}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style) => (\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 </EmojiListItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemReactionMenu","_ref","className","message","userId","spaceFromTrigger","x","y","emojiContainer","toggleReaction","setSupposedHover","triggerRef","useRef","containerRef","isPendingMessage","isFailedMessage","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","EMOJI_MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","EmojiListItems","parentRef","parentContainRef","getEmojiListAll","map","emoji","_message$reactions","_message$reactions$fi","_message$reactions$fi2","isReacted","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","ImageRenderer","url","placeHolder","style","QUESTION","ON_BACKGROUND_3"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MessageItemReactionMenu.js","sources":["../../src/ui/MessageItemReactionMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useRef } from 'react';\nimport type { FileMessage, Reaction, UserMessage } from '@sendbird/chat/message';\nimport type { Emoji, EmojiContainer } from '@sendbird/chat';\n\nimport ContextMenu, { EmojiListItems } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport { getClassName, getEmojiListAll, isPendingMessage, isFailedMessage } from '../../utils';\nimport { SpaceFromTriggerType } from '../../types';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n userId: string;\n spaceFromTrigger?: SpaceFromTriggerType;\n emojiContainer?: EmojiContainer;\n toggleReaction?: (message: UserMessage | FileMessage, reactionKey: string, isReacted: boolean) => void;\n setSupposedHover?: (bool: boolean) => void;\n}\n\nexport default function MessageItemReactionMenu({\n className,\n message,\n userId,\n spaceFromTrigger = { x: 0, y: 0 },\n emojiContainer,\n toggleReaction,\n setSupposedHover,\n}: Props): ReactElement {\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n if (isPendingMessage(message) || isFailedMessage(message)) {\n return null;\n }\n\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-reaction-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-reaction-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-reaction-menu__trigger__icon\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <EmojiListItems\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={spaceFromTrigger}\n >\n {getEmojiListAll(emojiContainer).map((emoji: Emoji): ReactElement => {\n const isReacted: boolean = message?.reactions\n ?.filter((reaction: Reaction) => reaction.key === emoji.key)[0]?.userIds\n ?.some((reactorId: string) => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width=\"36px\"\n height=\"36px\"\n selected={isReacted}\n onClick={() => {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n dataSbId={`ui_emoji_reactions_menu_${emoji.key}`}\n >\n <ImageRenderer\n url={emoji.url}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style) => (\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 </EmojiListItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemReactionMenu","_ref","className","message","userId","spaceFromTrigger","x","y","emojiContainer","toggleReaction","setSupposedHover","triggerRef","useRef","containerRef","isPendingMessage","isFailedMessage","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","EMOJI_MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","EmojiListItems","parentRef","parentContainRef","getEmojiListAll","map","emoji","_message$reactions","_message$reactions$fi","_message$reactions$fi2","isReacted","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","dataSbId","ImageRenderer","url","placeHolder","style","QUESTION","ON_BACKGROUND_3"],"mappings":";;;;;;;;;;;;;;;;;;;AAuBe,SAASA,uBAAuBA,CAAAC,IAAA,EAQvB;EAAA,IARwB;IAC9CC,SAAS;IACTC,OAAO;IACPC,MAAM;AACNC,IAAAA,gBAAgB,GAAG;AAAEC,MAAAA,CAAC,EAAE,CAAC;AAAEC,MAAAA,CAAC,EAAE,CAAA;KAAG;IACjCC,cAAc;IACdC,cAAc;AACdC,IAAAA,gBAAAA;AACK,GAAC,GAAAT,IAAA,CAAA;AACN,EAAA,MAAMU,UAAU,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,EAAA,MAAMC,YAAY,GAAGD,MAAM,CAAC,IAAI,CAAC,CAAA;EAEjC,IAAIE,gBAAgB,CAACX,OAAO,CAAC,IAAIY,eAAe,CAACZ,OAAO,CAAC,EAAE;AACzD,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,oBACEa,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEf,SAAS,EAAEgB,YAAY,CAAC,CAAChB,SAAS,EAAE,qCAAqC,CAAC,CAAE;AAC5EiB,IAAAA,GAAG,EAAEN,YAAAA;AAAa,GAAA,eAElBG,cAAA,CAAAC,aAAA,CAACG,WAAW,EAAA;AACVC,IAAAA,WAAW,EAAGC,cAA0B,iBACtCN,cAAA,CAAAC,aAAA,CAACM,UAAU,EAAA;AACTrB,MAAAA,SAAS,EAAC,8CAA8C;AACxDiB,MAAAA,GAAG,EAAER,UAAW;AAChBa,MAAAA,KAAK,EAAC,MAAM;AACZC,MAAAA,MAAM,EAAC,MAAM;MACbC,OAAO,EAAEA,MAAY;AACnBJ,QAAAA,cAAc,EAAE,CAAA;QAChBZ,gBAAgB,CAAC,IAAI,CAAC,CAAA;OACtB;MACFiB,MAAM,EAAEA,MAAY;QAClBjB,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACzB,OAAA;AAAE,KAAA,eAEFM,cAAA,CAAAC,aAAA,CAACW,IAAI,EAAA;AACH1B,MAAAA,SAAS,EAAC,oDAAoD;MAC9D2B,IAAI,EAAEC,SAAS,CAACC,UAAW;MAC3BC,SAAS,EAAEC,UAAU,CAACC,eAAgB;AACtCV,MAAAA,KAAK,EAAC,MAAM;AACZC,MAAAA,MAAM,EAAC,MAAA;AAAM,KAAA,CACb,CAEJ;IACFU,SAAS,EAAGC,KAAiB,IAAmB;MAC9C,MAAMC,aAAa,GAAGA,MAAY;AAChCD,QAAAA,KAAK,EAAE,CAAA;QACP1B,gBAAgB,CAAC,KAAK,CAAC,CAAA;OACxB,CAAA;AACD,MAAA,oBACEM,cAAA,CAAAC,aAAA,CAACqB,cAAc,EAAA;AACbC,QAAAA,SAAS,EAAE5B,UAAW;AACtB6B,QAAAA,gBAAgB,EAAE3B,YAAa;AAC/BwB,QAAAA,aAAa,EAAEA,aAAc;AAC7BhC,QAAAA,gBAAgB,EAAEA,gBAAAA;OAEjBoC,EAAAA,eAAe,CAACjC,cAAc,CAAC,CAACkC,GAAG,CAAEC,KAAY,IAAmB;AAAA,QAAA,IAAAC,kBAAA,EAAAC,qBAAA,EAAAC,sBAAA,CAAA;QACnE,MAAMC,SAAkB,GAAG5C,OAAO,KAAPA,IAAAA,IAAAA,OAAO,wBAAAyC,kBAAA,GAAPzC,OAAO,CAAE6C,SAAS,MAAA,IAAA,IAAAJ,kBAAA,KAAAC,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAlBD,kBAAA,CACvBK,MAAM,CAAEC,QAAkB,IAAKA,QAAQ,CAACC,GAAG,KAAKR,KAAK,CAACQ,GAAG,CAAC,CAAC,CAAC,CAAC,cAAAN,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAC,sBAAA,GADtCD,qBAAA,CACwCO,OAAO,MAAAN,IAAAA,IAAAA,sBAAA,KAD/CA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAEvBO,IAAI,CAAEC,SAAiB,IAAKA,SAAS,KAAKlD,MAAM,CAAC,CAAA;AACrD,QAAA,oBACEY,cAAA,CAAAC,aAAA,CAACsC,cAAc,EAAA;UACbJ,GAAG,EAAER,KAAK,CAACQ,GAAI;AACf3B,UAAAA,KAAK,EAAC,MAAM;AACZC,UAAAA,MAAM,EAAC,MAAM;AACb+B,UAAAA,QAAQ,EAAET,SAAU;UACpBrB,OAAO,EAAEA,MAAM;AACbW,YAAAA,aAAa,EAAE,CAAA;YACf5B,cAAc,CAACN,OAAO,EAAEwC,KAAK,CAACQ,GAAG,EAAEJ,SAAS,CAAC,CAAA;WAC7C;AACFU,UAAAA,QAAQ,EAAG,CAAA,wBAAA,EAA0Bd,KAAK,CAACQ,GAAI,CAAA,CAAA;AAAE,SAAA,eAEjDnC,cAAA,CAAAC,aAAA,CAACyC,aAAa,EAAA;UACZC,GAAG,EAAEhB,KAAK,CAACgB,GAAI;AACfnC,UAAAA,KAAK,EAAC,MAAM;AACZC,UAAAA,MAAM,EAAC,MAAM;AACbmC,UAAAA,WAAW,EAAGC,KAAK,iBACjB7C,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK4C,YAAAA,KAAK,EAAEA,KAAAA;AAAM,WAAA,eAChB7C,cAAA,CAAAC,aAAA,CAACW,IAAI,EAAA;YACHC,IAAI,EAAEC,SAAS,CAACgC,QAAS;YACzB9B,SAAS,EAAEC,UAAU,CAAC8B,eAAgB;AACtCvC,YAAAA,KAAK,EAAC,MAAM;AACZC,YAAAA,MAAM,EAAC,MAAA;WACP,CAAA,CAAA;AAEJ,SAAA,CACF,CACa,CAAA;AAErB,OAAC,CAAC,CACa,CAAA;AAErB,KAAA;AAAE,GAAA,CACF,CACE,CAAA;AAEV;;;;"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
import Avatar from './Avatar.js';
|
|
3
3
|
import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
4
|
-
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-
|
|
5
|
-
import { u as useLocalization } from '../LocalizationContext-
|
|
6
|
-
import { f as format } from '../index-
|
|
7
|
-
import { i as isToday, a as isYesterday, b as isThisYear } from '../index-
|
|
8
|
-
import { d as isVoiceMessage } from '../index-
|
|
4
|
+
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-4023d1b2.js';
|
|
5
|
+
import { u as useLocalization } from '../LocalizationContext-57b46f6c.js';
|
|
6
|
+
import { f as format } from '../index-f1701c11.js';
|
|
7
|
+
import { i as isToday, a as isYesterday, b as isThisYear } from '../index-1ec11afb.js';
|
|
8
|
+
import { d as isVoiceMessage } from '../index-e2601165.js';
|
|
9
9
|
import './ImageRenderer.js';
|
|
10
|
-
import '../uuid-
|
|
10
|
+
import '../uuid-1f1bbd9c.js';
|
|
11
11
|
import 'prop-types';
|
|
12
|
-
import '../stringSet-
|
|
13
|
-
import '../index-
|
|
14
|
-
import '../index-
|
|
15
|
-
import '../_rollupPluginBabelHelpers-
|
|
12
|
+
import '../stringSet-7a8ce1ce.js';
|
|
13
|
+
import '../index-865112db.js';
|
|
14
|
+
import '../index-37531f98.js';
|
|
15
|
+
import '../_rollupPluginBabelHelpers-0bc76382.js';
|
|
16
16
|
import '../utils/message/getOutgoingMessageState.js';
|
|
17
17
|
|
|
18
18
|
function getCreatedAt(_ref) {
|
package/ui/MessageSearchItem.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import { f as format } from '../index-
|
|
3
|
-
import { i as isToday, a as isYesterday, b as isThisYear } from '../index-
|
|
2
|
+
import { f as format } from '../index-f1701c11.js';
|
|
3
|
+
import { i as isToday, a as isYesterday, b as isThisYear } from '../index-1ec11afb.js';
|
|
4
4
|
import Avatar from './Avatar.js';
|
|
5
|
-
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-
|
|
6
|
-
import { u as useLocalization } from '../LocalizationContext-
|
|
7
|
-
import '../index-
|
|
8
|
-
import '../index-
|
|
5
|
+
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-4023d1b2.js';
|
|
6
|
+
import { u as useLocalization } from '../LocalizationContext-57b46f6c.js';
|
|
7
|
+
import '../index-865112db.js';
|
|
8
|
+
import '../index-37531f98.js';
|
|
9
9
|
import './ImageRenderer.js';
|
|
10
10
|
import './Icon.js';
|
|
11
11
|
import 'prop-types';
|
|
12
|
-
import '../uuid-
|
|
13
|
-
import '../stringSet-
|
|
12
|
+
import '../uuid-1f1bbd9c.js';
|
|
13
|
+
import '../stringSet-7a8ce1ce.js';
|
|
14
14
|
|
|
15
15
|
// getCreatedAt
|
|
16
16
|
function getCreatedAt (_ref) {
|
package/ui/MessageStatus.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import 'react';
|
|
2
|
-
import '../index-
|
|
2
|
+
import '../index-f1701c11.js';
|
|
3
3
|
import './Icon.js';
|
|
4
|
-
import '../index-
|
|
4
|
+
import '../index-4023d1b2.js';
|
|
5
5
|
import './Loader.js';
|
|
6
|
-
import '../index-
|
|
6
|
+
import '../index-e2601165.js';
|
|
7
7
|
import '../utils/message/getOutgoingMessageState.js';
|
|
8
|
-
export { e as MessageStatusTypes, M as default } from '../index-
|
|
9
|
-
import '../LocalizationContext-
|
|
10
|
-
import '../index-
|
|
8
|
+
export { e as MessageStatusTypes, M as default } from '../index-fa140763.js';
|
|
9
|
+
import '../LocalizationContext-57b46f6c.js';
|
|
10
|
+
import '../index-865112db.js';
|
|
11
11
|
import 'prop-types';
|
|
12
|
-
import '../stringSet-
|
|
13
|
-
import '../_rollupPluginBabelHelpers-
|
|
14
|
-
import '../index-
|
|
15
|
-
import '../index-
|
|
12
|
+
import '../stringSet-7a8ce1ce.js';
|
|
13
|
+
import '../_rollupPluginBabelHelpers-0bc76382.js';
|
|
14
|
+
import '../index-1ec11afb.js';
|
|
15
|
+
import '../index-37531f98.js';
|
|
16
16
|
//# sourceMappingURL=MessageStatus.js.map
|
package/ui/Modal.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import React__default, { useContext } from 'react';
|
|
2
2
|
import { createPortal } from 'react-dom';
|
|
3
|
-
import { M as MODAL_ROOT } from '../index-
|
|
4
|
-
import { a as LocalizationContext } from '../LocalizationContext-
|
|
3
|
+
import { M as MODAL_ROOT } from '../index-7bff4ce0.js';
|
|
4
|
+
import { a as LocalizationContext } from '../LocalizationContext-57b46f6c.js';
|
|
5
5
|
import Button, { ButtonTypes } from './Button.js';
|
|
6
6
|
import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
7
7
|
import IconButton from './IconButton.js';
|
|
8
|
-
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-
|
|
9
|
-
import { u as useMediaQueryContext } from '../MediaQueryContext-
|
|
10
|
-
import '../stringSet-
|
|
11
|
-
import '../index-
|
|
8
|
+
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-4023d1b2.js';
|
|
9
|
+
import { u as useMediaQueryContext } from '../MediaQueryContext-fbe7af77.js';
|
|
10
|
+
import '../stringSet-7a8ce1ce.js';
|
|
11
|
+
import '../index-865112db.js';
|
|
12
12
|
import 'prop-types';
|
|
13
|
-
import '../_rollupPluginBabelHelpers-
|
|
13
|
+
import '../_rollupPluginBabelHelpers-0bc76382.js';
|
|
14
14
|
|
|
15
15
|
const ModalHeader = _ref => {
|
|
16
16
|
let {
|