@sendbird/uikit-react 3.4.2 → 3.4.3-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.size-snapshot.json +8841 -0
- package/App.js +40 -40
- package/Channel/components/ChannelHeader.js +19 -19
- package/Channel/components/ChannelUI.js +33 -34
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +15 -15
- package/Channel/components/FrozenNotification.js +4 -4
- package/Channel/components/Message.js +28 -29
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +24 -25
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +29 -30
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +17 -17
- package/Channel/components/SuggestedMentionList.js +17 -17
- package/Channel/components/TypingIndicator.js +15 -15
- package/Channel/components/UnreadCount.js +4 -4
- package/Channel/context.js +14 -14
- package/Channel.js +33 -34
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +15 -15
- package/ChannelList/components/ChannelListHeader.js +7 -7
- package/ChannelList/components/ChannelListUI.js +30 -29
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +26 -25
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +14 -14
- package/ChannelList/context.js +8 -8
- package/ChannelList.js +30 -29
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-e6254f07.js → ChannelListProvider-9ffe6c08.js} +8 -8
- package/{ChannelListProvider-e6254f07.js.map → ChannelListProvider-9ffe6c08.js.map} +1 -1
- package/{ChannelProvider-c1c00018.js → ChannelProvider-e2c86cba.js} +10 -10
- package/{ChannelProvider-c1c00018.js.map → ChannelProvider-e2c86cba.js.map} +1 -1
- package/ChannelSettings/components/ChannelProfile.js +12 -12
- package/ChannelSettings/components/ChannelSettingsUI.js +18 -18
- package/ChannelSettings/components/EditDetailsModal.js +12 -12
- package/ChannelSettings/components/LeaveChannel.js +12 -12
- package/ChannelSettings/components/ModerationPanel.js +15 -15
- package/ChannelSettings/components/UserListItem.js +11 -11
- package/ChannelSettings/components/UserPanel.js +14 -14
- package/ChannelSettings/context.js +3 -3
- package/ChannelSettings.js +18 -18
- package/CreateChannel/components/CreateChannelUI.js +14 -14
- package/CreateChannel/components/InviteUsers.js +14 -14
- package/CreateChannel/components/SelectChannelType.js +11 -11
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +14 -14
- package/{CreateChannelProvider-9f4f5302.js → CreateChannelProvider-0881b9df.js} +1 -1
- package/{CreateChannelProvider-9f4f5302.js.map → CreateChannelProvider-0881b9df.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +10 -10
- package/CreateOpenChannel/context.js +1 -1
- package/CreateOpenChannel.js +10 -10
- package/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/EditUserProfile.js +13 -13
- package/{LocalizationContext-8725e9b2.js → LocalizationContext-187f787e.js} +3 -3
- package/{LocalizationContext-8725e9b2.js.map → LocalizationContext-187f787e.js.map} +1 -1
- package/{MediaQueryContext-ceb727c7.js → MediaQueryContext-add671c4.js} +1 -1
- package/{MediaQueryContext-ceb727c7.js.map → MediaQueryContext-add671c4.js.map} +1 -1
- package/{MemberList-7676a6a8.js → MemberList-5bee1695.js} +5 -5
- package/{MemberList-7676a6a8.js.map → MemberList-5bee1695.js.map} +1 -1
- package/MessageSearch/components/MessageSearchUI.js +12 -12
- package/MessageSearch/context.js +2 -2
- package/MessageSearch.js +12 -12
- package/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/OpenChannel/components/OpenChannelHeader.js +13 -13
- package/OpenChannel/components/OpenChannelInput.js +17 -18
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +23 -24
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +25 -26
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +26 -27
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +9 -9
- package/OpenChannel.js +26 -27
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +13 -13
- package/OpenChannelList/components/OpenChannelPreview.js +4 -4
- package/OpenChannelList/context.js +4 -4
- package/OpenChannelList.js +13 -13
- package/{OpenChannelListProvider-706744c4.js → OpenChannelListProvider-a15ce046.js} +3 -3
- package/{OpenChannelListProvider-706744c4.js.map → OpenChannelListProvider-a15ce046.js.map} +1 -1
- package/{OpenChannelProvider-a731aa78.js → OpenChannelProvider-ea703f1a.js} +7 -7
- package/{OpenChannelProvider-a731aa78.js.map → OpenChannelProvider-ea703f1a.js.map} +1 -1
- package/OpenChannelSettings/components/EditDetailsModal.js +13 -13
- package/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
- package/OpenChannelSettings/components/OperatorUI.js +17 -17
- package/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/OpenChannelSettings/context.js +3 -3
- package/OpenChannelSettings.js +18 -18
- package/{RemoveMessageModal-9b81dfb2.js → RemoveMessageModal-5a70495b.js} +3 -3
- package/{RemoveMessageModal-9b81dfb2.js.map → RemoveMessageModal-5a70495b.js.map} +1 -1
- package/SendbirdProvider.js +12 -12
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +25 -26
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +16 -16
- package/Thread/components/ThreadHeader.js +6 -6
- package/Thread/components/ThreadList.js +28 -29
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +28 -29
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +26 -27
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +32 -33
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context.js +9 -9
- package/Thread.js +32 -33
- package/Thread.js.map +1 -1
- package/{ThreadProvider-e64f95cc.js → ThreadProvider-8d535c1b.js} +7 -7
- package/{ThreadProvider-e64f95cc.js.map → ThreadProvider-8d535c1b.js.map} +1 -1
- package/{UserProfileContext-cc71f901.js → UserProfileContext-d2264917.js} +1 -1
- package/{UserProfileContext-cc71f901.js.map → UserProfileContext-d2264917.js.map} +1 -1
- package/{VoiceMessageInputWrapper-94005482.js → VoiceMessageInputWrapper-2434abc5.js} +7 -7
- package/{VoiceMessageInputWrapper-94005482.js.map → VoiceMessageInputWrapper-2434abc5.js.map} +1 -1
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +3 -3
- package/VoiceRecorder/context.js +1 -1
- package/VoiceRecorder/useVoiceRecorder.js +2 -2
- package/{_rollupPluginBabelHelpers-945410b2.js → _rollupPluginBabelHelpers-dfc61977.js} +1 -1
- package/_rollupPluginBabelHelpers-dfc61977.js.map +1 -0
- package/{actionTypes-aa211f48.js → actionTypes-99206028.js} +1 -1
- package/{actionTypes-aa211f48.js.map → actionTypes-99206028.js.map} +1 -1
- package/cjs/App.js +40 -40
- package/cjs/Channel/components/ChannelHeader.js +19 -19
- package/cjs/Channel/components/ChannelUI.js +33 -34
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +15 -15
- package/cjs/Channel/components/FrozenNotification.js +4 -4
- package/cjs/Channel/components/Message.js +28 -29
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +24 -25
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +29 -30
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +17 -17
- package/cjs/Channel/components/SuggestedMentionList.js +17 -17
- package/cjs/Channel/components/TypingIndicator.js +15 -15
- package/cjs/Channel/components/UnreadCount.js +4 -4
- package/cjs/Channel/context.js +14 -14
- package/cjs/Channel.js +33 -34
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +15 -15
- package/cjs/ChannelList/components/ChannelListHeader.js +7 -7
- package/cjs/ChannelList/components/ChannelListUI.js +30 -29
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +26 -25
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +14 -14
- package/cjs/ChannelList/context.js +8 -8
- package/cjs/ChannelList.js +30 -29
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-8cd92208.js → ChannelListProvider-30c51b60.js} +8 -8
- package/cjs/{ChannelListProvider-8cd92208.js.map → ChannelListProvider-30c51b60.js.map} +1 -1
- package/cjs/{ChannelProvider-b1290e55.js → ChannelProvider-fcbde734.js} +10 -10
- package/cjs/{ChannelProvider-b1290e55.js.map → ChannelProvider-fcbde734.js.map} +1 -1
- package/cjs/ChannelSettings/components/ChannelProfile.js +12 -12
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -18
- package/cjs/ChannelSettings/components/EditDetailsModal.js +12 -12
- package/cjs/ChannelSettings/components/LeaveChannel.js +12 -12
- package/cjs/ChannelSettings/components/ModerationPanel.js +15 -15
- package/cjs/ChannelSettings/components/UserListItem.js +11 -11
- package/cjs/ChannelSettings/components/UserPanel.js +14 -14
- package/cjs/ChannelSettings/context.js +3 -3
- package/cjs/ChannelSettings.js +18 -18
- package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
- package/cjs/CreateChannel/components/InviteUsers.js +14 -14
- package/cjs/CreateChannel/components/SelectChannelType.js +11 -11
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +14 -14
- package/cjs/{CreateChannelProvider-08c38b8e.js → CreateChannelProvider-9f9ec6e6.js} +1 -1
- package/cjs/{CreateChannelProvider-08c38b8e.js.map → CreateChannelProvider-9f9ec6e6.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +10 -10
- package/cjs/CreateOpenChannel/context.js +1 -1
- package/cjs/CreateOpenChannel.js +10 -10
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/cjs/EditUserProfile.js +13 -13
- package/cjs/{LocalizationContext-1f669b3c.js → LocalizationContext-2f07a939.js} +3 -3
- package/cjs/{LocalizationContext-1f669b3c.js.map → LocalizationContext-2f07a939.js.map} +1 -1
- package/cjs/{MediaQueryContext-130143d7.js → MediaQueryContext-729d402a.js} +1 -1
- package/cjs/{MediaQueryContext-130143d7.js.map → MediaQueryContext-729d402a.js.map} +1 -1
- package/cjs/{MemberList-8df95ca1.js → MemberList-515d3bfb.js} +5 -5
- package/cjs/{MemberList-8df95ca1.js.map → MemberList-515d3bfb.js.map} +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +12 -12
- package/cjs/MessageSearch/context.js +2 -2
- package/cjs/MessageSearch.js +12 -12
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/cjs/OpenChannel/components/OpenChannelHeader.js +13 -13
- package/cjs/OpenChannel/components/OpenChannelInput.js +17 -18
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +23 -24
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +25 -26
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +26 -27
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +9 -9
- package/cjs/OpenChannel.js +26 -27
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
- package/cjs/OpenChannelList/context.js +4 -4
- package/cjs/OpenChannelList.js +13 -13
- package/cjs/{OpenChannelListProvider-e536a2bf.js → OpenChannelListProvider-5e77c819.js} +3 -3
- package/cjs/{OpenChannelListProvider-e536a2bf.js.map → OpenChannelListProvider-5e77c819.js.map} +1 -1
- package/cjs/{OpenChannelProvider-1e578c60.js → OpenChannelProvider-e8821f43.js} +7 -7
- package/cjs/{OpenChannelProvider-1e578c60.js.map → OpenChannelProvider-e8821f43.js.map} +1 -1
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +13 -13
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
- package/cjs/OpenChannelSettings/components/OperatorUI.js +17 -17
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/cjs/OpenChannelSettings/context.js +3 -3
- package/cjs/OpenChannelSettings.js +18 -18
- package/cjs/{RemoveMessageModal-b0c539a1.js → RemoveMessageModal-0710a908.js} +3 -3
- package/cjs/{RemoveMessageModal-b0c539a1.js.map → RemoveMessageModal-0710a908.js.map} +1 -1
- package/cjs/SendbirdProvider.js +12 -12
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +25 -26
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +16 -16
- package/cjs/Thread/components/ThreadHeader.js +6 -6
- package/cjs/Thread/components/ThreadList.js +28 -29
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +28 -29
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +26 -27
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +32 -33
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context.js +9 -9
- package/cjs/Thread.js +32 -33
- package/cjs/Thread.js.map +1 -1
- package/cjs/{ThreadProvider-5eafb9ef.js → ThreadProvider-e7537e17.js} +7 -7
- package/cjs/{ThreadProvider-5eafb9ef.js.map → ThreadProvider-e7537e17.js.map} +1 -1
- package/cjs/{UserProfileContext-cde95db8.js → UserProfileContext-5fbd0305.js} +1 -1
- package/cjs/{UserProfileContext-cde95db8.js.map → UserProfileContext-5fbd0305.js.map} +1 -1
- package/cjs/{VoiceMessageInputWrapper-5bb0ed00.js → VoiceMessageInputWrapper-8744ba42.js} +7 -7
- package/cjs/{VoiceMessageInputWrapper-5bb0ed00.js.map → VoiceMessageInputWrapper-8744ba42.js.map} +1 -1
- package/cjs/VoicePlayer/context.js +3 -3
- package/cjs/VoicePlayer/useVoicePlayer.js +3 -3
- package/cjs/VoiceRecorder/context.js +1 -1
- package/cjs/VoiceRecorder/useVoiceRecorder.js +2 -2
- package/cjs/{_rollupPluginBabelHelpers-32557b21.js → _rollupPluginBabelHelpers-325fff35.js} +1 -1
- package/cjs/_rollupPluginBabelHelpers-325fff35.js.map +1 -0
- package/cjs/{actionTypes-32a1c06c.js → actionTypes-9e73ad35.js} +1 -1
- package/cjs/{actionTypes-32a1c06c.js.map → actionTypes-9e73ad35.js.map} +1 -1
- package/cjs/{color-97cfc61b.js → color-6ed16caa.js} +1 -1
- package/cjs/{color-97cfc61b.js.map → color-6ed16caa.js.map} +1 -1
- package/cjs/{compareIds-32f97a73.js → compareIds-61f98cac.js} +1 -1
- package/cjs/{compareIds-32f97a73.js.map → compareIds-61f98cac.js.map} +1 -1
- package/cjs/{const-fe838b59.js → const-20a4c9f8.js} +1 -1
- package/cjs/{const-fe838b59.js.map → const-20a4c9f8.js.map} +1 -1
- package/cjs/{const-77194948.js → const-94a43f2e.js} +1 -1
- package/cjs/{const-77194948.js.map → const-94a43f2e.js.map} +1 -1
- package/cjs/{consts-f82aaae9.js → consts-1f4e725d.js} +1 -1
- package/cjs/{consts-f82aaae9.js.map → consts-1f4e725d.js.map} +1 -1
- package/cjs/consts-dae31183.js +6 -0
- package/cjs/consts-dae31183.js.map +1 -0
- package/cjs/{context-01e9eccc.js → context-53458dac.js} +2 -2
- package/cjs/{context-01e9eccc.js.map → context-53458dac.js.map} +1 -1
- package/cjs/dist/index.css +119 -119
- package/cjs/dist/index.css.map +1 -1
- package/cjs/{index-33ef71d3.js → index-1bbb70bd.js} +7 -7
- package/cjs/{index-33ef71d3.js.map → index-1bbb70bd.js.map} +1 -1
- package/cjs/{index-577c9a9b.js → index-2129e959.js} +1 -1
- package/cjs/{index-577c9a9b.js.map → index-2129e959.js.map} +1 -1
- package/cjs/{index-b911f8b3.js → index-27659174.js} +7 -7
- package/cjs/{index-b911f8b3.js.map → index-27659174.js.map} +1 -1
- package/cjs/{index-26ff28a8.js → index-306e7c9a.js} +3 -3
- package/cjs/{index-26ff28a8.js.map → index-306e7c9a.js.map} +1 -1
- package/cjs/{index-f5502150.js → index-3a44ff71.js} +1 -1
- package/cjs/{index-f5502150.js.map → index-3a44ff71.js.map} +1 -1
- package/cjs/{index-1b11bb85.js → index-3b8eefa2.js} +2 -2
- package/cjs/{index-1b11bb85.js.map → index-3b8eefa2.js.map} +1 -1
- package/cjs/{index-90c0f273.js → index-59b0ddb6.js} +2 -2
- package/cjs/{index-90c0f273.js.map → index-59b0ddb6.js.map} +1 -1
- package/cjs/{index-cf139ee0.js → index-98939d51.js} +4 -4
- package/cjs/{index-cf139ee0.js.map → index-98939d51.js.map} +1 -1
- package/cjs/{index-b32fce67.js → index-9cb4a8a1.js} +2 -2
- package/cjs/{index-b32fce67.js.map → index-9cb4a8a1.js.map} +1 -1
- package/cjs/{index-2c7774d0.js → index-ba209fe7.js} +4 -4
- package/cjs/{index-2c7774d0.js.map → index-ba209fe7.js.map} +1 -1
- package/cjs/{index-78e2bb42.js → index-d44e0a55.js} +2 -2
- package/cjs/{index-78e2bb42.js.map → index-d44e0a55.js.map} +1 -1
- package/cjs/{index-9506bc1e.js → index-dc4cbd5a.js} +5 -5
- package/cjs/{index-9506bc1e.js.map → index-dc4cbd5a.js.map} +1 -1
- package/cjs/{index-81e19961.js → index-e6b1d2b7.js} +2 -2
- package/cjs/{index-81e19961.js.map → index-e6b1d2b7.js.map} +1 -1
- package/cjs/{index-c4869cdb.js → index-f2f8ceeb.js} +3 -3
- package/cjs/{index-c4869cdb.js.map → index-f2f8ceeb.js.map} +1 -1
- package/cjs/index.js +45 -45
- package/cjs/sendbirdSelectors.js +2 -2
- package/cjs/{stringSet-ddd351f0.js → stringSet-70ad7caf.js} +1 -1
- package/cjs/{stringSet-ddd351f0.js.map → stringSet-70ad7caf.js.map} +1 -1
- package/cjs/{topics-5edbb1b2.js → topics-a17b8ec5.js} +1 -1
- package/cjs/{topics-5edbb1b2.js.map → topics-a17b8ec5.js.map} +1 -1
- package/cjs/{tslib.es6-d2ba1a6b.js → tslib.es6-6bb94011.js} +1 -1
- package/cjs/{tslib.es6-d2ba1a6b.js.map → tslib.es6-6bb94011.js.map} +1 -1
- package/cjs/{types-3fb94919.js → types-44d71878.js} +1 -1
- package/cjs/{types-3fb94919.js.map → types-44d71878.js.map} +1 -1
- package/cjs/ui/Accordion.js +3 -3
- package/cjs/ui/AccordionGroup.js +2 -2
- package/cjs/ui/AdminMessage.js +3 -3
- package/cjs/ui/Avatar.js +2 -2
- package/cjs/ui/Badge.js +5 -5
- package/cjs/ui/BottomSheet.js +1 -1
- package/cjs/ui/Button.js +3 -3
- package/cjs/ui/ChannelAvatar.js +3 -3
- package/cjs/ui/ConnectionStatus.js +4 -4
- package/cjs/ui/ContextMenu.js +5 -5
- package/cjs/ui/DateSeparator.js +4 -4
- package/cjs/ui/EmojiReactions.js +7 -7
- package/cjs/ui/FileMessageItemBody.js +6 -6
- package/cjs/ui/FileViewer.js +8 -8
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/ImageRenderer.js +1 -1
- package/cjs/ui/Input.js +2 -2
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +2 -2
- package/cjs/ui/Loader.js +1 -1
- package/cjs/ui/MentionLabel.js +11 -11
- package/cjs/ui/MentionUserLabel.js +4 -2
- package/cjs/ui/MentionUserLabel.js.map +1 -1
- package/cjs/ui/MessageContent.js +23 -23
- package/cjs/ui/MessageInput.js +40 -21
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +8 -8
- package/cjs/ui/MessageItemReactionMenu.js +5 -5
- package/cjs/ui/MessageSearchFileItem.js +10 -10
- package/cjs/ui/MessageSearchItem.js +9 -9
- package/cjs/ui/MessageStatus.js +10 -10
- package/cjs/ui/Modal.js +7 -7
- package/cjs/ui/OGMessageItemBody.js +11 -11
- package/cjs/ui/OpenChannelAdminMessage.js +3 -3
- package/cjs/ui/OpenChannelAvatar.js +6 -6
- package/cjs/ui/OpenchannelConversationHeader.js +6 -6
- package/cjs/ui/OpenchannelFileMessage.js +16 -16
- package/cjs/ui/OpenchannelOGMessage.js +16 -16
- package/cjs/ui/OpenchannelThumbnailMessage.js +15 -15
- package/cjs/ui/OpenchannelUserMessage.js +16 -16
- package/cjs/ui/PlaceHolder.js +6 -6
- 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 +3 -3
- package/cjs/ui/ReactionButton.js +1 -1
- package/cjs/ui/SortByRow.js +2 -2
- package/cjs/ui/TextButton.js +2 -2
- package/cjs/ui/TextMessageItemBody.js +11 -11
- package/cjs/ui/ThreadReplies.js +6 -6
- package/cjs/ui/ThumbnailMessageItemBody.js +2 -2
- package/cjs/ui/Tooltip.js +3 -3
- package/cjs/ui/TooltipWrapper.js +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +6 -6
- package/cjs/ui/UserListItem.js +11 -11
- package/cjs/ui/UserProfile.js +10 -10
- package/cjs/ui/VoiceMessageItemBody.js +5 -5
- package/cjs/ui/VoiceMessgeInput.js +8 -8
- package/cjs/ui/Word.js +11 -11
- package/cjs/{useLongPress-778d6f15.js → useLongPress-7fcddf32.js} +3 -3
- package/cjs/{useLongPress-778d6f15.js.map → useLongPress-7fcddf32.js.map} +1 -1
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/utils/message/isVoiceMessage.js +2 -2
- package/cjs/{utils-ee6665ec.js → utils-2d3622fd.js} +1 -1
- package/cjs/{utils-ee6665ec.js.map → utils-2d3622fd.js.map} +1 -1
- package/cjs/{utils-f7f440f8.js → utils-76d84308.js} +1 -1
- package/cjs/{utils-f7f440f8.js.map → utils-76d84308.js.map} +1 -1
- package/cjs/{utils-c67cf524.js → utils-b1231f1d.js} +2 -2
- package/cjs/{utils-c67cf524.js.map → utils-b1231f1d.js.map} +1 -1
- package/cjs/{utils-602ab2fc.js → utils-c86c2884.js} +1 -1
- package/cjs/{utils-602ab2fc.js.map → utils-c86c2884.js.map} +1 -1
- package/cjs/{uuid-28e4a814.js → uuid-7d07ac3f.js} +1 -1
- package/cjs/{uuid-28e4a814.js.map → uuid-7d07ac3f.js.map} +1 -1
- package/cjs/withSendbird.js +1 -1
- package/{color-f6b2bdb7.js → color-b379fbc5.js} +1 -1
- package/{color-f6b2bdb7.js.map → color-b379fbc5.js.map} +1 -1
- package/{compareIds-87972c5f.js → compareIds-86584ff3.js} +1 -1
- package/{compareIds-87972c5f.js.map → compareIds-86584ff3.js.map} +1 -1
- package/{const-85535a89.js → const-26fafb08.js} +1 -1
- package/{const-85535a89.js.map → const-26fafb08.js.map} +1 -1
- package/{const-0f759572.js → const-693a408f.js} +1 -1
- package/{const-0f759572.js.map → const-693a408f.js.map} +1 -1
- package/{consts-59f719d8.js → consts-37ea645a.js} +1 -1
- package/{consts-59f719d8.js.map → consts-37ea645a.js.map} +1 -1
- package/consts-b2395440.js +4 -0
- package/consts-b2395440.js.map +1 -0
- package/{context-f9c07d84.js → context-672443fa.js} +2 -2
- package/{context-f9c07d84.js.map → context-672443fa.js.map} +1 -1
- package/dist/index.css +119 -119
- package/dist/index.css.map +1 -1
- package/{index-43834bc0.js → index-102fbe62.js} +2 -2
- package/{index-43834bc0.js.map → index-102fbe62.js.map} +1 -1
- package/{index-2988897b.js → index-30236e16.js} +2 -2
- package/{index-2988897b.js.map → index-30236e16.js.map} +1 -1
- package/{index-a73afdab.js → index-30721345.js} +4 -4
- package/{index-a73afdab.js.map → index-30721345.js.map} +1 -1
- package/{index-868d3a87.js → index-39657867.js} +2 -2
- package/{index-868d3a87.js.map → index-39657867.js.map} +1 -1
- package/{index-e121c395.js → index-46d8dde5.js} +2 -2
- package/{index-e121c395.js.map → index-46d8dde5.js.map} +1 -1
- package/{index-c10fcd31.js → index-5b34a381.js} +1 -1
- package/{index-c10fcd31.js.map → index-5b34a381.js.map} +1 -1
- package/{index-a1a19702.js → index-7afa5c8d.js} +3 -3
- package/{index-a1a19702.js.map → index-7afa5c8d.js.map} +1 -1
- package/{index-1ac4456b.js → index-7b740ffc.js} +7 -7
- package/{index-1ac4456b.js.map → index-7b740ffc.js.map} +1 -1
- package/{index-3c7ecbec.js → index-854faff0.js} +5 -5
- package/{index-3c7ecbec.js.map → index-854faff0.js.map} +1 -1
- package/{index-ac5a0725.js → index-c29a819f.js} +3 -3
- package/{index-ac5a0725.js.map → index-c29a819f.js.map} +1 -1
- package/{index-99933718.js → index-c55389dc.js} +2 -2
- package/{index-99933718.js.map → index-c55389dc.js.map} +1 -1
- package/{index-c4e31ae9.js → index-d311c62b.js} +7 -7
- package/{index-c4e31ae9.js.map → index-d311c62b.js.map} +1 -1
- package/{index-7d65494a.js → index-e3412d57.js} +4 -4
- package/{index-7d65494a.js.map → index-e3412d57.js.map} +1 -1
- package/{index-10a05022.js → index-f338f866.js} +1 -1
- package/{index-10a05022.js.map → index-f338f866.js.map} +1 -1
- package/index.d.ts +1 -1
- package/index.js +45 -45
- package/package.json +1 -1
- package/sendbirdSelectors.js +2 -2
- package/{stringSet-a513039b.js → stringSet-fd70cba0.js} +1 -1
- package/{stringSet-a513039b.js.map → stringSet-fd70cba0.js.map} +1 -1
- package/{topics-a581acbb.js → topics-c4837013.js} +1 -1
- package/{topics-a581acbb.js.map → topics-c4837013.js.map} +1 -1
- package/{tslib.es6-e1c2b6be.js → tslib.es6-645dedf8.js} +1 -1
- package/{tslib.es6-e1c2b6be.js.map → tslib.es6-645dedf8.js.map} +1 -1
- package/{types-5cc94910.js → types-87c77099.js} +1 -1
- package/{types-5cc94910.js.map → types-87c77099.js.map} +1 -1
- package/ui/Accordion.js +3 -3
- package/ui/AccordionGroup.js +2 -2
- package/ui/AdminMessage.js +3 -3
- package/ui/Avatar.js +2 -2
- package/ui/Badge.js +5 -5
- package/ui/BottomSheet.js +1 -1
- package/ui/Button.js +3 -3
- package/ui/ChannelAvatar.js +3 -3
- package/ui/ConnectionStatus.js +4 -4
- package/ui/ContextMenu.js +5 -5
- package/ui/DateSeparator.js +4 -4
- package/ui/EmojiReactions.js +7 -7
- package/ui/FileMessageItemBody.js +6 -6
- package/ui/FileViewer.js +8 -8
- package/ui/IconButton.js +1 -1
- package/ui/ImageRenderer.js +1 -1
- package/ui/Input.js +2 -2
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- package/ui/Loader.js +1 -1
- package/ui/MentionLabel.js +11 -11
- package/ui/MentionUserLabel.js +4 -2
- package/ui/MentionUserLabel.js.map +1 -1
- package/ui/MessageContent.js +23 -23
- package/ui/MessageInput.js +40 -21
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +8 -8
- package/ui/MessageItemReactionMenu.js +5 -5
- package/ui/MessageSearchFileItem.js +10 -10
- package/ui/MessageSearchItem.js +9 -9
- package/ui/MessageStatus.js +10 -10
- package/ui/Modal.js +7 -7
- package/ui/OGMessageItemBody.js +11 -11
- package/ui/OpenChannelAdminMessage.js +3 -3
- package/ui/OpenChannelAvatar.js +6 -6
- package/ui/OpenchannelConversationHeader.js +6 -6
- package/ui/OpenchannelFileMessage.js +16 -16
- package/ui/OpenchannelOGMessage.js +16 -16
- package/ui/OpenchannelThumbnailMessage.js +15 -15
- package/ui/OpenchannelUserMessage.js +16 -16
- package/ui/PlaceHolder.js +6 -6
- package/ui/PlaybackTime.js +2 -2
- package/ui/QuoteMessage.js +6 -6
- package/ui/QuoteMessageInput.js +6 -6
- package/ui/ReactionBadge.js +3 -3
- package/ui/ReactionButton.js +1 -1
- package/ui/SortByRow.js +2 -2
- package/ui/TextButton.js +2 -2
- package/ui/TextMessageItemBody.js +11 -11
- package/ui/ThreadReplies.js +6 -6
- package/ui/ThumbnailMessageItemBody.js +2 -2
- package/ui/Tooltip.js +3 -3
- package/ui/TooltipWrapper.js +1 -1
- package/ui/UnknownMessageItemBody.js +6 -6
- package/ui/UserListItem.js +11 -11
- package/ui/UserProfile.js +10 -10
- package/ui/VoiceMessageItemBody.js +5 -5
- package/ui/VoiceMessgeInput.js +8 -8
- package/ui/Word.js +11 -11
- package/{useLongPress-d942e028.js → useLongPress-81323308.js} +3 -3
- package/{useLongPress-d942e028.js.map → useLongPress-81323308.js.map} +1 -1
- package/useSendbirdStateContext.js +1 -1
- package/utils/message/isVoiceMessage.js +2 -2
- package/{utils-c9f12033.js → utils-1c138ae4.js} +1 -1
- package/{utils-c9f12033.js.map → utils-1c138ae4.js.map} +1 -1
- package/{utils-b439eac3.js → utils-780c1e12.js} +1 -1
- package/{utils-b439eac3.js.map → utils-780c1e12.js.map} +1 -1
- package/{utils-b10ed497.js → utils-88f76aba.js} +2 -2
- package/{utils-b10ed497.js.map → utils-88f76aba.js.map} +1 -1
- package/{utils-5cc87999.js → utils-d17bcc15.js} +1 -1
- package/{utils-5cc87999.js.map → utils-d17bcc15.js.map} +1 -1
- package/{uuid-d072af26.js → uuid-e15650df.js} +1 -1
- package/{uuid-d072af26.js.map → uuid-e15650df.js.map} +1 -1
- package/withSendbird.js +1 -1
- package/_rollupPluginBabelHelpers-945410b2.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-32557b21.js.map +0 -1
package/ui/MentionLabel.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import React__default, { useRef, useState, useCallback } from 'react';
|
|
2
2
|
import ContextMenu, { MenuItems } from './ContextMenu.js';
|
|
3
|
-
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-
|
|
3
|
+
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-46d8dde5.js';
|
|
4
4
|
import UserProfile from './UserProfile.js';
|
|
5
5
|
import useSendbirdStateContext from '../useSendbirdStateContext.js';
|
|
6
|
-
import '../tslib.es6-
|
|
6
|
+
import '../tslib.es6-645dedf8.js';
|
|
7
7
|
import 'react-dom';
|
|
8
8
|
import './SortByRow.js';
|
|
9
|
-
import '../uuid-
|
|
10
|
-
import '../index-
|
|
9
|
+
import '../uuid-e15650df.js';
|
|
10
|
+
import '../index-102fbe62.js';
|
|
11
11
|
import '../utils/message/getOutgoingMessageState.js';
|
|
12
12
|
import 'prop-types';
|
|
13
|
-
import '../stringSet-
|
|
14
|
-
import '../LocalizationContext-
|
|
15
|
-
import '../index-
|
|
16
|
-
import '../UserProfileContext-
|
|
13
|
+
import '../stringSet-fd70cba0.js';
|
|
14
|
+
import '../LocalizationContext-187f787e.js';
|
|
15
|
+
import '../index-5b34a381.js';
|
|
16
|
+
import '../UserProfileContext-d2264917.js';
|
|
17
17
|
import '../sendbirdSelectors.js';
|
|
18
|
-
import '../topics-
|
|
19
|
-
import '../utils-
|
|
18
|
+
import '../topics-c4837013.js';
|
|
19
|
+
import '../utils-780c1e12.js';
|
|
20
20
|
import './Avatar.js';
|
|
21
21
|
import './ImageRenderer.js';
|
|
22
22
|
import './Icon.js';
|
|
23
23
|
import './Button.js';
|
|
24
24
|
import '../withSendbird.js';
|
|
25
|
-
import '../_rollupPluginBabelHelpers-
|
|
25
|
+
import '../_rollupPluginBabelHelpers-dfc61977.js';
|
|
26
26
|
|
|
27
27
|
function MentionLabel(props) {
|
|
28
28
|
var _a, _b, _c;
|
package/ui/MentionUserLabel.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
+
import { M as MENTION_USER_LABEL_CLASSNAME } from '../consts-b2395440.js';
|
|
2
3
|
|
|
3
4
|
function MentionUserLabel(_a) {
|
|
4
5
|
var _b = _a.className,
|
|
@@ -9,9 +10,10 @@ function MentionUserLabel(_a) {
|
|
|
9
10
|
color = _a.color,
|
|
10
11
|
userId = _a.userId;
|
|
11
12
|
return /*#__PURE__*/React__default.createElement("span", {
|
|
12
|
-
className: "
|
|
13
|
+
className: "".concat(MENTION_USER_LABEL_CLASSNAME, " ").concat(className, " ").concat(isReverse ? 'reverse' : '', " ").concat(color),
|
|
13
14
|
contentEditable: false,
|
|
14
|
-
"data-userid": userId
|
|
15
|
+
"data-userid": userId,
|
|
16
|
+
"data-sb-mention": true
|
|
15
17
|
}, children);
|
|
16
18
|
}
|
|
17
19
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionUserLabel.js","sources":["../../src/ui/MentionUserLabel/index.tsx"],"sourcesContent":["import React from 'react';\nimport './
|
|
1
|
+
{"version":3,"file":"MentionUserLabel.js","sources":["../../src/ui/MentionUserLabel/index.tsx"],"sourcesContent":["import './index.scss';\n\nimport React from 'react';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ninterface MentionUserLabelProps {\n className?: string\n children?: string;\n isReverse?: boolean;\n color?: string;\n userId?: string;\n}\n\nexport default function MentionUserLabel({\n className = '',\n children,\n isReverse = false,\n color,\n userId,\n}: MentionUserLabelProps): JSX.Element {\n return (\n <span\n className={`${MENTION_USER_LABEL_CLASSNAME} ${className} ${isReverse ? 'reverse' : ''} ${color}`}\n contentEditable={false}\n data-userid={userId}\n data-sb-mention={true}\n >\n {children}\n </span>\n );\n}\n"],"names":["MentionUserLabel","_a","_b","className","children","_c","isReverse","color","userId","React","concat","MENTION_USER_LABEL_CLASSNAME"],"mappings":";;;AAawB,SAAAA,gBAAA,CAAiBC,EAAjB,EAMA;MALtBC,EAAc,GAAAD,EAAA,CAAAE;MAAdA,SAAS,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA;MACZE,QAAQ;MACRC,EAAA,GAAAJ,EAAA,CAAAK;MAAAA,SAAS,GAAAD,EAAA,KAAA,KAAA,CAAA,GAAG,KAAH,GAAQA;MACjBE,KAAK,GAAAN,EAAA,CAAAM;MACLC,MAAM,GAAAP,EAAA,CAAAO;EAEN,oBACEC,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA;IACE,SAAS,EAAE,EAAGC,CAAAA,MAAH,CAAGC,4BAAH,KAAA,QAAA,CAAmCR,SAAnC,EAA4C,GAA5C,CAA4CO,CAAAA,MAA5C,CAAgDJ,SAAS,GAAG,SAAH,GAAe,EAAxE,KAAA,QAAA,CAA8EC,KAA9E,CADb;AAEE,IAAA,eAAe,EAAE,KAFnB;AAGE,IAAA,aAAA,EAAaC,MAHf;IAIE,iBAAiB,EAAA,IAAA;AAJnB,GAAA,EAMGJ,QANH,CADF,CAAA;AAUD;;;;"}
|
package/ui/MessageContent.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { a as _extends } from '../_rollupPluginBabelHelpers-
|
|
2
|
-
import { _ as __assign } from '../tslib.es6-
|
|
1
|
+
import { a as _extends } from '../_rollupPluginBabelHelpers-dfc61977.js';
|
|
2
|
+
import { _ as __assign } from '../tslib.es6-645dedf8.js';
|
|
3
3
|
import React__default, { useState, useContext, useRef } from 'react';
|
|
4
|
-
import { f as format } from '../index-
|
|
4
|
+
import { f as format } from '../index-c55389dc.js';
|
|
5
5
|
import Avatar from './Avatar.js';
|
|
6
6
|
import UserProfile from './UserProfile.js';
|
|
7
|
-
import { M as MessageStatus } from '../index-
|
|
7
|
+
import { M as MessageStatus } from '../index-7b740ffc.js';
|
|
8
8
|
import MessageItemMenu from './MessageItemMenu.js';
|
|
9
9
|
import MessageItemReactionMenu from './MessageItemReactionMenu.js';
|
|
10
10
|
import ContextMenu, { MenuItems, MenuItem } from './ContextMenu.js';
|
|
11
|
-
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-
|
|
11
|
+
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-46d8dde5.js';
|
|
12
12
|
import EmojiReactions from './EmojiReactions.js';
|
|
13
13
|
import AdminMessage from './AdminMessage.js';
|
|
14
14
|
import TextMessageItemBody from './TextMessageItemBody.js';
|
|
@@ -17,33 +17,33 @@ import ThumbnailMessageItemBody from './ThumbnailMessageItemBody.js';
|
|
|
17
17
|
import OGMessageItemBody from './OGMessageItemBody.js';
|
|
18
18
|
import UnknownMessageItemBody from './UnknownMessageItemBody.js';
|
|
19
19
|
import QuoteMessage from './QuoteMessage.js';
|
|
20
|
-
import { s as isUserMessage, v as isSentMessage, w as isFailedMessage, x as isPendingMessage, m as isFileMessage, y as copyToClipboard, z as getEmojiListAll, A as getUIKitMessageTypes, o as isThumbnailMessage, j as getClassName, B as getSenderName, C as isTextMessage, D as isOGMessage, u as getUIKitMessageType, d as isVoiceMessage } from '../index-
|
|
21
|
-
import { a as UserProfileContext } from '../UserProfileContext-
|
|
22
|
-
import { u as useLocalization } from '../LocalizationContext-
|
|
20
|
+
import { s as isUserMessage, v as isSentMessage, w as isFailedMessage, x as isPendingMessage, m as isFileMessage, y as copyToClipboard, z as getEmojiListAll, A as getUIKitMessageTypes, o as isThumbnailMessage, j as getClassName, B as getSenderName, C as isTextMessage, D as isOGMessage, u as getUIKitMessageType, d as isVoiceMessage } from '../index-102fbe62.js';
|
|
21
|
+
import { a as UserProfileContext } from '../UserProfileContext-d2264917.js';
|
|
22
|
+
import { u as useLocalization } from '../LocalizationContext-187f787e.js';
|
|
23
23
|
import useSendbirdStateContext from '../useSendbirdStateContext.js';
|
|
24
|
-
import { u as useLongPress } from '../useLongPress-
|
|
24
|
+
import { u as useLongPress } from '../useLongPress-81323308.js';
|
|
25
25
|
import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
26
26
|
import BottomSheet from './BottomSheet.js';
|
|
27
27
|
import ImageRenderer from './ImageRenderer.js';
|
|
28
28
|
import ReactionButton from './ReactionButton.js';
|
|
29
|
-
import { u as useMediaQueryContext } from '../MediaQueryContext-
|
|
29
|
+
import { u as useMediaQueryContext } from '../MediaQueryContext-add671c4.js';
|
|
30
30
|
import ThreadReplies from './ThreadReplies.js';
|
|
31
|
-
import { T as ThreadReplySelectType } from '../const-
|
|
31
|
+
import { T as ThreadReplySelectType } from '../const-26fafb08.js';
|
|
32
32
|
import { VoiceMessageItemBody } from './VoiceMessageItemBody.js';
|
|
33
|
-
import '../index-
|
|
34
|
-
import '../uuid-
|
|
33
|
+
import '../index-5b34a381.js';
|
|
34
|
+
import '../uuid-e15650df.js';
|
|
35
35
|
import 'prop-types';
|
|
36
36
|
import '../sendbirdSelectors.js';
|
|
37
|
-
import '../topics-
|
|
38
|
-
import '../utils-
|
|
37
|
+
import '../topics-c4837013.js';
|
|
38
|
+
import '../utils-780c1e12.js';
|
|
39
39
|
import './Button.js';
|
|
40
|
-
import '../stringSet-
|
|
40
|
+
import '../stringSet-fd70cba0.js';
|
|
41
41
|
import './Loader.js';
|
|
42
42
|
import '../utils/message/getOutgoingMessageState.js';
|
|
43
|
-
import '../index-
|
|
44
|
-
import '../index-
|
|
43
|
+
import '../index-7afa5c8d.js';
|
|
44
|
+
import '../index-30236e16.js';
|
|
45
45
|
import './IconButton.js';
|
|
46
|
-
import '../types-
|
|
46
|
+
import '../types-87c77099.js';
|
|
47
47
|
import 'react-dom';
|
|
48
48
|
import './SortByRow.js';
|
|
49
49
|
import './Tooltip.js';
|
|
@@ -53,13 +53,13 @@ import './Word.js';
|
|
|
53
53
|
import './LinkLabel.js';
|
|
54
54
|
import './MentionLabel.js';
|
|
55
55
|
import './TextButton.js';
|
|
56
|
-
import '../color-
|
|
56
|
+
import '../color-b379fbc5.js';
|
|
57
57
|
import '../withSendbird.js';
|
|
58
|
-
import '../index-
|
|
58
|
+
import '../index-f338f866.js';
|
|
59
59
|
import './ProgressBar.js';
|
|
60
60
|
import '../VoicePlayer/useVoicePlayer.js';
|
|
61
|
-
import '../index-
|
|
62
|
-
import '../consts-
|
|
61
|
+
import '../index-c29a819f.js';
|
|
62
|
+
import '../consts-37ea645a.js';
|
|
63
63
|
import '../VoiceRecorder/context.js';
|
|
64
64
|
import '../lame.all.js';
|
|
65
65
|
import './PlaybackTime.js';
|
package/ui/MessageInput.js
CHANGED
|
@@ -1,22 +1,37 @@
|
|
|
1
|
-
import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-
|
|
1
|
+
import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-dfc61977.js';
|
|
2
2
|
import React__default, { useCallback, useContext, useRef, useState, useMemo, useEffect } from 'react';
|
|
3
|
-
import { renderToString } from 'react-dom/server';
|
|
4
3
|
import PropTypes from 'prop-types';
|
|
5
|
-
import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-
|
|
6
|
-
import { U as USER_MENTION_TEMP_CHAR } from '../const-
|
|
4
|
+
import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-693a408f.js';
|
|
5
|
+
import { U as USER_MENTION_TEMP_CHAR } from '../const-26fafb08.js';
|
|
7
6
|
import IconButton from './IconButton.js';
|
|
8
7
|
import Button, { ButtonTypes, ButtonSizes } from './Button.js';
|
|
9
|
-
import
|
|
10
|
-
import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
11
|
-
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-e121c395.js';
|
|
12
|
-
import { a as LocalizationContext } from '../LocalizationContext-8725e9b2.js';
|
|
13
|
-
import { k as convertWordToStringObj, S as StringObjType, l as arrayEqual, j as getClassName } from '../index-43834bc0.js';
|
|
8
|
+
import { a as __spreadArray } from '../tslib.es6-645dedf8.js';
|
|
14
9
|
import DOMPurify from 'dompurify';
|
|
15
|
-
import {
|
|
16
|
-
import '
|
|
17
|
-
import '../index-
|
|
10
|
+
import { M as MENTION_USER_LABEL_CLASSNAME } from '../consts-b2395440.js';
|
|
11
|
+
import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
12
|
+
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-46d8dde5.js';
|
|
13
|
+
import { a as LocalizationContext } from '../LocalizationContext-187f787e.js';
|
|
14
|
+
import { k as convertWordToStringObj, S as StringObjType, l as arrayEqual, j as getClassName } from '../index-102fbe62.js';
|
|
15
|
+
import '../stringSet-fd70cba0.js';
|
|
16
|
+
import '../index-5b34a381.js';
|
|
18
17
|
import '../utils/message/getOutgoingMessageState.js';
|
|
19
18
|
|
|
19
|
+
function renderToString(_a) {
|
|
20
|
+
var userId = _a.userId,
|
|
21
|
+
nickname = _a.nickname; // donot change this template, it wont work
|
|
22
|
+
|
|
23
|
+
var el = "<span data-userid=\"".concat(userId, "\" data-sb-mention=\"true\" class=\"").concat(MENTION_USER_LABEL_CLASSNAME, "\">").concat(nickname, "</span>");
|
|
24
|
+
var purifier = DOMPurify(window);
|
|
25
|
+
var sanitized_ = purifier.sanitize(el);
|
|
26
|
+
var token = sanitized_.split(' ');
|
|
27
|
+
var spanTag = token[0],
|
|
28
|
+
rest = token.slice(1); // we do this because DOMPurify removes the contenteditable attribute
|
|
29
|
+
|
|
30
|
+
var sanitized = __spreadArray([spanTag, 'contenteditable="false"'], rest, true).join(' ');
|
|
31
|
+
|
|
32
|
+
return sanitized;
|
|
33
|
+
}
|
|
34
|
+
|
|
20
35
|
// https://davidwalsh.name/javascript-debounce-function
|
|
21
36
|
|
|
22
37
|
const sanitizeString = str => str === null || str === void 0 ? void 0 : str.replace(/[\u00A0-\u9999<>]/gim, i => ''.concat('&#', i.charCodeAt(0), ';'));
|
|
@@ -27,9 +42,10 @@ function inserTemplateToDOM(templateList) {
|
|
|
27
42
|
userId = template.userId;
|
|
28
43
|
|
|
29
44
|
if (userId) {
|
|
30
|
-
return renderToString(
|
|
31
|
-
userId: userId
|
|
32
|
-
|
|
45
|
+
return renderToString({
|
|
46
|
+
userId: userId,
|
|
47
|
+
nickname: text
|
|
48
|
+
});
|
|
33
49
|
}
|
|
34
50
|
|
|
35
51
|
return sanitizeString(text);
|
|
@@ -329,9 +345,11 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
|
329
345
|
if (type === StringObjType.mention && mentionedUsers.some(user => (user === null || user === void 0 ? void 0 : user.userId) === userId)) {
|
|
330
346
|
var _mentionedUsers$find;
|
|
331
347
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
348
|
+
const nickname = `${USER_MENTION_TEMP_CHAR}${((_mentionedUsers$find = mentionedUsers.find(user => (user === null || user === void 0 ? void 0 : user.userId) === userId)) === null || _mentionedUsers$find === void 0 ? void 0 : _mentionedUsers$find.nickname) || value || stringSet.MENTION_NAME__NO_NAME}`;
|
|
349
|
+
return renderToString({
|
|
350
|
+
userId,
|
|
351
|
+
nickname
|
|
352
|
+
});
|
|
335
353
|
}
|
|
336
354
|
|
|
337
355
|
return sanitizeString(value);
|
|
@@ -387,9 +405,10 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
|
387
405
|
const childNodes = [...(textField === null || textField === void 0 ? void 0 : textField.childNodes)];
|
|
388
406
|
const frontTextNode = (_document = document) === null || _document === void 0 ? void 0 : _document.createTextNode((_childNodes$startNode = childNodes[startNodeIndex]) === null || _childNodes$startNode === void 0 ? void 0 : _childNodes$startNode.textContent.slice(0, startOffsetIndex));
|
|
389
407
|
const backTextNode = (_document2 = document) === null || _document2 === void 0 ? void 0 : _document2.createTextNode(`\u00A0${(_childNodes$endNodeIn = childNodes[endNodeIndex]) === null || _childNodes$endNodeIn === void 0 ? void 0 : _childNodes$endNodeIn.textContent.slice(endOffsetIndex)}`);
|
|
390
|
-
const mentionLabel = renderToString(
|
|
391
|
-
userId: mentionSelectedUser === null || mentionSelectedUser === void 0 ? void 0 : mentionSelectedUser.userId
|
|
392
|
-
|
|
408
|
+
const mentionLabel = renderToString({
|
|
409
|
+
userId: mentionSelectedUser === null || mentionSelectedUser === void 0 ? void 0 : mentionSelectedUser.userId,
|
|
410
|
+
nickname: `${USER_MENTION_TEMP_CHAR}${(mentionSelectedUser === null || mentionSelectedUser === void 0 ? void 0 : mentionSelectedUser.nickname) || stringSet.MENTION_NAME__NO_NAME}`
|
|
411
|
+
});
|
|
393
412
|
const div = document.createElement('div');
|
|
394
413
|
div.innerHTML = mentionLabel;
|
|
395
414
|
const newNodes = [...childNodes.slice(0, startNodeIndex), frontTextNode, div.childNodes[0], backTextNode, ...childNodes.slice(endNodeIndex + 1)];
|
package/ui/MessageInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInput.js","sources":["../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.tsx","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\nexport default debounce;\n","import React from 'react';\nimport { renderToString } from 'react-dom/server';\n\nimport { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport MentionUserLabel from '../../../MentionUserLabel';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return (\n renderToString(\n <>\n <MentionUserLabel userId={userId}>\n {text}\n </MentionUserLabel>\n </>\n )\n );\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n}\n\nexport function domToMessageTemplate(nodeArray: HTMLSpanElement[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n let mentionNode = currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY) as HTMLSpanElement;\n // sometimes the mention node is the parent node\n // in this case querySelector will return null\n if (!mentionNode) {\n mentionNode = (\n currentValue.classList.contains(MENTION_CLASS) // for nodes copied from message\n || currentValue.classList.contains(MENTION_CLASS_IN_INPUT) // for nodes copied from input\n ) ? currentValue : null;\n }\n const text = currentValue.innerText;\n if (mentionNode) {\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n userMap[template.userId] = users.find((user) => user.userId === template.userId);\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport { MENTION_CLASS_COMBINED_QUERY, MENTION_CLASS_IN_INPUT, TEXT_MESSAGE_CLASS } from './consts';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n} from './utils';\n\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport default function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, sanitize and insert\n let childNodes = pasteNode.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`) as NodeListOf<HTMLSpanElement>;\n if (pasteNode.querySelectorAll(`.${MENTION_CLASS_IN_INPUT}`).length > 0) {\n // @ts-ignore\n childNodes = pasteNode.children;\n }\n let nodeArray = Array.from(childNodes);\n // handle paste when there is only one child\n if (pasteNode.children.length === 1 && pasteNode.querySelectorAll(MENTION_CLASS_COMBINED_QUERY).length === 1) {\n nodeArray = Array.from(pasteNode.children) as HTMLSpanElement[];\n }\n const words = domToMessageTemplate(nodeArray);\n\n const mentionedUsers = getUsersFromWords(words, channel);\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n useContext,\n} from 'react';\nimport { renderToString } from 'react-dom/server';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../smart-components/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport MentionUserLabel from '../MentionUserLabel';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n StringObjType,\n convertWordToStringObj,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n}\n\nconst resetInput = (ref) => {\n try {\n ref.current.innerHTML = '';\n } catch {\n //\n }\n}\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch { }\n setMentionedUserIds([]);\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n textField.innerHTML = message?.mentionedMessageTemplate?.split(' ').map((word) => (\n convertWordToStringObj(word, mentionedUsers).map((stringObj) => {\n const { type, value, userId } = stringObj;\n if (type === StringObjType.mention && mentionedUsers.some((user) => user?.userId === userId)) {\n return renderToString(\n <MentionUserLabel userId={userId}>\n {\n `${USER_MENTION_TEMP_CHAR}${mentionedUsers.find((user) => user?.userId === userId)?.nickname\n || value\n || stringSet.MENTION_NAME__NO_NAME\n }`\n }\n </MentionUserLabel>,\n );\n }\n return sanitizeString(value);\n }).join('')\n )).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch { }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.innerText.length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = [...textField?.childNodes];\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderToString(\n <MentionUserLabel userId={mentionSelectedUser?.userId}>\n {`${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`}\n </MentionUserLabel>,\n );\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.innerText) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.innerText?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter && e?.nativeEvent?.isComposing !== true) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(ref?.current?.innerText?.length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {!isInput && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.() || (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n setMentionedUsers: PropTypes.func,\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n};\n\nexport default MessageInput;\n"],"names":["sanitizeString","str","replace","i","concat","charCodeAt","inserTemplateToDOM","templateList","nodes","map","template","text","userId","renderToString","React","join","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","querySelectorAll","length","Array","from","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","classList","contains","_a","dataset","userid","__spreadArray","getUsersFromWords","channel","userMap","users","members","find","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","purifier","DOMPurify","window","clean","sanitize","innerHTML","children","childNodes","words","mentionedUsers","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","createRange","sel","getSelection","setStart","collapse","removeAllRanges","addRange","focus","resetInput","current","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","forwardRef","props","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","textFieldId","stringSet","useContext","LocalizationContext","fileInputRef","useRef","isInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","useMemo","elem","MAX_HEIGHT","offsetHeight","scrollHeight","height","error","initialValue","useEffect","textField","messageId","mentionedMessageTemplate","split","word","convertWordToStringObj","stringObj","type","StringObjType","mention","some","USER_MENTION_TEMP_CHAR","nickname","MENTION_NAME__NO_NAME","useMentionedLabelDetection","newMentionedUserIds","getElementsByClassName","arrayEqual","frontTextNode","createTextNode","textContent","slice","backTextNode","mentionLabel","div","newNodes","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","messageText","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","params","isEditDisabled","trim","editMessage","onPaste","getClassName","preventEvent","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","LabelTypography","BODY_1","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconTypes","SEND","IconColors","ON_BACKGROUND_4","PRIMARY","click","ATTACH","CONTENT_INVERSE","AUDIO_ON_LINED","ButtonTypes","SECONDARY","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAuBO,MAAMA,cAAc,GAAIC,GAAD,IAC5BA,GAD4B,KAC5BA,IAAAA,IAAAA,GAD4B,KAC5BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEC,OAAL,CAAa,sBAAb,EAAsCC,CAAD,IAAO,EAAGC,CAAAA,MAAH,CAAU,IAAV,EAAgBD,CAAC,CAACE,UAAF,CAAa,CAAb,CAAhB,EAAiC,GAAjC,CAA5C,CADK;;AChBD,SAAUC,kBAAV,CAA6BC,YAA7B,EAAiD;EACrD,IAAMC,KAAK,GAAGD,YAAY,CAACE,GAAb,CAAiB,UAACC,QAAD,EAAS;AAC9B,IAAA,IAAAC,IAAI,GAAaD,QAAQ,CAAAC,IAAzB;AAAA,QAAMC,MAAM,GAAKF,QAAQ,CAAAE,MAAzB,CAAA;;AACR,IAAA,IAAIA,MAAJ,EAAY;AACV,MAAA,OACEC,cAAc,eACZC,cACE,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,eAAAA,cAAA,CAAA,aAAA,CAAC,gBAAD,EAAA;AAAkB,QAAA,MAAM,EAAEF,MAAAA;OACvBD,EAAAA,IADH,CADF,CADY,CADhB,CAAA;AASD,KAAA;;IACD,OAAOX,cAAc,CAACW,IAAD,CAArB,CAAA;AACD,GAda,CAebI,CAAAA,IAfa,CAeR,GAfQ,CAgBd;GACCX,MAjBa,CAiBN,GAjBM,CAAd,CAAA;AAkBAY,EAAAA,QAAQ,CAACC,WAAT,CAAqB,YAArB,EAAmC,KAAnC,EAA0CT,KAA1C,CAAA,CAAA;AACD;;AC3BM,IAAMU,UAAU,GAAG,4BAAnB,CAAA;AACA,IAAMC,kBAAkB,GAAG,eAA3B,CAAA;AACA,IAAMC,aAAa,GAAG,wBAAtB,CAAA;AACA,IAAMC,sBAAsB,GAAG,6BAA/B,CAAA;AACA,IAAMC,4BAA4B,GAAG,GAAA,OAAA,CAAIF,aAAJ,EAAiB,KAAjB,CAAA,CAAiBhB,MAAjB,CAAuBiB,sBAAvB,CAArC;;SCQSE,kBAAe;AAC7B,EAAA,IAAMC,SAAS,GAAGR,QAAQ,CAACS,IAAT,CAAcC,aAAd,CAA4B,GAAA,CAAItB,MAAJ,CAAIc,UAAJ,CAA5B,CAAlB,CAD6B;;AAG7B,EAAA,IAAIM,SAAJ,EAAe;AACbA,IAAAA,SAAS,SAAT,IAAAA,SAAS,KAAA,KAAA,CAAT,GAAS,KAAA,CAAT,GAAAA,SAAS,CAAEG,MAAX,EAAA,CAAA;AACD,GAL4B;;;AAQ7B,EAAA,IAAMC,IAAI,GAAGZ,QAAQ,CAACa,aAAT,CAAuB,KAAvB,CAAb,CAAA;EACAD,IAAI,CAACE,EAAL,GAAUZ,UAAV,CAAA;AACAU,EAAAA,IAAI,CAACG,KAAL,CAAWC,OAAX,GAAqB,MAArB,CAAA;AACA,EAAA,OAAOJ,IAAP,CAAA;AACD,CAAA;AAEK,SAAUK,UAAV,CAAqBC,MAArB,EAA2C;EAC/C,OAAO,CAAAA,MAAM,KAAA,IAAN,IAAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,MAAM,CAAER,aAAR,CAAsBJ,4BAAtB,CAAA,IAAsD,IAAtD,GAA6D,KAApE,CAAA;AACD,CAAA;AAEM,IAAMa,oBAAoB,GAAG,UAAC3B,KAAD,EAAyB;EAC3D,IAAIG,IAAI,GAAG,EAAX,CAAA;AACAH,EAAAA,KAAK,CAAC4B,OAAN,CAAc,UAACR,IAAD,EAAK;AACjB;IACA,IAAMS,SAAS,GAAGT,IAAI,CAACU,gBAAL,CAAsB,GAAA,CAAIlC,MAAJ,CAAIe,kBAAJ,CAAtB,CAAlB,CAAA;;AACA,IAAA,IAAIkB,SAAS,CAACE,MAAV,GAAmB,CAAvB,EAA0B;MACxB5B,IAAI,IAAMwB,oBAAoB,CAACK,KAAK,CAACC,IAAN,CAAWJ,SAAX,CAAD,CAArB,GAAqE,GAA9E,CAAA;AACD,KAAA;;AACD1B,IAAAA,IAAI,IAAKiB,IAAI,CAACc,SAAL,GAAiB,GAA1B,CAAA;GANF,CAAA,CAAA;AAQA,EAAA,OAAO/B,IAAP,CAAA;AACD,CAXM,CAAA;AAaD,SAAUgC,oBAAV,CAA+BC,SAA/B,EAA2D;EAC/D,IAAMC,SAAS,GAAWD,SAAS,KAAA,IAAT,IAAAA,SAAS,KAAA,KAAA,CAAT,GAAS,KAAA,CAAT,GAAAA,SAAS,CAAEE,MAAX,CAAkB,UAACC,WAAD,EAAcC,YAAd,EAA0B;;;IACpE,IAAIC,WAAW,GAAGD,YAAY,CAACtB,aAAb,CAA2BJ,4BAA3B,CAAlB,CADoE;AAGpE;;IACA,IAAI,CAAC2B,WAAL,EAAkB;MAChBA,WAAW,GACTD,YAAY,CAACE,SAAb,CAAuBC,QAAvB,CAAgC/B,aAAhC,CAAgD;SAC7C4B,YAAY,CAACE,SAAb,CAAuBC,QAAvB,CAAgC9B,sBAAhC,CAFS;QAGV2B,YAHU,GAGK,IAHnB,CAAA;AAID,KAAA;;AACD,IAAA,IAAMrC,IAAI,GAAGqC,YAAY,CAACN,SAA1B,CAAA;;AACA,IAAA,IAAIO,WAAJ,EAAiB;MACf,IAAMrC,MAAM,GAAG,CAAAwC,EAAA,GAAAH,WAAW,CAACI,OAAZ,MAAmB,IAAnB,IAAmBD,EAAA,KAAA,KAAA,CAAnB,GAAmB,KAAA,CAAnB,GAAmBA,EAAA,CAAEE,MAApC,CAAA;MACA,OAAAC,aAAA,CAAAA,aAAA,CAAA,EAAA,EACKR,WADL,EACgB,IADhB,CAAA,EACgB,CACd;AACEpC,QAAAA,IAAI,EAAAA,IADN;AAEEC,QAAAA,MAAM,EAAAA,MAAAA;OAHM,CADhB,EAME,KANF,CAAA,CAAA;AAOD,KAAA;;IAED,OAAA2C,aAAA,CAAAA,aAAA,CAAA,EAAA,EACKR,WADL,EACgB,IADhB,CAAA,EACgB,CACd;AACEpC,MAAAA,IAAI,EAAAA,IAAAA;KAFQ,CADhB,EAKE,KALF,CAAA,CAAA;GAtBwB,EA4BvB,EA5BuB,CAA1B,CAAA;AA6BA,EAAA,OAAOkC,SAAP,CAAA;AACD,CAAA;AAEe,SAAAW,iBAAA,CAAkBX,SAAlB,EAAqCY,OAArC,EAA0D;EACxE,IAAMC,OAAO,GAAG,EAAhB,CAAA;AACA,EAAA,IAAMC,KAAK,GAAGF,OAAO,CAACG,OAAtB,CAAA;AACAf,EAAAA,SAAS,CAACT,OAAV,CAAkB,UAAC1B,QAAD,EAAS;IACzB,IAAIA,QAAQ,CAACE,MAAb,EAAqB;AACnB8C,MAAAA,OAAO,CAAChD,QAAQ,CAACE,MAAV,CAAP,GAA2B+C,KAAK,CAACE,IAAN,CAAW,UAACC,IAAD;AAAU,QAAA,OAAAA,IAAI,CAAClD,MAAL,KAAgBF,QAAQ,CAACE,MAAzB,CAAA;AAA+B,OAApD,CAA3B,CAAA;AACD,KAAA;GAHH,CAAA,CAAA;AAKA,EAAA,OAAOmD,MAAM,CAACC,MAAP,CAAcN,OAAd,CAAP,CAAA;AACD;;ACrED;AACA;AACA;AACA;AACA;AACA;;AACwB,SAAAO,QAAA,CAASb,EAAT,EAMT;AALb,EAAA,IAAAc,GAAG,GAAAd,EAAA,CAAAc,GAAH;AAAA,MACAC,UAAU,GAAAf,EAAA,CAAAe,UADV;AAAA,MAEAC,SAAS,GAAAhB,EAAA,CAAAgB,SAFT;AAAA,MAGAX,OAAO,GAAAL,EAAA,CAAAK,OAHP;AAAA,MAIAY,iBAAiB,GAAAjB,EAAA,CAAAiB,iBAJjB,CAAA;AAMA,EAAA,OAAOC,WAAW,CAAC,UAACC,CAAD,EAAE;AACnBA,IAAAA,CAAC,CAACC,cAAF,EAAA,CAAA;IACA,IAAMC,IAAI,GAAGF,CAAC,KAAA,IAAD,IAAAA,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,CAAC,CAAEG,aAAH,CAAiBC,OAAjB,CAAyB,WAAzB,CAAb,CAFmB;;IAInB,IAAI,CAACF,IAAL,EAAW;MACT,IAAM9D,IAAI,GAAG4D,CAAC,KAAA,IAAD,IAAAA,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,CAAC,CAAEG,aAAH,CAAiBC,OAAjB,CAAyB,MAAzB,CAAb,CAAA;MACA3D,QAAQ,CAACC,WAAT,CAAqB,YAArB,EAAmC,KAAnC,EAA0CjB,cAAc,CAACW,IAAD,CAAxD,CAAA,CAAA;MACAwD,UAAU,CAAC,IAAD,CAAV,CAAA;MACAC,SAAS,EAAA,CAAA;AACT,MAAA,OAAA;AACD,KAVkB;;;AAanB,IAAA,IAAMQ,QAAQ,GAAGC,SAAS,CAACC,MAAD,CAA1B,CAAA;AACA,IAAA,IAAMC,KAAK,GAAGH,QAAQ,CAACI,QAAT,CAAkBP,IAAlB,CAAd,CAAA;IACA,IAAMjD,SAAS,GAAGD,eAAe,EAAjC,CAAA;AACAC,IAAAA,SAAS,CAACyD,SAAV,GAAsBF,KAAtB,CAhBmB;;AAkBnB,IAAA,IAAI,CAAC9C,UAAU,CAACT,SAAD,CAAf,EAA4B;AAC1B;AACA,MAAA,IAAMb,IAAI,GAAGwB,oBAAoB,CAACK,KAAK,CAACC,IAAN,CAAWjB,SAAS,CAAC0D,QAArB,CAAD,CAAjC,CAAA;MACAlE,QAAQ,CAACC,WAAT,CAAqB,YAArB,EAAmC,KAAnC,EAA0CjB,cAAc,CAACW,IAAD,CAAxD,CAAA,CAAA;AACAa,MAAAA,SAAS,CAACG,MAAV,EAAA,CAAA;MACAwC,UAAU,CAAC,IAAD,CAAV,CAAA;MACAC,SAAS,EAAA,CAAA;AACT,MAAA,OAAA;AACD,KA1BkB;;;IA6BnB,IAAIe,UAAU,GAAG3D,SAAS,CAACc,gBAAV,CAA2B,GAAA,CAAIlC,MAAJ,CAAIe,kBAAJ,CAA3B,CAAjB,CAAA;;AACA,IAAA,IAAIK,SAAS,CAACc,gBAAV,CAA2B,GAAIlC,CAAAA,MAAJ,CAAIiB,sBAAJ,CAA3B,CAAA,CAAyDkB,MAAzD,GAAkE,CAAtE,EAAyE;AACvE;MACA4C,UAAU,GAAG3D,SAAS,CAAC0D,QAAvB,CAAA;AACD,KAAA;;IACD,IAAItC,SAAS,GAAGJ,KAAK,CAACC,IAAN,CAAW0C,UAAX,CAAhB,CAlCmB;;AAoCnB,IAAA,IAAI3D,SAAS,CAAC0D,QAAV,CAAmB3C,MAAnB,KAA8B,CAA9B,IAAmCf,SAAS,CAACc,gBAAV,CAA2BhB,4BAA3B,EAAyDiB,MAAzD,KAAoE,CAA3G,EAA8G;MAC5GK,SAAS,GAAGJ,KAAK,CAACC,IAAN,CAAWjB,SAAS,CAAC0D,QAArB,CAAZ,CAAA;AACD,KAAA;;AACD,IAAA,IAAME,KAAK,GAAGzC,oBAAoB,CAACC,SAAD,CAAlC,CAAA;AAEA,IAAA,IAAMyC,cAAc,GAAG7B,iBAAiB,CAAC4B,KAAD,EAAQ3B,OAAR,CAAxC,CAAA;IACAY,iBAAiB,CAACgB,cAAD,CAAjB,CAAA;IACA/E,kBAAkB,CAAC8E,KAAD,CAAlB,CAAA;AACA5D,IAAAA,SAAS,CAACG,MAAV,EAAA,CAAA;IACAwC,UAAU,CAAC,IAAD,CAAV,CAAA;IACAC,SAAS,EAAA,CAAA;AACT,IAAA,OAAA;AAED,GAjDiB,EAiDf,CAACF,GAAD,EAAMC,UAAN,EAAkBC,SAAlB,EAA6BX,OAA7B,EAAsCY,iBAAtC,CAjDe,CAAlB,CAAA;AAkDD;;ACjDD,MAAMiB,aAAa,GAAG,mCAAtB,CAAA;AACA,MAAMC,WAAW,GAAG,EAApB,CAAA;;AACA,MAAMC,IAAI,GAAG,MAAM,EAAnB,CAAA;;AACA,MAAMC,gBAAgB,GAAIC,QAAD,IAAeC,KAAD,IAAW;AAChD,EAAA,IAAIA,KAAK,CAACC,MAAN,CAAaC,KAAb,IAAsBF,KAAK,CAACC,MAAN,CAAaC,KAAb,CAAmB,CAAnB,CAA1B,EAAiD;IAC/CH,QAAQ,CAACC,KAAK,CAACC,MAAN,CAAaC,KAAb,CAAmB,CAAnB,CAAD,CAAR,CAAA;AACD,GAH+C;;;AAKhDF,EAAAA,KAAK,CAACC,MAAN,CAAaE,KAAb,GAAqB,EAArB,CAAA;AACD,CAND,CAAA;;AAQA,MAAMC,YAAY,GAAG,CAACC,OAAD,EAAUC,QAAV,KAAuB;AAC1C,EAAA,MAAMC,KAAK,GAAGlF,QAAQ,CAACmF,WAAT,EAAd,CAAA;AACA,EAAA,MAAMC,GAAG,GAAGtB,MAAM,CAACuB,YAAP,EAAZ,CAAA;EACAH,KAAK,CAACI,QAAN,CAAeN,OAAO,CAACb,UAAR,CAAmB,CAAnB,CAAf,EAAsCc,QAAtC,CAAA,CAAA;EACAC,KAAK,CAACK,QAAN,CAAe,IAAf,CAAA,CAAA;AACAH,EAAAA,GAAG,CAACI,eAAJ,EAAA,CAAA;EACAJ,GAAG,CAACK,QAAJ,CAAaP,KAAb,CAAA,CAAA;AACAF,EAAAA,OAAO,CAACU,KAAR,EAAA,CAAA;AACD,CARD,CAAA;;AAUA,MAAMC,UAAU,GAAIzC,GAAD,IAAS;EAC1B,IAAI;AACFA,IAAAA,GAAG,CAAC0C,OAAJ,CAAY3B,SAAZ,GAAwB,EAAxB,CAAA;GADF,CAEE,gBAAM;AAEP,GAAA;AACF,CAND,CAAA;;AAQA,MAAM4B,uBAAuB,GAAG;AAC9BC,EAAAA,YAAY,EAAE,EADgB;AAE9BC,EAAAA,cAAc,EAAE,IAFc;AAG9BC,EAAAA,gBAAgB,EAAE,IAHY;AAI9BC,EAAAA,YAAY,EAAE,IAJgB;AAK9BC,EAAAA,cAAc,EAAE,IAAA;AALc,CAAhC,CAAA;AAQMC,MAAAA,YAAY,gBAAGrG,cAAK,CAACsG,UAAN,CAAiB,CAACC,KAAD,EAAQnD,GAAR,KAAgB;AAAA,EAAA,IAAA,YAAA,EAAA,qBAAA,CAAA;;EACpD,MAAM;IACJoD,SADI;IAEJC,cAFI;IAGJC,MAHI;IAIJC,gBAJI;IAKJC,qBALI;IAMJC,QANI;IAOJC,OAPI;IAQJC,WARI;IASJC,SATI;IAUJC,YAVI;IAWJC,aAXI;IAYJC,eAZI;IAaJC,YAbI;IAcJC,aAdI;IAeJC,UAfI;IAgBJ3E,OAhBI;IAiBJ4E,mBAjBI;IAkBJC,eAlBI;IAmBJC,qBAnBI;IAoBJC,yBApBI;IAqBJC,uBArBI;IAsBJC,OAtBI;IAuBJC,SAvBI;IAwBJC,oBAxBI;IAyBJC,sBAzBI;IA0BJC,qBA1BI;AA2BJzE,IAAAA,iBAAAA;AA3BI,GAAA,GA4BFgD,KA5BJ,CAAA;AA6BA,EAAA,MAAM0B,WAAW,GAAGxB,cAAc,IAAIjC,aAAtC,CAAA;EACA,MAAM;AAAE0D,IAAAA,SAAAA;GAAcC,GAAAA,UAAU,CAACC,mBAAD,CAAhC,CAAA;AACA,EAAA,MAAMC,YAAY,GAAGC,MAAM,CAAC,IAAD,CAA3B,CAAA;EACA,MAAM,CAACC,OAAD,EAAUlF,UAAV,IAAwBmF,QAAQ,CAAC,KAAD,CAAtC,CAAA;EACA,MAAM,CAACC,gBAAD,EAAmBC,mBAAnB,IAA0CF,QAAQ,CAAC,EAAD,CAAxD,CAAA;EACA,MAAM,CAACG,gBAAD,EAAmBC,mBAAnB,IAA0CJ,QAAQ,CAAAK,cAAA,CAAA,EAAA,EAAM9C,uBAAN,CAAxD,CAAA,CAAA;AACA,EAAA,MAAMzC,SAAS,GAAGwF,OAAO,CAAC,MACxB,MAAM;IACJ,IAAI;MACF,MAAMC,IAAI,GAAG3F,GAAH,KAAA,IAAA,IAAGA,GAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAE0C,OAAlB,CAAA;MACA,MAAMkD,UAAU,GAAGhF,MAAM,CAAC9D,QAAP,CAAgBS,IAAhB,CAAqBsI,YAArB,GAAoC,GAAvD,CAAA;;AACA,MAAA,IAAIF,IAAI,IAAIA,IAAI,CAACG,YAAL,IAAqBzE,WAAjC,EAA8C;AAC5C,QAAA,IAAIuE,UAAU,GAAGD,IAAI,CAACG,YAAtB,EAAoC;AAClCH,UAAAA,IAAI,CAAC9H,KAAL,CAAWkI,MAAX,GAAoB,MAApB,CAAA;AACAJ,UAAAA,IAAI,CAAC9H,KAAL,CAAWkI,MAAX,GAAqB,CAAA,EAAEH,UAAW,CAAlC,EAAA,CAAA,CAAA;AACD,SAHD,MAGO;AACLD,UAAAA,IAAI,CAAC9H,KAAL,CAAWkI,MAAX,GAAoB,MAApB,CAAA;UACAJ,IAAI,CAAC9H,KAAL,CAAWkI,MAAX,GAAqB,CAAEJ,EAAAA,IAAI,CAACG,YAAa,CAAzC,EAAA,CAAA,CAAA;AACD,SAAA;AACF,OARD,MAQO;AACLH,QAAAA,IAAI,CAAC9H,KAAL,CAAWkI,MAAX,GAAoB,EAApB,CAAA;AACD,OAAA;AACF,KAdD,CAcE,OAAOC,KAAP,EAAc;AAEf,KAAA;AACF,GAnBsB,EAoBtB,EApBsB,CAAzB,CApCoD;AA2DpD;AACA;;EACA,MAAMC,YAAY,GAAG9C,KAAH,KAAA,IAAA,IAAGA,KAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEvB,KAA5B,CAAA;AACAsE,EAAAA,SAAS,CAAC,MAAM;AAAA,IAAA,IAAA,oBAAA,CAAA;;IACd,MAAMC,SAAS,GAAGnG,GAAH,KAAA,IAAA,IAAGA,GAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAE0C,OAAvB,CAAA;;IACA,IAAI;MACFyD,SAAS,CAACpF,SAAV,GAAsBkF,YAAtB,CAAA;MACApE,YAAY,CAACsE,SAAD,EAAYF,YAAZ,KAAA,IAAA,IAAYA,YAAZ,KAAYA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAE5H,MAA1B,CAAZ,CAAA;KAFF,CAGE,iBAAM,EAAG;;IACXiH,mBAAmB,CAAC,EAAD,CAAnB,CAAA;AACArF,IAAAA,UAAU,CAAC,CAAAkG,SAAS,KAAA,IAAT,IAAAA,SAAS,KAAA,KAAA,CAAT,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,oBAAAA,GAAAA,SAAS,CAAE3H,SAAX,MAAA,IAAA,IAAA,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,oBAAA,CAAsBH,MAAtB,IAA+B,CAAhC,CAAV,CAAA;IACA6B,SAAS,EAAA,CAAA;AACV,GATQ,EASN,CAAC+F,YAAD,CATM,CAAT,CA9DoD;;AA0EpDC,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC5C,MAAL,EAAa;MACXrD,UAAU,CAAC,KAAD,CAAV,CAAA;MACAwC,UAAU,CAACzC,GAAD,CAAV,CAAA;AACD,KAAA;AACF,GALQ,EAKN,CAACkE,UAAD,CALM,CAAT,CA1EoD;;AAkFpDgC,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI5C,MAAM,IAAII,OAAJ,KAAA,IAAA,IAAIA,OAAJ,KAAIA,KAAAA,CAAAA,IAAAA,OAAO,CAAE0C,SAAvB,EAAkC;AAAA,MAAA,IAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA;;AAChC;MACA,MAAMD,SAAS,GAAGnG,GAAH,KAAA,IAAA,IAAGA,GAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAE0C,OAAvB,CAAA;;AACA,MAAA,IAAIa,gBAAgB,IACf,CAAAG,OAAO,KAAP,IAAA,IAAAA,OAAO,KAAA,KAAA,CAAP,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAAA,GAAAA,OAAO,CAAEvC,cAAT,gFAAyB9C,MAAzB,IAAkC,CADnC,IAEC,CAAAqF,OAAO,KAAP,IAAA,IAAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAAA,OAAO,CAAE2C,wBAAT,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAmChI,MAAnC,IAA4C,CAFjD,EAGE;AAAA,QAAA,IAAA,sBAAA,CAAA;;AACA;QACA,MAAM;AAAE8C,UAAAA,cAAc,GAAG,EAAA;AAAnB,SAAA,GAA0BuC,OAAhC,CAAA;AACAyC,QAAAA,SAAS,CAACpF,SAAV,GAAsB2C,OAAtB,KAAsBA,IAAAA,IAAAA,OAAtB,KAAsBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,OAAO,CAAE2C,wBAA/B,MAAsB,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAmCC,KAAnC,CAAyC,GAAzC,CAA8C/J,CAAAA,GAA9C,CAAmDgK,IAAD,IACtEC,sBAAsB,CAACD,IAAD,EAAOpF,cAAP,CAAtB,CAA6C5E,GAA7C,CAAkDkK,SAAD,IAAe;UAC9D,MAAM;YAAEC,IAAF;YAAQ9E,KAAR;AAAelF,YAAAA,MAAAA;AAAf,WAAA,GAA0B+J,SAAhC,CAAA;;UACA,IAAIC,IAAI,KAAKC,aAAa,CAACC,OAAvB,IAAkCzF,cAAc,CAAC0F,IAAf,CAAqBjH,IAAD,IAAU,CAAAA,IAAI,KAAA,IAAJ,IAAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,IAAI,CAAElD,MAAN,MAAiBA,MAA/C,CAAtC,EAA8F;AAAA,YAAA,IAAA,oBAAA,CAAA;;YAC5F,OAAOC,cAAc,eACnBC,cAAA,CAAA,aAAA,CAAC,gBAAD,EAAA;AAAkB,cAAA,MAAM,EAAEF,MAAAA;AAA1B,aAAA,EAEK,CAAEoK,EAAAA,sBAAuB,CAAE,EAAA,CAAA,CAAA,oBAAA,GAAA3F,cAAc,CAACxB,IAAf,CAAqBC,IAAD,IAAU,CAAAA,IAAI,KAAA,IAAJ,IAAAA,IAAI,KAAA,KAAA,CAAJ,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAElD,MAAN,MAAiBA,MAA/C,+EAAwDqK,QAAxD,KACzBnF,KADyB,IAEzBkD,SAAS,CAACkC,qBACZ,CAAA,CALL,CADmB,CAArB,CAAA;AAUD,WAAA;;UACD,OAAOlL,cAAc,CAAC8F,KAAD,CAArB,CAAA;SAdF,CAAA,CAeG/E,IAfH,CAeQ,EAfR,CADoB,CAiBnBA,CAAAA,IAjBmB,CAiBd,GAjBc,CAAtB,CAAA;AAkBD,OAxBD,MAwBO;AACL;QACA,IAAI;AACFsJ,UAAAA,SAAS,CAACpF,SAAV,GAAsBjF,cAAc,CAAC4H,OAAD,KAACA,IAAAA,IAAAA,OAAD,KAACA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEA,OAAV,CAApC,CAAA;SADF,CAEE,iBAAM,EAAG;;QACX4B,mBAAmB,CAAC,EAAD,CAAnB,CAAA;AACD,OAAA;;AACDrF,MAAAA,UAAU,CAAC,CAAAkG,SAAS,KAAA,IAAT,IAAAA,SAAS,KAAA,KAAA,CAAT,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAAA,GAAAA,SAAS,CAAE3H,SAAX,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAsBH,MAAtB,IAA+B,CAAhC,CAAV,CAAA;MACA6B,SAAS,EAAA,CAAA;AACV,KAAA;GArCM,EAsCN,CAACoD,MAAD,EAASI,OAAT,CAtCM,CAAT,CAlFoD;;AA2HpD,EAAA,MAAMuD,0BAA0B,GAAG7G,WAAW,CAAC,MAAM;IACnD,MAAM+F,SAAS,GAAGnG,GAAH,KAAA,IAAA,IAAGA,GAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAE0C,OAAvB,CAAA;;AACA,IAAA,IAAIa,gBAAJ,EAAsB;AACpB,MAAA,MAAM2D,mBAAmB,GAAG,CAAC,GAAGf,SAAS,CAACgB,sBAAV,CAAiC,6BAAjC,CAAJ,CAAqE5K,CAAAA,GAArE,CAA0EmB,IAAD,IAAA;AAAA,QAAA,IAAA,aAAA,CAAA;;QAAA,OAAUA,IAAV,aAAUA,IAAV,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,aAAA,GAAUA,IAAI,CAAEyB,OAAhB,MAAU,IAAA,IAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAeC,MAAzB,CAAA;AAAA,OAAzE,CAA5B,CAAA;;AACA,MAAA,IAAI,CAACgI,UAAU,CAAC/B,gBAAD,EAAmB6B,mBAAnB,CAAX,IAAsDA,mBAAmB,CAAC7I,MAApB,KAA+B,CAAzF,EAA4F;QAC1FiG,yBAAyB,CAAC4C,mBAAD,CAAzB,CAAA;QACA5B,mBAAmB,CAAC4B,mBAAD,CAAnB,CAAA;AACD,OAAA;AACF,KAAA;;IACDjH,UAAU,CAACkG,SAAS,CAAC3H,SAAV,CAAoBH,MAApB,GAA6B,CAA9B,CAAV,CAAA;GAT4C,EAU3C,CAACkH,gBAAD,EAAmBhC,gBAAnB,CAV2C,CAA9C,CA3HoD;;AAwIpD2C,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI3C,gBAAgB,IAAIY,mBAAxB,EAA6C;MAC3C,MAAM;QACJvB,YADI;QAEJC,cAFI;QAGJC,gBAHI;QAIJC,YAJI;AAKJC,QAAAA,cAAAA;AALI,OAAA,GAMFuC,gBANJ,CAAA;;MAOA,IAAI3C,YAAY,IAAIC,cAAc,KAAK,IAAnC,IAA2CC,gBAAgB,KAAK,IAApE,EAA0E;AAAA,QAAA,IAAA,SAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,CAAA;;AACxE;QACA,MAAMqD,SAAS,GAAGnG,GAAH,KAAA,IAAA,IAAGA,GAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAE0C,OAAvB,CAAA;AACA,QAAA,MAAMzB,UAAU,GAAG,CAAC,IAAGkF,SAAH,KAAA,IAAA,IAAGA,SAAH,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAGA,SAAS,CAAElF,UAAd,CAAD,CAAnB,CAAA;QACA,MAAMoG,aAAa,gBAAGvK,QAAH,MAAA,IAAA,IAAA,SAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAG,UAAUwK,cAAV,CAAA,CAAA,qBAAA,GACpBrG,UAAU,CAAC4B,cAAD,CADU,MACpB,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAA4B0E,WAA5B,CAAwCC,KAAxC,CAA8C,CAA9C,EAAiD1E,gBAAjD,CADoB,CAAtB,CAAA;QAGA,MAAM2E,YAAY,iBAAG3K,QAAH,MAAA,IAAA,IAAA,UAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAG,WAAUwK,cAAV,CAClB,CAAD,MAAA,EAAA,CAAA,qBAAA,GAASrG,UAAU,CAAC8B,YAAD,CAAnB,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAS,sBAA0BwE,WAA1B,CAAsCC,KAAtC,CAA4CxE,cAA5C,CAA4D,CAAA,CADlD,CAArB,CAAA;AAGA,QAAA,MAAM0E,YAAY,GAAG/K,cAAc,eACjCC,6BAAC,gBAAD,EAAA;AAAkB,UAAA,MAAM,EAAEuH,mBAAF,KAAA,IAAA,IAAEA,mBAAF,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAEA,mBAAmB,CAAEzH,MAAAA;AAA/C,SAAA,EACI,GAAEoK,sBAAuB,CAAA,EAAE,CAAA3C,mBAAmB,KAAA,IAAnB,IAAAA,mBAAmB,KAAA,KAAA,CAAnB,YAAAA,mBAAmB,CAAE4C,QAArB,KAAiCjC,SAAS,CAACkC,qBAAsB,CAAA,CADhG,CADiC,CAAnC,CAAA;AAKA,QAAA,MAAMW,GAAG,GAAG7K,QAAQ,CAACa,aAAT,CAAuB,KAAvB,CAAZ,CAAA;QACAgK,GAAG,CAAC5G,SAAJ,GAAgB2G,YAAhB,CAAA;AACA,QAAA,MAAME,QAAQ,GAAG,CACf,GAAG3G,UAAU,CAACuG,KAAX,CAAiB,CAAjB,EAAoB3E,cAApB,CADY,EAEfwE,aAFe,EAGfM,GAAG,CAAC1G,UAAJ,CAAe,CAAf,CAHe,EAIfwG,YAJe,EAKf,GAAGxG,UAAU,CAACuG,KAAX,CAAiBzE,YAAY,GAAG,CAAhC,CALY,CAAjB,CAAA;QAOAoD,SAAS,CAACpF,SAAV,GAAsB,EAAtB,CAAA;AACA6G,QAAAA,QAAQ,CAAC1J,OAAT,CAAkB2J,OAAD,IAAa;UAC5B1B,SAAS,CAAC2B,WAAV,CAAsBD,OAAtB,CAAA,CAAA;SADF,CAAA,CAAA;QAGAzD,eAAe,CAACD,mBAAD,CAAf,CAAA;;AACA,QAAA,IAAIvD,MAAM,CAACuB,YAAP,IAAuBrF,QAAQ,CAACqF,YAApC,EAAkD;AAChD;UACA,MAAM4F,SAAS,GAAGnH,MAAM,CAACuB,YAAP,EAAyBrF,IAAAA,QAAQ,CAACqF,YAAT,EAA3C,CAAA;AACA4F,UAAAA,SAAS,CAACzF,eAAV,EAAA,CAAA;AACA,UAAA,MAAMN,KAAK,GAAG,IAAIgG,KAAJ,EAAd,CAAA;UACAhG,KAAK,CAACiG,kBAAN,CAAyB9B,SAAzB,CAAA,CAAA;AACAnE,UAAAA,KAAK,CAACI,QAAN,CAAe+D,SAAS,CAAClF,UAAV,CAAqB4B,cAAc,GAAG,CAAtC,CAAf,EAAyD,CAAzD,CAAA,CAAA;AACAb,UAAAA,KAAK,CAACkG,MAAN,CAAa/B,SAAS,CAAClF,UAAV,CAAqB4B,cAAc,GAAG,CAAtC,CAAb,EAAuD,CAAvD,CAAA,CAAA;UACAb,KAAK,CAACK,QAAN,CAAe,KAAf,CAAA,CAAA;UACA0F,SAAS,CAACxF,QAAV,CAAmBP,KAAnB,CAAA,CAAA;AACAmE,UAAAA,SAAS,CAAC3D,KAAV,EAAA,CAAA;AACD,SAAA;;QACDgD,mBAAmB,CAAAC,cAAA,CAAA,EAAA,EAAM9C,uBAAN,CAAnB,CAAA,CAAA;QACAzC,SAAS,EAAA,CAAA;QACT+G,0BAA0B,EAAA,CAAA;AAC3B,OAAA;AACF,KAAA;GAtDM,EAuDN,CAAC9C,mBAAD,EAAsBZ,gBAAtB,CAvDM,CAAT,CAxIoD;;AAkMpD,EAAA,MAAM4E,wBAAwB,GAAG/H,WAAW,CAAC,MAAM;AAAA,IAAA,IAAA,OAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,qBAAA,CAAA;;AACjD,IAAA,MAAM2H,SAAS,GAAG,CAAAnH,CAAAA,OAAAA,GAAAA,MAAM,UAAN,IAAQuB,OAAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,oBAAAA,GAAAA,OAAAA,CAAAA,YAAR,MAA4BrF,IAAAA,IAAAA,oBAAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,UAAAA,GAAAA,QAA5B,MAA4B,IAAA,IAAA,UAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAA,UAAA,CAAUqF,YAAtC,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA4B,sCAA5B,CAAlB,CAAA;IACA,MAAMgE,SAAS,GAAGnG,GAAH,KAAA,IAAA,IAAGA,GAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAE0C,OAAvB,CAAA;;AACA,IAAA,IAAIqF,SAAS,CAACK,UAAV,KAAyBjC,SAA7B,EAAwC;MACtC9B,qBAAqB,CAAC,EAAD,CAArB,CAAA;AACD,KAAA;;AACD,IAAA,IAAId,gBAAgB,IAAIwE,SAApB,IACCA,SAAS,CAACK,UAAV,KAAyBL,SAAS,CAACM,SADpC,IAECN,SAAS,CAACO,YAAV,KAA2BP,SAAS,CAACQ,WAF1C,EAGE;MACA,IAAIC,SAAS,GAAG,EAAhB,CAAA;MACA,IAAI3F,cAAc,GAAG,IAArB,CAAA;MACA,IAAIC,gBAAgB,GAAG,IAAvB,CAAA;;AACA,MAAA,KAAK,IAAI2F,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGtC,SAAS,CAAClF,UAAV,CAAqB5C,MAAjD,EAAyDoK,KAAK,IAAI,CAAlE,EAAqE;AACnE,QAAA,MAAMC,WAAW,GAAGvC,SAAS,CAAClF,UAAV,CAAqBwH,KAArB,CAApB,CAAA;;AACA,QAAA,IAAIC,WAAW,CAACC,QAAZ,KAAyBC,SAAS,CAACC,QAAvC,EAAiD;AAC/C;AACA,UAAA,MAAMtB,WAAW,GAAImB,WAAW,KAAKX,SAAS,CAACK,UAA3B,GAChB,CAAAM,WAAW,KAAA,IAAX,IAAAA,WAAW,KAAA,KAAA,CAAX,YAAAA,WAAW,CAAEnB,WAAb,CAAyBC,KAAzB,CAA+B,CAA/B,EAAkCO,SAAS,CAACO,YAA5C,CAA6D,KAAA,EAD7C,GAEhB,CAAAI,WAAW,KAAX,IAAA,IAAAA,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,WAAW,CAAEnB,WAAb,KAA4B,EAFhC,CAAA;;AAGA,UAAA,IAAIiB,SAAS,CAACnK,MAAV,GAAmB,CAAvB,EAA0B;AACxBmK,YAAAA,SAAS,IAAIjB,WAAb,CAAA;AACD,WAFD,MAEO;AACL,YAAA,IAAIuB,aAAa,GAAGvB,WAAW,CAACwB,WAAZ,CAAwBjC,sBAAxB,CAApB,CAAA;;AACA,YAAA,KAAK,IAAI7K,CAAC,GAAG6M,aAAa,GAAG,CAA7B,EAAgC7M,CAAC,GAAG,CAAC,CAArC,EAAwCA,CAAC,IAAI,CAA7C,EAAgD;AAC9C,cAAA,IAAIsL,WAAW,CAACtL,CAAD,CAAX,KAAmB6K,sBAAvB,EAA+C;AAC7CgC,gBAAAA,aAAa,GAAG7M,CAAhB,CAAA;AACD,eAFD,MAEO;AACL,gBAAA,MAAA;AACD,eAAA;AACF,aAAA;;AACD,YAAA,IAAI6M,aAAa,GAAG,CAAC,CAArB,EAAwB;AACtBN,cAAAA,SAAS,GAAGjB,WAAZ,CAAA;AACA1E,cAAAA,cAAc,GAAG4F,KAAjB,CAAA;AACA3F,cAAAA,gBAAgB,GAAGgG,aAAnB,CAAA;AACD,aAAA;AACF,WAAA;AACF,SAtBD,MAsBO;AACL;AACAN,UAAAA,SAAS,GAAG,EAAZ,CAAA;AACA3F,UAAAA,cAAc,GAAG,IAAjB,CAAA;AACAC,UAAAA,gBAAgB,GAAG,IAAnB,CAAA;AACD,SAAA;;AACD,QAAA,IAAI4F,WAAW,KAAKX,SAAS,CAACK,UAA9B,EAA0C;AACxC;AACV;AACA;AACA;AACU,UAAA,MAAMxF,YAAY,GAAG4F,SAAS,GAAGA,SAAS,CAAChB,KAAV,CAAgB1E,gBAAhB,CAAH,GAAuC,EAArE,CALwC;;AAMxC0C,UAAAA,mBAAmB,CAAC;YAClB5C,YADkB;YAElBC,cAFkB;YAGlBC,gBAHkB;AAIlBC,YAAAA,YAAY,EAAE0F,KAJI;YAKlBzF,cAAc,EAAE+E,SAAS,CAACO,YAAAA;AALR,WAAD,CAAnB,CAAA;UAOAjE,qBAAqB,CAACzB,YAAD,CAArB,CAAA;AACA,UAAA,OAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;AACF,GA7D2C,EA6DzC,CAACW,gBAAD,CA7DyC,CAA5C,CAAA;;EA+DA,MAAMyF,WAAW,GAAG,MAAM;IACxB,MAAM7C,SAAS,GAAGnG,GAAH,KAAA,IAAA,IAAGA,GAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAE0C,OAAvB,CAAA;;IACA,IAAI,CAACY,MAAD,IAAW6C,SAAX,KAAA,IAAA,IAAWA,SAAX,KAAWA,KAAAA,CAAAA,IAAAA,SAAS,CAAE3H,SAA1B,EAAqC;MACnC,IAAIyK,WAAW,GAAG,EAAlB,CAAA;MACA,IAAIC,eAAe,GAAG,EAAtB,CAAA;AACA/C,MAAAA,SAAS,CAAClF,UAAV,CAAqB/C,OAArB,CAA8BR,IAAD,IAAU;AACrC,QAAA,IAAIA,IAAI,CAACiL,QAAL,KAAkBC,SAAS,CAACO,WAA5B,IAA2CzL,IAAI,CAAC0L,QAAL,KAAkBC,SAAS,CAACC,IAA3E,EAAiF;UAC/E,MAAM;YAAE9K,SAAF;AAAaW,YAAAA,OAAO,GAAG,EAAA;AAAvB,WAAA,GAA8BzB,IAApC,CAAA;UACA,MAAM;AAAE0B,YAAAA,MAAM,GAAG,EAAA;AAAX,WAAA,GAAkBD,OAAxB,CAAA;AACA8J,UAAAA,WAAW,IAAIzK,SAAf,CAAA;AACA0K,UAAAA,eAAe,IAAK,CAAA,EAAEpC,sBAAuB,CAAA,CAAA,EAAG1H,MAAO,CAAvD,CAAA,CAAA,CAAA;AACD,SALD,MAKO,IAAI1B,IAAI,CAACiL,QAAL,KAAkBC,SAAS,CAACO,WAA5B,IAA2CzL,IAAI,CAAC0L,QAAL,KAAkBC,SAAS,CAACE,EAA3E,EAA+E;AACpFN,UAAAA,WAAW,IAAI,IAAf,CAAA;AACAC,UAAAA,eAAe,IAAI,IAAnB,CAAA;AACD,SAHM,MAGA;AAAE;UACP,MAAM;AAAE3B,YAAAA,WAAW,GAAG,EAAA;AAAhB,WAAA,GAAuB7J,IAA7B,CAAA;AACAuL,UAAAA,WAAW,IAAI1B,WAAf,CAAA;AACA2B,UAAAA,eAAe,IAAI3B,WAAnB,CAAA;AACD,SAAA;OAbH,CAAA,CAAA;AAeA,MAAA,MAAMiC,MAAM,GAAG;AAAE9F,QAAAA,OAAO,EAAEuF,WAAX;AAAwBC,QAAAA,eAAAA;OAAvC,CAAA;MACApF,aAAa,CAAC0F,MAAD,CAAb,CAAA;MACA/G,UAAU,CAACzC,GAAD,CAAV,CAAA;MACAC,UAAU,CAAC,KAAD,CAAV,CAAA;MACAC,SAAS,EAAA,CAAA;AACV,KAAA;GAzBH,CAAA;;AA2BA,EAAA,MAAMuJ,cAAc,GAAG,EAAEzJ,GAAF,KAAA,IAAA,IAAEA,GAAF,KAAEA,KAAAA,CAAAA,IAAAA,CAAAA,YAAAA,GAAAA,GAAG,CAAE0C,OAAP,kEAAE,YAAclE,CAAAA,SAAhB,kDAAE,qBAAyBkL,CAAAA,IAAzB,EAAF,CAAvB,CAAA;;EACA,MAAMC,WAAW,GAAG,MAAM;IACxB,MAAMxD,SAAS,GAAGnG,GAAH,KAAA,IAAA,IAAGA,GAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAE0C,OAAvB,CAAA;IACA,MAAM0D,SAAS,GAAG1C,OAAH,KAAA,IAAA,IAAGA,OAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAE0C,SAA3B,CAAA;;IACA,IAAI9C,MAAM,IAAI8C,SAAd,EAAyB;MACvB,IAAI6C,WAAW,GAAG,EAAlB,CAAA;MACA,IAAIC,eAAe,GAAG,EAAtB,CAAA;AACA/C,MAAAA,SAAS,CAAClF,UAAV,CAAqB/C,OAArB,CAA8BR,IAAD,IAAU;AACrC,QAAA,IAAIA,IAAI,CAACiL,QAAL,KAAkBC,SAAS,CAACO,WAA5B,IAA2CzL,IAAI,CAAC0L,QAAL,KAAkBC,SAAS,CAACC,IAA3E,EAAiF;UAC/E,MAAM;YAAE9K,SAAF;AAAaW,YAAAA,OAAO,GAAG,EAAA;AAAvB,WAAA,GAA8BzB,IAApC,CAAA;UACA,MAAM;AAAE0B,YAAAA,MAAM,GAAG,EAAA;AAAX,WAAA,GAAkBD,OAAxB,CAAA;AACA8J,UAAAA,WAAW,IAAIzK,SAAf,CAAA;AACA0K,UAAAA,eAAe,IAAK,CAAA,EAAEpC,sBAAuB,CAAA,CAAA,EAAG1H,MAAO,CAAvD,CAAA,CAAA,CAAA;AACD,SALD,MAKO,IAAI1B,IAAI,CAACiL,QAAL,KAAkBC,SAAS,CAACO,WAA5B,IAA2CzL,IAAI,CAAC0L,QAAL,KAAkBC,SAAS,CAACC,IAA3E,EAAiF;AACtFL,UAAAA,WAAW,IAAI,IAAf,CAAA;AACAC,UAAAA,eAAe,IAAI,IAAnB,CAAA;AACD,SAHM,MAGA;AAAE;UACP,MAAM;AAAE3B,YAAAA,WAAW,GAAG,EAAA;AAAhB,WAAA,GAAuB7J,IAA7B,CAAA;AACAuL,UAAAA,WAAW,IAAI1B,WAAf,CAAA;AACA2B,UAAAA,eAAe,IAAI3B,WAAnB,CAAA;AACD,SAAA;OAbH,CAAA,CAAA;AAeA,MAAA,MAAMiC,MAAM,GAAG;QAAEpD,SAAF;AAAa1C,QAAAA,OAAO,EAAEuF,WAAtB;AAAmCC,QAAAA,eAAAA;OAAlD,CAAA;MACAnF,eAAe,CAACyF,MAAD,CAAf,CAAA;MACA/G,UAAU,CAACzC,GAAD,CAAV,CAAA;AACD,KAAA;GAxBH,CAAA;;EA0BA,MAAM4J,OAAO,GAAG7J,QAAQ,CAAC;IACvBC,GADuB;IAEvBsF,mBAFuB;IAGvBnF,iBAHuB;IAIvBZ,OAJuB;IAKvBU,UALuB;AAMvBC,IAAAA,SAAAA;AANuB,GAAD,CAAxB,CAAA;EASA,oBACEtD,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,SAAS,EAAEiN,YAAY,CAAC,CACtBzG,SADsB,EAEtBE,MAAM,GAAG,8BAAH,GAAoC,EAFpB,EAGtBG,QAAQ,GAAG,uCAAH,GAA6C,EAH/B,CAAD,CAAA;GAMvB,eAAA7G,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA;IACE,SAAS,EAAEiN,YAAY,CAAC,CACtB,wBADsB,EAEtBpG,QAAQ,GAAG,kCAAH,GAAwC,EAF1B,CAAD,CAAA;GAKvB,eAAA7G,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,IAAA,EAAE,EAAG,CAAA,EAAEiI,WAAY,CAAA,EAAEvB,MAAM,GAAGI,OAAH,KAAGA,IAAAA,IAAAA,OAAH,uBAAGA,OAAO,CAAE0C,SAAZ,GAAwB,EAAG,CADxD,CAAA;IAEE,SAAS,EAAG,CAAmCvB,iCAAAA,EAAAA,WAAY,CAF7D,CAAA;IAGE,eAAe,EAAE,CAACpB,QAHpB;AAIE,IAAA,IAAI,EAAC,SAJP;AAKE,IAAA,YAAA,EAAW,YALb;AAME,IAAA,QAAQ,EAAEA,QANZ;AAOE,IAAA,GAAG,EAAEzD,GAPP;AAQE,IAAA,SAAS,EAAE4D,SARb;IASE,SAAS,EAAGvD,CAAD,IAAO;AAChB,MAAA,MAAMyJ,YAAY,GAAGrF,SAAS,CAACpE,CAAD,CAA9B,CAAA;;AACA,MAAA,IAAIyJ,YAAJ,EAAkB;AAChBzJ,QAAAA,CAAC,CAACC,cAAF,EAAA,CAAA;AACD,OAFD,MAEO;AAAA,QAAA,IAAA,cAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,sBAAA,CAAA;;QACL,IAAI,CAACD,CAAC,CAAC0J,QAAH,IAAe1J,CAAC,CAAC2J,GAAF,KAAUC,gBAAgB,CAACC,KAA1C,IAAmD,CAAA7J,CAAC,KAAD,IAAA,IAAAA,CAAC,KAAA,KAAA,CAAD,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,cAAAA,GAAAA,CAAC,CAAE8J,WAAH,MAAgBC,IAAAA,IAAAA,cAAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAAA,CAAAA,WAAhB,MAAgC,IAAvF,EAA6F;AAC3F/J,UAAAA,CAAC,CAACC,cAAF,EAAA,CAAA;UACA0I,WAAW,EAAA,CAAA;AACZ,SAAA;;AACD,QAAA,IAAI3I,CAAC,CAAC2J,GAAF,KAAUC,gBAAgB,CAACI,SAA3B,IACC,CAAArK,GAAG,KAAH,IAAA,IAAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,aAAA,GAAAA,GAAG,CAAE0C,OAAL,MAAA,IAAA,IAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAA,aAAA,CAAczB,UAAd,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAA0B5C,MAA1B,MAAqC,CADtC,IAEC,EAAC2B,GAAD,KAACA,IAAAA,IAAAA,GAAD,gCAACA,GAAG,CAAE0C,OAAN,MAAA,IAAA,IAAA,aAAA,KAAA,KAAA,CAAA,IAAA,CAAA,qBAAA,GAAC,aAAczB,CAAAA,UAAf,MAAC,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,IAAA,CAAA,sBAAA,GAAA,qBAAA,CAA2B,CAA3B,CAAD,MAAC,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,IAAA,sBAAA,CAA+BsG,WAAhC,CAFD,IAGC,CAAAvH,GAAG,KAAH,IAAA,IAAAA,GAAG,KAAA,KAAA,CAAH,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAAA,GAAAA,GAAG,CAAE0C,OAAL,CAAazB,UAAb,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAA,qBAAA,CAA0B,CAA1B,CAAA,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA8B0H,QAA9B,MAA2CC,SAAS,CAACO,WAH1D,EAIE;UACAnJ,GAAG,KAAA,IAAH,IAAAA,GAAG,KAAA,KAAA,CAAH,YAAAA,GAAG,CAAE0C,OAAL,CAAa4H,WAAb,CAAyBtK,GAAzB,KAAyBA,IAAAA,IAAAA,GAAzB,uBAAyBA,GAAG,CAAE0C,OAAL,CAAazB,UAAb,CAAwB,CAAxB,CAAzB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;KAzBL;IA2BE,OAAO,EAAGZ,CAAD,IAAO;AACd,MAAA,MAAMyJ,YAAY,GAAGtF,OAAO,CAACnE,CAAD,CAA5B,CAAA;;AACA,MAAA,IAAIyJ,YAAJ,EAAkB;AAChBzJ,QAAAA,CAAC,CAACC,cAAF,EAAA,CAAA;AACD,OAFD,MAEO;QACL6H,wBAAwB,EAAA,CAAA;AACzB,OAAA;KAjCL;AAmCE,IAAA,OAAO,EAAE,MAAM;MACbA,wBAAwB,EAAA,CAAA;KApC5B;AAsCE,IAAA,OAAO,EAAE,MAAM;AAAA,MAAA,IAAA,aAAA,EAAA,qBAAA,CAAA;;MACbjI,SAAS,EAAA,CAAA;MACT+D,aAAa,EAAA,CAAA;AACbhE,MAAAA,UAAU,CAAC,CAAAD,GAAG,KAAH,IAAA,IAAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,aAAA,GAAAA,GAAG,CAAE0C,OAAL,MAAclE,IAAAA,IAAAA,aAAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAAA,GAAAA,aAAAA,CAAAA,SAAd,gFAAyBH,MAAzB,IAAkC,CAAnC,CAAV,CAAA;MACA4I,0BAA0B,EAAA,CAAA;KA1C9B;AA4CE,IAAA,OAAO,EAAE2C,OAAAA;AA5CX,GAAA,CANF,EAqDG,CAACzE,OAAD,iBACCvI,6BAAC,KAAD,EAAA;AACE,IAAA,SAAS,EAAC,qCADZ;IAEE,IAAI,EAAE2N,eAAe,CAACC,MAFxB;IAGE,KAAK,EAAE/G,QAAQ,GAAEgH,WAAW,CAACC,cAAd,GAA+BD,WAAW,CAACE,cAAAA;AAH5D,GAAA,EAKGhH,WAAW,IAAImB,SAAS,CAAC8F,2BAL5B,CAtDJ,EAgEK,CAACtH,MAAD,IAAW6B,OAAZ,iBACEvI,6BAAC,UAAD,EAAA;AACE,IAAA,SAAS,EAAC,8BADZ;AAEE,IAAA,MAAM,EAAC,MAFT;AAGE,IAAA,KAAK,EAAC,MAHR;IAIE,OAAO,EAAE,MAAMoM,WAAW,EAAA;GAGxB,EAAA,CAAApE,qBAAqB,KAAA,IAArB,IAAAA,qBAAqB,WAArB,GAAAA,KAAAA,CAAAA,GAAAA,qBAAqB,EACnB,kBAAAhI,cAAA,CAAA,aAAA,CAAC,IAAD,EAAA;IACE,IAAI,EAAEiO,SAAS,CAACC,IADlB;IAEE,SAAS,EAAErH,QAAQ,GAAGsH,UAAU,CAACC,eAAd,GAAgCD,UAAU,CAACE,OAFhE;AAGE,IAAA,KAAK,EAAC,MAHR;AAIE,IAAA,MAAM,EAAC,MAAA;AAJT,GAAA,CARN,CAjEN,EAsFK,CAAC3H,MAAD,IAAW,CAAC6B,OAAb,KACG,CAAAT,oBAAoB,KAAA,IAApB,IAAAA,oBAAoB,KAAA,KAAA,CAApB,YAAAA,oBAAoB,EAAA,kBACnB9H,6BAAC,UAAD,EAAA;AACE,IAAA,SAAS,EAAG,CAAiC4G,+BAAAA,EAAAA,qBAAqB,GAAG,0BAAH,GAAgC,EAAG,CADvG,CAAA;AAEE,IAAA,MAAM,EAAC,MAFT;AAGE,IAAA,KAAK,EAAC,MAHR;AAIE,IAAA,OAAO,EAAE,MAAM;AAAA,MAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AACb;MACAyB,YAAY,KAAA,IAAZ,IAAAA,YAAY,KAAA,KAAA,CAAZ,qCAAAA,YAAY,CAAEvC,OAAd,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAA,qBAAA,CAAuBwI,KAAvB,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAA,IAAA,CAAA,qBAAA,CAAA,CAAA;AACD,KAAA;AAPH,GAAA,eASEtO,6BAAC,IAAD,EAAA;IACE,IAAI,EAAEiO,SAAS,CAACM,MADlB;IAEE,SAAS,EAAE1H,QAAQ,GAAGsH,UAAU,CAACC,eAAd,GAAgCD,UAAU,CAACK,eAFhE;AAGE,IAAA,KAAK,EAAC,MAHR;AAIE,IAAA,MAAM,EAAC,MAAA;AAJT,GAAA,CATF,eAeExO,cAAA,CAAA,aAAA,CAAA,OAAA,EAAA;AACE,IAAA,SAAS,EAAC,sCADZ;AAEE,IAAA,IAAI,EAAC,MAFP;AAGE,IAAA,GAAG,EAAEqI,YAHP;IAIE,QAAQ,EAAE1D,gBAAgB,CAACsC,YAAD,CAAA;AAJ5B,GAAA,CAfF,CAFJ,CAtFJ,EAkHIL,qBAAqB,IAAI,CAACF,MAA1B,IAAoC,CAAC6B,OAAtC,iBACCvI,cAAA,CAAA,aAAA,CAAC,UAAD,EAAA;AACE,IAAA,SAAS,EAAC,uCADZ;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAC,MAHT;AAIE,IAAA,OAAO,EAAE2H,uBAAAA;GAGP,EAAA,CAAAI,sBAAsB,KAAA,IAAtB,IAAAA,sBAAsB,WAAtB,GAAAA,KAAAA,CAAAA,GAAAA,sBAAsB,EACpB,kBAAA/H,cAAA,CAAA,aAAA,CAAC,IAAD,EAAA;IACE,IAAI,EAAEiO,SAAS,CAACQ,cADlB;IAEE,SAAS,EAAE5H,QAAQ,GAAGsH,UAAU,CAACC,eAAd,GAAgCD,UAAU,CAACK,eAFhE;AAGE,IAAA,KAAK,EAAC,MAHR;AAIE,IAAA,MAAM,EAAC,MAAA;AAJT,GAAA,CARN,CAnHJ,CAPF,EA+II9H,MAAM,iBACJ1G,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,qCAAA;AAAf,GAAA,eACEA,6BAAC,MAAD,EAAA;AACE,IAAA,SAAS,EAAC,6CADZ;IAEE,IAAI,EAAE0O,WAAW,CAACC,SAFpB;IAGE,IAAI,EAAEC,WAAW,CAACC,KAHpB;AAIE,IAAA,OAAO,EAAEzH,YAAAA;AAJX,GAAA,EAMGc,SAAS,CAAC4G,cANb,CADF,eASE9O,6BAAC,MAAD,EAAA;AACE,IAAA,SAAS,EAAC,2CADZ;IAEE,IAAI,EAAE0O,WAAW,CAACL,OAFpB;IAGE,IAAI,EAAEO,WAAW,CAACC,KAHpB;AAIE,IAAA,QAAQ,EAAEhC,cAJZ;IAKE,OAAO,EAAE,MAAME,WAAW,EAAA;AAL5B,GAAA,EAOG7E,SAAS,CAAC6G,YAPb,CATF,CAhJN,CADF,CAAA;AAwKD,CAxeoB,EAArB;AA0eA1I,YAAY,CAAC2I,SAAb,GAAyB;AACvBxI,EAAAA,SAAS,EAAEyI,SAAS,CAACC,SAAV,CAAoB,CAC7BD,SAAS,CAACE,MADmB,EAE7BF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF6B,CAApB,CADY;EAKvB1I,cAAc,EAAEwI,SAAS,CAACE,MALH;AAMvBpI,EAAAA,WAAW,EAAEkI,SAAS,CAACC,SAAV,CAAoB,CAC/BD,SAAS,CAACE,MADqB,EAE/BF,SAAS,CAACI,IAFqB,CAApB,CANU;EAUvBrK,KAAK,EAAEiK,SAAS,CAACE,MAVM;EAWvBzI,MAAM,EAAEuI,SAAS,CAACI,IAXK;EAYvB1I,gBAAgB,EAAEsI,SAAS,CAACI,IAZL;EAavBzI,qBAAqB,EAAEqI,SAAS,CAACI,IAbV;EAcvB1H,uBAAuB,EAAEsH,SAAS,CAACK,IAdZ;AAevBxI,EAAAA,OAAO,EAAEmI,SAAS,CAACM,KAAV,CAAgB;AACvB/F,IAAAA,SAAS,EAAEyF,SAAS,CAACC,SAAV,CAAoB,CAACD,SAAS,CAACE,MAAX,EAAmBF,SAAS,CAACO,MAA7B,CAApB,CADY;IAEvB1I,OAAO,EAAEmI,SAAS,CAACE,MAFI;IAGvB1F,wBAAwB,EAAEwF,SAAS,CAACE,MAHb;IAIvB5K,cAAc,EAAE0K,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACM,KAAV,CAAgB,EAAhB,CAAlB,CAAA;AAJO,GAAhB,CAfc;EAqBvB1I,QAAQ,EAAEoI,SAAS,CAACI,IArBG;EAsBvBrI,SAAS,EAAEiI,SAAS,CAACO,MAtBE;EAuBvBvI,YAAY,EAAEgI,SAAS,CAACK,IAvBD;EAwBvBpI,aAAa,EAAE+H,SAAS,CAACK,IAxBF;EAyBvBnI,eAAe,EAAE8H,SAAS,CAACK,IAzBJ;EA0BvBjI,aAAa,EAAE4H,SAAS,CAACK,IA1BF;EA2BvBlI,YAAY,EAAE6H,SAAS,CAACK,IA3BD;EA4BvBhI,UAAU,EAAE2H,SAAS,CAACE,MA5BC;AA6BvB5H,EAAAA,mBAAmB,EAAE0H,SAAS,CAACM,KAAV,CAAgB;IACnCzP,MAAM,EAAEmP,SAAS,CAACE,MADiB;IAEnChF,QAAQ,EAAE8E,SAAS,CAACE,MAAAA;AAFe,GAAhB,CA7BE;EAiCvB5L,iBAAiB,EAAE0L,SAAS,CAACK,IAjCN;EAkCvB9H,eAAe,EAAEyH,SAAS,CAACK,IAlCJ;EAmCvB7H,qBAAqB,EAAEwH,SAAS,CAACK,IAnCV;EAoCvB5H,yBAAyB,EAAEuH,SAAS,CAACK,IApCd;EAqCvB1H,OAAO,EAAEqH,SAAS,CAACK,IArCI;EAsCvBzH,SAAS,EAAEoH,SAAS,CAACK,IAAAA;AAtCE,CAAzB,CAAA;AAyCAjJ,YAAY,CAACoJ,YAAb,GAA4B;AAC1BjJ,EAAAA,SAAS,EAAE,EADe;AAE1BC,EAAAA,cAAc,EAAE,EAFU;AAG1Ba,EAAAA,UAAU,EAAE,EAHc;AAI1BJ,EAAAA,aAAa,EAAExC,IAJW;AAK1ByC,EAAAA,eAAe,EAAEzC,IALS;AAM1BM,EAAAA,KAAK,EAAE,IANmB;AAO1B8B,EAAAA,OAAO,EAAE,IAPiB;AAQ1BJ,EAAAA,MAAM,EAAE,KARkB;AAS1BC,EAAAA,gBAAgB,EAAE,KATQ;AAU1BC,EAAAA,qBAAqB,EAAE,IAVG;AAW1Be,EAAAA,uBAAuB,EAAEjD,IAXC;AAY1BmC,EAAAA,QAAQ,EAAE,KAZgB;AAa1BE,EAAAA,WAAW,EAAE,EAba;AAc1BC,EAAAA,SAAS,EAAE,IAde;AAe1BC,EAAAA,YAAY,EAAEvC,IAfY;AAgB1B0C,EAAAA,YAAY,EAAE1C,IAhBY;AAiB1B2C,EAAAA,aAAa,EAAE3C,IAjBW;AAkB1B6C,EAAAA,mBAAmB,EAAE,IAlBK;AAmB1BC,EAAAA,eAAe,EAAE9C,IAnBS;AAoB1B+C,EAAAA,qBAAqB,EAAE/C,IApBG;AAqB1BgD,EAAAA,yBAAyB,EAAEhD,IArBD;AAsB1BkD,EAAAA,OAAO,EAAElD,IAtBiB;AAuB1BmD,EAAAA,SAAS,EAAEnD,IAAAA;AAvBe,CAA5B;;;;"}
|
|
1
|
+
{"version":3,"file":"MessageInput.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_CLASS } from '../MessageInput/hooks/usePaste/consts';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\nexport default debounce;\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n}\n\nexport function domToMessageTemplate(nodeArray: HTMLSpanElement[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n let mentionNode = currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY) as HTMLSpanElement;\n // sometimes the mention node is the parent node\n // in this case querySelector will return null\n if (!mentionNode) {\n mentionNode = (\n currentValue.classList.contains(MENTION_CLASS) // for nodes copied from message\n || currentValue.classList.contains(MENTION_CLASS_IN_INPUT) // for nodes copied from input\n ) ? currentValue : null;\n }\n const text = currentValue.innerText;\n if (mentionNode) {\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n userMap[template.userId] = users.find((user) => user.userId === template.userId);\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport { MENTION_CLASS_COMBINED_QUERY, MENTION_CLASS_IN_INPUT, TEXT_MESSAGE_CLASS } from './consts';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n} from './utils';\n\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport default function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, sanitize and insert\n let childNodes = pasteNode.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`) as NodeListOf<HTMLSpanElement>;\n if (pasteNode.querySelectorAll(`.${MENTION_CLASS_IN_INPUT}`).length > 0) {\n // @ts-ignore\n childNodes = pasteNode.children;\n }\n let nodeArray = Array.from(childNodes);\n // handle paste when there is only one child\n if (pasteNode.children.length === 1 && pasteNode.querySelectorAll(MENTION_CLASS_COMBINED_QUERY).length === 1) {\n nodeArray = Array.from(pasteNode.children) as HTMLSpanElement[];\n }\n const words = domToMessageTemplate(nodeArray);\n\n const mentionedUsers = getUsersFromWords(words, channel);\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../smart-components/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n StringObjType,\n convertWordToStringObj,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n}\n\nconst resetInput = (ref) => {\n try {\n ref.current.innerHTML = '';\n } catch {\n //\n }\n}\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch { }\n setMentionedUserIds([]);\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n textField.innerHTML = message?.mentionedMessageTemplate?.split(' ').map((word) => (\n convertWordToStringObj(word, mentionedUsers).map((stringObj) => {\n const { type, value, userId } = stringObj;\n if (type === StringObjType.mention && mentionedUsers.some((user) => user?.userId === userId)) {\n const nickname = `${USER_MENTION_TEMP_CHAR}${mentionedUsers.find((user) => user?.userId === userId)?.nickname\n || value\n || stringSet.MENTION_NAME__NO_NAME\n }`\n return renderMentionLabelToString({ userId, nickname });\n }\n return sanitizeString(value);\n }).join('')\n )).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch { }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.innerText.length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = [...textField?.childNodes];\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.innerText) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.innerText?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter && e?.nativeEvent?.isComposing !== true) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(ref?.current?.innerText?.length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {!isInput && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.() || (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n setMentionedUsers: PropTypes.func,\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n};\n\nexport default MessageInput;\n"],"names":["renderToString","_a","userId","nickname","el","concat","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","slice","sanitized","__spreadArray","join","sanitizeString","str","replace","i","charCodeAt","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","querySelectorAll","length","Array","from","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","classList","contains","dataset","userid","getUsersFromWords","channel","userMap","users","members","find","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","childNodes","words","mentionedUsers","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","createRange","sel","getSelection","setStart","collapse","removeAllRanges","addRange","focus","resetInput","current","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","textFieldId","stringSet","useContext","LocalizationContext","fileInputRef","useRef","isInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","useMemo","elem","MAX_HEIGHT","offsetHeight","scrollHeight","height","error","initialValue","useEffect","textField","messageId","mentionedMessageTemplate","word","convertWordToStringObj","stringObj","type","StringObjType","mention","some","USER_MENTION_TEMP_CHAR","MENTION_NAME__NO_NAME","useMentionedLabelDetection","newMentionedUserIds","getElementsByClassName","arrayEqual","frontTextNode","createTextNode","textContent","backTextNode","mentionLabel","div","newNodes","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","messageText","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","params","isEditDisabled","trim","editMessage","onPaste","getClassName","preventEvent","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","LabelTypography","BODY_1","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconTypes","SEND","IconColors","ON_BACKGROUND_4","PRIMARY","click","ATTACH","CONTENT_INVERSE","AUDIO_ON_LINED","ButtonTypes","SECONDARY","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","defaultProps"],"mappings":"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"}
|
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 { s as isUserMessage, v as isSentMessage, w as isFailedMessage, x as isPendingMessage, j as getClassName, y as copyToClipboard } from '../index-
|
|
6
|
-
import { a as LocalizationContext } from '../LocalizationContext-
|
|
7
|
-
import { R as Role } from '../types-
|
|
8
|
-
import '../tslib.es6-
|
|
5
|
+
import { s as isUserMessage, v as isSentMessage, w as isFailedMessage, x as isPendingMessage, j as getClassName, y as copyToClipboard } from '../index-102fbe62.js';
|
|
6
|
+
import { a as LocalizationContext } from '../LocalizationContext-187f787e.js';
|
|
7
|
+
import { R as Role } from '../types-87c77099.js';
|
|
8
|
+
import '../tslib.es6-645dedf8.js';
|
|
9
9
|
import 'react-dom';
|
|
10
10
|
import './SortByRow.js';
|
|
11
|
-
import '../uuid-
|
|
12
|
-
import '../index-
|
|
11
|
+
import '../uuid-e15650df.js';
|
|
12
|
+
import '../index-46d8dde5.js';
|
|
13
13
|
import 'prop-types';
|
|
14
|
-
import '../stringSet-
|
|
14
|
+
import '../stringSet-fd70cba0.js';
|
|
15
15
|
import '../utils/message/getOutgoingMessageState.js';
|
|
16
|
-
import '../index-
|
|
16
|
+
import '../index-5b34a381.js';
|
|
17
17
|
|
|
18
18
|
function MessageItemMenu(_a) {
|
|
19
19
|
var _b;
|