@cometchat/chat-uikit-angular 4.3.35 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -14
- package/fesm2022/cometchat-chat-uikit-angular.mjs +107859 -0
- package/fesm2022/cometchat-chat-uikit-angular.mjs.map +1 -0
- package/package.json +14 -21
- package/screenshots/sample_app_overview.png +0 -0
- package/src/lib/assets/Collaborative-Whiteboard-Preview-Light.png +0 -0
- package/src/lib/assets/Collaborative-document-Preview-light.png +0 -0
- package/src/lib/assets/Collaborative_Document_Dark.png +0 -0
- package/src/lib/assets/Collaborative_Document_Light.png +0 -0
- package/src/lib/assets/Collaborative_Whiteboard_Dark.png +0 -0
- package/src/lib/assets/Collaborative_Whiteboard_Light.png +0 -0
- package/src/lib/assets/Copy.svg +5 -0
- package/src/lib/assets/Info.svg +8 -0
- package/src/lib/assets/Profile.png +0 -0
- package/src/lib/assets/Send.svg +3 -0
- package/src/lib/assets/Spinner-Gradient-1.svg +12 -0
- package/src/lib/assets/account_circle.svg +8 -0
- package/src/lib/assets/activity.svg +10 -0
- package/src/lib/assets/add.svg +8 -0
- package/src/lib/assets/add_a_photo.svg +8 -0
- package/src/lib/assets/add_box.svg +8 -0
- package/src/lib/assets/add_call.svg +8 -0
- package/src/lib/assets/add_circle.svg +3 -0
- package/src/lib/assets/add_circle_fill.svg +3 -0
- package/src/lib/assets/add_comment.svg +8 -0
- package/src/lib/assets/add_reaction.svg +8 -0
- package/src/lib/assets/add_reaction_icon.svg +5 -0
- package/src/lib/assets/ai_conversation_summary.svg +3 -0
- package/src/lib/assets/ai_fill.svg +4 -0
- package/src/lib/assets/ai_suggest_reply.svg +3 -0
- package/src/lib/assets/alternate_email.svg +8 -0
- package/src/lib/assets/animals_nature.svg +10 -0
- package/src/lib/assets/archive.svg +8 -0
- package/src/lib/assets/arrow_back.svg +8 -0
- package/src/lib/assets/arrow_forward.svg +8 -0
- package/src/lib/assets/attach_file.svg +8 -0
- package/src/lib/assets/audio_call_button.svg +5 -0
- package/src/lib/assets/audio_filter_icon.svg +3 -0
- package/src/lib/assets/bar_chart.svg +3 -0
- package/src/lib/assets/bedtime.svg +8 -0
- package/src/lib/assets/block.svg +8 -0
- package/src/lib/assets/bold-format.svg +3 -0
- package/src/lib/assets/bookmark.svg +8 -0
- package/src/lib/assets/bookmark_add.svg +8 -0
- package/src/lib/assets/bullet-list-format.svg +3 -0
- package/src/lib/assets/calendar_add_on.svg +8 -0
- package/src/lib/assets/calendar_today.svg +8 -0
- package/src/lib/assets/call-log-audio.svg +3 -0
- package/src/lib/assets/call-log_video.svg +3 -0
- package/src/lib/assets/call-logs_empty_state.svg +8 -0
- package/src/lib/assets/call-logs_empty_state_dark.svg +8 -0
- package/src/lib/assets/call.svg +8 -0
- package/src/lib/assets/call_end.svg +8 -0
- package/src/lib/assets/call_end_no_fill.svg +3 -0
- package/src/lib/assets/call_log.svg +8 -0
- package/src/lib/assets/call_made.svg +8 -0
- package/src/lib/assets/call_missed.svg +8 -0
- package/src/lib/assets/call_missed_outgoing.svg +8 -0
- package/src/lib/assets/call_received.svg +8 -0
- package/src/lib/assets/cancel.svg +8 -0
- package/src/lib/assets/cancel_fill.svg +8 -0
- package/src/lib/assets/change_circle.svg +3 -0
- package/src/lib/assets/change_scope.png +0 -0
- package/src/lib/assets/chat-history.svg +3 -0
- package/src/lib/assets/chat.svg +8 -0
- package/src/lib/assets/chat_bot.svg +3 -0
- package/src/lib/assets/chats_filter_icon.svg +1 -0
- package/src/lib/assets/check.svg +8 -0
- package/src/lib/assets/check_circle.svg +3 -0
- package/src/lib/assets/checkbox_tick.svg +5 -0
- package/src/lib/assets/chevron_left.svg +8 -0
- package/src/lib/assets/chevron_right.svg +8 -0
- package/src/lib/assets/circle.svg +3 -0
- package/src/lib/assets/close.svg +8 -0
- package/src/lib/assets/code-block-format.svg +3 -0
- package/src/lib/assets/code-format.svg +3 -0
- package/src/lib/assets/collaborative_document_fill.svg +4 -0
- package/src/lib/assets/collaborative_whiteboard.svg +4 -0
- package/src/lib/assets/collaborative_whiteboard_fill.svg +4 -0
- package/src/lib/assets/collabrative_document.svg +4 -0
- package/src/lib/assets/content_copy.svg +8 -0
- package/src/lib/assets/conversation_summary.svg +4 -0
- package/src/lib/assets/conversations_audio-message.svg +8 -0
- package/src/lib/assets/conversations_card-message.svg +8 -0
- package/src/lib/assets/conversations_collaborative-document-message.svg +4 -0
- package/src/lib/assets/conversations_collaborative-whiteboard-message.svg +5 -0
- package/src/lib/assets/conversations_delete.svg +8 -0
- package/src/lib/assets/conversations_delivered.svg +3 -0
- package/src/lib/assets/conversations_dropdown.svg +3 -0
- package/src/lib/assets/conversations_empty_state.svg +20 -0
- package/src/lib/assets/conversations_empty_state_dark.svg +20 -0
- package/src/lib/assets/conversations_error.svg +16 -0
- package/src/lib/assets/conversations_file-message.svg +8 -0
- package/src/lib/assets/conversations_form-message.svg +3 -0
- package/src/lib/assets/conversations_image-message.svg +8 -0
- package/src/lib/assets/conversations_incoming-video-call.svg +8 -0
- package/src/lib/assets/conversations_incoming-voice-call.svg +3 -0
- package/src/lib/assets/conversations_link.svg +8 -0
- package/src/lib/assets/conversations_missed-video-call.svg +8 -0
- package/src/lib/assets/conversations_missed-voice-call.svg +3 -0
- package/src/lib/assets/conversations_outgoing-video-call.svg +8 -0
- package/src/lib/assets/conversations_outgoing-voice-call.svg +4 -0
- package/src/lib/assets/conversations_poll-message.svg +3 -0
- package/src/lib/assets/conversations_read.svg +3 -0
- package/src/lib/assets/conversations_schedular-message.svg +8 -0
- package/src/lib/assets/conversations_sent.svg +3 -0
- package/src/lib/assets/conversations_sticker-message.svg +4 -0
- package/src/lib/assets/conversations_thread.svg +8 -0
- package/src/lib/assets/conversations_video-message.svg +8 -0
- package/{assets/wait.svg → src/lib/assets/conversations_wait.svg} +0 -0
- package/src/lib/assets/copy-text.svg +3 -0
- package/src/lib/assets/crop.svg +8 -0
- package/src/lib/assets/delete.svg +8 -0
- package/src/lib/assets/delete_icon.svg +4 -0
- package/src/lib/assets/deliveredIcon.svg +5 -0
- package/src/lib/assets/description.svg +8 -0
- package/src/lib/assets/document_icon.svg +10 -0
- package/src/lib/assets/done_all.svg +8 -0
- package/src/lib/assets/download.svg +8 -0
- package/src/lib/assets/dropdown-arrow.svg +3 -0
- package/src/lib/assets/edit.svg +8 -0
- package/src/lib/assets/edit_calendar.svg +8 -0
- package/src/lib/assets/edit_icon.svg +5 -0
- package/src/lib/assets/edit_square.svg +3 -0
- package/src/lib/assets/error.svg +9 -0
- package/src/lib/assets/error_icon.svg +3 -0
- package/src/lib/assets/error_info.svg +3 -0
- package/src/lib/assets/event.svg +8 -0
- package/src/lib/assets/favorite.svg +8 -0
- package/src/lib/assets/file_filter_icon.svg +4 -0
- package/src/lib/assets/file_type_jpg.png +0 -0
- package/src/lib/assets/file_type_link.png +0 -0
- package/src/lib/assets/file_type_mov.png +0 -0
- package/src/lib/assets/file_type_mp3.png +0 -0
- package/src/lib/assets/file_type_pdf.png +0 -0
- package/src/lib/assets/file_type_ppt.png +0 -0
- package/src/lib/assets/file_type_txt.png +0 -0
- package/src/lib/assets/file_type_unsupported.png +0 -0
- package/src/lib/assets/file_type_word.png +0 -0
- package/src/lib/assets/file_type_xlsx.png +0 -0
- package/src/lib/assets/file_type_zip.png +0 -0
- package/src/lib/assets/filter_list.svg +8 -0
- package/src/lib/assets/filter_list_off.svg +8 -0
- package/src/lib/assets/flags.svg +5 -0
- package/src/lib/assets/flip_camera_ios.svg +8 -0
- package/src/lib/assets/food_drink.svg +10 -0
- package/src/lib/assets/forward.svg +8 -0
- package/src/lib/assets/gif.svg +3 -0
- package/src/lib/assets/graphic_eq.svg +3 -0
- package/src/lib/assets/group_filter_icon.svg +3 -0
- package/src/lib/assets/groups_empty_state.svg +8 -0
- package/src/lib/assets/groups_empty_state_dark.svg +8 -0
- package/src/lib/assets/help.svg +8 -0
- package/src/lib/assets/history.svg +8 -0
- package/src/lib/assets/image_placeholder.png +0 -0
- package/src/lib/assets/incoming_video.svg +8 -0
- package/src/lib/assets/incoming_video_no_fill.svg +4 -0
- package/src/lib/assets/info_icon.svg +3 -0
- package/src/lib/assets/info_icon_fill.svg +5 -0
- package/src/lib/assets/italic-format.svg +3 -0
- package/src/lib/assets/keep.svg +8 -0
- package/src/lib/assets/keep_off.svg +8 -0
- package/src/lib/assets/keyboard.svg +8 -0
- package/src/lib/assets/keyboard_arrow_down.svg +8 -0
- package/src/lib/assets/keyboard_arrow_up.svg +8 -0
- package/src/lib/assets/language.svg +8 -0
- package/src/lib/assets/link.svg +8 -0
- package/src/lib/assets/link_filter_icon.svg +3 -0
- package/src/lib/assets/link_icon_2x.svg +3 -0
- package/src/lib/assets/list_error_state_icon.svg +20 -0
- package/src/lib/assets/list_error_state_icon_dark.svg +27 -0
- package/src/lib/assets/loading.svg +5 -0
- package/src/lib/assets/loading_animation.svg +5 -0
- package/src/lib/assets/loading_icon.svg +3 -0
- package/src/lib/assets/location_on.svg +8 -0
- package/src/lib/assets/lock.svg +8 -0
- package/src/lib/assets/lock_open.svg +8 -0
- package/src/lib/assets/logout.svg +3 -0
- package/src/lib/assets/mail.svg +8 -0
- package/src/lib/assets/message_blocked.svg +8 -0
- package/src/lib/assets/message_delete.svg +8 -0
- package/src/lib/assets/messages_filter_icon.svg +1 -0
- package/src/lib/assets/mic.svg +3 -0
- package/src/lib/assets/mic_fill.svg +8 -0
- package/src/lib/assets/mic_off.svg +8 -0
- package/src/lib/assets/missedCallIcon.svg +10 -0
- package/src/lib/assets/missed_video_call.svg +8 -0
- package/src/lib/assets/missed_video_call_no_fill.svg +3 -0
- package/src/lib/assets/mood.svg +3 -0
- package/src/lib/assets/mood_fill.svg +8 -0
- package/src/lib/assets/more_icon.svg +5 -0
- package/src/lib/assets/more_vert.svg +8 -0
- package/src/lib/assets/near_me.svg +3 -0
- package/src/lib/assets/new-chat.svg +3 -0
- package/src/lib/assets/no-messages.svg +8 -0
- package/src/lib/assets/no_photography.svg +8 -0
- package/src/lib/assets/notifications.svg +8 -0
- package/src/lib/assets/notifications_off.svg +8 -0
- package/src/lib/assets/number-list-format.svg +3 -0
- package/src/lib/assets/objects.svg +10 -0
- package/src/lib/assets/outgoing_video.svg +8 -0
- package/src/lib/assets/outgoing_video_no_fill.svg +4 -0
- package/src/lib/assets/pause.svg +8 -0
- package/src/lib/assets/person.svg +8 -0
- package/src/lib/assets/person_add.svg +8 -0
- package/src/lib/assets/phone_in_talk.svg +8 -0
- package/src/lib/assets/phone_incoming.svg +3 -0
- package/src/lib/assets/phone_incoming_no_fill.svg +3 -0
- package/src/lib/assets/phone_missed.svg +8 -0
- package/src/lib/assets/phone_missed_no_fill.svg +3 -0
- package/src/lib/assets/phone_outgoing.svg +4 -0
- package/src/lib/assets/phone_outgoing_no_fill.svg +4 -0
- package/src/lib/assets/photo.svg +8 -0
- package/src/lib/assets/photo_camera.svg +8 -0
- package/src/lib/assets/photo_filter_icon.svg +3 -0
- package/src/lib/assets/placeholder.png +0 -0
- package/src/lib/assets/play_arrow.svg +8 -0
- package/src/lib/assets/play_circle.svg +8 -0
- package/src/lib/assets/poll.svg +5 -0
- package/src/lib/assets/quote-format.svg +3 -0
- package/src/lib/assets/readIcon.svg +5 -0
- package/src/lib/assets/rearrange.svg +3 -0
- package/src/lib/assets/recording_icon.svg +10 -0
- package/src/lib/assets/recording_resume.svg +10 -0
- package/src/lib/assets/refresh.svg +8 -0
- package/src/lib/assets/reply.svg +8 -0
- package/src/lib/assets/reply_all.svg +8 -0
- package/src/lib/assets/reply_in_thread.svg +10 -0
- package/src/lib/assets/retry.svg +3 -0
- package/src/lib/assets/right-arrow.svg +3 -0
- package/src/lib/assets/sample-audio.wav +0 -0
- package/src/lib/assets/sample-video-thumbnail.svg +7 -0
- package/src/lib/assets/sample-video.mp4 +0 -0
- package/src/lib/assets/schedule.svg +8 -0
- package/src/lib/assets/screen_share.svg +8 -0
- package/src/lib/assets/search.svg +8 -0
- package/src/lib/assets/search_message_icon.svg +8 -0
- package/src/lib/assets/send-message.svg +3 -0
- package/src/lib/assets/send_fill.svg +8 -0
- package/src/lib/assets/settings.svg +8 -0
- package/src/lib/assets/share.svg +8 -0
- package/src/lib/assets/shield.svg +3 -0
- package/src/lib/assets/smileys_people.svg +10 -0
- package/src/lib/assets/star.svg +8 -0
- package/src/lib/assets/status_delivered.svg +5 -0
- package/src/lib/assets/status_error.svg +16 -0
- package/src/lib/assets/status_read.svg +3 -0
- package/src/lib/assets/status_sending.svg +5 -0
- package/src/lib/assets/status_sent.svg +5 -0
- package/src/lib/assets/sticker.svg +3 -0
- package/src/lib/assets/sticker_fill.svg +4 -0
- package/src/lib/assets/stop-message.svg +3 -0
- package/src/lib/assets/stop.svg +8 -0
- package/src/lib/assets/stop_circle.svg +8 -0
- package/src/lib/assets/stop_screen_share.svg +8 -0
- package/src/lib/assets/strike-out-format.svg +3 -0
- package/src/lib/assets/subdirectory_arrow_left.svg +8 -0
- package/src/lib/assets/subdirectory_arrow_right.svg +8 -0
- package/src/lib/assets/sunny.svg +8 -0
- package/src/lib/assets/symbols.svg +13 -0
- package/src/lib/assets/thumb_down.svg +8 -0
- package/src/lib/assets/thumb_up.svg +8 -0
- package/src/lib/assets/toast_check_circle.svg +3 -0
- package/src/lib/assets/toast_error.svg +3 -0
- package/src/lib/assets/toast_info.svg +3 -0
- package/src/lib/assets/toast_warning.svg +3 -0
- package/src/lib/assets/toolbar-toggle.svg +3 -0
- package/src/lib/assets/tooltip-side.svg +5 -0
- package/src/lib/assets/tooltip.svg +5 -0
- package/src/lib/assets/translate.svg +3 -0
- package/src/lib/assets/travel_places.svg +10 -0
- package/src/lib/assets/ulr-format.svg +3 -0
- package/src/lib/assets/underline-format.svg +3 -0
- package/src/lib/assets/unread_filter_icon.svg +7 -0
- package/src/lib/assets/upload.svg +3 -0
- package/src/lib/assets/user_empty.svg +8 -0
- package/src/lib/assets/user_empty_dark.svg +8 -0
- package/src/lib/assets/video_call.svg +8 -0
- package/src/lib/assets/video_call_button.svg +5 -0
- package/src/lib/assets/video_filter_icon.svg +3 -0
- package/src/lib/assets/videocam.svg +8 -0
- package/src/lib/assets/videocam_off.svg +8 -0
- package/src/lib/assets/visibility_off.svg +3 -0
- package/src/lib/assets/volume_down.svg +8 -0
- package/src/lib/assets/volume_mute.svg +8 -0
- package/src/lib/assets/volume_off.svg +8 -0
- package/src/lib/assets/volume_up.svg +8 -0
- package/src/lib/assets/warning.svg +8 -0
- package/src/lib/assets/warning_neutral.svg +3 -0
- package/src/lib/assets/wifi.svg +8 -0
- package/src/lib/assets/zoom_in_map.svg +8 -0
- package/src/lib/assets/zoom_out_map.svg +8 -0
- package/styles/accessibility.css +148 -0
- package/styles/css-variables.css +547 -0
- package/styles/fonts/Roboto/LICENSE.txt +202 -0
- package/styles/fonts/Roboto/Roboto-Black.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Bold.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Italic.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Light.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Medium.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Regular.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Thin.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
- package/styles/mention-styles.css +190 -0
- package/styles/rich-text-styles.css +310 -0
- package/types/cometchat-chat-uikit-angular.d.ts +34636 -0
- package/AI/AIAssistBot/AIAssistBot.d.ts +0 -7
- package/AI/AIAssistBot/AIAssistBotDecorator.d.ts +0 -11
- package/AI/AIConversationStarter/AIConversationStarter.d.ts +0 -7
- package/AI/AIConversationStarter/AIConversationStarterDecorator.d.ts +0 -9
- package/AI/AIConversationSummary/AIConversationSummary.d.ts +0 -7
- package/AI/AIConversationSummary/AIConversationSummaryDecorator.d.ts +0 -10
- package/AI/AISmartReplies/AISmartReplies.d.ts +0 -7
- package/AI/AISmartReplies/AISmartRepliesDecorator.d.ts +0 -9
- package/Calls/CallingExtension.d.ts +0 -6
- package/Calls/CallingExtensionDecorator.d.ts +0 -16
- package/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.d.ts +0 -79
- package/Calls/CometChatCallButtons/cometchat-call-buttons.module.d.ts +0 -11
- package/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.d.ts +0 -136
- package/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.d.ts +0 -14
- package/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.d.ts +0 -112
- package/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.d.ts +0 -10
- package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.d.ts +0 -77
- package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.d.ts +0 -10
- package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.d.ts +0 -91
- package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.d.ts +0 -10
- package/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.d.ts +0 -134
- package/Calls/CometChatCallLogs/cometchat-call-logs.module.d.ts +0 -12
- package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.d.ts +0 -54
- package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.d.ts +0 -12
- package/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.d.ts +0 -81
- package/Calls/CometChatIncomingCall/cometchat-incoming-call.module.d.ts +0 -11
- package/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.d.ts +0 -38
- package/Calls/CometChatOngoingCall/cometchat-ongoing-call.module.d.ts +0 -9
- package/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.d.ts +0 -57
- package/Calls/CometChatOutgoingCall/cometchat-outgoing-call.module.d.ts +0 -10
- package/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.d.ts +0 -117
- package/CometChatAddMembers/cometchat-add-members.module.d.ts +0 -12
- package/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.d.ts +0 -152
- package/CometChatBannedMembers/cometchat-banned-members.module.d.ts +0 -13
- package/CometChatContacts/cometchat-contacts/cometchat-contacts.component.d.ts +0 -66
- package/CometChatContacts/cometchat-contacts.module.d.ts +0 -12
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +0 -387
- package/CometChatConversations/cometchat-conversations.module.d.ts +0 -10
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.d.ts +0 -98
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.d.ts +0 -11
- package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +0 -164
- package/CometChatDetails/cometchat-details.module.d.ts +0 -12
- package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +0 -162
- package/CometChatGroupMembers/cometchat-group-members.module.d.ts +0 -13
- package/CometChatGroups/cometchat-groups/cometchat-groups.component.d.ts +0 -150
- package/CometChatGroups/cometchat-groups.module.d.ts +0 -10
- package/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.d.ts +0 -103
- package/CometChatGroupsWithMessages/cometchat-groups-with-messages.module.d.ts +0 -11
- package/CometChatList/cometchat-list.component.d.ts +0 -91
- package/CometChatList/cometchat-list.module.d.ts +0 -10
- package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +0 -63
- package/CometChatMessageBubble/cometchat-message-bubble.module.d.ts +0 -8
- package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +0 -326
- package/CometChatMessageComposer/cometchat-message-composer.module.d.ts +0 -11
- package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +0 -99
- package/CometChatMessageHeader/cometchat-message-header.module.d.ts +0 -9
- package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +0 -99
- package/CometChatMessageInformation/cometchat-message-information.module.d.ts +0 -10
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +0 -819
- package/CometChatMessageList/cometchat-message-list.module.d.ts +0 -13
- package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +0 -149
- package/CometChatMessages/cometchat-messages.module.d.ts +0 -16
- package/CometChatTheme.service.d.ts +0 -7
- package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +0 -85
- package/CometChatThreadedMessages/cometchat-threaded-messages.module.d.ts +0 -12
- package/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.d.ts +0 -88
- package/CometChatTransferOwnership/cometchat-transfer-ownership.module.d.ts +0 -10
- package/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.d.ts +0 -41
- package/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.d.ts +0 -11
- package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +0 -194
- package/CometChatUsers/cometchat-users.module.d.ts +0 -11
- package/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.d.ts +0 -72
- package/CometChatUsersWithMessages/cometchat-users-with-messages.module.d.ts +0 -10
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.d.ts +0 -5
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +0 -14
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.d.ts +0 -5
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +0 -14
- package/Extensions/ImageModeration/ImageModerationExtension.d.ts +0 -5
- package/Extensions/ImageModeration/ImageModerationExtensionDecorator.d.ts +0 -6
- package/Extensions/LinkPreviewExtension/LinkPreviewExtension.d.ts +0 -5
- package/Extensions/LinkPreviewExtension/LinkPreviewExtensionDecorator.d.ts +0 -6
- package/Extensions/MessageTranslation/MessageTranslationExtension.d.ts +0 -5
- package/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.d.ts +0 -9
- package/Extensions/PollsExtension/PollsExtension.d.ts +0 -5
- package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +0 -14
- package/Extensions/SmartReplies/SmartRepliesExtension.d.ts +0 -5
- package/Extensions/SmartReplies/SmartRepliesExtensionDecorator.d.ts +0 -16
- package/Extensions/Stickers/StickersExtension.d.ts +0 -5
- package/Extensions/Stickers/StickersExtensionDecorator.d.ts +0 -28
- package/Extensions/TextModerator/TextModeratorExtension.d.ts +0 -6
- package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +0 -8
- package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.d.ts +0 -5
- package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtensionDecorator.d.ts +0 -6
- package/Screenshots/overview_cometchat_screens.png +0 -0
- package/Shared/CometChatUIkit/CometChatUIKit.d.ts +0 -49
- package/Shared/Framework/AIExtensionDataSource.d.ts +0 -5
- package/Shared/Framework/ChatConfigurator.d.ts +0 -8
- package/Shared/Framework/DataSource.d.ts +0 -40
- package/Shared/Framework/DataSourceDecorator.d.ts +0 -43
- package/Shared/Framework/ExtensionDataSource.d.ts +0 -3
- package/Shared/Utils/CallDetailUtils.d.ts +0 -8
- package/Shared/Utils/CallLogUtils.d.ts +0 -8
- package/Shared/Utils/ComeChatException.d.ts +0 -1
- package/Shared/Utils/MessageUtils.d.ts +0 -151
- package/Shared/Utils/UtilityFunctions.d.ts +0 -6
- package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.d.ts +0 -71
- package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.d.ts +0 -11
- package/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.d.ts +0 -82
- package/Shared/Views/CometChatTabs/cometchat-tabs.module.d.ts +0 -8
- package/assets/.gitkeep +0 -0
- package/assets/Audio-Call.svg +0 -11
- package/assets/Audio-Call2x.svg +0 -11
- package/assets/Copy.svg +0 -17
- package/assets/Grid-layout.svg +0 -1
- package/assets/Heart.svg +0 -11
- package/assets/Imagemoderation.svg +0 -14
- package/assets/Info.svg +0 -13
- package/assets/InfoIcon.svg +0 -13
- package/assets/InfoSimpleIcon.svg +0 -4
- package/assets/Locked.svg +0 -10
- package/assets/More@2x.svg +0 -9
- package/assets/Plus.svg +0 -13
- package/assets/Private.svg +0 -10
- package/assets/Reactionsicon.svg +0 -9
- package/assets/Reply@2x.svg +0 -9
- package/assets/Send.svg +0 -12
- package/assets/Spinner.svg +0 -15
- package/assets/Stickers.svg +0 -16
- package/assets/Stipop.svg +0 -9
- package/assets/Video-call.svg +0 -12
- package/assets/Video-call2x.svg +0 -12
- package/assets/activity.svg +0 -22
- package/assets/addreaction.svg +0 -9
- package/assets/ai-bot.svg +0 -24
- package/assets/ai-empty.svg +0 -22
- package/assets/ai-error.svg +0 -21
- package/assets/animals.svg +0 -15
- package/assets/attachment-file.svg +0 -14
- package/assets/audio-file.svg +0 -12
- package/assets/back.png +0 -0
- package/assets/backbutton.svg +0 -12
- package/assets/call.svg +0 -1
- package/assets/chats.svg +0 -1
- package/assets/checkmark.svg +0 -11
- package/assets/close.svg +0 -12
- package/assets/close2x.svg +0 -12
- package/assets/collaborativedocument.svg +0 -13
- package/assets/collaborativewhiteboard.svg +0 -12
- package/assets/create-button.svg +0 -12
- package/assets/declaration.d.ts +0 -3
- package/assets/delete.svg +0 -7
- package/assets/deleteicon.svg +0 -15
- package/assets/down-arrow.svg +0 -1
- package/assets/download.svg +0 -13
- package/assets/editicon.svg +0 -14
- package/assets/emoji.svg +0 -2693
- package/assets/empty-slot.svg +0 -14
- package/assets/file-upload.svg +0 -2693
- package/assets/flags.svg +0 -12
- package/assets/food.svg +0 -26
- package/assets/greaterThanIcon.svg +0 -3
- package/assets/group.svg +0 -40
- package/assets/heart-reaction.png +0 -0
- package/assets/heart.png +0 -0
- package/assets/image.svg +0 -2693
- package/assets/incomingAudioCallIconUrl.svg +0 -5
- package/assets/incomingVideoCallIconUrl.svg +0 -6
- package/assets/incomingcall.wav +0 -0
- package/assets/increase-size.svg +0 -6
- package/assets/location.svg +0 -2693
- package/assets/message-delivered.png +0 -0
- package/assets/message-delivered.svg +0 -5
- package/assets/message-read.png +0 -0
- package/assets/message-read.svg +0 -5
- package/assets/message-sent.png +0 -0
- package/assets/message-sent.svg +0 -3
- package/assets/mic.svg +0 -11
- package/assets/missedAudioCallIconUrl.svg +0 -5
- package/assets/missedVideoCallIconUrl.svg +0 -6
- package/assets/moreicon.svg +0 -9
- package/assets/new-chat.svg +0 -13
- package/assets/new-message-icon.svg +0 -1
- package/assets/objects.svg +0 -13
- package/assets/open-thread.svg +0 -11
- package/assets/outgoingAudioCallIconUrl.svg +0 -5
- package/assets/outgoingVideoCallIconUrl.svg +0 -6
- package/assets/password-protected-group.svg +0 -3
- package/assets/pause-icon.svg +0 -14
- package/assets/photolibrary.svg +0 -11
- package/assets/placeholder.png +0 -0
- package/assets/play-icon.svg +0 -18
- package/assets/plus-rotated.svg +0 -13
- package/assets/polls.svg +0 -14
- package/assets/privacy.svg +0 -4
- package/assets/private-group.svg +0 -9
- package/assets/public.svg +0 -3
- package/assets/record-icon.svg +0 -8
- package/assets/reduce-size.svg +0 -6
- package/assets/right-arrow.svg +0 -6
- package/assets/search.png +0 -0
- package/assets/search.svg +0 -4
- package/assets/side-arrow.svg +0 -1
- package/assets/smileys.svg +0 -16
- package/assets/start-chat.svg +0 -1
- package/assets/start-conversation.svg +0 -46
- package/assets/stop.svg +0 -1
- package/assets/symbols.svg +0 -16
- package/assets/thread-arrow.svg +0 -1
- package/assets/thread-icon.svg +0 -38
- package/assets/threadIndicatorIcon.svg +0 -11
- package/assets/threadicon.svg +0 -14
- package/assets/translation.svg +0 -16
- package/assets/travel.svg +0 -18
- package/assets/unsafe-content.svg +0 -23
- package/assets/user.svg +0 -31
- package/assets/video-upload.svg +0 -2693
- package/assets/video.svg +0 -12
- package/assets/wait.png +0 -0
- package/assets/warning-small.png +0 -0
- package/assets/warning-small.svg +0 -5
- package/cometchat-chat-uikit-angular.d.ts +0 -5
- package/esm2020/AI/AIAssistBot/AIAssistBot.mjs +0 -21
- package/esm2020/AI/AIAssistBot/AIAssistBotDecorator.mjs +0 -68
- package/esm2020/AI/AIConversationStarter/AIConversationStarter.mjs +0 -21
- package/esm2020/AI/AIConversationStarter/AIConversationStarterDecorator.mjs +0 -31
- package/esm2020/AI/AIConversationSummary/AIConversationSummary.mjs +0 -21
- package/esm2020/AI/AIConversationSummary/AIConversationSummaryDecorator.mjs +0 -32
- package/esm2020/AI/AISmartReplies/AISmartReplies.mjs +0 -21
- package/esm2020/AI/AISmartReplies/AISmartRepliesDecorator.mjs +0 -31
- package/esm2020/Calls/CallingExtension.mjs +0 -14
- package/esm2020/Calls/CallingExtensionDecorator.mjs +0 -127
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +0 -409
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons.module.mjs +0 -32
- package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.mjs +0 -373
- package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.mjs +0 -47
- package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.mjs +0 -352
- package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.mjs +0 -21
- package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.mjs +0 -189
- package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.mjs +0 -21
- package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.mjs +0 -246
- package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.mjs +0 -21
- package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.mjs +0 -592
- package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs.module.mjs +0 -36
- package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.mjs +0 -198
- package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.mjs +0 -39
- package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.mjs +0 -464
- package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call.module.mjs +0 -32
- package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.mjs +0 -176
- package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call.module.mjs +0 -27
- package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.mjs +0 -188
- package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call.module.mjs +0 -28
- package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +0 -374
- package/esm2020/CometChatAddMembers/cometchat-add-members.module.mjs +0 -23
- package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +0 -530
- package/esm2020/CometChatBannedMembers/cometchat-banned-members.module.mjs +0 -24
- package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +0 -274
- package/esm2020/CometChatContacts/cometchat-contacts.module.mjs +0 -23
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +0 -1837
- package/esm2020/CometChatConversations/cometchat-conversations.module.mjs +0 -28
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +0 -413
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.mjs +0 -35
- package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +0 -789
- package/esm2020/CometChatDetails/cometchat-details.module.mjs +0 -27
- package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +0 -807
- package/esm2020/CometChatGroupMembers/cometchat-group-members.module.mjs +0 -24
- package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +0 -681
- package/esm2020/CometChatGroups/cometchat-groups.module.mjs +0 -28
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +0 -499
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages.module.mjs +0 -35
- package/esm2020/CometChatList/cometchat-list.component.mjs +0 -225
- package/esm2020/CometChatList/cometchat-list.module.mjs +0 -28
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +0 -166
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble.module.mjs +0 -23
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +0 -1976
- package/esm2020/CometChatMessageComposer/cometchat-message-composer.module.mjs +0 -22
- package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +0 -467
- package/esm2020/CometChatMessageHeader/cometchat-message-header.module.mjs +0 -26
- package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +0 -308
- package/esm2020/CometChatMessageInformation/cometchat-message-information.module.mjs +0 -28
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +0 -4355
- package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +0 -42
- package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +0 -449
- package/esm2020/CometChatMessages/cometchat-messages.module.mjs +0 -52
- package/esm2020/CometChatTheme.service.mjs +0 -17
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +0 -372
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages.module.mjs +0 -36
- package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +0 -336
- package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership.module.mjs +0 -21
- package/esm2020/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.mjs +0 -75
- package/esm2020/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.mjs +0 -21
- package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +0 -785
- package/esm2020/CometChatUsers/cometchat-users.module.mjs +0 -32
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +0 -205
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages.module.mjs +0 -31
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.mjs +0 -12
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +0 -93
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.mjs +0 -12
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +0 -94
- package/esm2020/Extensions/ImageModeration/ImageModerationExtension.mjs +0 -12
- package/esm2020/Extensions/ImageModeration/ImageModerationExtensionDecorator.mjs +0 -10
- package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtension.mjs +0 -12
- package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtensionDecorator.mjs +0 -10
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtension.mjs +0 -12
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.mjs +0 -31
- package/esm2020/Extensions/PollsExtension/PollsExtension.mjs +0 -12
- package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +0 -77
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtension.mjs +0 -12
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtensionDecorator.mjs +0 -115
- package/esm2020/Extensions/Stickers/StickersExtension.mjs +0 -12
- package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +0 -125
- package/esm2020/Extensions/TextModerator/TextModeratorExtension.mjs +0 -22
- package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +0 -87
- package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.mjs +0 -12
- package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtensionDecorator.mjs +0 -10
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +0 -495
- package/esm2020/Shared/Framework/AIExtensionDataSource.mjs +0 -3
- package/esm2020/Shared/Framework/ChatConfigurator.mjs +0 -23
- package/esm2020/Shared/Framework/DataSource.mjs +0 -3
- package/esm2020/Shared/Framework/DataSourceDecorator.mjs +0 -113
- package/esm2020/Shared/Framework/ExtensionDataSource.mjs +0 -4
- package/esm2020/Shared/Utils/CallDetailUtils.mjs +0 -72
- package/esm2020/Shared/Utils/CallLogUtils.mjs +0 -122
- package/esm2020/Shared/Utils/ComeChatException.mjs +0 -10
- package/esm2020/Shared/Utils/MessageUtils.mjs +0 -682
- package/esm2020/Shared/Utils/UtilityFunctions.mjs +0 -36
- package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.mjs +0 -290
- package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.mjs +0 -22
- package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.mjs +0 -124
- package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs.module.mjs +0 -23
- package/esm2020/cometchat-chat-uikit-angular.mjs +0 -5
- package/esm2020/public-api.mjs +0 -115
- package/examples/sample-app/README.md +0 -50
- package/fesm2015/cometchat-chat-uikit-angular.mjs +0 -22641
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +0 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +0 -22530
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +0 -1
- package/public-api.d.ts +0 -106
- /package/{assets/message-privately.svg → src/lib/assets/send_message_privately.svg} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cometchat-chat-uikit-angular.mjs","sources":["../../../projects/chat-uikit-angular/src/Shared/Utils/MessageUtils.ts","../../../projects/chat-uikit-angular/src/Shared/Framework/ChatConfigurator.ts","../../../projects/chat-uikit-angular/src/Shared/Framework/DataSourceDecorator.ts","../../../projects/chat-uikit-angular/src/Calls/CallingExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Calls/CallingExtension.ts","../../../projects/chat-uikit-angular/src/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.ts","../../../projects/chat-uikit-angular/src/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.ts","../../../projects/chat-uikit-angular/src/Extensions/ImageModeration/ImageModerationExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Extensions/ImageModeration/ImageModerationExtension.ts","../../../projects/chat-uikit-angular/src/Extensions/LinkPreviewExtension/LinkPreviewExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Extensions/LinkPreviewExtension/LinkPreviewExtension.ts","../../../projects/chat-uikit-angular/src/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Extensions/MessageTranslation/MessageTranslationExtension.ts","../../../projects/chat-uikit-angular/src/Extensions/PollsExtension/PollsExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Extensions/PollsExtension/PollsExtension.ts","../../../projects/chat-uikit-angular/src/Extensions/SmartReplies/SmartRepliesExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Extensions/SmartReplies/SmartRepliesExtension.ts","../../../projects/chat-uikit-angular/src/Shared/Utils/ComeChatException.ts","../../../projects/chat-uikit-angular/src/Extensions/Stickers/StickersExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Extensions/Stickers/StickersExtension.ts","../../../projects/chat-uikit-angular/src/Extensions/TextModerator/TextModeratorExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Extensions/TextModerator/TextModeratorExtension.ts","../../../projects/chat-uikit-angular/src/Extensions/ThumbnailGeneration/ThumbnailGenerationExtensionDecorator.ts","../../../projects/chat-uikit-angular/src/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.ts","../../../projects/chat-uikit-angular/src/Shared/Framework/AIExtensionDataSource.ts","../../../projects/chat-uikit-angular/src/AI/AIConversationSummary/AIConversationSummaryDecorator.ts","../../../projects/chat-uikit-angular/src/AI/AIConversationSummary/AIConversationSummary.ts","../../../projects/chat-uikit-angular/src/AI/AISmartReplies/AISmartRepliesDecorator.ts","../../../projects/chat-uikit-angular/src/AI/AISmartReplies/AISmartReplies.ts","../../../projects/chat-uikit-angular/src/AI/AIConversationStarter/AIConversationStarterDecorator.ts","../../../projects/chat-uikit-angular/src/AI/AIConversationStarter/AIConversationStarter.ts","../../../projects/chat-uikit-angular/src/AI/AIAssistBot/AIAssistBotDecorator.ts","../../../projects/chat-uikit-angular/src/AI/AIAssistBot/AIAssistBot.ts","../../../projects/chat-uikit-angular/src/Shared/CometChatUIkit/CometChatUIKit.ts","../../../projects/chat-uikit-angular/src/Shared/Framework/DataSource.ts","../../../projects/chat-uikit-angular/src/Shared/Framework/ExtensionDataSource.ts","../../../projects/chat-uikit-angular/src/Shared/Utils/UtilityFunctions.ts","../../../projects/chat-uikit-angular/src/CometChatTheme.service.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.html","../../../projects/chat-uikit-angular/src/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.html","../../../projects/chat-uikit-angular/src/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.html","../../../projects/chat-uikit-angular/src/CometChatList/cometchat-list.component.ts","../../../projects/chat-uikit-angular/src/CometChatList/cometchat-list.component.html","../../../projects/chat-uikit-angular/src/CometChatList/cometchat-list.module.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatOutgoingCall/cometchat-outgoing-call.module.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatOngoingCall/cometchat-ongoing-call.module.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallButtons/cometchat-call-buttons.module.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.html","../../../projects/chat-uikit-angular/src/Calls/CometChatIncomingCall/cometchat-incoming-call.module.ts","../../../projects/chat-uikit-angular/src/CometChatUsers/cometchat-users/cometchat-users.component.ts","../../../projects/chat-uikit-angular/src/CometChatUsers/cometchat-users/cometchat-users.component.html","../../../projects/chat-uikit-angular/src/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.ts","../../../projects/chat-uikit-angular/src/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.html","../../../projects/chat-uikit-angular/src/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.ts","../../../projects/chat-uikit-angular/src/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.html","../../../projects/chat-uikit-angular/src/CometChatMessageHeader/cometchat-message-header.module.ts","../../../projects/chat-uikit-angular/src/CometChatUsers/cometchat-users.module.ts","../../../projects/chat-uikit-angular/src/CometChatAddMembers/cometchat-add-members.module.ts","../../../projects/chat-uikit-angular/src/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.ts","../../../projects/chat-uikit-angular/src/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.html","../../../projects/chat-uikit-angular/src/CometChatBannedMembers/cometchat-banned-members.module.ts","../../../projects/chat-uikit-angular/src/CometChatConversations/cometchat-conversations/cometchat-conversations.component.ts","../../../projects/chat-uikit-angular/src/CometChatConversations/cometchat-conversations/cometchat-conversations.component.html","../../../projects/chat-uikit-angular/src/CometChatConversations/cometchat-conversations.module.ts","../../../projects/chat-uikit-angular/src/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.ts","../../../projects/chat-uikit-angular/src/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.html","../../../projects/chat-uikit-angular/src/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.ts","../../../projects/chat-uikit-angular/src/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.html","../../../projects/chat-uikit-angular/src/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.ts","../../../projects/chat-uikit-angular/src/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.html","../../../projects/chat-uikit-angular/src/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.ts","../../../projects/chat-uikit-angular/src/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.html","../../../projects/chat-uikit-angular/src/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.ts","../../../projects/chat-uikit-angular/src/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.html","../../../projects/chat-uikit-angular/src/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.ts","../../../projects/chat-uikit-angular/src/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.html","../../../projects/chat-uikit-angular/src/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.ts","../../../projects/chat-uikit-angular/src/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.html","../../../projects/chat-uikit-angular/src/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.ts","../../../projects/chat-uikit-angular/src/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.html","../../../projects/chat-uikit-angular/src/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.ts","../../../projects/chat-uikit-angular/src/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.html","../../../projects/chat-uikit-angular/src/CometChatDetails/cometchat-details/cometchat-details.component.ts","../../../projects/chat-uikit-angular/src/CometChatDetails/cometchat-details/cometchat-details.component.html","../../../projects/chat-uikit-angular/src/CometChatMessages/cometchat-messages/cometchat-messages.component.ts","../../../projects/chat-uikit-angular/src/CometChatMessages/cometchat-messages/cometchat-messages.component.html","../../../projects/chat-uikit-angular/src/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.ts","../../../projects/chat-uikit-angular/src/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.html","../../../projects/chat-uikit-angular/src/CometChatGroups/cometchat-groups/cometchat-groups.component.ts","../../../projects/chat-uikit-angular/src/CometChatGroups/cometchat-groups/cometchat-groups.component.html","../../../projects/chat-uikit-angular/src/CometChatContacts/cometchat-contacts/cometchat-contacts.component.ts","../../../projects/chat-uikit-angular/src/CometChatContacts/cometchat-contacts/cometchat-contacts.component.html","../../../projects/chat-uikit-angular/src/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.ts","../../../projects/chat-uikit-angular/src/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.html","../../../projects/chat-uikit-angular/src/CometChatMessageBubble/cometchat-message-bubble.module.ts","../../../projects/chat-uikit-angular/src/Shared/Views/CometChatTabs/cometchat-tabs.module.ts","../../../projects/chat-uikit-angular/src/CometChatGroups/cometchat-groups.module.ts","../../../projects/chat-uikit-angular/src/CometChatContacts/cometchat-contacts.module.ts","../../../projects/chat-uikit-angular/src/CometChatMessageInformation/cometchat-message-information.module.ts","../../../projects/chat-uikit-angular/src/CometChatMessageList/cometchat-message-list.module.ts","../../../projects/chat-uikit-angular/src/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.ts","../../../projects/chat-uikit-angular/src/CometChatGroupMembers/cometchat-group-members.module.ts","../../../projects/chat-uikit-angular/src/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.ts","../../../projects/chat-uikit-angular/src/CometChatMessageComposer/cometchat-message-composer.module.ts","../../../projects/chat-uikit-angular/src/CometChatThreadedMessages/cometchat-threaded-messages.module.ts","../../../projects/chat-uikit-angular/src/CometChatTransferOwnership/cometchat-transfer-ownership.module.ts","../../../projects/chat-uikit-angular/src/CometChatDetails/cometchat-details.module.ts","../../../projects/chat-uikit-angular/src/CometChatMessages/cometchat-messages.module.ts","../../../projects/chat-uikit-angular/src/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.ts","../../../projects/chat-uikit-angular/src/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.ts","../../../projects/chat-uikit-angular/src/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.html","../../../projects/chat-uikit-angular/src/CometChatGroupsWithMessages/cometchat-groups-with-messages.module.ts","../../../projects/chat-uikit-angular/src/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.ts","../../../projects/chat-uikit-angular/src/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.html","../../../projects/chat-uikit-angular/src/CometChatUsersWithMessages/cometchat-users-with-messages.module.ts","../../../projects/chat-uikit-angular/src/Shared/Utils/CallLogUtils.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.html","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogs/cometchat-call-logs.module.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.html","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.html","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.html","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.ts","../../../projects/chat-uikit-angular/src/Shared/Utils/CallDetailUtils.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.html","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.ts","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.html","../../../projects/chat-uikit-angular/src/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.ts","../../../projects/chat-uikit-angular/src/public-api.ts","../../../projects/chat-uikit-angular/src/cometchat-chat-uikit-angular.ts"],"sourcesContent":["import {\n CometChatMessageOption,\n MessageBubbleAlignment,\n CometChatMessageTemplate,\n CometChatMessageComposerAction,\n CometChatTheme,\n localize,\n CometChatUIKitConstants,\n fontHelper,\n CometChatActionsView,\n MentionsTargetElement,\n} from \"@cometchat/uikit-resources\";\nimport {\n CometChatMentionsFormatter,\n CometChatTextFormatter,\n CometChatUIKitLoginListener,\n CometChatUrlsFormatter,\n ConversationUtils,\n UserMentionStyle,\n} from \"@cometchat/uikit-shared\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { DataSource } from \"../Framework/DataSource\";\nimport { ChatConfigurator } from \"../Framework/ChatConfigurator\";\nimport { CometChatUIKit } from \"../CometChatUIkit/CometChatUIKit\";\nexport class MessageUtils implements DataSource {\n /**\n * Creates an option to edit message.\n * @param {CometChatTheme} theme - The theme object.\n * @return {CometChatMessageOption} - Returns a new message option.\n */\n\n getEditOption(theme: CometChatTheme): CometChatMessageOption {\n return new CometChatMessageOption({\n id: CometChatUIKitConstants.MessageOption.editMessage,\n title: localize(\"EDIT\"),\n iconURL: \"assets/editicon.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent600(),\n backgroundColor: \"transparent\",\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent600(),\n });\n }\n /**\n * Creates an option to react to a message.\n * @param {CometChatTheme} theme - The theme object.\n * @return {CometChatMessageOption} - Returns a new message option.\n */\n\n getReactionOption(theme: CometChatTheme): CometChatMessageOption {\n return new CometChatMessageOption({\n id: CometChatUIKitConstants.MessageOption.reactToMessage,\n title: localize(\"REACT\"),\n iconURL: \"assets/addreaction.svg\",\n onClick: undefined,\n iconTint: theme.palette.getAccent600(),\n backgroundColor: \"transparent\",\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent600(),\n });\n }\n /**\n * Creates an option to get info about a message.\n * @param {CometChatTheme} theme - The theme object.\n * @return {CometChatMessageOption} - Returns a new message option.\n */\n\n getMessageInfoOption(theme: CometChatTheme): CometChatMessageOption {\n return new CometChatMessageOption({\n id: CometChatUIKitConstants.MessageOption.messageInformation,\n title: localize(\"INFO\"),\n iconURL: \"assets/Info.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent600(),\n backgroundColor: \"transparent\",\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent600(),\n });\n }\n /**\n * Creates an option to send a private message.\n * @param {CometChatTheme} theme - The theme object.\n * @return {CometChatMessageOption} - Returns a new message option.\n */\n getMessagePrivatelyOption(theme: CometChatTheme): CometChatMessageOption {\n return new CometChatMessageOption({\n id: CometChatUIKitConstants.MessageOption.sendMessagePrivately,\n title: localize(\"MESSAGE_PRIVATELY\"),\n iconURL: \"assets/message-privately.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent600(),\n backgroundColor: \"transparent\",\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent600(),\n });\n }\n /**\n * Creates an option to delete a message.\n * @param {CometChatTheme} theme - The theme object.\n * @return {CometChatMessageOption} - Returns a new message option.\n */\n\n getDeleteOption(theme: CometChatTheme): CometChatMessageOption {\n return new CometChatMessageOption({\n id: CometChatUIKitConstants.MessageOption.deleteMessage,\n title: localize(\"DELETE\"),\n iconURL: \"assets/deleteicon.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent600(),\n backgroundColor: \"transparent\",\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent600(),\n });\n }\n /**\n * Creates an option to reply to a message in a thread.\n * @param {CometChatTheme} theme - The theme object.\n * @return {CometChatMessageOption} - Returns a new message option.\n */\n\n getReplyInThreadOption(theme: CometChatTheme): CometChatMessageOption {\n return new CometChatMessageOption({\n id: CometChatUIKitConstants.MessageOption.replyInThread,\n title: localize(\"REPLY\"),\n iconURL: \"assets/threadicon.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent600(),\n backgroundColor: \"transparent\",\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent600(),\n });\n }\n /**\n * Creates an option to copy a message.\n * @param {CometChatTheme} theme - The theme object.\n * @return {CometChatMessageOption} - Returns a new message option.\n */\n getCopyOption(theme: CometChatTheme): CometChatMessageOption {\n return new CometChatMessageOption({\n id: CometChatUIKitConstants.MessageOption.copyMessage,\n title: localize(\"COPY\"),\n iconURL: \"assets/Copy.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent600(),\n backgroundColor: \"transparent\",\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent600(),\n });\n }\n /**\n * Checks if a message is sent by current logged in user.\n * @param {CometChat.User} loggedInUser - The current logged in user.\n * @param {CometChat.BaseMessage} message - The message to check.\n * @return {boolean} - Returns true if message is sent by current logged in user, otherwise false.\n */\n\n isSentByMe(\n loggedInUser: CometChat.User,\n message: CometChat.BaseMessage\n ): boolean {\n return loggedInUser.getUid() === message.getSender().getUid();\n }\n /**\n * Fetches options for text messages.\n * @param {CometChat.User} loggedInUser - The current logged in user.\n * @param {CometChat.BaseMessage} messageObject - The message object.\n * @param {CometChatTheme} theme - The theme object.\n * @param {CometChat.Group} group - The group object.\n * @return {Array<CometChatMessageOption>} - Returns an array of message options.\n */\n\n getTextMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption> {\n let isSentByMe: boolean = this.isSentByMe(loggedInUser, messageObject);\n let isParticipant: boolean = false;\n if (\n group?.getScope() == CometChatUIKitConstants.groupMemberScope.participant\n ) {\n isParticipant = true;\n }\n let messageOptionList: Array<CometChatMessageOption> = [];\n messageOptionList.push(this.getReactionOption(theme));\n if (!messageObject.getParentMessageId()) {\n messageOptionList.push(this.getReplyInThreadOption(theme));\n }\n messageOptionList.push(this.getCopyOption(theme));\n if (isSentByMe || (!isParticipant && group)) {\n messageOptionList.push(this.getEditOption(theme));\n }\n if (isSentByMe) {\n messageOptionList.push(this.getMessageInfoOption(theme));\n }\n if (isSentByMe || (!isParticipant && group))\n messageOptionList.push(this.getDeleteOption(theme));\n if (group && !isSentByMe) {\n messageOptionList.push(this.getMessagePrivatelyOption(theme));\n }\n return messageOptionList;\n }\n /**\n * Fetches options for image messages.\n * @param {CometChat.User} loggedInUser - The current logged in user.\n * @param {CometChat.BaseMessage} messageObject - The message object.\n * @param {CometChatTheme} theme - The theme object.\n * @param {CometChat.Group} group - The group object.\n * @return {Array<CometChatMessageOption>} - Returns an array of message options.\n */\n getImageMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption> {\n let messageOptionList: CometChatMessageOption[] = [];\n messageOptionList = ChatConfigurator.getDataSource().getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n return messageOptionList;\n }\n /**\n * Fetches options for video messages.\n * @param {CometChat.User} loggedInUser - The current logged in user.\n * @param {CometChat.BaseMessage} messageObject - The message object.\n * @param {CometChatTheme} theme - The theme object.\n * @param {CometChat.Group} group - (Optional) The group object.\n * @return {Array<CometChatMessageOption>} - Returns an array of message options.\n */\n getVideoMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption> {\n let messageOptionList: CometChatMessageOption[] = [];\n messageOptionList = ChatConfigurator.getDataSource().getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n return messageOptionList;\n }\n /**\n * Fetches options for audio messages.\n * @param {CometChat.User} loggedInUser - The current logged in user.\n * @param {CometChat.BaseMessage} messageObject - The message object.\n * @param {CometChatTheme} theme - The theme object.\n * @param {CometChat.Group} group - (Optional) The group object.\n * @return {Array<CometChatMessageOption>} - Returns an array of message options.\n */\n getAudioMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption> {\n let messageOptionList: CometChatMessageOption[] = [];\n messageOptionList = ChatConfigurator.getDataSource().getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n return messageOptionList;\n }\n /**\n * Fetches options for file messages.\n * @param {CometChat.User} loggedInUser - The current logged in user.\n * @param {CometChat.BaseMessage} messageObject - The message object.\n * @param {CometChatTheme} theme - The theme object.\n * @param {CometChat.Group} group - (Optional) The group object.\n * @return {Array<CometChatMessageOption>} - Returns an array of message options.\n */\n getFileMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption> {\n let messageOptionList: CometChatMessageOption[] = [];\n messageOptionList = ChatConfigurator.getDataSource().getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n return messageOptionList;\n }\n getBottomView(\n _messageObject: CometChat.BaseMessage,\n _alignment: MessageBubbleAlignment\n ) {\n return null;\n }\n getSchedulerMessageTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.scheduler,\n category: CometChatUIKitConstants.MessageCategory.interactive,\n options: ChatConfigurator.getDataSource().getMessageOptions,\n });\n }\n getTextMessageTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.text,\n category: CometChatUIKitConstants.MessageCategory.message,\n options: ChatConfigurator.getDataSource().getMessageOptions,\n });\n }\n getAudioMessageTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.audio,\n category: CometChatUIKitConstants.MessageCategory.message,\n options: ChatConfigurator.getDataSource().getMessageOptions,\n });\n }\n getVideoMessageTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.video,\n category: CometChatUIKitConstants.MessageCategory.message,\n options: ChatConfigurator.getDataSource().getMessageOptions,\n });\n }\n getImageMessageTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.image,\n category: CometChatUIKitConstants.MessageCategory.message,\n options: ChatConfigurator.getDataSource().getMessageOptions,\n });\n }\n getGroupActionTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.groupMember,\n category: CometChatUIKitConstants.MessageCategory.action,\n });\n }\n getFileMessageTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.file,\n category: CometChatUIKitConstants.MessageCategory.message,\n options: ChatConfigurator.getDataSource().getMessageOptions,\n });\n }\n getFormMessageTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.form,\n category: CometChatUIKitConstants.MessageCategory.interactive,\n options: ChatConfigurator.getDataSource().getMessageOptions,\n });\n }\n\n getCardMessageTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.card,\n category: CometChatUIKitConstants.MessageCategory.interactive,\n options: ChatConfigurator.getDataSource().getMessageOptions,\n });\n }\n /**\n * Function to check if a user's status should be visible\n * @param {CometChat.User | CometChat.GroupMember} user - The user whose status visibility is to be checked.\n * @return {boolean} - Returns `true` if the user's status should be hidden (blocked or offline), `false` otherwise.\n */\n getUserStatusVisibility(\n user?: CometChat.User | CometChat.GroupMember\n ) {\n let userBlockedFlag = false;\n if (user) {\n if (user.getBlockedByMe() || user.getHasBlockedMe() || user.getStatus() === CometChatUIKitConstants.userStatusType.offline) {\n userBlockedFlag = true;\n }\n }\n return userBlockedFlag;\n }\n getAllMessageTemplates(): Array<CometChatMessageTemplate> {\n return [\n ChatConfigurator.getDataSource().getTextMessageTemplate(),\n ChatConfigurator.getDataSource().getImageMessageTemplate(),\n ChatConfigurator.getDataSource().getVideoMessageTemplate(),\n ChatConfigurator.getDataSource().getAudioMessageTemplate(),\n ChatConfigurator.getDataSource().getFileMessageTemplate(),\n ChatConfigurator.getDataSource().getGroupActionTemplate(),\n ChatConfigurator.getDataSource().getFormMessageTemplate(),\n ChatConfigurator.getDataSource().getCardMessageTemplate(),\n ChatConfigurator.getDataSource().getSchedulerMessageTemplate(),\n ];\n }\n getMessageTemplate(\n messageType: string,\n messageCategory: string\n ): CometChatMessageTemplate | null {\n let _template: CometChatMessageTemplate | null = null;\n if (messageCategory != CometChatUIKitConstants.MessageCategory.call) {\n switch (messageType) {\n case CometChatUIKitConstants.MessageTypes.text:\n _template = ChatConfigurator.getDataSource().getTextMessageTemplate();\n break;\n case CometChatUIKitConstants.MessageTypes.image:\n _template =\n ChatConfigurator.getDataSource().getImageMessageTemplate();\n break;\n case CometChatUIKitConstants.MessageTypes.video:\n _template =\n ChatConfigurator.getDataSource().getVideoMessageTemplate();\n break;\n case CometChatUIKitConstants.MessageTypes.groupMember:\n _template = ChatConfigurator.getDataSource().getGroupActionTemplate();\n break;\n case CometChatUIKitConstants.MessageTypes.file:\n _template = ChatConfigurator.getDataSource().getFileMessageTemplate();\n break;\n case CometChatUIKitConstants.MessageTypes.audio:\n _template =\n ChatConfigurator.getDataSource().getAudioMessageTemplate();\n break;\n case CometChatUIKitConstants.MessageTypes.form:\n _template = ChatConfigurator.getDataSource().getFormMessageTemplate();\n break;\n case CometChatUIKitConstants.MessageTypes.card:\n _template = ChatConfigurator.getDataSource().getCardMessageTemplate();\n break;\n case CometChatUIKitConstants.MessageTypes.scheduler:\n _template =\n ChatConfigurator.getDataSource().getSchedulerMessageTemplate();\n break;\n }\n }\n return _template;\n }\n getMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption> {\n let _optionList: Array<CometChatMessageOption> = [];\n if (\n messageObject.getCategory() ==\n CometChatUIKitConstants.MessageCategory.message\n ) {\n switch (messageObject.getType()) {\n case CometChatUIKitConstants.MessageTypes.text:\n _optionList = ChatConfigurator.getDataSource().getTextMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n break;\n case CometChatUIKitConstants.MessageTypes.image:\n _optionList = ChatConfigurator.getDataSource().getImageMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n break;\n case CometChatUIKitConstants.MessageTypes.video:\n _optionList = ChatConfigurator.getDataSource().getVideoMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n break;\n case CometChatUIKitConstants.MessageTypes.groupMember:\n _optionList = [];\n break;\n case CometChatUIKitConstants.MessageTypes.file:\n _optionList = ChatConfigurator.getDataSource().getFileMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n break;\n case CometChatUIKitConstants.MessageTypes.audio:\n _optionList = ChatConfigurator.getDataSource().getAudioMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n break;\n }\n } else if (\n messageObject.getCategory() ==\n CometChatUIKitConstants.MessageCategory.custom ||\n messageObject.getCategory() ==\n CometChatUIKitConstants.MessageCategory.interactive\n ) {\n _optionList = ChatConfigurator.getDataSource().getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n }\n return _optionList;\n }\n getCommonOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption> {\n let isSentByMe: boolean = this.isSentByMe(loggedInUser, messageObject);\n let isParticipant: boolean = false;\n if (group?.getScope() == CometChatUIKitConstants.groupMemberScope.participant)\n isParticipant = true;\n let messageOptionList: Array<CometChatMessageOption> = [];\n messageOptionList.push(this.getReactionOption(theme));\n if (!messageObject?.getParentMessageId()) {\n messageOptionList.push(this.getReplyInThreadOption(theme));\n }\n if (isSentByMe) {\n messageOptionList.push(this.getMessageInfoOption(theme));\n }\n if (isSentByMe || (!isParticipant && group))\n messageOptionList.push(this.getDeleteOption(theme));\n if (group && !isSentByMe) {\n messageOptionList.push(this.getMessagePrivatelyOption(theme));\n }\n return messageOptionList;\n }\n getAllMessageTypes(): Array<string> {\n return [\n CometChatUIKitConstants.MessageTypes.text,\n CometChatUIKitConstants.MessageTypes.image,\n CometChatUIKitConstants.MessageTypes.audio,\n CometChatUIKitConstants.MessageTypes.video,\n CometChatUIKitConstants.MessageTypes.file,\n CometChatUIKitConstants.MessageTypes.groupMember,\n CometChatUIKitConstants.MessageTypes.form,\n CometChatUIKitConstants.MessageTypes.card,\n CometChatUIKitConstants.MessageTypes.scheduler,\n ];\n }\n addList(): string {\n return \"<Message Utils>\";\n }\n getAllMessageCategories(): Array<string> {\n return [\n CometChatUIKitConstants.MessageCategory.message,\n CometChatUIKitConstants.MessageCategory.action,\n CometChatUIKitConstants.MessageCategory.interactive,\n ];\n }\n getAuxiliaryOptions(\n id: ComposerId,\n user?: CometChat.User,\n group?: CometChat.Group\n ): any {\n return null;\n }\n getId(): string {\n return \"messageUtils\";\n }\n getActionMessage(message: CometChat.Action): string {\n try {\n if (message instanceof CometChat.Action) {\n const action = message.getAction();\n const actionBy = message.getActionBy();\n const actionOn = message.getActionOn();\n\n const byString = (actionBy as CometChat.User).getName();\n const forString =\n action === CometChatUIKitConstants.groupMemberAction.JOINED ||\n action === CometChatUIKitConstants.groupMemberAction.LEFT\n ? \"\"\n : (actionOn as CometChat.User).getName();\n\n switch (action) {\n case CometChatUIKitConstants.groupMemberAction.ADDED:\n return `${byString} ${localize(\"ADDED\")} ${forString}`;\n case CometChatUIKitConstants.groupMemberAction.JOINED:\n return `${byString} ${localize(\"JOINED\")}`;\n case CometChatUIKitConstants.groupMemberAction.LEFT:\n return `${byString} ${localize(\"LEFT\")}`;\n case CometChatUIKitConstants.groupMemberAction.KICKED:\n return `${byString} ${localize(\"KICKED\")} ${forString}`;\n case CometChatUIKitConstants.groupMemberAction.BANNED:\n return `${byString} ${localize(\"BANNED\")} ${forString}`;\n case CometChatUIKitConstants.groupMemberAction.UNBANNED:\n return `${byString} ${localize(\"UNBANNED\")} ${forString}`;\n case CometChatUIKitConstants.groupMemberAction.SCOPE_CHANGE:\n return `${byString} ${localize(\n \"MADE\"\n )} ${forString} ${message.getNewScope()}`;\n default:\n return \"\";\n }\n } else {\n return \"\";\n }\n } catch (e) {\n return \"\";\n }\n }\n\n imageAttachmentOption(theme: CometChatTheme): CometChatMessageComposerAction {\n return new CometChatMessageComposerAction({\n id: CometChatUIKitConstants.MessageTypes.image,\n title: localize(\"ATTACH_IMAGE\"),\n iconURL: \"assets/photolibrary.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent700(),\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent700(),\n borderRadius: \"8px\",\n background: theme.palette.getAccent100(),\n });\n }\n videoAttachmentOption(theme: CometChatTheme): CometChatMessageComposerAction {\n return new CometChatMessageComposerAction({\n id: CometChatUIKitConstants.MessageTypes.video,\n title: localize(\"ATTACH_VIDEO\"),\n iconURL: \"assets/video.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent700(),\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent700(),\n borderRadius: \"8px\",\n background: theme.palette.getAccent100(),\n });\n }\n audioAttachmentOption(theme: CometChatTheme): CometChatMessageComposerAction {\n return new CometChatMessageComposerAction({\n id: CometChatUIKitConstants.MessageTypes.audio,\n title: localize(\"ATTACH_AUDIO\"),\n iconURL: \"assets/audio-file.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent700(),\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent700(),\n borderRadius: \"8px\",\n background: theme.palette.getAccent100(),\n });\n }\n fileAttachmentOption(theme: CometChatTheme): CometChatMessageComposerAction {\n return new CometChatMessageComposerAction({\n id: CometChatUIKitConstants.MessageTypes.file,\n title: localize(\"ATTACH_FILE\"),\n iconURL: \"assets/attachment-file.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent700(),\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent700(),\n borderRadius: \"8px\",\n background: theme.palette.getAccent100(),\n });\n }\n getAttachmentOptions(\n theme: CometChatTheme,\n user?: CometChat.User,\n group?: CometChat.Group,\n id?: ComposerId\n ): CometChatMessageComposerAction[] {\n let actions: Array<CometChatMessageComposerAction> = [\n this.imageAttachmentOption(theme),\n this.videoAttachmentOption(theme),\n this.audioAttachmentOption(theme),\n this.fileAttachmentOption(theme),\n ];\n return actions;\n }\n\n getLastConversationMessage(\n conversation: CometChat.Conversation,\n loggedInUser: CometChat.User,\n additionalConfigurations: any\n ): string {\n let config = {\n ...additionalConfigurations,\n textFormatters:\n additionalConfigurations?.textFormatters &&\n additionalConfigurations?.textFormatters.length\n ? [...additionalConfigurations.textFormatters]\n : [this.getMentionsTextFormatter({ theme: additionalConfigurations.theme, disableMentions: additionalConfigurations.disableMentions })],\n };\n let message = ConversationUtils.getLastConversationMessage(\n conversation,\n loggedInUser,\n config\n );\n let messageObject = conversation?.getLastMessage();\n if (messageObject) {\n let textFormatters: Array<CometChatTextFormatter> = config.textFormatters;\n if (config && !config.disableMentions) {\n let mentionsTextFormatter!: CometChatMentionsFormatter;\n for (let i = 0; i < textFormatters.length; i++) {\n if (textFormatters[i] instanceof CometChatMentionsFormatter) {\n mentionsTextFormatter = textFormatters[\n i\n ] as CometChatMentionsFormatter;\n mentionsTextFormatter.setMessage(messageObject);\n if (messageObject.getMentionedUsers().length) {\n mentionsTextFormatter.setCometChatUserGroupMembers(\n messageObject.getMentionedUsers()\n );\n }\n mentionsTextFormatter.setLoggedInUser(\n CometChatUIKitLoginListener.getLoggedInUser()!\n );\n }\n if (mentionsTextFormatter) {\n break;\n }\n }\n if (!mentionsTextFormatter) {\n mentionsTextFormatter =\n ChatConfigurator.getDataSource().getMentionsTextFormatter({\n messageObject,\n ...config,\n alignment: null,\n theme: additionalConfigurations.theme,\n });\n textFormatters.push(mentionsTextFormatter);\n }\n }\n\n if (\n messageObject &&\n messageObject instanceof CometChat.TextMessage\n ) {\n for (let i = 0; i < textFormatters.length; i++) {\n message = textFormatters[i].getFormattedText(message, { mentionsTargetElement: MentionsTargetElement.conversation });\n }\n }\n }\n return message;\n }\n\n /**\n * Adds styled @ for every mention in the text by matching uid\n *\n * @param {CometChat.TextMessage} message\n * @param {string} subtitle\n * @returns {void}\n */\n getMentionsFormattedText(\n message: CometChat.TextMessage,\n subtitle: string,\n mentionsFormatterParams: {\n mentionsTargetElement: MentionsTargetElement;\n theme: CometChatTheme;\n }\n ) {\n const regex = /<@uid:(.*?)>/g;\n let messageText = message.getText();\n let messageTextTmp: string = subtitle;\n let match = regex.exec(messageText);\n let cometChatUsers: Array<CometChat.User | CometChat.GroupMember> = [];\n let mentionedUsers = message.getMentionedUsers();\n while (match !== null) {\n let user;\n for (let i = 0; i < mentionedUsers.length; i++) {\n if (match[1] == mentionedUsers[i].getUid()) {\n user = mentionedUsers[i];\n }\n }\n if (user) {\n cometChatUsers.push(user);\n }\n match = regex.exec(messageText);\n }\n let mentionsFormatter = this.getMentionsTextFormatter(\n mentionsFormatterParams\n );\n mentionsFormatter.setClasses([\"cc-mentions\"]);\n mentionsFormatter.setCometChatUserGroupMembers(cometChatUsers);\n messageTextTmp = mentionsFormatter.getFormattedText(\n messageTextTmp,\n mentionsFormatterParams\n ) as string;\n return messageTextTmp;\n }\n\n getAIOptions(\n theme: CometChatTheme,\n id?: Map<String, any>\n ): Array<CometChatMessageComposerAction | CometChatActionsView> {\n return [];\n }\n\n getAllTextFormatters(formatterParams: any): CometChatTextFormatter[] {\n let formatters = [];\n const mentionsFormatter = formatterParams.disableMentions ? null : ChatConfigurator.getDataSource().getMentionsTextFormatter(\n formatterParams\n );\n const urlTextFormatter = ChatConfigurator.getDataSource().getUrlTextFormatter(formatterParams);\n if (mentionsFormatter) {\n formatters.push(mentionsFormatter);\n }\n if (urlTextFormatter) {\n formatters.push(urlTextFormatter);\n }\n return formatters;\n }\n\n getMentionsTextFormatter(params: any): CometChatMentionsFormatter {\n let mentionsTextFormatter = new CometChatMentionsFormatter();\n if (params && params.theme) {\n mentionsTextFormatter.setComposerMentionStyle(\n new UserMentionStyle({\n loggedInUserTextFont: fontHelper(params.theme.typography.text2),\n loggedInUserTextColor: params.theme.palette.getPrimary(),\n loggedInUserTextBackground: \"\",\n mentionTextFont: fontHelper(params.theme.typography.text2),\n mentionTextColor: params.theme.palette.getPrimary(),\n mentionTextBackground: \"\",\n })\n );\n mentionsTextFormatter.setConversationMentionStyle(\n new UserMentionStyle({\n loggedInUserTextFont: fontHelper(params.theme.typography.text3),\n loggedInUserTextColor: params.theme.palette.getPrimary(),\n loggedInUserTextBackground: \"\",\n mentionTextFont: fontHelper(params.theme.typography.text3),\n mentionTextColor: params.theme.palette.getPrimary(),\n mentionTextBackground: \"\",\n })\n );\n mentionsTextFormatter.setRightBubbleMentionStyle(\n new UserMentionStyle({\n loggedInUserTextFont: fontHelper(params.theme.typography.text3),\n loggedInUserTextColor: params.theme.palette.getTertiary(),\n loggedInUserTextBackground: \"\",\n mentionTextFont: fontHelper(params.theme.typography.text3),\n mentionTextColor: params.theme.palette.getTertiary(),\n mentionTextBackground: \"\",\n })\n );\n mentionsTextFormatter.setLeftBubbleMentionStyle(\n new UserMentionStyle({\n loggedInUserTextFont: fontHelper(params.theme.typography.text3),\n loggedInUserTextColor: params.theme.palette.getPrimary(),\n loggedInUserTextBackground: \"\",\n mentionTextFont: fontHelper(params.theme.typography.text3),\n mentionTextColor: params.theme.palette.getPrimary(),\n mentionTextBackground: \"\",\n })\n );\n }\n return mentionsTextFormatter;\n }\n\n getUrlTextFormatter(params: any = {}): CometChatUrlsFormatter {\n let urlTextFormatter = new CometChatUrlsFormatter([\n /(https?:\\/\\/[^\\s]+)/g,\n ]);\n if (params.alignment == MessageBubbleAlignment.left) {\n urlTextFormatter.setStyle({\n formattedTextColor: params.theme.palette.getPrimary(),\n formattedTextFont: fontHelper(params.theme.typography.text3),\n });\n } else {\n urlTextFormatter.setStyle({\n formattedTextColor: params.theme.palette.getTertiary(),\n formattedTextFont: fontHelper(params.theme.typography.text3),\n });\n }\n return urlTextFormatter;\n }\n}\nexport type ComposerId = {\n parentMessageId: number | null;\n user: string | null;\n group: string | null;\n};\n","import { MessageUtils } from \"../Utils/MessageUtils\";\nimport { DataSource } from \"./DataSource\";\n\nexport class ChatConfigurator {\n static dataSource: DataSource;\n static names: Array<string> = [\"message utils\"];\n\n static init(initialSource?: DataSource) {\n this.dataSource = initialSource ?? new MessageUtils();\n if (!initialSource) {\n this.names = [];\n }\n this.names.push(this.dataSource.getId());\n }\n\n static enable(callback: (dataSource: DataSource) => DataSource) {\n let oldSource: DataSource = this.dataSource;\n let newSource: DataSource = callback(oldSource);\n if (!this.names.find((nm) => nm == newSource.getId())) {\n this.dataSource = newSource;\n this.names.push(this.dataSource.getId());\n }\n }\n\n static getDataSource(): DataSource {\n return this.dataSource;\n }\n}\n","import {\n CometChatActionsView,\n CometChatMessageComposerAction,\n CometChatMessageOption,\n CometChatMessageTemplate,\n CometChatTheme,\n MentionsTargetElement,\n} from \"@cometchat/uikit-resources\";\nimport { DataSource } from \"./DataSource\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { MessageUtils, ComposerId } from \"../Utils/MessageUtils\";\nimport {\n AIOptionsStyle,\n CometChatMentionsFormatter,\n CometChatTextFormatter,\n CometChatUrlsFormatter,\n} from \"@cometchat/uikit-shared\";\n\nexport abstract class DataSourceDecorator implements DataSource {\n public dataSource: DataSource;\n constructor(dataSource: DataSource) {\n this.dataSource = dataSource;\n }\n public getTextMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): CometChatMessageOption[] {\n return (this.dataSource ?? new MessageUtils()).getTextMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n }\n public getImageMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): CometChatMessageOption[] {\n return (this.dataSource ?? new MessageUtils()).getImageMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n }\n public getVideoMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): CometChatMessageOption[] {\n return (this.dataSource ?? new MessageUtils()).getVideoMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n }\n public getAudioMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): CometChatMessageOption[] {\n return (this.dataSource ?? new MessageUtils()).getAudioMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n }\n public getFileMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): CometChatMessageOption[] {\n return (this.dataSource ?? new MessageUtils()).getFileMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n }\n public getTextMessageTemplate(): CometChatMessageTemplate {\n return (this.dataSource ?? new MessageUtils()).getTextMessageTemplate();\n }\n public getImageMessageTemplate(): CometChatMessageTemplate {\n return (this.dataSource ?? new MessageUtils()).getImageMessageTemplate();\n }\n public getVideoMessageTemplate(): CometChatMessageTemplate {\n return (this.dataSource ?? new MessageUtils()).getVideoMessageTemplate();\n }\n public getAudioMessageTemplate(): CometChatMessageTemplate {\n return (this.dataSource ?? new MessageUtils()).getAudioMessageTemplate();\n }\n public getFileMessageTemplate(): CometChatMessageTemplate {\n return (this.dataSource ?? new MessageUtils()).getFileMessageTemplate();\n }\n public getFormMessageTemplate(): CometChatMessageTemplate {\n return (this.dataSource ?? new MessageUtils()).getFormMessageTemplate();\n }\n public getCardMessageTemplate(): CometChatMessageTemplate {\n return (this.dataSource ?? new MessageUtils()).getCardMessageTemplate();\n }\n public getGroupActionTemplate(): CometChatMessageTemplate {\n return (this.dataSource ?? new MessageUtils()).getGroupActionTemplate();\n }\n public getSchedulerMessageTemplate(): CometChatMessageTemplate {\n return (\n this.dataSource ?? new MessageUtils()\n ).getSchedulerMessageTemplate();\n }\n public getAllMessageTemplates(): CometChatMessageTemplate[] {\n return (this.dataSource ?? new MessageUtils()).getAllMessageTemplates();\n }\n public getMessageTemplate(\n messageType: string,\n messageCategory: string\n ): CometChatMessageTemplate | null {\n return (this.dataSource ?? new MessageUtils()).getMessageTemplate(\n messageType,\n messageCategory\n );\n }\n public getMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): CometChatMessageOption[] {\n return (this.dataSource ?? new MessageUtils()).getMessageOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n }\n\n public getCommonOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): CometChatMessageOption[] {\n return (this.dataSource ?? new MessageUtils()).getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n }\n public getDeleteOption(theme: CometChatTheme): CometChatMessageOption {\n return (this.dataSource ?? new MessageUtils()).getDeleteOption(theme);\n }\n public getReplyInThreadOption(theme: CometChatTheme): CometChatMessageOption {\n return (this.dataSource ?? new MessageUtils()).getReplyInThreadOption(\n theme\n );\n }\n public getEditOption(theme: CometChatTheme): CometChatMessageOption {\n return (this.dataSource ?? new MessageUtils()).getEditOption(theme);\n }\n public getAttachmentOptions(\n theme: CometChatTheme = new CometChatTheme({}),\n user?: CometChat.User,\n group?: CometChat.Group,\n id?: ComposerId\n ) {\n return (this.dataSource ?? new MessageUtils()).getAttachmentOptions(\n theme,\n user,\n group,\n id\n );\n }\n public getAllMessageTypes(): string[] {\n return (this.dataSource ?? new MessageUtils()).getAllMessageTypes();\n }\n public getAllMessageCategories(): string[] {\n return (this.dataSource ?? new MessageUtils()).getAllMessageCategories();\n }\n public getAuxiliaryOptions(\n id: ComposerId,\n user?: CometChat.User,\n group?: CometChat.Group\n ): any {\n return (this.dataSource ?? new MessageUtils()).getAuxiliaryOptions(\n id,\n user,\n group\n );\n }\n public getId(): string {\n return (this.dataSource ?? new MessageUtils()).getId();\n }\n public getLastConversationMessage(\n conversation: CometChat.Conversation,\n loggedInUser: CometChat.User,\n additionalParams?: any\n ): string {\n return (this.dataSource ?? new MessageUtils()).getLastConversationMessage(\n conversation,\n loggedInUser,\n additionalParams\n );\n }\n\n public getAIOptions(\n theme: CometChatTheme,\n id?: Map<String, any>,\n aiOptionsStyles?: AIOptionsStyle\n ): (CometChatMessageComposerAction | CometChatActionsView)[] {\n return (this.dataSource ?? new MessageUtils()).getAIOptions(\n theme,\n id,\n aiOptionsStyles\n );\n }\n\n getAllTextFormatters(formatterParams: any): CometChatTextFormatter[] {\n let formatters = [];\n const mentionsFormatter = formatterParams.disableMentions ? null : (this.dataSource ?? new MessageUtils()).getMentionsTextFormatter(\n formatterParams\n );\n const urlTextFormatter = (this.dataSource ?? new MessageUtils()).getUrlTextFormatter(formatterParams);\n if (mentionsFormatter) {\n formatters.push(mentionsFormatter);\n }\n if (urlTextFormatter) {\n formatters.push(urlTextFormatter);\n }\n return formatters;\n }\n\n getMentionsTextFormatter(\n formatterParams: any\n ): CometChatMentionsFormatter {\n return (this.dataSource ?? new MessageUtils()).getMentionsTextFormatter(\n formatterParams\n );\n }\n\n getUrlTextFormatter(formatterParams: any): CometChatUrlsFormatter {\n return (this.dataSource ?? new MessageUtils()).getUrlTextFormatter(\n formatterParams\n );\n }\n\n getMentionsFormattedText(\n message: CometChat.TextMessage,\n subtitle: string,\n mentionsFormatterParams: {\n mentionsTargetElement: MentionsTargetElement;\n theme: CometChatTheme;\n }\n ): string {\n return (this.dataSource ?? new MessageUtils()).getMentionsFormattedText(\n message,\n subtitle,\n mentionsFormatterParams\n );\n }\n}\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport {\n CometChatUIKitConstants,\n CometChatMessageTemplate,\n CometChatTheme,\n CometChatMessageComposerAction,\n localize,\n fontHelper,\n} from \"@cometchat/uikit-resources\";\nimport {\n CallingDetailsUtils,\n CollaborativeDocumentConfiguration,\n CollaborativeDocumentConstants,\n} from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../Shared/Framework/ChatConfigurator\";\nimport { DataSource } from \"../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../Shared/Framework/DataSourceDecorator\";\nimport {} from \"@cometchat/uikit-shared\";\n\nexport class CallingExtensionDecorator extends DataSourceDecorator {\n constructor(dataSource: DataSource) {\n super(dataSource);\n this.onLogout();\n }\n // end active call when user logs out\n onLogout() {\n var listenerID: string = \"logout_listener\";\n CometChat.addLoginListener(\n listenerID,\n new CometChat.LoginListener({\n logoutSuccess: () => {\n let call: CometChat.Call = CometChat.getActiveCall();\n if (call) {\n CometChat.endCall(call.getSessionId());\n } else {\n return;\n }\n },\n logoutFailure: (error: CometChat.CometChatException) => {\n console.log(\"LoginListener :: logoutFailure\", error);\n },\n })\n );\n }\n override getAllMessageTypes(): string[] {\n const types = super.getAllMessageTypes();\n if (!types.includes(CometChatUIKitConstants.calls.meeting)) {\n types.push(CometChatUIKitConstants.calls.meeting);\n }\n if (!types.includes(CometChatUIKitConstants.MessageTypes.audio)) {\n types.push(CometChatUIKitConstants.MessageTypes.audio);\n }\n if (!types.includes(CometChatUIKitConstants.MessageTypes.video)) {\n types.push(CometChatUIKitConstants.MessageTypes.video);\n }\n return types;\n }\n override getId(): string {\n return \"calling\";\n }\n override getAllMessageCategories(): string[] {\n const categories = super.getAllMessageCategories();\n if (!categories.includes(CometChatUIKitConstants.MessageCategory.call)) {\n categories.push(CometChatUIKitConstants.MessageCategory.call);\n }\n if (!categories.includes(CometChatUIKitConstants.MessageCategory.custom)) {\n categories.push(CometChatUIKitConstants.MessageCategory.custom);\n }\n return categories;\n }\n checkIfTemplateTypeExist(\n template: CometChatMessageTemplate[],\n type: string\n ): boolean {\n return template.some((obj) => obj.type === type);\n }\n checkIfTemplateCategoryExist(\n template: CometChatMessageTemplate[],\n category: string\n ): boolean {\n return template.some((obj) => obj.category === category);\n }\n override getAllMessageTemplates(): CometChatMessageTemplate[] {\n const templates = super.getAllMessageTemplates();\n if (\n !this.checkIfTemplateTypeExist(\n templates,\n CometChatUIKitConstants.calls.meeting\n )\n ) {\n templates.push(this.getDirectCallTemplate());\n }\n if (\n !this.checkIfTemplateCategoryExist(\n templates,\n CometChatUIKitConstants.MessageCategory.call\n )\n ) {\n templates.push(...this.getDefaultCallTemplate());\n }\n return templates;\n }\n getDirectCallTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CometChatUIKitConstants.calls.meeting,\n category: CometChatUIKitConstants.MessageCategory.custom,\n options: (\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ) => {\n return ChatConfigurator.getDataSource().getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n },\n });\n }\n getDefaultCallTemplate(): CometChatMessageTemplate[] {\n let templates: CometChatMessageTemplate[] = [\n new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.audio,\n category: CometChatUIKitConstants.MessageCategory.call,\n }),\n new CometChatMessageTemplate({\n type: CometChatUIKitConstants.MessageTypes.video,\n category: CometChatUIKitConstants.MessageCategory.call,\n }),\n ];\n return templates;\n }\n public override getLastConversationMessage(\n conversation: CometChat.Conversation,\n loggedInUser: CometChat.User,\n additionalParams?: any\n ): string {\n let actionMessage: string = \"\";\n\n if (\n conversation.getLastMessage() &&\n conversation.getLastMessage().category ==\n CometChatUIKitConstants.MessageCategory.call\n ) {\n let call: CometChat.Call = conversation.getLastMessage();\n\n actionMessage = CallingDetailsUtils.getCallStatus(call, loggedInUser);\n } else if (\n conversation?.getLastMessage() &&\n conversation.getLastMessage().type ==\n CometChatUIKitConstants.calls.meeting\n ) {\n let message: CometChat.CustomMessage = conversation.getLastMessage();\n if (\n !message.getSender() ||\n message?.getSender()?.getUid() == loggedInUser.getUid()\n ) {\n actionMessage = localize(\"YOU_INITIATED_GROUP_CALL\");\n } else {\n actionMessage = `${message.getSender().getName()} ${localize(\n \"INITIATED_GROUP_CALL\"\n )}`;\n }\n\n let messageObject = conversation.getLastMessage();\n if (\n messageObject &&\n messageObject.getMentionedUsers().length &&\n messageObject instanceof CometChat.TextMessage &&\n additionalParams &&\n !additionalParams.disableMentions\n ) {\n actionMessage = this.getMentionsFormattedText(\n messageObject,\n actionMessage,\n additionalParams\n );\n }\n } else {\n actionMessage = super.getLastConversationMessage(\n conversation,\n loggedInUser,\n additionalParams\n );\n }\n return actionMessage;\n }\n}\n","\nimport { ChatConfigurator } from '../Shared/Framework/ChatConfigurator';\nimport { DataSource } from '../Shared/Framework/DataSource';\nimport {ExtensionsDataSource} from '@cometchat/uikit-shared'\nimport { CallingExtensionDecorator } from './CallingExtensionDecorator';\n\nexport class CallingExtension extends ExtensionsDataSource {\n\n getExtensionId(): string {\n return '';\n }\n addExtension(): void {\n\n }\n override enable(): void {\n\n ChatConfigurator.enable((dataSource: DataSource) =>\n new CallingExtensionDecorator(dataSource)\n );\n }\n}\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport {\n CometChatTheme,\n CometChatMessageTemplate,\n CometChatMessageComposerAction,\n fontHelper,\n CometChatUIKitConstants,\n localize,\n} from \"@cometchat/uikit-resources\";\nimport {\n CollaborativeDocumentConfiguration,\n CollaborativeDocumentConstants,\n} from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nexport class CollaborativeDocumentExtensionDecorator extends DataSourceDecorator {\n constructor(dataSource: DataSource) {\n super(dataSource);\n }\n override getAllMessageTypes(): string[] {\n const types = super.getAllMessageTypes();\n if (!types.includes(CollaborativeDocumentConstants.extension_document)) {\n types.push(CollaborativeDocumentConstants.extension_document);\n }\n return types;\n }\n override getId(): string {\n return \"collaborativedocument\";\n }\n override getAllMessageCategories(): string[] {\n const categories = super.getAllMessageCategories();\n if (!categories.includes(CometChatUIKitConstants.MessageCategory.custom)) {\n categories.push(CometChatUIKitConstants.MessageCategory.custom);\n }\n return categories;\n }\n checkIfTemplateExist(\n template: CometChatMessageTemplate[],\n type: string\n ): boolean {\n return template.some((obj) => obj.type === type);\n }\n override getAllMessageTemplates(): CometChatMessageTemplate[] {\n const templates = super.getAllMessageTemplates();\n if (\n !this.checkIfTemplateExist(\n templates,\n CollaborativeDocumentConstants.extension_document\n )\n ) {\n templates.push(this.getDocumentTemplate());\n }\n\n return templates;\n }\n getDocumentTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CollaborativeDocumentConstants.extension_document,\n category: CometChatUIKitConstants.MessageCategory.custom,\n options: (\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ) => {\n return ChatConfigurator.getDataSource().getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n },\n });\n }\n override getAttachmentOptions(\n theme: CometChatTheme = new CometChatTheme({}),\n user?: CometChat.User,\n group?: CometChat.Group,\n id?: any\n ) {\n if (!id?.parentMessageId) {\n let receiverType: string = user\n ? CometChatUIKitConstants.MessageReceiverType.user\n : CometChatUIKitConstants.MessageReceiverType.group;\n let receiverId: string | undefined = user\n ? user.getUid()\n : group?.getGuid();\n const messageComposerActions: CometChatMessageComposerAction[] =\n super.getAttachmentOptions(theme, user, group, id);\n let newAction: CometChatMessageComposerAction =\n new CometChatMessageComposerAction({\n id: CollaborativeDocumentConstants.document,\n title: localize(\"COLLABORATIVE_DOCUMENT\"),\n iconURL: \"assets/collaborativedocument.svg\",\n iconTint: theme.palette.getAccent700(),\n titleColor: theme.palette.getAccent600(),\n titleFont: fontHelper(theme.typography.subtitle1),\n background: theme.palette.getAccent100(),\n onClick: () => {\n CometChat.callExtension(\n CollaborativeDocumentConstants.document,\n CollaborativeDocumentConstants.post,\n CollaborativeDocumentConstants.v1_create,\n {\n receiver: receiverId,\n receiverType: receiverType,\n }\n )\n .then((res: any) => {})\n .catch((error: CometChat.CometChatException) => {\n console.log(error);\n });\n },\n });\n messageComposerActions.push(newAction);\n return messageComposerActions;\n } else {\n return super.getAttachmentOptions(theme, user, group, id);\n }\n }\n override getLastConversationMessage(\n conversation: CometChat.Conversation,\n loggedInUser: CometChat.User,\n additionalConfigurations: any\n ): string {\n const message: CometChat.BaseMessage | undefined =\n conversation.getLastMessage();\n if (\n message != null &&\n message.getType() == CollaborativeDocumentConstants.extension_document &&\n message.getCategory() == CometChatUIKitConstants.MessageCategory.custom\n ) {\n return localize(\"CUSTOM_MESSAGE_DOCUMENT\");\n } else {\n return super.getLastConversationMessage(\n conversation,\n loggedInUser,\n additionalConfigurations\n );\n }\n }\n}\n","import { ExtensionsId,ExtensionsDataSource} from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { CollaborativeDocumentExtensionDecorator } from \"./CollaborativeDocumentExtensionDecorator\";\n\nexport class CollaborativeDocumentExtension extends ExtensionsDataSource {\n override addExtension(): void {\n ChatConfigurator.enable((dataSource: any) => new CollaborativeDocumentExtensionDecorator(dataSource));\n }\n override getExtensionId(): string {\n return ExtensionsId.document;\n }\n }\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport {\n CometChatTheme,\n CometChatMessageTemplate,\n CometChatMessageComposerAction,\n fontHelper,\n CometChatUIKitConstants,\n localize,\n} from \"@cometchat/uikit-resources\";\nimport {\n CollaborativeWhiteboardConfiguration,\n CollaborativeWhiteboardConstants,\n} from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\n\nexport class CollaborativeWhiteBoardExtensionDecorator extends DataSourceDecorator {\n constructor(dataSource: DataSource) {\n super(dataSource);\n }\n\n override getAllMessageTypes(): string[] {\n const types = super.getAllMessageTypes();\n if (\n !types.includes(CollaborativeWhiteboardConstants.extension_whiteboard)\n ) {\n types.push(CollaborativeWhiteboardConstants.extension_whiteboard);\n }\n return types;\n }\n override getId(): string {\n return \"collaborativewhiteboard\";\n }\n\n override getAllMessageCategories(): string[] {\n const categories = super.getAllMessageCategories();\n if (!categories.includes(CometChatUIKitConstants.MessageCategory.custom)) {\n categories.push(CometChatUIKitConstants.MessageCategory.custom);\n }\n return categories;\n }\n checkIfTemplateExist(\n template: CometChatMessageTemplate[],\n type: string\n ): boolean {\n return template.some((obj) => obj.type === type);\n }\n override getAllMessageTemplates(): CometChatMessageTemplate[] {\n const templates = super.getAllMessageTemplates();\n if (\n !this.checkIfTemplateExist(\n templates,\n CollaborativeWhiteboardConstants.extension_whiteboard\n )\n ) {\n templates.push(this.getWhiteBoardTemplate());\n }\n return templates;\n }\n getWhiteBoardTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: CollaborativeWhiteboardConstants.extension_whiteboard,\n category: CometChatUIKitConstants.MessageCategory.custom,\n options: (\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ) => {\n return ChatConfigurator.getDataSource().getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n },\n });\n }\n override getAttachmentOptions(\n theme: CometChatTheme = new CometChatTheme({}),\n user?: CometChat.User,\n group?: CometChat.Group,\n id?: any\n ) {\n if (!id?.parentMessageId) {\n let receiverType: string = user\n ? CometChatUIKitConstants.MessageReceiverType.user\n : CometChatUIKitConstants.MessageReceiverType.group;\n let receiverId: string | undefined = user\n ? user.getUid()\n : group?.getGuid();\n const messageComposerActions: CometChatMessageComposerAction[] =\n super.getAttachmentOptions(theme, user, group, id);\n let newAction: CometChatMessageComposerAction =\n new CometChatMessageComposerAction({\n id: CollaborativeWhiteboardConstants.whiteboard,\n title: localize(\"COLLABORATIVE_WHITEBOARD\"),\n iconURL: \"assets/collaborativewhiteboard.svg\",\n iconTint: theme.palette.getAccent700(),\n titleColor: theme.palette.getAccent600(),\n titleFont: fontHelper(theme.typography.subtitle1),\n background: theme.palette.getAccent100(),\n onClick: () => {\n CometChat.callExtension(\n CollaborativeWhiteboardConstants.whiteboard,\n CollaborativeWhiteboardConstants.post,\n CollaborativeWhiteboardConstants.v1_create,\n {\n receiver: receiverId,\n receiverType: receiverType,\n }\n )\n .then((res: any) => {})\n .catch((error: CometChat.CometChatException) => {\n console.log(error);\n });\n },\n });\n messageComposerActions.push(newAction);\n return messageComposerActions;\n } else {\n return super.getAttachmentOptions(theme, user, group, id);\n }\n }\n override getLastConversationMessage(\n conversation: CometChat.Conversation,\n loggedInUser: CometChat.User,\n additionalConfigurations: any\n ): string {\n const message: CometChat.BaseMessage | undefined =\n conversation.getLastMessage();\n if (\n message != null &&\n message.getType() ==\n CollaborativeWhiteboardConstants.extension_whiteboard &&\n message.getCategory() == CometChatUIKitConstants.MessageCategory.custom\n ) {\n return localize(\"CUSTOM_MESSAGE_WHITEBOARD\");\n } else {\n return super.getLastConversationMessage(\n conversation,\n loggedInUser,\n additionalConfigurations\n );\n }\n }\n}\n","import { CollaborativeWhiteboardConfiguration, ExtensionsDataSource,ExtensionsId } from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { CollaborativeWhiteBoardExtensionDecorator } from \"./CollaborativeWhiteboardExtensionDecorator\";\n\nexport class CollaborativeWhiteBoardExtension extends ExtensionsDataSource {\n override addExtension(): void {\n ChatConfigurator.enable((dataSource: any) => new CollaborativeWhiteBoardExtensionDecorator(dataSource));\n }\n override getExtensionId(): string {\n return ExtensionsId.whiteboard;\n }\n }\n","import { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nexport class ImageModerationExtensionDecorator extends DataSourceDecorator {\n constructor(dataSource:DataSource){\n super(dataSource)\n }\n\n override getId(): string {\n return \"imagemoderation\";\n }\n\n}\n","import { BaseStyle ,ExtensionsDataSource,ExtensionsId} from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { ImageModerationExtensionDecorator } from \"./ImageModerationExtensionDecorator\";\nexport class ImageModerationExtension extends ExtensionsDataSource {\n override addExtension(): void {\n ChatConfigurator.enable((dataSource: any) => new ImageModerationExtensionDecorator(dataSource));\n }\n override getExtensionId(): string {\n return ExtensionsId.imageModeration;\n }\n}\n\n","import { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nexport class LinkPreviewExtensionDecorator extends DataSourceDecorator {\n constructor(dataSource:DataSource){\n super(dataSource)\n }\n\n override getId(): string {\n return \"linkpreview\";\n }\n\n}\n","import { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { LinkPreviewExtensionDecorator } from \"./LinkPreviewExtensionDecorator\";\nimport {ExtensionsId,ExtensionsDataSource} from '@cometchat/uikit-shared'\nexport class LinkPreviewExtension extends ExtensionsDataSource {\n override addExtension(): void {\n ChatConfigurator.enable((dataSource: any) => new LinkPreviewExtensionDecorator(dataSource));\n }\n override getExtensionId(): string {\n return ExtensionsId.linkPreview;\n }\n}\n\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatTheme, CometChatMessageOption, CometChatUIKitConstants, fontHelper, localize } from \"@cometchat/uikit-resources\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nexport class MessageTranslationExtensionDecorator extends DataSourceDecorator {\n constructor(dataSource: DataSource) {\n super(dataSource)\n\n }\n public override getTextMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group): CometChatMessageOption[] {\n let options: CometChatMessageOption[] = super.getTextMessageOptions(loggedInUser, messageObject, theme, group)\n if (!this.checkIfOptionExist(options, CometChatUIKitConstants.MessageOption.translateMessage)) {\n let newOption: CometChatMessageOption = new CometChatMessageOption({\n id: CometChatUIKitConstants.MessageOption.translateMessage,\n title: localize(\"TRANSLATE\"),\n iconURL: \"assets/translation.svg\",\n onClick: null,\n iconTint: theme.palette.getAccent600(),\n backgroundColor: \"transparent\",\n titleFont: fontHelper(theme.typography.subtitle1),\n titleColor: theme.palette.getAccent600()\n })\n options.push(newOption)\n }\n\n\n return options\n\n }\n checkIfOptionExist(template: CometChatMessageOption[], id: string): boolean {\n return template.some(obj => obj.id === id)\n }\n override getId(): string {\n return \"messagetranslation\";\n }\n}\n","import { BaseStyle,ExtensionsId,ExtensionsDataSource } from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { MessageTranslationExtensionDecorator } from \"./MessageTranslationExtensionDecorator\";\nimport {MessageTranslationConfiguration} from '@cometchat/uikit-shared'\nexport class MessageTranslationExtension extends ExtensionsDataSource {\n override addExtension(): void {\n ChatConfigurator.enable((dataSource: any) => new MessageTranslationExtensionDecorator(dataSource));\n }\n override getExtensionId(): string {\n return ExtensionsId.messageTranslation;\n }\n}\n\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport {\n CometChatUIKitConstants,\n CometChatMessageTemplate,\n CometChatTheme,\n CometChatMessageComposerAction,\n localize,\n fontHelper,\n} from \"@cometchat/uikit-resources\";\nimport { PollsConstants } from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nexport class PollsExtensionDecorator extends DataSourceDecorator {\n constructor(dataSource: DataSource) {\n super(dataSource);\n }\n\n override getId(): string {\n return \"polls\";\n }\n override getAllMessageTypes(): string[] {\n const types = super.getAllMessageTypes();\n if (!types.includes(PollsConstants.extension_poll)) {\n types.push(PollsConstants.extension_poll);\n }\n return types;\n }\n override getAllMessageCategories(): string[] {\n const categories = super.getAllMessageCategories();\n if (!categories.includes(CometChatUIKitConstants.MessageCategory.custom)) {\n categories.push(CometChatUIKitConstants.MessageCategory.custom);\n }\n return categories;\n }\n checkIfTemplateExist(\n template: CometChatMessageTemplate[],\n type: string\n ): boolean {\n return template.some((obj) => obj.type === type);\n }\n override getAllMessageTemplates(): CometChatMessageTemplate[] {\n const templates = super.getAllMessageTemplates();\n\n if (!this.checkIfTemplateExist(templates, PollsConstants.extension_poll)) {\n templates.push(this.getPollsTemplate());\n }\n\n return templates;\n }\n getPollsTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: PollsConstants.extension_poll,\n category: CometChatUIKitConstants.MessageCategory.custom,\n options: (\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ) => {\n return ChatConfigurator.getDataSource().getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n },\n });\n }\n override getAttachmentOptions(\n theme: CometChatTheme = new CometChatTheme({}),\n user?: CometChat.User,\n group?: CometChat.Group,\n id?: any\n ) {\n if (!id?.parentMessageId) {\n const messageComposerActions: CometChatMessageComposerAction[] =\n super.getAttachmentOptions(theme, user, group, id);\n let newAction: CometChatMessageComposerAction =\n new CometChatMessageComposerAction({\n id: PollsConstants.extension_poll,\n title: localize(\"POLLS\"),\n iconURL: \"assets/polls.svg\",\n iconTint: theme.palette.getAccent700(),\n titleColor: theme.palette.getAccent600(),\n titleFont: fontHelper(theme.typography.subtitle1),\n background: theme.palette.getAccent100(),\n onClick: null,\n });\n messageComposerActions.push(newAction);\n return messageComposerActions;\n } else {\n return super.getAttachmentOptions(theme, user, group, id);\n }\n }\n override getLastConversationMessage(\n conversation: CometChat.Conversation,\n loggedInUser: CometChat.User,\n additionalConfigurations: any\n ): string {\n const message: CometChat.BaseMessage | undefined =\n conversation.getLastMessage();\n if (\n message != null &&\n message.getType() == PollsConstants.extension_poll &&\n message.getCategory() == CometChatUIKitConstants.MessageCategory.custom\n ) {\n return localize(\"CUSTOM_MESSAGE_POLL\");\n } else {\n return super.getLastConversationMessage(\n conversation,\n loggedInUser,\n additionalConfigurations\n );\n }\n }\n}\n","import { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport {ExtensionsId,ExtensionsDataSource} from '@cometchat/uikit-shared'\nimport { PollsExtensionDecorator } from \"./PollsExtensionDecorator\";\nexport class PollsExtension extends ExtensionsDataSource {\n override addExtension(): void {\n ChatConfigurator.enable((dataSource: any) => new PollsExtensionDecorator(dataSource));\n }\n override getExtensionId(): string {\n return ExtensionsId.polls;\n }\n}\n\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatMessageEvents, CometChatUIEvents, CometChatUIKitConstants, MessageStatus } from \"@cometchat/uikit-resources\";\nimport { IActiveChatChanged } from \"@cometchat/uikit-resources\";\nimport { CometChatSoundManager, SmartRepliesConfiguration, SmartRepliesStyle,CometChatUIKitUtility } from \"@cometchat/uikit-shared\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nexport class SmartReplyExtensionDecorator extends DataSourceDecorator {\n public configuration?:SmartRepliesConfiguration;\n private LISTENER_ID: string = \"smartreply__listener\";\n private activeUser!: CometChat.User;\n private activeGroup!: CometChat.Group;\n public currentMessage:CometChat.BaseMessage | null = null;\n public loggedInUser!:CometChat.User | null;\n constructor(dataSource:DataSource){\n super(dataSource)\n this.configuration = new SmartRepliesConfiguration({});\n this.addMessageListener();\n this.configuration!.ccSmartRepliesClicked = this.sendReply\n}\nsendReply = (reply:string, message:CometChat.BaseMessage,onError:((error:CometChat.CometChatException)=>void) | null | undefined,customSoundForMessages:string = \"\", disableSoundForMessages:boolean = false)=>{\n let ReceiverType:string = this.activeUser ? CometChatUIKitConstants.MessageReceiverType.user : CometChatUIKitConstants.MessageReceiverType.group\n if (reply && reply.trim().length > 0 && message) {\n let newMessage: CometChat.TextMessage;\n if (message.getReceiverType() === CometChatUIKitConstants.MessageReceiverType.user) {\n newMessage = new CometChat.TextMessage(\n message.getSender().getUid(),\n reply.trim(),\n ReceiverType\n );\n newMessage.setReceiver(this.activeUser);\n } else {\n const group: CometChat.Group = message.getReceiver() as CometChat.Group;\n newMessage = new CometChat.TextMessage(\n group.getGuid(),\n reply.trim(),\n ReceiverType\n );\n newMessage.setReceiver(this.activeGroup);\n }\n if (message.getParentMessageId() > 0) {\n newMessage.setParentMessageId(message.getParentMessageId());\n }\n newMessage.setCategory(CometChatUIKitConstants.MessageCategory.message as CometChat.MessageCategory);\n newMessage.setSender(this.loggedInUser!);\n newMessage.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n newMessage.setMuid(CometChatUIKitUtility.ID());\n CometChatMessageEvents.ccMessageSent.next({\n message:newMessage,\n status:MessageStatus.inprogress\n })\n if (!disableSoundForMessages) {\n CometChatSoundManager.play(customSoundForMessages ?? CometChatSoundManager.Sound.outgoingMessage)\n }\nCometChat.sendMessage(newMessage).then((message:CometChat.BaseMessage)=>{\n CometChatMessageEvents.ccMessageSent.next({\n message:message,\n status:MessageStatus.success\n })\n})\n.catch((error:CometChat.CometChatException)=>{\n newMessage.setMetadata({\n error:true\n })\n CometChatMessageEvents.ccMessageSent.next({\n message:newMessage,\n status:MessageStatus.error\n })\n})\n}\n}\nprivate addMessageListener(): void {\nCometChat.getLoggedinUser().then((user:CometChat.User | null)=>{\n this.loggedInUser = user\n}).catch((error:CometChat.CometChatException)=>{\n console.log(error)\n})\n CometChat.addMessageListener(this.LISTENER_ID, {\n onTextMessageReceived: (textMessage: CometChat.TextMessage) => {\n if (textMessage != null) {\n if (\n textMessage.getReceiverType() === CometChatUIKitConstants.MessageReceiverType.user &&\n this.activeUser != null\n ) {\n if (\n textMessage.getSender() != null &&\n textMessage.getSender().getUid() != null &&\n this.activeUser.getUid() == textMessage.getSender().getUid()\n ) {\n CometChatUIEvents.ccShowPanel.next({\n configuration:this.configuration!,\n message:textMessage\n });\n }\n } else if (\n textMessage.getReceiverType() === CometChatUIKitConstants.MessageReceiverType.group &&\n this.activeGroup != null\n ) {\n if (\n this.activeGroup.getGuid() != null &&\n this.activeGroup.getGuid() == textMessage.getReceiverId()\n ) {\n CometChatUIEvents.ccShowPanel.next({\n configuration:this.configuration!,\n message:textMessage\n });\n }\n }\n }\n },\n });\n CometChatUIEvents.ccActiveChatChanged.subscribe((data:IActiveChatChanged)=>{\n this.currentMessage = data.message!;\n this.activeUser = data.user!;\n this.activeGroup = data.group!;\n if (\n data.message != null && data.message.getType() == CometChatUIKitConstants.MessageTypes.text &&\n data.message.getSender() != null &&\n this.loggedInUser != null &&\n data.message.getSender().getUid() != null &&\n data.message.getSender().getUid() != this.loggedInUser.getUid()\n ) {\n CometChatUIEvents.ccShowPanel.next({\n configuration:this.configuration!,\n message:data.message!\n });\n }\n })\n CometChatMessageEvents.ccMessageSent.subscribe(()=>{\n CometChatUIEvents.ccHidePanel.next()\n this.currentMessage = null\n })\n}\n override getId(): string {\n return \"smartreply\";\n }\n}\n","import { SmartRepliesConfiguration,ExtensionsDataSource,ExtensionsId } from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { SmartReplyExtensionDecorator } from \"./SmartRepliesExtensionDecorator\";\n\nexport class SmartReplyExtension extends ExtensionsDataSource {\n override addExtension(): void {\n ChatConfigurator.enable((dataSource: any) => new SmartReplyExtensionDecorator(dataSource));\n }\n override getExtensionId(): string {\n return ExtensionsId.smartReply;\n }\n\n}","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\n\nexport function CometChatException(error:any){\nreturn new CometChat.CometChatException({\n message: error?.message,\n details:error?.details,\n code:error?.code,\n name:error?.name\n\n})\n}","import { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nimport {\n CometChatMessageEvents,\n CometChatTheme,\n CometChatUIKitConstants,\n MessageStatus,\n} from \"@cometchat/uikit-resources\";\nimport { CometChatMessageTemplate } from \"@cometchat/uikit-resources\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { localize } from \"@cometchat/uikit-resources\";\nimport { CometChatUIKitLoginListener, StickersConfiguration } from \"@cometchat/uikit-shared\";\nimport { StickersConstants } from \"@cometchat/uikit-shared\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport {\n CometChatSoundManager,\n CometChatUIKitUtility,\n} from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { ComposerId } from \"../../Shared/Utils/MessageUtils\";\nimport { CometChatException } from \"../../Shared/Utils/ComeChatException\";\nexport class StickersExtensionDecorator extends DataSourceDecorator {\n public configuration?: StickersConfiguration;\n public newDataScorce!: DataSource;\n constructor(dataSource: DataSource) {\n super(dataSource);\n this.newDataScorce = dataSource;\n this.configuration = new StickersConfiguration({});\n this.configuration!.ccStickerClicked = this.sendStickerMessage;\n\n }\n getDataScorce() {\n return this.newDataScorce;\n }\n sendStickerMessage = (\n sticker: { name: string; url: string },\n loggedInUser: CometChat.User,\n user: CometChat.User,\n group: CometChat.Group,\n parentMessageid: number,\n onError: ((error: CometChat.CometChatException) => void) | null | undefined,\n customSoundForMessages: string = \"\",\n disableSoundForMessages: boolean = false\n ) => {\n let receiverId: string = user?.getUid() || group?.getGuid();\n let receiverType: string = user\n ? CometChatUIKitConstants.MessageReceiverType.user\n : CometChatUIKitConstants.MessageReceiverType.group;\n try {\n const customData = {\n sticker_url: sticker.url,\n sticker_name: sticker.name,\n };\n const customType = StickersConstants.sticker;\n const customMessage: CometChat.CustomMessage =\n new CometChat.CustomMessage(\n receiverId,\n receiverType,\n customType,\n customData\n );\n if (parentMessageid) {\n customMessage.setParentMessageId(parentMessageid);\n }\n customMessage.shouldUpdateConversation(true);\n customMessage.setMetadata({ incrementUnreadCount: true });\n (customMessage as any).setSentAt(\n CometChatUIKitUtility.getUnixTimestamp()\n );\n customMessage.setMuid(CometChatUIKitUtility.ID());\n if (CometChatUIKitLoginListener.getLoggedInUser()) {\n customMessage.setSender(CometChatUIKitLoginListener.getLoggedInUser()!)\n }\n CometChatMessageEvents.ccMessageSent.next({\n message: customMessage,\n status: MessageStatus.inprogress,\n });\n if (!disableSoundForMessages) {\n CometChatSoundManager.play(\n customSoundForMessages ?? CometChatSoundManager.Sound.outgoingMessage\n );\n }\n CometChat.sendCustomMessage(customMessage)\n .then((message) => {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.success,\n });\n })\n .catch((error: CometChat.CometChatException) => {\n customMessage.setMetadata({\n error: true,\n });\n CometChatMessageEvents.ccMessageSent.next({\n message: customMessage,\n status: MessageStatus.error,\n });\n });\n } catch (error: any) {\n if (onError) {\n onError(CometChatException(error));\n }\n }\n };\n override getAllMessageTemplates(): CometChatMessageTemplate[] {\n let template: CometChatMessageTemplate[] = super.getAllMessageTemplates();\n if (!this.checkIfTemplateExist(template, StickersConstants.sticker)) {\n template.push(this.getStickerTemplate());\n return template;\n }\n return template;\n }\n override getAuxiliaryOptions(\n id: ComposerId,\n user?: CometChat.User,\n group?: CometChat.Group\n ) {\n return { configuration: this.configuration, id: StickersConstants.sticker };\n }\n getStickerTemplate(): CometChatMessageTemplate {\n return new CometChatMessageTemplate({\n type: StickersConstants.sticker,\n category: CometChatUIKitConstants.MessageCategory.custom,\n options: (\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ) => {\n return ChatConfigurator.getDataSource().getCommonOptions(\n loggedInUser,\n messageObject,\n theme,\n group\n );\n },\n });\n }\n checkIfTemplateExist(\n template: CometChatMessageTemplate[],\n type: string\n ): boolean {\n return template.some((obj) => obj.type === type);\n }\n\n override getAllMessageCategories(): string[] {\n let categories: string[] = super.getAllMessageCategories();\n if (\n !categories.some(\n (category) =>\n category === CometChatUIKitConstants.MessageCategory.custom\n )\n ) {\n categories.push(CometChatUIKitConstants.MessageCategory.custom);\n }\n return categories;\n }\n\n override getAllMessageTypes(): string[] {\n let types: string[] = super.getAllMessageTypes();\n if (\n !types.some(\n (category) =>\n category === CometChatUIKitConstants.MessageCategory.custom\n )\n ) {\n types.push(StickersConstants.sticker);\n }\n return types;\n }\n\n override getId(): string {\n return \"stickers\";\n }\n override getLastConversationMessage(\n conversation: CometChat.Conversation,\n loggedInUser: CometChat.User,\n additionalConfigurations: any\n ): string {\n const message: CometChat.BaseMessage | undefined =\n conversation.getLastMessage();\n if (\n message != null &&\n message.getType() == StickersConstants.sticker &&\n message.getCategory() == CometChatUIKitConstants.MessageCategory.custom\n ) {\n return localize(\"CUSTOM_MESSAGE_STICKER\");\n } else {\n return super.getLastConversationMessage(\n conversation,\n loggedInUser,\n additionalConfigurations\n );\n }\n }\n}\n","import { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport {StickersExtensionDecorator} from './StickersExtensionDecorator'\nimport {ExtensionsDataSource,ExtensionsId} from '@cometchat/uikit-shared'\nexport class StickersExtension extends ExtensionsDataSource {\n override addExtension(): void {\n ChatConfigurator.enable((dataSource: any) => new StickersExtensionDecorator(dataSource));\n }\n override getExtensionId(): string {\n return ExtensionsId.stickers;\n }\n\n}\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatUIKitConstants, localize, MentionsTargetElement } from \"@cometchat/uikit-resources\";\nimport {\n CometChatMentionsFormatter,\n CometChatTextFormatter,\n CometChatUIKitLoginListener,\n CometChatUIKitUtility,\n} from \"@cometchat/uikit-shared\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nexport class TextModeratorExtensionDecorator extends DataSourceDecorator {\n constructor(dataSource: DataSource) {\n super(dataSource);\n }\n\n override getId(): string {\n return \"textmoderator\";\n }\n getModeratedtext(message: CometChat.TextMessage): string {\n let text: string = CometChatUIKitUtility.getExtensionData(message);\n if (text?.trim()?.length > 0) {\n return text;\n } else {\n return message.getText();\n }\n }\n override getLastConversationMessage(\n conversation: CometChat.Conversation,\n loggedInUser: CometChat.User,\n additionalConfigurations: any\n ): string {\n const message: CometChat.TextMessage = conversation.getLastMessage();\n\n if (\n message &&\n !message.getDeletedAt() &&\n message.getType() === CometChatUIKitConstants.MessageTypes.text &&\n message.getCategory() === CometChatUIKitConstants.MessageCategory.message\n ) {\n let subtitle = this.getModeratedtext(message);\n let messageObj = conversation.getLastMessage();\n\n let config = {\n ...additionalConfigurations,\n textFormatters:\n additionalConfigurations?.textFormatters &&\n additionalConfigurations?.textFormatters.length\n ? [...additionalConfigurations.textFormatters]\n : [this.getMentionsTextFormatter({ theme: additionalConfigurations.theme, disableMentions: additionalConfigurations.disableMentions })],\n };\n\n let textFormatters: Array<CometChatTextFormatter> = config.textFormatters;\n if (config && !config.disableMentions) {\n let mentionsTextFormatter!: CometChatMentionsFormatter;\n for (let i = 0; i < textFormatters.length; i++) {\n if (textFormatters[i] instanceof CometChatMentionsFormatter) {\n mentionsTextFormatter = textFormatters[\n i\n ] as CometChatMentionsFormatter;\n mentionsTextFormatter.setMessage(messageObj);\n if (messageObj.getMentionedUsers().length) {\n mentionsTextFormatter.setCometChatUserGroupMembers(\n messageObj.getMentionedUsers()\n );\n }\n mentionsTextFormatter.setLoggedInUser(\n CometChatUIKitLoginListener.getLoggedInUser()!\n );\n if (mentionsTextFormatter) {\n break;\n }\n }\n }\n if (!mentionsTextFormatter) {\n mentionsTextFormatter =\n ChatConfigurator.getDataSource().getMentionsTextFormatter({\n messageObj,\n ...config,\n alignment: null,\n theme: additionalConfigurations.theme,\n });\n textFormatters.push(mentionsTextFormatter);\n }\n }\n\n if (\n messageObj &&\n messageObj instanceof CometChat.TextMessage\n ) {\n for (let i = 0; i < textFormatters.length; i++) {\n subtitle = textFormatters[i].getFormattedText(subtitle, { mentionsTargetElement: MentionsTargetElement.conversation })!;\n }\n }\n if (\n message &&\n conversation?.getConversationType() != CometChat.RECEIVER_TYPE.USER\n ) {\n if (\n message?.getSender().getUid() ==\n CometChatUIKitLoginListener?.getLoggedInUser()?.getUid()\n ) {\n subtitle = `${localize(\"YOU\")}: ${subtitle}`;\n } else {\n subtitle = `${message?.getSender().getName()}: ${subtitle}`;\n }\n }\n return subtitle;\n } else {\n return super.getLastConversationMessage(\n conversation,\n loggedInUser,\n additionalConfigurations\n );\n }\n }\n}\n","import { BaseStyle,ExtensionsDataSource,ExtensionsId } from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { TextModeratorExtensionDecorator } from \"./TextModeratorExtensionDecorator\";\nimport {MessageTranslationConfiguration} from '@cometchat/uikit-shared'\nimport {CometChat} from \"@cometchat/chat-sdk-javascript\";\nexport class TextModeratorExtension extends ExtensionsDataSource {\n override addExtension(): void {\n ChatConfigurator.enable((dataSource: any) => new TextModeratorExtensionDecorator(dataSource));\n }\n override getExtensionId(): string {\n return ExtensionsId.profanityFilter;\n }\n override enable():void{\n const promise1 = CometChat.isExtensionEnabled(ExtensionsId.profanityFilter);\n const promise2 = CometChat.isExtensionEnabled(ExtensionsId.dataMasking);\n Promise.all([promise1, promise2]).then((values) => {\n if(values.includes(true))\n {\n this.addExtension();\n }\n });\n }\n}\n\n","import { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nexport class ThumbnailGenerationExtensionDecorator extends DataSourceDecorator {\n constructor(dataSource:DataSource){\n super(dataSource)\n }\n\n override getId(): string {\n return \"thumbnailgeneration\";\n }\n\n}\n","import { ExtensionsId ,ExtensionsDataSource} from \"@cometchat/uikit-shared\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { ThumbnailGenerationExtensionDecorator } from \"./ThumbnailGenerationExtensionDecorator\";\nexport class ThumbnailGenerationExtension extends ExtensionsDataSource {\n override addExtension(): void {\n ChatConfigurator.enable((dataSource: any) => new ThumbnailGenerationExtensionDecorator(dataSource));\n }\n override getExtensionId(): string {\n return ExtensionsId.thumbnailGeneration;\n }\n}\n\n","export abstract class AIExtensionDataSource {\n abstract addExtension(): void;\n abstract getExtensionId(): string;\n abstract enable(): void;\n}\n","import {\n AIConversationStarterConfiguration,\n AIOptionsStyle,\n} from \"@cometchat/uikit-shared\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nimport {\n CometChatActionsView,\n CometChatMessageComposerAction,\n CometChatTheme,\n fontHelper,\n localize,\n} from \"@cometchat/uikit-resources\";\n\nexport class AIConversationSummaryDecorator extends DataSourceDecorator {\n public newDataSource!: DataSource;\n\n constructor(dataSource: DataSource) {\n super(dataSource);\n this.newDataSource = dataSource;\n }\n override getId(): string {\n return \"aiconversationsummary\";\n }\n\n override getAIOptions(\n theme: CometChatTheme,\n id?: any,\n aiOptionsStyles?: AIOptionsStyle\n ): (CometChatMessageComposerAction | CometChatActionsView)[] {\n if (!id?.parentMessageId) {\n const messageComposerActions: (\n | CometChatMessageComposerAction\n | CometChatActionsView\n )[] = super.getAIOptions(theme, id, aiOptionsStyles);\n let newAction: CometChatMessageComposerAction =\n new CometChatMessageComposerAction({\n title: localize(\"GENERATE_SUMMARY\"),\n id: \"ai-conversation-summary\",\n iconURL: \"\",\n iconTint: \"\",\n titleColor:\n aiOptionsStyles?.listItemTextColor || theme.palette.getAccent600(),\n titleFont:\n aiOptionsStyles?.listItemTextFont ||\n fontHelper(theme.typography.subtitle1),\n background:\n aiOptionsStyles?.listItemBackground || theme.palette.getAccent100(),\n });\n messageComposerActions.push(newAction);\n return messageComposerActions;\n } else {\n return super.getAIOptions(theme, id, aiOptionsStyles);\n }\n }\n}\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { AIExtensionDataSource } from \"../../Shared/Framework/AIExtensionDataSource\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { AIConversationSummaryDecorator } from \"./AIConversationSummaryDecorator\";\n\nexport class AIConversationSummaryExtension extends AIExtensionDataSource {\n constructor() {\n super();\n }\n\n override addExtension(): void {\n ChatConfigurator.enable(\n (dataSource: any) => new AIConversationSummaryDecorator(dataSource)\n );\n }\n\n override getExtensionId(): string {\n return \"conversation-summary\";\n }\n\n override async enable(): Promise<void> {\n if (await CometChat.isAIFeatureEnabled(this.getExtensionId())) {\n this.addExtension();\n }\n }\n}\n","import {\n CometChatActionsView,\n CometChatMessageComposerAction,\n CometChatTheme,\n fontHelper,\n localize,\n} from \"@cometchat/uikit-resources\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nimport { AIOptionsStyle } from \"@cometchat/uikit-shared\";\nexport class AISmartRepliesExtensionDecorator extends DataSourceDecorator {\n constructor(dataSource: DataSource) {\n super(dataSource);\n }\n override getId(): string {\n return \"aismartreply\";\n }\n\n override getAIOptions(\n theme: CometChatTheme,\n id?: any,\n aiOptionsStyles?: AIOptionsStyle\n ): (CometChatMessageComposerAction | CometChatActionsView)[] {\n if (!id?.parentMessageId) {\n const messageComposerActions: (\n | CometChatMessageComposerAction\n | CometChatActionsView\n )[] = super.getAIOptions(theme, id, aiOptionsStyles);\n let newAction: CometChatMessageComposerAction =\n new CometChatMessageComposerAction({\n title: localize(\"SUGGEST_A_REPLY\"),\n id: \"ai-smart-reply\",\n iconURL: \"\",\n iconTint: \"\",\n titleColor:\n aiOptionsStyles?.listItemTextColor || theme.palette.getAccent600(),\n titleFont:\n aiOptionsStyles?.listItemTextFont ||\n fontHelper(theme.typography.subtitle1),\n background:\n aiOptionsStyles?.listItemBackground || theme.palette.getAccent100(),\n });\n messageComposerActions.push(newAction);\n return messageComposerActions;\n } else {\n return super.getAIOptions(theme, id, aiOptionsStyles);\n }\n }\n}\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { AIExtensionDataSource } from \"../../Shared/Framework/AIExtensionDataSource\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { AISmartRepliesExtensionDecorator } from \"./AISmartRepliesDecorator\";\nexport class AISmartRepliesExtension extends AIExtensionDataSource {\n constructor() {\n super();\n }\n override addExtension(): void {\n ChatConfigurator.enable(\n (dataSource: any) => new AISmartRepliesExtensionDecorator(dataSource)\n );\n }\n override getExtensionId(): string {\n return \"smart-replies\";\n }\n\n override async enable(): Promise<void> {\n if (await CometChat.isAIFeatureEnabled(this.getExtensionId())) {\n this.addExtension();\n }\n }\n}\n","import {\n AIConversationStarterConfiguration,\n AIOptionsStyle,\n} from \"@cometchat/uikit-shared\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport {\n CometChatActionsView,\n CometChatMessageComposerAction,\n CometChatTheme,\n fontHelper,\n localize,\n} from \"@cometchat/uikit-resources\";\n\nexport class AIConversationStarterDecorator extends DataSourceDecorator {\n constructor(dataSource: DataSource) {\n super(dataSource);\n }\n\n override getId() {\n return \"aiconversationstarter\";\n }\n\n override getAIOptions(\n theme: CometChatTheme,\n id?: any,\n aiOptionsStyles?: AIOptionsStyle\n ): (CometChatMessageComposerAction | CometChatActionsView)[] {\n if (!id?.parentMessageId) {\n const messageComposerActions: (\n | CometChatMessageComposerAction\n | CometChatActionsView\n )[] = super.getAIOptions(theme, id, aiOptionsStyles);\n let newAction: CometChatMessageComposerAction =\n new CometChatMessageComposerAction({\n title: localize(\"SUGGEST_A_REPLY\"),\n id: \"ai-conversation-starter\",\n iconURL: \"\",\n iconTint: \"\",\n titleColor:\n aiOptionsStyles?.listItemTextColor || theme.palette.getAccent600(),\n titleFont:\n aiOptionsStyles?.listItemTextFont ||\n fontHelper(theme.typography.subtitle1),\n background:\n aiOptionsStyles?.listItemBackground || theme.palette.getAccent100(),\n });\n messageComposerActions.push(newAction);\n return messageComposerActions;\n } else {\n return super.getAIOptions(theme, id, aiOptionsStyles);\n }\n }\n}\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { AIExtensionDataSource } from \"../../Shared/Framework/AIExtensionDataSource\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { AIConversationStarterDecorator } from \"./AIConversationStarterDecorator\";\nexport class AIConversationStarterExtension extends AIExtensionDataSource {\n constructor() {\n super();\n }\n override addExtension(): void {\n ChatConfigurator.enable(\n (dataSource: any) => new AIConversationStarterDecorator(dataSource)\n );\n }\n override getExtensionId(): string {\n return \"conversation-starter\";\n }\n\n override async enable(): Promise<void> {\n if (await CometChat.isAIFeatureEnabled(this.getExtensionId())) {\n this.addExtension();\n }\n }\n}\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport {\n AIConversationStarterConfiguration,\n AIOptionsStyle,\n} from \"@cometchat/uikit-shared\";\nimport { DataSourceDecorator } from \"../../Shared/Framework/DataSourceDecorator\";\nimport { DataSource } from \"../../Shared/Framework/DataSource\";\nimport {\n CometChatActionsView,\n CometChatMessageComposerAction,\n CometChatTheme,\n fontHelper,\n localize,\n} from \"@cometchat/uikit-resources\";\n\nexport class AIAssistBotDecorator extends DataSourceDecorator {\n public aiBotsList: any = [];\n constructor(dataSource: DataSource) {\n super(dataSource);\n this.fetchAiBots();\n }\n\n override getId() {\n return \"aiassistbot\";\n }\n override getAIOptions(\n theme: CometChatTheme,\n id?: any,\n aiOptionsStyles?: AIOptionsStyle\n ): (CometChatMessageComposerAction | CometChatActionsView)[] {\n let title;\n if (this.aiBotsList && this.aiBotsList.length == 1) {\n title = `${localize(\"COMETCHAT_ASK_BOT\")} ${this.aiBotsList[0]?.name}`;\n } else {\n title = localize(\"COMETCHAT_ASK_AI_BOT\");\n }\n if (!id?.parentMessageId && this.aiBotsList && this.aiBotsList.length > 0) {\n const messageComposerActions: (\n | CometChatMessageComposerAction\n | CometChatActionsView\n )[] = super.getAIOptions(theme, id, aiOptionsStyles);\n let newAction: CometChatMessageComposerAction =\n new CometChatMessageComposerAction({\n title: title,\n id: \"ai-bots\",\n onClick: () => {\n return this.aiBotsList;\n },\n iconURL: \"\",\n iconTint: \"\",\n titleColor:\n aiOptionsStyles?.listItemTextColor || theme.palette.getAccent600(),\n titleFont:\n aiOptionsStyles?.listItemTextFont ||\n fontHelper(theme.typography.subtitle1),\n background:\n aiOptionsStyles?.listItemBackground || theme.palette.getAccent100(),\n });\n messageComposerActions.push(newAction);\n return messageComposerActions;\n } else {\n return super.getAIOptions(theme, id, aiOptionsStyles);\n }\n }\n\n async fetchAiBots() {\n try {\n let tags = [\"aibot\"];\n\n let botsRequest = new CometChat.UsersRequestBuilder()\n .setLimit(30)\n .setTags(tags)\n .build();\n\n const botList = await botsRequest.fetchNext();\n\n botList.forEach((e: any) => {\n let newAction: CometChatMessageComposerAction =\n new CometChatMessageComposerAction({\n id: e.uid,\n title: e.name,\n iconURL: e.avatar,\n onClick: () => {\n return e;\n },\n });\n this.aiBotsList.push(newAction);\n });\n } catch (error) {\n console.error(\"An error occurred while fetching AI bots:\", error);\n }\n }\n}\n","import { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { AIExtensionDataSource } from \"../../Shared/Framework/AIExtensionDataSource\";\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { AIAssistBotDecorator } from \"./AIAssistBotDecorator\";\nexport class AIAssistBotExtension extends AIExtensionDataSource {\n constructor() {\n super();\n }\n override addExtension(): void {\n ChatConfigurator.enable(\n (dataSource: any) => new AIAssistBotDecorator(dataSource)\n );\n }\n override getExtensionId(): string {\n return \"bots\";\n }\n\n override async enable(): Promise<void> {\n if (await CometChat.isAIFeatureEnabled(this.getExtensionId())) {\n this.addExtension();\n }\n }\n}\n","\nimport {\n CallingExtensionDataSource,\n CometChatUIKitLoginListener,\n CometChatUIKitUtility,\n InteractiveMessageUtils,\n StorageUtils,\n UIKitSettings,\n} from \"@cometchat/uikit-shared\";\nimport {\n CardMessage,\n ChatSdkEventInitializer,\n CometChatLocalize,\n CometChatMessageEvents,\n CometChatUIKitConstants,\n CustomInteractiveMessage,\n FormMessage,\n MessageStatus,\n SchedulerMessage,\n} from \"@cometchat/uikit-resources\";\nimport { CometChatUIKitSharedSettings } from \"@cometchat/uikit-shared\";\n\nimport { CallingExtension } from \"../../Calls/CallingExtension\";\nimport { ChatConfigurator } from \"../Framework/ChatConfigurator\";\nimport { CollaborativeDocumentExtension } from \"../../Extensions/CollaborativeDocument/CollaborativeDocumentExtension\";\nimport { CollaborativeWhiteBoardExtension } from \"../../Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { ExtensionsDataSource } from \"../Framework/ExtensionDataSource\";\nimport { ImageModerationExtension } from \"../../Extensions/ImageModeration/ImageModerationExtension\";\nimport { LinkPreviewExtension } from \"../../Extensions/LinkPreviewExtension/LinkPreviewExtension\";\nimport { MessageTranslationExtension } from \"../../Extensions/MessageTranslation/MessageTranslationExtension\";\nimport { PollsExtension } from \"../../Extensions/PollsExtension/PollsExtension\";\nimport { SmartReplyExtension } from \"../../Extensions/SmartReplies/SmartRepliesExtension\";\nimport { StickersExtension } from \"../../Extensions/Stickers/StickersExtension\";\nimport { TextModeratorExtension } from \"../../Extensions/TextModerator/TextModeratorExtension\";\nimport { ThumbnailGenerationExtension } from \"../../Extensions/ThumbnailGeneration/ThumbnailGenerationExtension\";\nimport { AIConversationSummaryExtension } from \"./../../AI/AIConversationSummary/AIConversationSummary\";\nimport { AISmartRepliesExtension } from \"./../../AI/AISmartReplies/AISmartReplies\";\nimport { AIConversationStarterExtension } from \"./../../AI/AIConversationStarter/AIConversationStarter\";\nimport {\n CometChatUIKitCalls,\n CometChatSoundManager,\n} from \"@cometchat/uikit-shared\";\nimport { AIExtensionDataSource } from \"../Framework/AIExtensionDataSource\";\nimport { AIAssistBotExtension } from \"../../AI/AIAssistBot/AIAssistBot\";\n\nexport class CometChatUIKit {\n static uiKitSettings: UIKitSettings;\n static SoundManager: typeof CometChatSoundManager = CometChatSoundManager;\n static Localize: typeof CometChatLocalize = CometChatLocalize;\n static loggedInUser?: CometChat.User;\n static conversationUpdateSettings?: CometChat.ConversationUpdateSettings;\n static getDataSource() {\n return ChatConfigurator.getDataSource();\n }\n static init(uiKitSettings: UIKitSettings): Promise<Object> | undefined {\n // perform sdk init taking values from uiKitSettings\n CometChatUIKit.uiKitSettings = uiKitSettings;\n if (window) {\n (<any>window).CometChatUiKit = {\n name: \"@cometchat/chat-uikit-angular\",\n version: \"4.3.35\",\n };\n }\n\n if (CometChatUIKitSharedSettings) {\n CometChatUIKitSharedSettings.uikitSettings = CometChatUIKit?.uiKitSettings;\n } if (!CometChatUIKit.checkAuthSettings()) return undefined;\n const appSettingsBuilder = new CometChat.AppSettingsBuilder();\n if (uiKitSettings.getRoles()) {\n appSettingsBuilder.subscribePresenceForRoles(uiKitSettings.getRoles());\n } else if (uiKitSettings.getSubscriptionType() === \"ALL_USERS\") {\n appSettingsBuilder.subscribePresenceForAllUsers();\n } else if (uiKitSettings.getSubscriptionType() === \"FRIENDS\") {\n appSettingsBuilder.subscribePresenceForFriends();\n }\n appSettingsBuilder.autoEstablishSocketConnection(\n uiKitSettings.isAutoEstablishSocketConnection()\n );\n\n appSettingsBuilder.setRegion(uiKitSettings.getRegion());\n appSettingsBuilder.overrideAdminHost(uiKitSettings.getAdminHost());\n appSettingsBuilder.overrideClientHost(uiKitSettings.getClientHost());\n if(uiKitSettings.getStorageMode()){\n appSettingsBuilder.setStorageMode(uiKitSettings.getStorageMode());\n }\n const appSettings = appSettingsBuilder.build();\n return new Promise((resolve, reject) => {\n CometChat.init(uiKitSettings?.appId, appSettings)\n .then(() => {\n CometChat.setSource(\"uikit-v4\", \"web\", \"angular\");\n CometChatUIKit.getLoggedinUser()\n ?.then((user) => {\n if (user) {\n CometChatUIKitLoginListener.setLoggedInUser(user);\n ChatConfigurator.init();\n this.initiateAfterLogin();\n }\n resolve(user);\n })\n .catch((error: CometChat.CometChatException) => {\n reject(error);\n });\n })\n .catch((error: CometChat.CometChatException) => {\n return reject(error);\n });\n });\n }\n\n static getLoggedinUser(): Promise<CometChat.User> | undefined {\n return new Promise((resolve, reject) => {\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n return resolve(user!);\n })\n .catch((error: CometChat.CometChatException) => {\n return reject(error);\n })\n .catch((error: CometChat.CometChatException) => {\n return reject(error);\n });\n });\n }\n\n static defaultExtensions: ExtensionsDataSource[] = [\n new StickersExtension(),\n new SmartReplyExtension(),\n new CollaborativeWhiteBoardExtension(),\n new CollaborativeDocumentExtension(),\n new MessageTranslationExtension(),\n new TextModeratorExtension(),\n new ThumbnailGenerationExtension(),\n new LinkPreviewExtension(),\n new PollsExtension(),\n new ImageModerationExtension(),\n ];\n\n /**\n * Default callingExtension included in the UI Kit.\n * @type {CallingExtensionDataSource}\n */\n static defaultCallingExtension: CallingExtensionDataSource = new CallingExtension()\n\n static defaultAIFeatures: AIExtensionDataSource[] = [\n new AIConversationStarterExtension(),\n new AISmartRepliesExtension(),\n new AIConversationSummaryExtension(),\n new AIAssistBotExtension(),\n ];\n static enableCalling(): void {\n if (CometChatUIKitCalls) {\n const callAppSetting = new CometChatUIKitCalls.CallAppSettingsBuilder()\n .setAppId(CometChatUIKit.uiKitSettings?.appId)\n .setRegion(CometChatUIKit.uiKitSettings?.region)\n .build();\n CometChatUIKitCalls.init(callAppSetting).then(\n () => {\n console.log(\"CometChatCalls initialization success\");\n if (this.uiKitSettings?.getCallingExtension()) {\n this.uiKitSettings?.getCallingExtension().enable();\n }\n else {\n this.defaultCallingExtension.enable();\n }\n },\n (error: any) => {\n console.log(\n \"CometChatCalls initialization failed with error:\",\n error\n );\n }\n );\n }\n }\n\n private static initiateAfterLogin() {\n if (CometChatUIKit.uiKitSettings != null) {\n CometChat.getConversationUpdateSettings().then((res: CometChat.ConversationUpdateSettings) => {\n\n CometChatUIKit.conversationUpdateSettings = res;\n })\n this.enableCalling();\n let extensionList: ExtensionsDataSource[] =\n this.uiKitSettings?.extensions || this.defaultExtensions;\n\n let aiFeaturesList: AIExtensionDataSource[] = Array.isArray(\n this.uiKitSettings?.aiFeatures\n )\n ? this.uiKitSettings?.aiFeatures\n : this.defaultAIFeatures;\n ChatSdkEventInitializer.attachListeners();\n CometChatUIKitLoginListener.attachListener();\n if (extensionList.length > 0) {\n extensionList.forEach((extension: ExtensionsDataSource) => {\n extension?.enable();\n });\n }\n\n if (aiFeaturesList.length > 0) {\n aiFeaturesList.forEach((aiFeatures: AIExtensionDataSource) => {\n aiFeatures?.enable();\n });\n }\n }\n }\n static async login(details: {\n uid?: string;\n authToken?: string;\n }): Promise<Object | undefined> {\n if (!CometChatUIKit.checkAuthSettings()) return undefined;\n return new Promise((resolve, reject) => {\n CometChatUIKit.getLoggedinUser()\n ?.then((user) => {\n if (user) {\n CometChatUIKitLoginListener.setLoggedInUser(user);\n resolve(user);\n CometChatUIKitLoginListener.setLoggedInUser(user);\n ChatConfigurator.init();\n this.initiateAfterLogin();\n } else {\n let args: any[] = details.uid\n ? [details.uid, CometChatUIKit.uiKitSettings.authKey!]\n : [details.authToken];\n CometChat.login(...args)\n .then((user: CometChat.User) => {\n CometChatUIKitLoginListener.setLoggedInUser(user);\n resolve(user);\n CometChatUIKitLoginListener.setLoggedInUser(user);\n ChatConfigurator.init();\n this.initiateAfterLogin();\n })\n .catch((error: CometChat.CometChatException) => {\n reject(error);\n });\n }\n })\n .catch((error: CometChat.CometChatException) => {\n reject(error);\n });\n });\n }\n static async createUser(user: CometChat.User): Promise<Object | undefined> {\n if (!CometChatUIKit.checkAuthSettings()) return undefined;\n return new Promise((resolve, reject) => {\n CometChat.createUser(user, CometChatUIKit.uiKitSettings.authKey!)\n .then((user: CometChat.User) => {\n resolve(user);\n })\n .catch((error: CometChat.CometChatException) => {\n reject(error);\n });\n });\n }\n static async updateUser(user: CometChat.User): Promise<Object | undefined> {\n if (!CometChatUIKit.checkAuthSettings()) return undefined;\n return new Promise((resolve, reject) => {\n CometChat.updateUser(user, CometChatUIKit.uiKitSettings.authKey!)\n .then((user: CometChat.User) => {\n resolve(user);\n })\n .catch((error: CometChat.CometChatException) => {\n reject(error);\n });\n });\n }\n static async logout(): Promise<Object | undefined> {\n if (!CometChatUIKit.checkAuthSettings()) return undefined;\n return new Promise((resolve, reject) => {\n CometChat.logout()\n .then((message: object) => {\n StorageUtils.removeItem(CometChatUIKitConstants.calls.activecall)\n CometChatUIKitLoginListener.removeLoggedInUser();\n resolve(message);\n CometChatUIKitLoginListener.removeLoggedInUser();\n })\n .catch((error: CometChat.CometChatException) => {\n reject(error);\n });\n });\n }\n // Error handling to give better logs\n static checkAuthSettings(): boolean {\n if (CometChatUIKit.uiKitSettings == null) {\n return false;\n }\n if (CometChatUIKit.uiKitSettings.appId == null) {\n return false;\n }\n return true;\n }\n\n /**\n * Sends a form message and emits events based on the message status.\n * @param message - The form message to be sent.\n * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.\n */\n static sendFormMessage(\n message: FormMessage,\n disableLocalEvents: boolean = false\n ) {\n message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n if (!message?.getMuid()) {\n message.setMuid(CometChatUIKitUtility.ID());\n if (CometChatUIKitLoginListener.getLoggedInUser()) {\n message.setSender(CometChatUIKitLoginListener.getLoggedInUser()!)\n }\n }\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.inprogress,\n });\n }\n CometChat.sendInteractiveMessage(message)\n .then((message: CometChat.BaseMessage) => {\n let interactiveMessage: FormMessage = InteractiveMessageUtils.convertInteractiveMessage(\n message as CometChat.InteractiveMessage\n ) as FormMessage;\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: interactiveMessage,\n status: MessageStatus.success,\n });\n }\n })\n .catch((error: CometChat.CometChatException) => {\n message.setMetadata({ error });\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.error,\n });\n }\n });\n }\n\n static sendCardMessage(\n message: CardMessage,\n disableLocalEvents: boolean = false\n ) {\n message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n if (!message?.getMuid()) {\n message.setMuid(CometChatUIKitUtility.ID());\n if (CometChatUIKitLoginListener.getLoggedInUser()) {\n message.setSender(CometChatUIKitLoginListener.getLoggedInUser()!)\n }\n }\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.inprogress,\n });\n }\n\n CometChat.sendInteractiveMessage(message)\n .then((message: CometChat.BaseMessage) => {\n let interactiveMessage: CardMessage = InteractiveMessageUtils.convertInteractiveMessage(\n message as CometChat.InteractiveMessage\n ) as CardMessage;\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: interactiveMessage,\n status: MessageStatus.success,\n });\n }\n })\n .catch((error: CometChat.CometChatException) => {\n message.setMetadata({ error });\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.error,\n });\n }\n });\n }\n\n static sendCustomInteractiveMessage(\n message: CustomInteractiveMessage,\n disableLocalEvents: boolean = false\n ) {\n message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n if (!message?.getMuid()) {\n message.setMuid(CometChatUIKitUtility.ID());\n if (CometChatUIKitLoginListener.getLoggedInUser()) {\n message.setSender(CometChatUIKitLoginListener.getLoggedInUser()!)\n }\n }\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.inprogress,\n });\n }\n CometChat.sendInteractiveMessage(message)\n .then((message: CometChat.BaseMessage) => {\n let interactiveMessage: CustomInteractiveMessage = InteractiveMessageUtils.convertInteractiveMessage(\n message as CometChat.InteractiveMessage\n ) as CustomInteractiveMessage;\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: interactiveMessage,\n status: MessageStatus.success,\n });\n }\n })\n .catch((error: CometChat.CometChatException) => {\n message.setMetadata({ error });\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.error,\n });\n }\n });\n }\n\n // Helper methods to send messages\n // [sendCustomMessage] used to send a custom message\n static sendCustomMessage(\n message: CometChat.CustomMessage\n ): Promise<CometChat.BaseMessage> {\n return new Promise((resolve, reject) => {\n message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n if (!message?.getMuid()) {\n message.setMuid(CometChatUIKitUtility.ID());\n if (CometChatUIKitLoginListener.getLoggedInUser()) {\n message.setSender(CometChatUIKitLoginListener.getLoggedInUser()!)\n }\n }\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.inprogress,\n });\n\n CometChat.sendCustomMessage(message)\n .then((message: CometChat.BaseMessage) => {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.success,\n });\n resolve(message);\n })\n .catch((error: CometChat.CometChatException) => {\n message.setMetadata({ error: true });\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.error,\n });\n reject(error);\n });\n });\n }\n\n // Helper methods to send messages\n // [sendTextMessage] used to send a custom message\n static sendTextMessage(\n message: CometChat.TextMessage\n ): Promise<CometChat.BaseMessage> {\n return new Promise((resolve, reject) => {\n message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n if (!message?.getMuid()) {\n message.setMuid(CometChatUIKitUtility.ID());\n if (CometChatUIKitLoginListener.getLoggedInUser()) {\n message.setSender(CometChatUIKitLoginListener.getLoggedInUser()!)\n }\n }\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.inprogress,\n });\n\n CometChat.sendMessage(message)\n .then((message: CometChat.BaseMessage) => {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.success,\n });\n resolve(message);\n })\n .catch((error: CometChat.CometChatException) => {\n message.setMetadata({ error: true });\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.error,\n });\n reject(error);\n });\n });\n }\n\n // Helper methods to send messages\n // [sendMediaMessage] used to send a custom message\n static sendMediaMessage(\n message: CometChat.MediaMessage\n ): Promise<CometChat.BaseMessage> {\n return new Promise((resolve, reject) => {\n message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n if (!message?.getMuid()) {\n message.setMuid(CometChatUIKitUtility.ID());\n if (CometChatUIKitLoginListener.getLoggedInUser()) {\n message.setSender(CometChatUIKitLoginListener.getLoggedInUser()!)\n }\n }\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.inprogress,\n });\n\n CometChat.sendMediaMessage(message)\n .then((message: CometChat.BaseMessage) => {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.success,\n });\n resolve(message);\n })\n .catch((error: CometChat.CometChatException) => {\n message.setMetadata({ error: true });\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.error,\n });\n reject(error);\n });\n });\n }\n /**\n * Sends a scheduler message and emits events based on the message status.\n * @param message - The scheduler message to be sent.\n * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.\n */\n static sendSchedulerMessage(\n message: SchedulerMessage,\n disableLocalEvents: boolean = false\n ) {\n\n message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n if (!message?.getMuid()) {\n message.setMuid(CometChatUIKitUtility.ID());\n if (CometChatUIKitLoginListener.getLoggedInUser()) {\n message.setSender(CometChatUIKitLoginListener.getLoggedInUser()!)\n }\n }\n\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.inprogress,\n });\n }\n\n CometChat.sendInteractiveMessage(message)\n .then((message: CometChat.BaseMessage) => {\n let interactiveMessage: SchedulerMessage = InteractiveMessageUtils.convertInteractiveMessage(\n message as CometChat.InteractiveMessage\n ) as SchedulerMessage;\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: interactiveMessage,\n status: MessageStatus.success,\n });\n }\n })\n .catch((error: CometChat.CometChatException) => {\n message.setMetadata({ error });\n if (!disableLocalEvents) {\n CometChatMessageEvents.ccMessageSent.next({\n message: message,\n status: MessageStatus.error,\n });\n }\n });\n }\n}\n","import {\n CometChatActionsView,\n CometChatMessageComposerAction,\n CometChatMessageOption,\n CometChatMessageTemplate,\n CometChatTheme,\n FormMessage,\n MentionsTargetElement,\n} from \"@cometchat/uikit-resources\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { ComposerId } from \"../Utils/MessageUtils\";\nimport {\n AIOptionsStyle,\n CometChatMentionsFormatter,\n CometChatTextFormatter,\n CometChatUrlsFormatter,\n} from \"@cometchat/uikit-shared\";\n\nexport abstract class DataSource {\n abstract getTextMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption>;\n abstract getImageMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption>;\n abstract getVideoMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption>;\n abstract getAudioMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption>;\n abstract getFileMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption>;\n abstract getTextMessageTemplate(): CometChatMessageTemplate;\n abstract getImageMessageTemplate(): CometChatMessageTemplate;\n abstract getVideoMessageTemplate(): CometChatMessageTemplate;\n abstract getAudioMessageTemplate(): CometChatMessageTemplate;\n abstract getFileMessageTemplate(): CometChatMessageTemplate;\n abstract getFormMessageTemplate(): CometChatMessageTemplate;\n abstract getCardMessageTemplate(): CometChatMessageTemplate;\n abstract getGroupActionTemplate(): CometChatMessageTemplate;\n abstract getSchedulerMessageTemplate(): CometChatMessageTemplate;\n abstract getAllMessageTemplates(\n theme?: CometChatTheme\n ): Array<CometChatMessageTemplate>;\n abstract getMessageTemplate(\n messageType: string,\n messageCategory: string\n ): CometChatMessageTemplate | null;\n abstract getMessageOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption>;\n abstract getCommonOptions(\n loggedInUser: CometChat.User,\n messageObject: CometChat.BaseMessage,\n theme: CometChatTheme,\n group?: CometChat.Group\n ): Array<CometChatMessageOption>;\n abstract getAttachmentOptions(\n theme?: CometChatTheme,\n user?: CometChat.User,\n group?: CometChat.Group,\n id?: ComposerId\n ): any;\n abstract getAllMessageTypes(): Array<string>;\n abstract getAllMessageCategories(): Array<string>;\n abstract getAuxiliaryOptions(\n id: ComposerId,\n user?: CometChat.User,\n group?: CometChat.Group\n ): any;\n abstract getId(): string;\n abstract getLastConversationMessage(\n conversation: CometChat.Conversation,\n loggedInUser: CometChat.User,\n additionalParams?: any\n ): string;\n abstract getDeleteOption(theme: CometChatTheme): CometChatMessageOption;\n abstract getReplyInThreadOption(\n theme: CometChatTheme\n ): CometChatMessageOption;\n abstract getEditOption(theme: CometChatTheme): CometChatMessageOption;\n abstract getAIOptions(\n theme: CometChatTheme,\n id?: Map<String, any>,\n aiOptionsStyles?: AIOptionsStyle\n ): (CometChatMessageComposerAction | CometChatActionsView)[];\n abstract getAllTextFormatters(formatterParams: any): CometChatTextFormatter[];\n abstract getMentionsTextFormatter(\n formatterParams: any\n ): CometChatMentionsFormatter;\n abstract getUrlTextFormatter(formatterParams: any): CometChatUrlsFormatter;\n abstract getMentionsFormattedText(\n message: CometChat.TextMessage,\n subtitle: string,\n mentionsFormatterParams: {\n mentionsTargetElement: MentionsTargetElement;\n theme: CometChatTheme;\n }\n ): string;\n}\n","///Protocol class every Extension enabler should extend,\nexport abstract class ExtensionsDataSource {\n ///Method to populate data source\n abstract enable():void;\n }","/**\n * @function isIOS\n * @description Checks if the current device is running iOS (iPhone, iPad, or iPod).\n * It handles modern iPads (iOS 13+) which often report as 'Mac' but support touch.\n * @returns {boolean} True if the device is running iOS, false otherwise.\n */\nconst isIOS = (): boolean => { \n if (navigator.userAgent.includes(\"Mac\") && 'ontouchend' in document) {\n return true;\n }\n \n // 2. Check for classic iOS user agent strings (iPhone, iPad, iPod).\n const userAgent = navigator.userAgent.toLowerCase();\n return /iphone|ipad|ipod/.test(userAgent);\n }\n \n /**\n * @function isMac\n * @description Checks if the current device is running macOS.\n * It explicitly excludes modern iPads that mimic the Mac user agent but support touch.\n * @returns {boolean} True if the device is running macOS, false otherwise.\n */\n const isMac = (): boolean => {\n if (navigator.userAgent.includes(\"Mac\") && 'ontouchend' in document) {\n return false;\n }\n \n const userAgent = navigator.userAgent.toLowerCase();\n return /macintosh|mac os x/.test(userAgent);\n }\n \n /**\n * @function shouldShowCustomMimeTypes\n * @description Returns true if the device is running either iOS (iPhone, iPad, iPod) or macOS.\n * @returns {boolean} True if the device is an Apple device (iOS or macOS), false otherwise.\n */\n export const shouldShowCustomMimeTypes = (): boolean=>{\n return isIOS() || isMac();\n }\n ","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { CometChatTheme } from '@cometchat/uikit-resources';\n@Injectable({\n providedIn: 'root'\n})\n\nexport class CometChatThemeService {\n public theme:CometChatTheme = new CometChatTheme({});\n}","\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnChanges, OnInit, SimpleChanges, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { CometChat } from '@cometchat/chat-sdk-javascript';\nimport \"@cometchat/uikit-elements\";\nimport '@cometchat/uikit-shared'\nimport { CometChatCallEvents, CallWorkflow, localize, CometChatUIKitConstants } from '@cometchat/uikit-resources';\nimport { CometChatUIKitCalls, StorageUtils } from '@cometchat/uikit-shared';\n\nimport { CallscreenStyle } from '@cometchat/uikit-elements'\nimport { CometChatThemeService } from '../../../CometChatTheme.service';\n/**\n*\n* CometChatOngoingCallComponent is a component whic shows outgoing call screen for default audio and video call.\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n\tselector: \"cometchat-ongoing-call\",\n\ttemplateUrl: \"./cometchat-ongoing-call.component.html\",\n\tstyleUrls: [\"./cometchat-ongoing-call.component.scss\"],\n})\nexport class CometChatOngoingCallComponent implements OnInit, OnChanges {\n\t@ViewChild(\"callscreenView\", { static: false }) callScreenFrame!: ElementRef;\n\t@Input() ongoingCallStyle: CallscreenStyle = {\n\t\tmaxHeight: \"100%\",\n\t\tmaxWidth: \"100%\",\n\t\tborder: \"none\",\n\t\tborderRadius: \"0\",\n\t\tbackground: \"#1c2226\",\n\t\tminHeight: \"400px\",\n\t\tminWidth: \"400px\",\n\t}\n\t@Input() resizeIconHoverText: string = localize(\"RESIZE\")\n\t@Input() sessionID: string = \"\"\n\t@Input() minimizeIconURL: string = \"assets/reduce-size.svg\"\n\t@Input() maximizeIconURL: string = \"assets/increase-size.svg\"\n\t@Input() callSettingsBuilder!: typeof CometChatUIKitCalls.CallSettingsBuilder;\n\t@Input() callWorkflow: CallWorkflow = CallWorkflow.directCalling;\n\t@Input() onError: (error: CometChat.CometChatException) => void = (error: CometChat.CometChatException) => {\n\t\tconsole.log(error)\n\t}\n\tpublic loggedInUser!: CometChat.User;\n\tngOnInit(): void {\n\t\tthis.setongoingCallStyle()\n\t}\n\tconstructor(private themeService: CometChatThemeService) {\n\t}\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes[\"sessionID\"] && changes[\"sessionID\"].currentValue) {\n\t\t\tthis.startCall()\n\t\t}\n\t}\n\tgetCallBuilder = (): any => {\n\t\tif (this.callSettingsBuilder) {\n\t\t\treturn this.callSettingsBuilder\n\t\t}\n\t\telse {\n\t\t\tconst callSettings: any = new CometChatUIKitCalls.CallSettingsBuilder()\n\t\t\t\t.enableDefaultLayout(true)\n\t\t\t\t.setIsAudioOnlyCall(false)\n\t\t\t\t.setCallListener(\n\t\t\t\t\tnew CometChatUIKitCalls.OngoingCallListener({\n\t\t\t\t\t\tonCallEnded: () => {\n\t\t\t\t\t\t\tStorageUtils.setItem(CometChatUIKitConstants.calls.activecall, null);\n\n\t\t\t\t\t\t\tCometChatUIKitCalls.endSession()\n\t\t\t\t\t\t\tif (this.callWorkflow == CallWorkflow.defaultCalling) {\n\t\t\t\t\t\t\t\tCometChatUIKitCalls.endCall();\n\t\t\t\t\t\t\t\tCometChat.clearActiveCall();\n\t\t\t\t\t\t\t\tCometChatCallEvents.ccCallEnded.next({} as CometChat.Call)\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonCallEndButtonPressed: () => {\n\t\t\t\t\t\t\tStorageUtils.setItem(CometChatUIKitConstants.calls.activecall, null);\n\n\t\t\t\t\t\t\tif (this.callWorkflow == CallWorkflow.defaultCalling) {\n\t\t\t\t\t\t\t\tCometChat.endCall(this.sessionID).then((call: CometChat.Call) => {\n\t\t\t\t\t\t\t\t\tCometChatUIKitCalls.endSession()\n\t\t\t\t\t\t\t\t\tCometChatCallEvents.ccCallEnded.next(call);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.catch((error: CometChat.CometChatException) => {\n\t\t\t\t\t\t\t\t\t\tif (this.onError) {\n\t\t\t\t\t\t\t\t\t\t\tthis.onError(error)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tCometChatCallEvents.ccCallEnded.next({} as CometChat.Call);\n\t\t\t\t\t\t\t\tCometChatUIKitCalls.endSession();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: (error: CometChat.CometChatException) => {\n\t\t\t\t\t\t\tif (this.onError) {\n\t\t\t\t\t\t\t\tthis.onError(error)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\t.build();\n\t\t\treturn callSettings\n\t\t}\n\t}\n\tstartCall = () => {\n\t\tif (this.loggedInUser) {\n\t\t\tconst authToken = this.loggedInUser!.getAuthToken();\n\t\t\tconst sessionID = this.sessionID;\n\t\t\tCometChatUIKitCalls.generateToken(sessionID, authToken).then(\n\t\t\t\t(res: any) => {\n\t\t\t\t\tCometChatUIKitCalls.startSession(\n\t\t\t\t\t\tres?.token,\n\t\t\t\t\t\tthis.getCallBuilder(),\n\t\t\t\t\t\tthis.callScreenFrame.nativeElement\n\t\t\t\t\t)\n\t\t\t\t\t\t.catch((error: CometChat.CometChatException) => {\n\t\t\t\t\t\t\tif (this.onError) {\n\t\t\t\t\t\t\t\tthis.onError(error)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\t(err: CometChat.CometChatException) => {\n\t\t\t\t\tif (this.onError) {\n\t\t\t\t\t\tthis.onError(err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t\t.catch((error: CometChat.CometChatException) => {\n\t\t\t\t\tif (this.onError) {\n\t\t\t\t\t\tthis.onError(error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\t\telse {\n\t\t\tCometChat.getLoggedinUser().then((user: CometChat.User | null) => {\n\t\t\t\tconst authToken = user!.getAuthToken();\n\t\t\t\tconst sessionID = this.sessionID;\n\t\t\t\tCometChatUIKitCalls.generateToken(sessionID, authToken).then(\n\t\t\t\t\t(res: any) => {\n\t\t\t\t\t\tCometChatUIKitCalls.startSession(\n\t\t\t\t\t\t\tres?.token,\n\t\t\t\t\t\t\tthis.getCallBuilder(),\n\t\t\t\t\t\t\tthis.callScreenFrame.nativeElement\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t\t(error: CometChat.CometChatException) => {\n\t\t\t\t\t\tif (this.onError) {\n\t\t\t\t\t\t\tthis.onError(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.catch((error: CometChat.CometChatException) => {\n\t\t\t\t\t\tif (this.onError) {\n\t\t\t\t\t\t\tthis.onError(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t})\n\t\t}\n\t};\n\tsetongoingCallStyle() {\n\t\tlet defaultStyle = new CallscreenStyle({\n\t\t\tmaxHeight: \"100%\",\n\t\t\tmaxWidth: \"100%\",\n\t\t\tborder: \"none\",\n\t\t\tborderRadius: \"0\",\n\t\t\tbackground: \"#1c2226\",\n\t\t\tminHeight: \"400px\",\n\t\t\tminWidth: \"400px\",\n\t\t\tminimizeIconTint: this.themeService.theme.palette.getAccent(\"dark\"),\n\t\t\tmaximizeIconTint: this.themeService.theme.palette.getAccent(\"dark\"),\n\t\t});\n\t\tthis.ongoingCallStyle = { ...defaultStyle, ...this.ongoingCallStyle }\n\t}\n}\n","<cometchat-callscreen-wrapper *ngIf=\"sessionID\" [callscreenStyle]=\"ongoingCallStyle\" [resizeIconHoverText]=\"resizeIconHoverText\" [minimizeIconURL]=\"minimizeIconURL\" [maximizeIconURL]=\"maximizeIconURL\">\n <div #callscreenView class=\"cc-callscreen__view\"></div>\n</cometchat-callscreen-wrapper>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';\nimport { CometChat } from '@cometchat/chat-sdk-javascript';\nimport { CometChatSoundManager, OutgoingCallStyle } from \"@cometchat/uikit-shared\";\nimport { AvatarStyle, CardStyle, IconStyle } from '@cometchat/uikit-elements'\nimport { CometChatThemeService } from '../../../CometChatTheme.service';\nimport { localize, CometChatUIKitConstants, fontHelper, IconButtonAlignment } from '@cometchat/uikit-resources';\n/**\n*\n* CometChatOutgoingCallComponent is a component whic shows outgoing call screen for default audio and video call.\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-outgoing-call\",\n templateUrl: \"./cometchat-outgoing-call.component.html\",\n styleUrls: [\"./cometchat-outgoing-call.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CometChatOutgoingCallComponent implements OnInit, OnChanges {\n @Input() call!: CometChat.Call;\n @Input() declineButtonText: string = localize(\"CANCEL\");\n @Input() declineButtonIconURL: string = \"assets/close2x.svg\";\n @Input() customView!: TemplateRef<any>;\n @Input() onError: (error: CometChat.CometChatException) => void = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n @Input() disableSoundForCalls:boolean = false;\n @Input() customSoundForCalls!:string;\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"50%\",\n width: \"180px\",\n height: \"180px\",\n };\n @Input() outgoingCallStyle: OutgoingCallStyle = {};\n @Input() onCloseClicked!:(()=>void) | null;\n buttonStyle:any = {\n height: \"fit-content\",\n width: \"fit-content\",\n buttonTextFont: \"400 12px Inter\",\n buttonTextColor: \"RGBA(20, 20, 20, 0.58)\",\n borderRadius: \"8px\",\n border: \"none\",\n buttonIconTint: \"white\",\n background: \"\",\n iconBackground:\"red\",\n padding:\"12px\"\n };\n\n subtitleText:string = localize(\"CALLING\")\n cardStyle:CardStyle = {\n height: \"100%\",\n width: \"100%\",\n border: \"inherite\",\n borderRadius: \"inherite\",\n background: \"transparent\",\n titleFont:\"700 22px Inter\",\n titleColor:\"black\",\n }\n iconAlignment:IconButtonAlignment = IconButtonAlignment.top\n iconStyle: IconStyle = {\n height: \"16px\",\n width: \"16px\",\n iconTint: \"RGBA(20, 20, 20, 0.68)\"\n }\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) { }\n ngOnChanges(changes: SimpleChanges): void {\n if(changes[\"call\"] && changes[\"call\"].currentValue){\n if(!this.disableSoundForCalls){\n\n setTimeout(() => {\n this.playAudio()\n });\n }\n this.setThemeStyle()\n }\n }\n ngOnInit(): void {\n\n }\n playAudio() {\n if (this.customSoundForCalls) {\n CometChatSoundManager.play(CometChatSoundManager.Sound.outgoingCall, this.customSoundForCalls)\n }\n else {\n CometChatSoundManager.play(CometChatSoundManager.Sound.outgoingCall)\n }\n }\n ngOnDestroy(){\n CometChatSoundManager.pause()\n }\n onClose =()=>{\n CometChatSoundManager.pause()\n if(this.onCloseClicked){\n this.onCloseClicked()\n\n }\n }\n getAvatarURL(){\n return this.call?.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user ? (this.call?.getReceiver() as CometChat.User)?.getAvatar() : (this.call?.getReceiver() as CometChat.Group)?.getIcon()\n }\n setThemeStyle() {\n this.setAvatarStyle()\n this.setOutgoingCallStyle()\n this.cardStyle.titleColor = this.outgoingCallStyle.titleTextColor\n this.cardStyle.titleFont = this.outgoingCallStyle.titleTextFont\n }\n setOutgoingCallStyle(){\n let defaultStyle: OutgoingCallStyle = new OutgoingCallStyle({\n width: \"360px\",\n height: \"581px\",\n background: this.themeService.theme.palette.getBackground(),\n border: \"none\",\n borderRadius: \"8px\",\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n subtitleTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n subtitleTextColor: this.themeService.theme.palette.getAccent600(),\n declineButtonTextFont:fontHelper(this.themeService.theme.typography.caption1),\n declineButtonTextColor:this.themeService.theme.palette.getAccent600(),\n declineButtonIconTint:this.themeService.theme.palette.getAccent(\"dark\"),\n declineButtonIconBackground:this.themeService.theme.palette.getError()\n })\n this.outgoingCallStyle = { ...defaultStyle, ...this.outgoingCallStyle }\n this.buttonStyle = {\n height: \"fit-content\",\n width: \"fit-content\",\n buttonTextFont: this.outgoingCallStyle.declineButtonTextFont,\n buttonTextColor: this.outgoingCallStyle.declineButtonTextColor,\n borderRadius: \"8px\",\n border: \"none\",\n buttonIconTint: this.outgoingCallStyle.declineButtonIconTint,\n background: \"\",\n iconBackground:this.outgoingCallStyle.declineButtonIconBackground,\n padding:\"12px\",\n display:\"flex\",\n flexDirection:\"column\"\n }\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"50%\",\n width: \"180px\",\n height: \"180px\",\n border: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n \n outerViewBorderSpacing: \"\",\n })\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle }\n }\n subtitleStyle(){\n return {\n textFont:this.outgoingCallStyle.subtitleTextFont,\n textColor:this.outgoingCallStyle.subtitleTextColor\n }\n }\n wrapperStyle = () => {\n return {\n height: this.outgoingCallStyle.height,\n width: this.outgoingCallStyle.width,\n background: this.outgoingCallStyle.background,\n border: this.outgoingCallStyle.border,\n borderRadius: this.outgoingCallStyle.borderRadius\n }\n }\n\n}\n","<div class=\"cc-outgoing-call__wrapper\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-outgoing-call__custom-view\" *ngIf=\"customView; else elseBlock;\">\n <ng-container *ngTemplateOutlet=\"customView\">\n\n </ng-container>\n </div>\n<ng-template #elseBlock>\n <cometchat-card [title]=\"call.getReceiver().getName()\" [cardStyle]=\"cardStyle\" [avatarName]=\"call.getReceiver().getName()\" [avatarURL]=\"getAvatarURL()\" [avatarStyle]=\"avatarStyle\" >\n <cometchat-label slot=\"subtitleView\" [labelStyle]=\"subtitleStyle()\" [text]=\"subtitleText\"> </cometchat-label>\n <div slot=\"bottomView\">\n <cometchat-icon-button (cc-button-clicked)=\"onClose()\" [text]=\"declineButtonText\" [iconURL]=\"declineButtonIconURL\" [alignment]=\"iconAlignment\" [buttonStyle]=\"buttonStyle\">\n\n </cometchat-icon-button>\n </div>\n </cometchat-card>\n</ng-template>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { CometChat } from '@cometchat/chat-sdk-javascript';\nimport { CometChatThemeService } from '../../../CometChatTheme.service';\nimport { localize, CometChatUIKitConstants, fontHelper, CometChatCallEvents, CometChatMessageEvents, MessageStatus, CometChatLocalize, CometChatUIEvents } from '@cometchat/uikit-resources';\nimport { Subscription } from 'rxjs';\nimport { CallButtonsStyle, CometChatSoundManager, OutgoingCallStyle, CometChatUIKitUtility, OutgoingCallConfiguration, CallScreenConfiguration, CometChatUIKitCalls, StorageUtils } from '@cometchat/uikit-shared';\nimport { CallscreenStyle } from '@cometchat/uikit-elements'\nimport '@cometchat/uikit-shared'\n/**\n*\n* CometChatCallButtonsComponent is a component which shows buttons for audio and video call for 1v1 and group call.\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-call-buttons\",\n templateUrl: \"./cometchat-call-buttons.component.html\",\n styleUrls: [\"./cometchat-call-buttons.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CometChatCallButtonsComponent implements OnInit {\n @Input() user!: CometChat.User;\n @Input() group!: CometChat.Group;\n @Input() voiceCallIconURL: string | undefined = \"assets/Audio-Call2x.svg\"\n @Input() voiceCallIconText: string = localize(\"VOICE_CALL\")\n @Input() voiceCallIconHoverText: string = localize(\"VOICE_CALL\")\n @Input() videoCallIconURL: string | undefined = \"assets/Video-call2x.svg\"\n @Input() videoCallIconText: string = localize(\"VIDEO_CALL\")\n @Input() videoCallIconHoverText: string = localize(\"VIDEO_CALL\")\n @Input() onVoiceCallClick?: ((user: CometChat.User, group: CometChat.Group) => void) | null;\n @Input() onVideoCallClick?: ((user: CometChat.User, group: CometChat.Group) => void) | null;\n @Input() onError: (error: CometChat.CometChatException) => void = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n @Input() callButtonsStyle: CallButtonsStyle | undefined = {\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\"\n };\n @Input() outgoingCallConfiguration: OutgoingCallConfiguration = new OutgoingCallConfiguration({})\n @Input() ongoingCallConfiguration: CallScreenConfiguration = new CallScreenConfiguration({})\n call!: CometChat.Call | null;\n public ccOutgoingCall!: Subscription;\n public ccCallRejected!: Subscription;\n public ccCallEnded!: Subscription;\n public disableButtons: boolean = false;\n showOngoingCall: boolean = false;\n sessionId: string = \"\";\n public callbuttonsListenerId: string = \"callbuttons_\" + new Date().getTime();\n public loggedInUser: CometChat.User | null = null;\n buttonStyle: any = {\n height: \"100%\",\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }\n voiceCallButtonStyle: any = {\n buttonIconTint: \"RGB(51, 153, 255)\",\n buttonTextFont: \"400 12px Inter\",\n buttonTextColor: \"RGB(51, 153, 255)\",\n padding: \"8px 32px\"\n }\n videoCallButtonStyle: any = {\n buttonIconTint: \"RGB(51, 153, 255)\",\n buttonTextFont: \"400 12px Inter\",\n buttonTextColor: \"RGB(51, 153, 255)\",\n padding: \"8px 32px\"\n }\n showOutgoingCallscreen: boolean = false;\n outgoingCallStyle: OutgoingCallStyle = {\n width: \"360px\",\n height: \"581px\",\n titleTextFont: \"700 22px Inter\",\n titleTextColor: \"RGB(20, 20, 20)\",\n subtitleTextFont: \"400 15px Inter\",\n subtitleTextColor: \"RGBA(20, 20, 20, 0.58)\",\n borderRadius: \"8px\"\n };\n ongoingCallStyle: CallscreenStyle = {}\n activeCall: CometChat.Call | null = null\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) { }\n ngOnInit(): void {\n CometChat.getLoggedinUser().then((user: CometChat.User | null) => {\n this.loggedInUser = user\n }).catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n this.setThemeStyle()\n this.attachListeners()\n this.subscribeToEvents()\n }\n ngOnDestroy() {\n this.removeListener();\n this.unsubscribeToEvents()\n }\n getCallBuilder(): typeof CometChatUIKitCalls.CallSettings | undefined {\n const audioOnlyCall: boolean = this.activeCall?.getType() === CometChatUIKitConstants.MessageTypes.audio;\n const builder = this.ongoingCallConfiguration?.callSettingsBuilder ? this.ongoingCallConfiguration.callSettingsBuilder(audioOnlyCall, this.user, this.group)\n : new CometChatUIKitCalls.CallSettingsBuilder().enableDefaultLayout(true).setIsAudioOnlyCall(audioOnlyCall);\n builder.setCallListener(\n new CometChatUIKitCalls.OngoingCallListener({\n onCallEnded: () => {\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, null);\n if (this.call?.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {\n CometChatUIKitCalls.endSession();\n CometChat.clearActiveCall();\n this.closeCallScreen();\n }\n\n },\n onCallEndButtonPressed: () => {\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, null);\n if (this.call?.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {\n CometChat.endCall(this.sessionId).then((call: CometChat.Call) => {\n CometChatUIKitCalls.endSession();\n CometChatCallEvents.ccCallEnded.next(call);\n this.closeCallScreen();\n })\n .catch((err: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(err)\n }\n\n })\n }\n else {\n this.closeCallScreen();\n }\n\n\n },\n onError: (error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n },\n })\n )\n return builder.build();\n }\n closeCallScreen() {\n this.disableButtons = false\n this.activeCall = null\n this.showOngoingCall = false\n this.sessionId = \"\"\n this.showOutgoingCallscreen = false;\n this.call = null;\n this.ref.detectChanges()\n }\n openOngoingCallScreen(call: CometChat.Call) {\n this.showOutgoingCallscreen = false;\n this.activeCall = call\n this.sessionId = call.getSessionId()\n this.showOngoingCall = true\n this.ref.detectChanges()\n }\n initiateCall(type: string) {\n\n const receiverType: string = this.user ? CometChatUIKitConstants.MessageReceiverType.user : CometChatUIKitConstants.MessageReceiverType.group\n const receiverId: string = this.user ? this.user.getUid() : this.group.getGuid()\n const call: CometChat.Call = new CometChat.Call(\n receiverId,\n type,\n receiverType\n );\n CometChat.initiateCall(call)\n .then((outgoingCall) => {\n this.call = outgoingCall\n this.showOutgoingCallscreen = true;\n this.ref.detectChanges()\n CometChatCallEvents.ccOutgoingCall.next(\n outgoingCall\n )\n\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error)\n }\n });\n }\n\n initiateAudioCall() {\n if (this.user) {\n this.initiateCall(CometChatUIKitConstants.MessageTypes.audio)\n }\n }\n initiateVideoCall() {\n if (this.user) {\n this.initiateCall(CometChatUIKitConstants.MessageTypes.video)\n }\n else {\n this.sessionId = this.group.getGuid()\n this.sendCustomMessage()\n this.showOngoingCall = true;\n this.ref.detectChanges()\n\n }\n }\n sendCustomMessage() {\n const receiverType: string = this.user ? CometChatUIKitConstants.MessageReceiverType.user : CometChatUIKitConstants.MessageReceiverType.group\n const receiverId: string = this.user ? this.user.getUid() : this.group.getGuid()\n const customData = { \"sessionID\": this.sessionId, \"sessionId\": this.sessionId, \"callType\": CometChatUIKitConstants.MessageTypes.video };\n const customType = CometChatUIKitConstants.calls.meeting;\n const conversationId = `group_${this.sessionId}`;\n\n const customMessage: any = new CometChat.CustomMessage(receiverId, receiverType, customType, customData);\n customMessage.setSender(this.loggedInUser);\n customMessage.shouldUpdateConversation(true);\n customMessage.setMetadata({ incrementUnreadCount: true });\n customMessage.setReceiver((receiverType as any));\n customMessage.setConversationId(conversationId);\n customMessage.sentAt = CometChatUIKitUtility.getUnixTimestamp();\n customMessage.muid = CometChatUIKitUtility.ID();\n // custom message\n CometChatMessageEvents.ccMessageSent.next({\n message: customMessage,\n status: MessageStatus.inprogress\n })\n\n CometChat.sendCustomMessage(customMessage).then((msg) => {\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, msg)\n CometChatMessageEvents.ccMessageSent.next({\n message: msg,\n status: MessageStatus.success\n })\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n\n }\n cancelOutgoingCall = () => {\n CometChatSoundManager.pause()\n CometChat.rejectCall(\n this.call!.getSessionId(),\n CometChatUIKitConstants.calls.cancelled\n )\n .then((call) => {\n this.disableButtons = false;\n this.showOutgoingCallscreen = false\n CometChatCallEvents.ccCallRejected.next(call)\n this.call = null;\n this.ref.detectChanges()\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error)\n }\n });\n this.showOutgoingCallscreen = false;\n this.ref.detectChanges()\n }\n getVoiceCallButtonStyle(disableButtons: boolean) {\n const buttonIconTint = disableButtons\n ? this.themeService.theme.palette.getAccent600()\n : this.callButtonsStyle?.voiceCallIconTint;\n\n return {\n ...this.videoCallButtonStyle,\n buttonIconTint,\n };\n }\n getVideoCallButtonStyle(disableButtons: boolean) {\n const buttonIconTint = disableButtons\n ? this.themeService.theme.palette.getAccent600()\n : this.callButtonsStyle?.videoCallIconTint;\n\n return {\n ...this.videoCallButtonStyle,\n buttonIconTint,\n };\n }\n\n attachListeners() {\n CometChat.addCallListener(\n this.callbuttonsListenerId,\n new CometChat.CallListener({\n onIncomingCallReceived: (call: CometChat.Call) => {\n this.call = call;\n this.disableButtons = true;\n this.ref.detectChanges();\n },\n onIncomingCallCancelled: (call: CometChat.Call) => {\n this.disableButtons = false\n this.ref.detectChanges()\n },\n onOutgoingCallRejected: (call: CometChat.Call) => {\n if (this.call && this.call.getSessionId() == call.getSessionId()) {\n this.disableButtons = false\n this.call = null;\n this.showOutgoingCallscreen = false;\n this.ref.detectChanges()\n }\n\n },\n onOutgoingCallAccepted: (call: CometChat.Call) => {\n if (this.call && this.call.getSessionId() == call.getSessionId() && this.showOutgoingCallscreen) {\n this.call = call;\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, call);\n this.openOngoingCallScreen(call);\n }\n\n },\n onCallEndedMessageReceived: (call: CometChat.Call) => {\n this.disableButtons = false\n this.call = null;\n this.ref.detectChanges()\n }\n })\n );\n }\n removeListener() {\n CometChat.removeCallListener(this.callbuttonsListenerId);\n }\n subscribeToEvents() {\n this.ccCallRejected = CometChatCallEvents.ccCallRejected.subscribe((call: CometChat.Call) => {\n this.disableButtons = false\n this.ref.detectChanges()\n })\n this.ccOutgoingCall = CometChatCallEvents.ccOutgoingCall.subscribe((call: CometChat.Call) => {\n this.disableButtons = true\n this.ref.detectChanges()\n })\n this.ccCallEnded = CometChatCallEvents.ccCallEnded.subscribe((call: CometChat.Call) => {\n this.closeCallScreen()\n })\n }\n unsubscribeToEvents() {\n this.ccCallRejected?.unsubscribe()\n this.ccOutgoingCall?.unsubscribe()\n this.ccCallEnded?.unsubscribe()\n }\n setThemeStyle() {\n this.setcallButtonsStyle()\n this.setOngoingCallStyle()\n }\n setOngoingCallStyle = () => {\n let defaultStyle = new CallscreenStyle({\n maxHeight: \"100%\",\n maxWidth: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"#1c2226\",\n minHeight: \"400px\",\n minWidth: \"400px\",\n minimizeIconTint: this.themeService.theme.palette.getAccent900(),\n maximizeIconTint: this.themeService.theme.palette.getAccent900(),\n })\n this.ongoingCallStyle = { ...defaultStyle, ...this.ongoingCallStyle }\n }\n setcallButtonsStyle() {\n let defaultStyle: CallButtonsStyle = new CallButtonsStyle({\n width: \"100%\",\n height: \"100%\",\n background: \"transparent\",\n border: \"none\",\n borderRadius: \"0\",\n voiceCallIconTint: this.themeService.theme.palette.getPrimary(),\n videoCallIconTint: this.themeService.theme.palette.getPrimary(),\n voiceCallIconTextFont: fontHelper(this.themeService.theme.typography.caption1),\n videoCallIconTextFont: fontHelper(this.themeService.theme.typography.caption1),\n voiceCallIconTextColor: this.themeService.theme.palette.getPrimary(),\n videoCallIconTextColor: this.themeService.theme.palette.getPrimary(),\n buttonPadding: \"8px 32px\",\n buttonBackground: this.themeService.theme.palette.getAccent100(),\n buttonBorder: \"0\",\n buttonBorderRadius: \"8px\"\n })\n this.callButtonsStyle = { ...defaultStyle, ...this.callButtonsStyle }\n this.voiceCallButtonStyle = {\n buttonIconTint: this.disableButtons ? this.themeService.theme.palette.getAccent600() : this.callButtonsStyle.voiceCallIconTint,\n buttonTextFont: this.callButtonsStyle.voiceCallIconTextFont,\n buttonTextColor: this.callButtonsStyle.voiceCallIconTextColor,\n padding: this.callButtonsStyle.buttonPadding,\n background: this.callButtonsStyle.buttonBackground,\n border: this.callButtonsStyle.border,\n borderRadius: this.callButtonsStyle.buttonBorderRadius,\n ...this.buttonStyle\n }\n this.videoCallButtonStyle = {\n buttonIconTint: this.disableButtons ? this.themeService.theme.palette.getAccent600() : this.callButtonsStyle.videoCallIconTint,\n buttonTextFont: this.callButtonsStyle.videoCallIconTextFont,\n buttonTextColor: this.callButtonsStyle.videoCallIconTextColor,\n padding: this.callButtonsStyle.buttonPadding,\n background: this.callButtonsStyle.buttonBackground,\n border: this.callButtonsStyle.border,\n borderRadius: this.callButtonsStyle.buttonBorderRadius,\n ...this.buttonStyle\n }\n }\n wrapperStyle = () => {\n return {\n height: this.callButtonsStyle?.height,\n width: this.callButtonsStyle?.width,\n background: this.callButtonsStyle?.background,\n border: this.callButtonsStyle?.border,\n borderRadius: this.callButtonsStyle?.borderRadius\n }\n }\n}\n","<div class=\"cc-call-buttons__wrapper\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-call-buttons-buttons\">\n <cometchat-button [disabled]=\"disableButtons ? true : false\" *ngIf=\"user\" (cc-button-clicked)=\"initiateAudioCall()\"\n [buttonStyle]=\"getVoiceCallButtonStyle(disableButtons)\" [text]=\"voiceCallIconText\"\n [hoverText]=\"voiceCallIconHoverText\" [iconURL]=\"voiceCallIconURL\"></cometchat-button>\n <cometchat-button [disabled]=\"disableButtons ? true : false\" *ngIf=\"user || group\"\n (cc-button-clicked)=\"initiateVideoCall()\" [buttonStyle]=\"getVideoCallButtonStyle(disableButtons)\"\n [text]=\"videoCallIconText\" [hoverText]=\"videoCallIconHoverText\" [iconURL]=\"videoCallIconURL\"></cometchat-button>\n </div>\n</div>\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\" [maximizeIconURL]=\"ongoingCallConfiguration.maximizeIconURL\"\n [minimizeIconURL]=\"ongoingCallConfiguration.minimizeIconURL\"\n [ongoingCallStyle]=\"ongoingCallConfiguration.ongoingCallStyle || ongoingCallStyle\" [sessionID]=\"sessionId\"\n [callSettingsBuilder]=\"getCallBuilder()!\"></cometchat-ongoing-call>\n<cometchat-backdrop *ngIf=\"showOutgoingCallscreen\">\n <cometchat-outgoing-call [customSoundForCalls]=\"outgoingCallConfiguration.customSoundForCalls\"\n [onError]=\"outgoingCallConfiguration.onError\"\n [disableSoundForCalls]=\"outgoingCallConfiguration.disableSoundForCalls\"\n [avatarStyle]=\"outgoingCallConfiguration.avatarStyle\" [customView]=\"outgoingCallConfiguration.customView\"\n [declineButtonIconURL]=\"outgoingCallConfiguration.declineButtonIconURL\"\n [onCloseClicked]=\"outgoingCallConfiguration.onCloseClicked || cancelOutgoingCall\"\n [outgoingCallStyle]=\"outgoingCallConfiguration.outgoingCallStyle || outgoingCallStyle\"\n [call]=\"call!\"></cometchat-outgoing-call>\n</cometchat-backdrop>","import {\n Component,\n ElementRef,\n Input,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from \"@angular/core\";\nimport { DateStyle, SearchInputStyle } from \"@cometchat/uikit-elements\";\nimport {\n ListStyle,\n MessageListStyle,\n UsersStyle,\n} from \"@cometchat/uikit-shared\";\nimport {\n DatePatterns,\n localize,\n States,\n TitleAlignment,\n} from \"@cometchat/uikit-resources\";\n@Component({\n selector: \"cometchat-list\",\n templateUrl: \"./cometchat-list.component.html\",\n styleUrls: [\"./cometchat-list.component.scss\"],\n})\nexport class CometchatListComponent implements OnInit {\n @ViewChild(\"listScroll\", { static: false }) listScroll!: ElementRef;\n @ViewChild(\"bottom\", { static: false }) bottom!: ElementRef;\n @ViewChild(\"top\", { static: false }) top!: ElementRef;\n @Input() listItemView!: TemplateRef<any>; //custom view\n @Input() onScrolledToBottom!: () => void;\n @Input() onScrolledToTop!: () => void;\n @Input() list: any = [];\n @Input() onSearch!: (text: string) => void;\n @Input() getSectionHeader!: (call: any, index: any) => void;\n @Input() searchText: string = localize(\"SEARCH\");\n @Input() searchIconURL: String = \"assets/search.svg\";\n @Input() listStyle: ListStyle = {\n height: \"100%\",\n width: \"100%\",\n };\n @Input() searchPlaceholderText: String = \"\";\n @Input() hideSearch: boolean = false;\n @Input() hideError: boolean = false;\n @Input() title: string = \"\";\n @Input() titleAlignment: TitleAlignment = TitleAlignment.left;\n @Input() errorStateView!: TemplateRef<any>;\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() state: States = States.loaded;\n @Input() errorStateText: string = \"\";\n @Input() emptyStateText: string = \"\";\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() showSectionHeader: boolean = false;\n @Input() sectionHeaderField: string = \"name\";\n @Input() DateSeparatorPattern: DatePatterns = DatePatterns.DayDate;\n @Input() dateSeparatorStyle: DateStyle = {\n height: \"\",\n width: \"\",\n };\n public states: typeof States = States;\n public numberOfTopScroll: number = 0;\n searchStyle: SearchInputStyle = {};\n iconStyle: any = {};\n constructor() { }\n ngOnInit(): void {\n this.iconStyle = this.listStyle.loadingIconTint;\n (this.searchStyle.searchTextFont = this.listStyle?.searchTextFont),\n (this.searchStyle.searchTextColor = this.listStyle?.searchTextColor),\n (this.searchStyle.placeholderTextFont =\n this.listStyle?.searchPlaceholderTextFont),\n (this.searchStyle.placeholderTextColor =\n this.listStyle?.searchPlaceholderTextColor),\n (this.searchStyle.searchIconTint = this.listStyle?.searchIconTint);\n (this.searchStyle.background = this.listStyle?.searchBackground),\n (this.searchStyle.borderRadius = this.listStyle.searchBorderRadius);\n this.searchStyle.border = this.listStyle.searchBorder;\n }\n ngAfterViewInit() {\n this.ioBottom();\n }\n ngOnChanges(changes: SimpleChanges): void { }\n /**\n * listening to bottom scroll using intersection observer\n */\n ioBottom = () => {\n const options = {\n root: this.listScroll?.nativeElement,\n rootMargin: \"-100% 0px 100px 0px\",\n threshold: 0,\n };\n const callback = (entries: any) => {\n if (\n entries[0].isIntersecting &&\n this.onScrolledToBottom &&\n this.list?.length > 0\n ) {\n this.onScrolledToBottom();\n }\n };\n var observer: IntersectionObserver = new IntersectionObserver(\n callback,\n options\n );\n observer.observe(this.bottom?.nativeElement);\n };\n /**\n * listening to top scroll using intersection observer\n */\n ioTop = () => {\n const options = {\n root: this.listScroll?.nativeElement,\n rootMargin: \"200px 0px 0px 0px\",\n threshold: 1.0,\n };\n const callback = (entries: any) => {\n if (entries[0].isIntersecting) {\n this.numberOfTopScroll++;\n if (this.onScrolledToTop && this.numberOfTopScroll > 1) {\n this.onScrolledToTop();\n }\n }\n };\n var observer: IntersectionObserver = new IntersectionObserver(\n callback,\n options\n );\n // observer.observe(this.top.nativeElement);\n };\n searchEvent = (event: any) => {\n this.searchText = event?.detail?.searchText;\n if (this.onSearch) {\n this.onSearch(this.searchText);\n }\n };\n /**\n * styling part\n */\n chatsListStyle = () => {\n return {\n height: this.listStyle.height,\n background: this.listStyle.background,\n };\n };\n messageContainerStyle = () => {\n return {\n width: this.listStyle.width,\n };\n };\n errorStyle = () => {\n return {\n textFont: this.listStyle.errorStateTextFont,\n textColor: this.listStyle.errorStateTextColor,\n };\n };\n emptyStyle = () => {\n return {\n textFont: this.listStyle.emptyStateTextFont,\n textColor: this.listStyle.emptyStateTextColor,\n };\n };\n wrapperStyle = () => {\n return {\n height: this.listStyle.height,\n width: this.listStyle.width,\n background: this.listStyle.background,\n border: this.listStyle.border,\n borderRadius: this.listStyle.borderRadius,\n };\n };\n headerTitle = () => {\n let postiton: any =\n this.titleAlignment == TitleAlignment.left\n ? { textAlign: \"left\" }\n : { textAlign: \"center\" };\n return {\n font: this.listStyle.titleTextFont,\n color: this.listStyle.titleTextColor,\n ...postiton,\n };\n };\n sectionHeaderStyle = () => {\n return {\n font: this.listStyle?.sectionHeaderTextFont,\n color: this.listStyle?.sectionHeaderTextColor,\n };\n };\n headerStyle = () => {\n return {\n height: \"fit-content\",\n marginBottom: \"12px\",\n };\n };\n listStyles = () => {\n return {\n height: \"100%\",\n };\n };\n}\n","<div class=\"cc-list__wrapper\">\n <div class=\"list__header\" [ngStyle]=\"headerStyle()\">\n <div *ngIf=\"title\" class=\"list__title\" [ngStyle]=\"headerTitle()\"> {{title}}\n </div>\n <div class=\"cc-list__search-input\">\n <cometchat-search-input [searchInputStyle]=\"searchStyle\"\n [placeholderText]=\"searchPlaceholderText\" *ngIf=\"!hideSearch\"\n [searchIconURL]=\"searchIconURL\"\n (cc-search-changed)=\"searchEvent($event)\"></cometchat-search-input>\n </div>\n </div>\n <div class=\"cc-list\" #listScroll [ngStyle]=\"listStyles()\">\n <div class=\"list__top\" #top>\n </div>\n <div class=\"decorator__message\"\n *ngIf=\"state == states.loading || state == states.error || state == states.empty \"\n [ngStyle]=\"messageContainerStyle()\">\n <div class=\"loading__view\" *ngIf=\"state == states.loading\">\n <cometchat-loader [iconURL]=\"loadingIconURL\" [loaderStyle]=\"iconStyle\"\n *ngIf=\"!loadingStateView\">\n </cometchat-loader>\n <span class=\"custom__view--loading\" *ngIf=\"loadingStateView\">\n <ng-container *ngTemplateOutlet=\"loadingStateView\">\n </ng-container>\n </span>\n </div>\n <div class=\"error__view\" *ngIf=\"state == states.error && !hideError\">\n <cometchat-label [labelStyle]=\"errorStyle()\" *ngIf=\"!errorStateView\"\n [text]=\"errorStateText\">\n </cometchat-label>\n <span class=\"custom__view--error\" *ngIf=\"errorStateView\">\n <ng-container *ngTemplateOutlet=\"errorStateView\">\n </ng-container>\n </span>\n </div>\n <div class=\"empty__view\" *ngIf=\"state == states.empty\">\n <cometchat-label [labelStyle]=\"emptyStyle()\"\n *ngIf=\"state == states.empty && !emptyStateView\"\n [text]=\"emptyStateText\">\n </cometchat-label>\n <span class=\"custom__view--empty\" *ngIf=\"emptyStateView\">\n <ng-container *ngTemplateOutlet=\"emptyStateView\">\n </ng-container>\n </span>\n </div>\n </div>\n <div class=\"listitem__view\" *ngFor=\"let item of list; let i = index\">\n <div class=\"list__section\" *ngIf=\"showSectionHeader\">\n <div *ngIf=\"!getSectionHeader\">\n <div *ngIf=\"i > 0; else elseBlock\" class=\"section__separator\">\n <div *ngIf=\"\n list[i - 1][sectionHeaderField][0].toUpperCase() !==\n list[i][sectionHeaderField][0].toUpperCase()\n \" class=\"section__header\" [ngStyle]=\"sectionHeaderStyle()\">\n {{ list[i][sectionHeaderField][0].toUpperCase() }}\n </div>\n </div>\n <ng-template #elseBlock>\n <div class=\"section__header\" [ngStyle]=\"sectionHeaderStyle()\">\n {{\n list[i][sectionHeaderField][0].toUpperCase()\n }}\n </div>\n </ng-template>\n </div>\n <div *ngIf=\"getSectionHeader && getSectionHeader(item,i)\"\n [ngStyle]=\"sectionHeaderStyle()\">\n <cometchat-date [timestamp]=\"getSectionHeader(item,i)\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </div>\n\n </div>\n <ng-container\n *ngTemplateOutlet=\"listItemView;context:{ $implicit: item }\">\n </ng-container>\n </div>\n <div class=\"list__bottom\" #bottom>\n </div>\n </div>\n</div>\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometchatListComponent } from \"./cometchat-list.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport '@cometchat/uikit-elements'\n@NgModule({\n declarations: [CometchatListComponent],\n imports: [\n CommonModule,\n FormsModule,\n\n\n ],\n exports: [CometchatListComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA],\n\n})\nexport class CometChatList {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatOutgoingCallComponent } from \"./cometchat-outgoing-call/cometchat-outgoing-call.component\";\nimport { CometChatList } from \"../../CometChatList/cometchat-list.module\";\nimport \"@cometchat/uikit-elements\";\n@NgModule({\n declarations: [CometChatOutgoingCallComponent],\n imports: [\n CommonModule,\nCometChatList,\n ],\n exports: [CometChatOutgoingCallComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatOutgoingCall {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatOngoingCallComponent } from \"./cometchat-ongoing-call/cometchat-ongoing-call.component\";\nimport { CometChatList } from \"../../CometChatList/cometchat-list.module\";\n\n@NgModule({\n declarations: [CometChatOngoingCallComponent],\n imports: [\n CommonModule,\nCometChatList,\n ],\n exports: [CometChatOngoingCallComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatOngoingCall {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatCallButtonsComponent } from \"./cometchat-call-buttons/cometchat-call-buttons.component\";\nimport { CometChatList } from \"../../CometChatList/cometchat-list.module\";\nimport \"@cometchat/uikit-elements\";\nimport { CometChatOutgoingCall } from \"../CometChatOutgoingCall/cometchat-outgoing-call.module\";\nimport { CometChatOngoingCall } from \"../CometChatOngoingCall/cometchat-ongoing-call.module\";\n@NgModule({\n declarations: [CometChatCallButtonsComponent],\n imports: [\n CommonModule,\nCometChatOutgoingCall,\nCometChatOngoingCall\n ],\n exports: [CometChatCallButtonsComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatCallButtons {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';\nimport { CometChat } from '@cometchat/chat-sdk-javascript';\nimport { StorageUtils, IncomingCallStyle, CometChatSoundManager, CometChatUIKitCalls, CallScreenConfiguration } from \"@cometchat/uikit-shared\";\nimport { CallscreenStyle } from '@cometchat/uikit-elements'\nimport { AvatarStyle, IconStyle, ListItemStyle } from '@cometchat/uikit-elements'\nimport { Subscription } from 'rxjs';\nimport { CometChatThemeService } from '../../../CometChatTheme.service';\nimport { localize, CometChatUIKitConstants, fontHelper, CometChatCallEvents, CometChatMessageEvents, MessageStatus, CometChatLocalize } from '@cometchat/uikit-resources';\n/**\n*\n* CometChatIncomingCallComponent is a component which shows outgoing call screen for default audio and video call.\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-incoming-call\",\n templateUrl: \"./cometchat-incoming-call.component.html\",\n styleUrls: [\"./cometchat-incoming-call.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CometChatIncomingCallComponent implements OnInit, OnChanges {\n @Input() call!: CometChat.Call | null;\n @Input() disableSoundForCalls: boolean = false;\n @Input() customSoundForCalls!: string;\n @Input() onAccept!: (call: CometChat.Call) => void;\n @Input() onDecline!: (call: CometChat.Call) => void;\n @Input() acceptButtonText: string = localize(\"ACCEPT\");\n @Input() declineButtonText: string = localize(\"DECLINE\");\n @Input() subtitleView!: TemplateRef<any>;\n @Input() ongoingCallConfiguration: CallScreenConfiguration = new CallScreenConfiguration({})\n @Input() onError: (error: CometChat.CometChatException) => void = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n @Input() listItemStyle: ListItemStyle = {\n height: \"100%\",\n width: \"100%\",\n background: \"\",\n activeBackground: \"\",\n border: \"\",\n };\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"38px\",\n height: \"38px\",\n };\n @Input() incomingCallStyle: IncomingCallStyle = {\n width: \"fit-content\",\n height: \"fit-content\",\n };\n public incomingcallListenerId: string = \"incomingcall_\" + new Date().getTime();\n subtitleText: string = localize(\"INCOMING_CALL\")\n buttonStyle: any = {\n height: \"100%\",\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: \"8px 28px\"\n }\n ongoingCallStyle: CallscreenStyle = {}\n showOngoingCall: boolean = false;\n showIncomingCallScreen: boolean = false\n sessionId: string = \"\";\n acceptButtonStyle: any = {}\n declineButtonStyle: any = {}\n public loggedInUser: CometChat.User | null = null;\n iconStyle: IconStyle = {\n height: \"16px\",\n width: \"16px\",\n iconTint: \"RGBA(20, 20, 20, 0.68)\"\n }\n activeCall: CometChat.Call | null = null;\n ccCallEnded!: Subscription;\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) { }\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"call\"] && changes[\"call\"]?.currentValue) {\n this.showCall(this.call!)\n }\n }\n playAudio() {\n if (this.customSoundForCalls) {\n CometChatSoundManager.play(CometChatSoundManager.Sound.incomingCall, this.customSoundForCalls)\n }\n else {\n CometChatSoundManager.play(CometChatSoundManager.Sound.incomingCall)\n }\n }\n isCallActive(call: CometChat.Call) {\n let isCurrentCall: boolean = false\n if (StorageUtils.getItem(CometChatUIKitConstants.calls.activecall)) {\n let oldCall: any = StorageUtils.getItem(CometChatUIKitConstants.calls.activecall)\n if (oldCall && oldCall.sessionId == call.getSessionId()) {\n isCurrentCall = true\n }\n else {\n isCurrentCall = false\n }\n }\n else {\n isCurrentCall = false\n }\n return isCurrentCall\n }\n\n showCall(call: CometChat.Call) {\n if (!this.isCallActive(call) && this.loggedInUser?.getUid() != call?.getSender()?.getUid() && !this.call) {\n if (!this.disableSoundForCalls) {\n setTimeout(() => {\n this.playAudio()\n }, 100);\n }\n this.call = call;\n this.showIncomingCallScreen = true;\n this.ref.detectChanges();\n }\n else {\n if (this.loggedInUser?.getUid() == call?.getSender()?.getUid()) {\n CometChatSoundManager.pause();\n return;\n }\n CometChatSoundManager.pause();\n this.rejectIncomingCall(CometChatUIKitConstants.calls.busy, call);\n }\n }\n attachListeners() {\n CometChat.addCallListener(\n this.incomingcallListenerId,\n new CometChat.CallListener({\n onIncomingCallReceived: (call: CometChat.Call) => {\n if (!CometChat.getActiveCall() && !StorageUtils.getItem(CometChatUIKitConstants.calls.activecall)) {\n this.showCall(call);\n this.ref.detectChanges()\n }\n else {\n CometChatSoundManager.pause();\n this.rejectIncomingCall(CometChatUIKitConstants.calls.busy, call)\n }\n },\n onIncomingCallCancelled: (call: CometChat.Call) => {\n CometChatSoundManager.pause()\n this.call = null;\n this.ref.detectChanges()\n },\n onOutgoingCallRejected: (call: CometChat.Call) => {\n if (this.call && call.getReceiverId() == call.getReceiverId() && this.showIncomingCallScreen) {\n CometChatSoundManager.pause();\n this.closeCallScreen();\n }\n\n },\n onOutgoingCallAccepted: (call: CometChat.Call) => {\n if (this.call && call.getReceiverId() == call.getReceiverId() && this.showIncomingCallScreen) {\n CometChatSoundManager.pause();\n this.closeCallScreen();\n }\n },\n })\n );\n }\n removeListener() {\n CometChat.removeCallListener(this.incomingcallListenerId);\n }\n localStorageChange = (event: any): any => {\n if (event?.key !== CometChatUIKitConstants.calls.activecall) {\n return false;\n }\n if (event.newValue || event.oldValue) {\n let call;\n if (event.newValue) {\n call = JSON.parse(event.newValue);\n } else if (event.oldValue) {\n call = JSON.parse(event.oldValue);\n }\n if (this.call?.getSessionId() === call?.sessionId) {\n this.showIncomingCallScreen = false;\n CometChatSoundManager.pause();\n this.call = null;\n this.ref.detectChanges();\n }\n }\n return\n };\n ngOnInit(): void {\n CometChat.getLoggedinUser().then((user: CometChat.User | null) => {\n this.loggedInUser = user\n }).catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n StorageUtils.attachChangeDetection(this.localStorageChange)\n this.attachListeners()\n this.setThemeStyle()\n this.ccCallEnded = CometChatCallEvents.ccCallEnded.subscribe((call: CometChat.Call) => {\n this.closeCallScreen()\n })\n }\n closeCallScreen() {\n this.showOngoingCall = false\n this.activeCall = null\n this.call = null\n this.sessionId = \"\"\n this.ref.detectChanges()\n }\n ngOnDestroy() {\n StorageUtils.detachChangeDetection(this.localStorageChange)\n this.removeListener()\n this.ccCallEnded?.unsubscribe()\n }\n setOngoingCallStyle = () => {\n let defaultStyle = new CallscreenStyle({\n maxHeight: \"100%\",\n maxWidth: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"#1c2226\",\n minHeight: \"400px\",\n minWidth: \"400px\",\n minimizeIconTint: this.themeService.theme.palette.getAccent900(),\n maximizeIconTint: this.themeService.theme.palette.getAccent900(),\n })\n this.ongoingCallStyle = { ...defaultStyle, ...this.ongoingCallStyle }\n }\n getCallTypeIcon() {\n if (this.call?.getType() == CometChatUIKitConstants.MessageTypes.audio) {\n return \"assets/Audio-Call.svg\"\n }\n else {\n return \"assets/Video-call.svg\"\n }\n }\n acceptIncomingCall() {\n CometChatSoundManager.pause()\n if (this.onAccept && this.call) {\n this.onAccept(this.call)\n }\n\n else {\n this.checkForActiveCallAndEndCall()\n .then((response) => {\n CometChat.acceptCall(this.call!.getSessionId())\n .then((call) => {\n CometChatCallEvents.ccCallAccepted.next(call)\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, call)\n this.showOngoingCall = true;\n this.activeCall = call;\n this.sessionId = call?.getSessionId();\n this.showIncomingCallScreen = false;\n this.call = call;\n this.ref.detectChanges();\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error)\n }\n });\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error)\n }\n });\n }\n }\n checkForActiveCallAndEndCall = () => {\n let call: CometChat.Call = CometChat.getActiveCall()\n return new Promise((resolve, reject) => {\n if (!call) {\n return resolve({ success: true });\n }\n let sessionID = call?.getSessionId();\n CometChat.endCall(sessionID)\n .then((response) => {\n return resolve(response);\n })\n .catch((error) => {\n return reject(error);\n });\n });\n };\n rejectIncomingCall(reason: string = CometChatUIKitConstants.calls.rejected, call?: CometChat.Call) {\n let currentCall = call ?? this.call;\n CometChatSoundManager.pause()\n if (this.onDecline && currentCall) {\n this.onDecline(currentCall)\n }\n else {\n CometChat.rejectCall(currentCall!.getSessionId(), reason)\n .then((rejectedCall) => {\n CometChatSoundManager.pause()\n CometChatCallEvents.ccCallRejected.next(rejectedCall)\n if (!call) {\n this.showOngoingCall = false\n this.activeCall = null\n this.call = null;\n this.ref.detectChanges()\n }\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error)\n }\n });\n }\n }\n\n getCallBuilder(): typeof CometChatUIKitCalls.CallSettings | undefined {\n let audioOnlyCall: boolean = this.activeCall?.getType() == CometChatUIKitConstants.MessageTypes.audio ? true : false;\n const builder =\n this.ongoingCallConfiguration?.callSettingsBuilder?.(this.activeCall) ||\n new CometChatUIKitCalls.CallSettingsBuilder().enableDefaultLayout(true).setIsAudioOnlyCall(audioOnlyCall); \n if (this.activeCall?.getType() === CometChatUIKitConstants.calls.meeting) {\n return undefined;\n }\n \n builder.setCallListener(\n new CometChatUIKitCalls.OngoingCallListener({\n onCallEnded: () => {\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, null);\n if (this.call?.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {\n CometChatUIKitCalls.endSession();\n CometChat.clearActiveCall();\n this.closeCallScreen();\n CometChatCallEvents.ccCallEnded.next({} as CometChat.Call)\n }\n\n },\n onCallEndButtonPressed: () => {\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, null);\n if (this.call?.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {\n CometChat.endCall(this.sessionId).then((call: CometChat.Call) => {\n CometChatUIKitCalls.endSession();\n CometChatCallEvents.ccCallEnded.next(call);\n this.closeCallScreen()\n })\n .catch((err: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(err)\n }\n\n })\n }\n else {\n this.closeCallScreen()\n }\n\n\n },\n onError: (error: any) => {\n console.log(\"Error :\", error);\n },\n })\n )\n \n return builder.build();\n }\n setThemeStyle() {\n this.setincomingCallStyle()\n this.setAvatarStyle()\n this.setOngoingCallStyle()\n this.iconStyle.iconTint = this.incomingCallStyle.subtitleTextColor\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"100%\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: \"transparent\",\n borderRadius: \"0\",\n titleFont: this.incomingCallStyle.titleTextFont,\n titleColor: this.incomingCallStyle.titleTextColor,\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n hoverBackground: \"transparent\"\n })\n this.listItemStyle = { ...defaultStyle, ...this.listItemStyle }\n }\n setincomingCallStyle() {\n let defaultStyle: IncomingCallStyle = new IncomingCallStyle({\n width: \"fit-content\",\n height: \"fit-content\",\n background: this.themeService.theme.palette.getAccent800(\"light\"),\n border: \"none\",\n borderRadius: \"8px\",\n titleTextFont: fontHelper(this.themeService.theme.typography.title2),\n titleTextColor: this.themeService.theme.palette.getAccent(\"dark\"),\n subtitleTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n subtitleTextColor: this.themeService.theme.palette.getAccent800(\"dark\"),\n acceptButtonTextFont: fontHelper(this.themeService.theme.typography.text2),\n acceptButtonTextColor: this.themeService.theme.palette.getAccent(\"dark\"),\n acceptButtonBackground: this.themeService.theme.palette.getPrimary(),\n acceptButtonBorderRadius: \"8px\",\n acceptButtonBorder: \"none\",\n declineButtonTextFont: fontHelper(this.themeService.theme.typography.text2),\n declineButtonTextColor: this.themeService.theme.palette.getAccent(\"dark\"),\n declineButtonBackground: this.themeService.theme.palette.getError(),\n declineButtonBorderRadius: \"8px\",\n declineButtonBorder: \"none\",\n })\n this.incomingCallStyle = { ...defaultStyle, ...this.incomingCallStyle }\n this.setListItemStyle();\n this.acceptButtonStyle = {\n border: this.incomingCallStyle.acceptButtonBorder,\n borderRadius: this.incomingCallStyle.acceptButtonBorderRadius,\n background: this.incomingCallStyle.acceptButtonBackground,\n buttonTextFont: this.incomingCallStyle.acceptButtonTextFont,\n buttonTextColor: this.incomingCallStyle.acceptButtonTextColor,\n ...this.buttonStyle\n }\n this.declineButtonStyle = {\n border: this.incomingCallStyle.declineButtonBorder,\n borderRadius: this.incomingCallStyle.declineButtonBorderRadius,\n background: this.incomingCallStyle.declineButtonBackground,\n buttonTextFont: this.incomingCallStyle.declineButtonTextFont,\n buttonTextColor: this.incomingCallStyle.declineButtonTextColor,\n ...this.buttonStyle\n }\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"16px\",\n width: \"38px\",\n height: \"38px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n })\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle }\n }\n subtitleStyle = () => {\n return {\n textFont: this.incomingCallStyle.subtitleTextFont,\n textColor: this.incomingCallStyle.subtitleTextColor\n }\n }\n wrapperStyle = () => {\n return {\n height: this.incomingCallStyle.height,\n width: this.incomingCallStyle.width,\n background: this.incomingCallStyle.background,\n border: this.incomingCallStyle.border,\n borderRadius: this.incomingCallStyle.borderRadius,\n padding: \"8px\"\n }\n }\n}\n","<div class=\"cc-incoming-call__wrapper\" [ngStyle]=\"wrapperStyle()\" *ngIf=\"call && showIncomingCallScreen\">\n <div class=\"cc-incoming-call__listitem\">\n <cometchat-list-item [title]=\"call.getSender().getName()\"\n [listItemStyle]=\"listItemStyle\"\n [hideSeparator]=\"true\" >\n <div slot=\"subtitleView\" class=\"cc-incoming-call__subtitle-view\" *ngIf=\"subtitleView;else subtitle\">\n <ng-container *ngTemplateOutlet=\"subtitleView\">\n </ng-container>\n </div>\n <ng-template #subtitle>\n <div slot=\"subtitleView\" class=\"cc-incoming-call__subtitle-view\">\n <div class=\"cc-call__icon\">\n <cometchat-icon [iconStyle]=\"iconStyle\" [URL]=\"getCallTypeIcon()\"></cometchat-icon>\n </div>\n <cometchat-label class=\"cc-call__type\" [text]=\"subtitleText\" [labelStyle]=\"subtitleStyle()\">\n\n </cometchat-label>\n </div>\n </ng-template>\n <div slot=\"tailView\" class=\"cc-incoming-call__tail-view\">\n <div class=\"tail__view\">\n <div class=\"cc-incoming-call__avatar\">\n <cometchat-avatar [avatarStyle]=\"avatarStyle\" [image]=\"call.getSender().getAvatar()\" [name]=\"call.getSender().getName()\">\n\n </cometchat-avatar>\n </div>\n </div>\n </div>\n </cometchat-list-item>\n </div>\n <div class=\"cc-incoming-call-buttons\">\n <cometchat-button (cc-button-clicked)=\"rejectIncomingCall()\" [buttonStyle]=\"declineButtonStyle\" [text]=\"declineButtonText\"></cometchat-button>\n <cometchat-button (cc-button-clicked)=\"acceptIncomingCall()\" [buttonStyle]=\"acceptButtonStyle\" [text]=\"acceptButtonText\" ></cometchat-button>\n </div>\n</div>\n<cometchat-ongoing-call *ngIf=\"showOngoingCall && activeCall && !showIncomingCallScreen\"\n [maximizeIconURL]=\"ongoingCallConfiguration.maximizeIconURL\"\n [minimizeIconURL]=\"ongoingCallConfiguration.minimizeIconURL\"\n [ongoingCallStyle]=\"ongoingCallConfiguration.ongoingCallStyle || ongoingCallStyle\" [sessionID]=\"sessionId\"\n [callSettingsBuilder]=\"getCallBuilder()!\"></cometchat-ongoing-call>","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatIncomingCallComponent } from \"./cometchat-incoming-call/cometchat-incoming-call.component\";\nimport { CometChatList } from \"../../CometChatList/cometchat-list.module\";\nimport \"@cometchat/uikit-elements\";\nimport { CometChatOngoingCall } from \"../CometChatOngoingCall/cometchat-ongoing-call.module\";\n@NgModule({\n declarations: [CometChatIncomingCallComponent],\n imports: [\n CommonModule,\nCometChatList,\nCometChatOngoingCall\n ],\n exports: [CometChatIncomingCallComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatIncomingCall {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnInit,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChildren,\n} from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport {\n AvatarStyle,\n BaseStyle,\n CheckboxStyle,\n ListItemStyle,\n} from \"@cometchat/uikit-elements\";\nimport { Subscription } from \"rxjs\";\nimport {\n CometChatOption,\n SelectionMode,\n localize,\n TitleAlignment,\n States,\n CometChatUserEvents,\n CometChatUIKitConstants,\n fontHelper,\n} from \"@cometchat/uikit-resources\";\nimport { UsersStyle, ListStyle, SelectedUserPreviewStyle } from \"@cometchat/uikit-shared\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { CometChatException } from \"../../Shared/Utils/ComeChatException\";\nimport { UserPresencePlacement } from \"@cometchat/uikit-resources\";\nimport { MessageUtils } from \"../../Shared/Utils/MessageUtils\";\n@Component({\n selector: \"cometchat-users\",\n templateUrl: \"./cometchat-users.component.html\",\n styleUrls: [\"./cometchat-users.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatUsersComponent implements OnInit {\n @Input() usersRequestBuilder!: CometChat.UsersRequestBuilder;\n @Input() searchRequestBuilder!: CometChat.UsersRequestBuilder;\n @Input() subtitleView!: TemplateRef<any>;\n @Input() disableUsersPresence: boolean = false;\n @Input() listItemView!: TemplateRef<any>;\n @Input() menu!: TemplateRef<any>;\n @Input() options!: ((member: CometChat.User) => CometChatOption[]) | null;\n @Input() activeUser!: CometChat.User | null;\n @Input() hideSeparator: boolean = false;\n @Input() searchPlaceholder: string = localize(\"SEARCH\");\n @Input() hideError: boolean = false;\n @Input() selectionMode: SelectionMode = SelectionMode.none;\n @Input() searchIconURL: string = \"assets/search.svg\";\n @Input() hideSearch: boolean = false;\n @Input() title: string = localize(\"USERS\");\n @Input() onError?: (error: CometChat.CometChatException) => void = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() onSelect!: (user: CometChat.User, selected: boolean) => void;\n @Input() errorStateView!: TemplateRef<any>;\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() showSectionHeader: boolean = true;\n @Input() sectionHeaderField: string = \"name\";\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() emptyStateText: string = localize(\"NO_USERS_FOUND\");\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() titleAlignment: TitleAlignment = TitleAlignment.left;\n @Input() usersStyle: UsersStyle = {\n width: \"100%\",\n height: \"100%\",\n separatorColor: \"rgb(222 222 222 / 46%)\",\n };\n @Input() listItemStyle: ListItemStyle = {\n height: \"100%\",\n width: \"100%\",\n };\n @Input() statusIndicatorStyle: BaseStyle = {\n height: \"10px\",\n width: \"10px\",\n borderRadius: \"16px\",\n };\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"28px\",\n height: \"28px\",\n };\n @Input() selectedUserPreviewStyle: SelectedUserPreviewStyle = {};\n @Input() showSelectedUsersPreview: boolean = false;\n \n @Input() onItemClick!: (user: CometChat.User) => void;\n @Input() searchKeyword: string = \"\";\n @Input() onEmpty?: () => void;\n @Input() userPresencePlacement: UserPresencePlacement =\n UserPresencePlacement.bottom;\n @Input() disableLoadingState: boolean = false;\n @ViewChildren('checkboxElement', { read: ElementRef }) checkboxes!: QueryList<ElementRef>;\n @ViewChildren('radioElement', { read: ElementRef }) radios!: QueryList<ElementRef>;\n fetchingUsers: boolean = false;\n fetchTimeOut: any;\n userChecked: string = \"\";\n listStyle: ListStyle = {};\n public usersRequest: any;\n public state: States = States.loading;\n public timeout: any;\n selectionmodeEnum: typeof SelectionMode = SelectionMode;\n public usersList: CometChat.User[] = [];\n public limit: number = 30;\n public userListenerId: string = \"userlist_\" + new Date().getTime();\n loggedInUser!: CometChat.User | null;\n requestBuilder!: CometChat.UsersRequest;\n firstReload: boolean = false;\n public connectionListenerId = \"connection_\" + new Date().getTime();\n public previousSearchKeyword = \"\";\n public isWebsocketReconnected: boolean = false;\n public selectedUsers: {[uid: string]: CometChat.User} = {};\n checkboxStyle: CheckboxStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"4px\",\n checkedBackgroundColor: \"#2196F3\",\n uncheckedBackgroundColor: \"#ccc\"\n }\n\n\n removeMemberButtonStyle = {\n height: \"16px\",\n width: \"16px\",\n iconHeight: \"16px\",\n iconWidth:\"16px\",\n border: \"none\",\n borderRadius: \"50%\",\n background: \"transparent\",\n buttonIconTint: \"black\"\n };\n selectedUsersPreviewWrapper = {}\n\n // Bulk selection properties\n private lastSelectedIndex: number = -1;\n private isShiftPressed: boolean = false;\n selectedUserPillStyle = {};\n\n /**\n * Events\n */\n ccUserBlocked!: Subscription;\n ccUserUnBlocked!: Subscription;\n onScrolledToBottom: any = null;\n constructor(\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) {\n this.state = States.loading;\n }\n ngOnInit(): void {\n this.firstReload = true;\n this.state = States.loading;\n this.isWebsocketReconnected = false;\n\n this.setThemeStyle();\n this.subscribeToEvents();\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.setRequestBuilder();\n if (!this.fetchingUsers) {\n this.fetchNextUsersList();\n }\n this.attachListeners();\n this.loggedInUser = user;\n\n this.onScrolledToBottom = this.fetchNextUsersList;\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"searchKeyword\"]) {\n this.fetchUsersOnSearchKeyWordChange();\n }\n }\n\n fetchUsersOnSearchKeyWordChange = () => {\n if (this.fetchingUsers) {\n clearTimeout(this.fetchTimeOut);\n this.fetchTimeOut = setTimeout(() => {\n this.searchForUser();\n }, 800);\n } else {\n this.searchForUser();\n }\n };\n\n searchForUser = () => {\n this.setRequestBuilder();\n if (!this.disableLoadingState) {\n this.usersList = [];\n }\n this.fetchNextUsersList();\n };\n\n onUserSelected(user: CometChat.User, event: any) {\n let selected: boolean = event?.detail?.checked;\n if (this.onSelect) {\n this.onSelect(user, selected);\n }\n }\n fetchNewUsers() {\n this.setRequestBuilder();\n let state = this.firstReload ? States.loading : States.loaded;\n this.fetchNextUsersList(state);\n }\n // subscribe to global events\n subscribeToEvents() {\n this.ccUserBlocked = CometChatUserEvents.ccUserBlocked.subscribe(\n (user: CometChat.User) => {\n if (this.activeUser && user.getUid() == this.activeUser.getUid()) {\n this.activeUser = user;\n this.updateUser(user);\n this.ref.detectChanges();\n }\n }\n );\n this.ccUserUnBlocked = CometChatUserEvents.ccUserUnblocked.subscribe(\n (user: CometChat.User) => {\n if (this.activeUser && user.getUid() == this.activeUser.getUid()) {\n this.activeUser = user;\n this.updateUser(user);\n this.ref.detectChanges();\n }\n }\n );\n }\n unsubscribeToEvents() {\n this.ccUserBlocked?.unsubscribe();\n this.ccUserUnBlocked?.unsubscribe();\n }\n ngOnDestroy() {\n this.usersRequest = null;\n this.ref.detach();\n this.removeListener();\n this.state = States.loaded;\n this.unsubscribeToEvents();\n }\n isUserSelected(user: CometChat.User) {\n return user.getUid() === this.userChecked \n || this.selectedUsers?.[user.getUid()];\n }\n /**\n * @param {CometChat.User} user\n */\n onClick = (user: CometChat.User) => {\n if (this.onItemClick) {\n this.onItemClick(user);\n }\n this.onRowClicked(user.getUid());\n };\n\n onRowClicked(uid: string) {\n const userCheckbox = this.checkboxes.find(checkboxRef => uid === checkboxRef.nativeElement.getAttribute('data-uid'));\n const userRadio = this.radios.find(radioRef => uid === radioRef.nativeElement.getAttribute('data-uid'));\n let input: HTMLInputElement | null = null;\n\n if (userCheckbox && this.selectionMode === this.selectionmodeEnum.multiple) {\n const root: any = userCheckbox.nativeElement.shadowRoot || userCheckbox.nativeElement;\n input = root.querySelector('input[type=\"checkbox\"]');\n }\n else if (userRadio && this.selectionMode === this.selectionmodeEnum.single) {\n const root: any = userRadio.nativeElement.shadowRoot || userRadio.nativeElement;\n input = root.querySelector('input[type=\"radio\"]');\n }\n\n if (input) input.click();\n }\n\n /**\n * @param {CometChat.User} user\n */\n getActiveUser = (user: CometChat.User) => {\n if (this.selectionMode == SelectionMode.none || !this.selectionMode) {\n if (user.getUid() == this.activeUser?.getUid()) {\n return true;\n } else {\n return false;\n }\n } else return false;\n };\n /**\n * @param {CometChat.User} user\n */\n getStatusIndicatorColor = (user: CometChat.User) => {\n let userStatusVisibility = new MessageUtils().getUserStatusVisibility(user) || this.disableUsersPresence;\n\n if (!userStatusVisibility) {\n return (\n this.usersStyle?.onlineStatusColor ??\n this.themeService?.theme.palette.getSuccess()\n );\n }\n return null;\n };\n \n /**\n * @param {CometChat.User} user\n */\n getStatusIndicatorStyle = (user: CometChat.User) => {\n let userStatusVisibility = new MessageUtils().getUserStatusVisibility(user) || this.disableUsersPresence;\n if(!userStatusVisibility){\n return(\n this.statusIndicatorStyle\n )\n }\n return null;\n }\n /**\n * @param {CometChat.User} user\n */\n updateUser = (user: CometChat.User) => {\n let userlist = [...this.usersList];\n //search for user\n let userKey = userlist.findIndex(\n (u: CometChat.User, k) => u.getUid() == user.getUid()\n );\n //if found in the list, update user object\n if (userKey > -1) {\n userlist.splice(userKey, 1, user);\n this.usersList = [...userlist];\n this.ref.detectChanges();\n }\n };\n attachConnectionListeners() {\n CometChat.addConnectionListener(\n this.connectionListenerId,\n new CometChat.ConnectionListener({\n onConnected: () => {\n this.isWebsocketReconnected = true\n console.log(\"ConnectionListener =>connected\");\n this.fetchNewUsers();\n },\n inConnecting: () => {\n console.log(\"ConnectionListener => In connecting\");\n },\n onDisconnected: () => {\n this.isWebsocketReconnected = false;\n console.log(\"ConnectionListener => On Disconnected\");\n },\n })\n );\n }\n attachListeners() {\n this.state = States.loading;\n this.ref.detectChanges();\n //Attaching User Listeners to dynamilcally update when a user comes online and goes offline\n CometChat.addUserListener(\n this.userListenerId,\n new CometChat.UserListener({\n onUserOnline: (onlineUser: CometChat.User) => {\n /* when someuser/friend comes online, user will be received here */\n this.updateUser(onlineUser);\n },\n onUserOffline: (offlineUser: CometChat.User) => {\n /* when someuser/friend went offline, user will be received here */\n this.updateUser(offlineUser);\n },\n })\n );\n }\n removeListener() {\n CometChat.removeUserListener(this.userListenerId);\n this.userListenerId = \"\";\n CometChat.removeConnectionListener(this.connectionListenerId);\n }\n addMembersToList = (user: CometChat.User, event: any) => {\n let selected: boolean = event?.detail?.checked;\n const currentIndex = this.usersList.findIndex(u => u.getUid() === user.getUid());\n \n // Check if shift key was pressed for bulk selection\n if (this.isShiftPressed && this.lastSelectedIndex !== -1 && currentIndex !== -1) {\n this.handleBulkSelection(currentIndex, selected);\n } else {\n // Regular single selection\n if(this.selectionMode === this.selectionmodeEnum.single){\n this.userChecked = user.getUid();\n }\n \n if (this.onSelect) {\n this.onSelect(user, selected);\n }\n \n if (selected) {\n this.selectedUsers[user.getUid()] = user;\n } else {\n delete this.selectedUsers[user.getUid()];\n }\n this.lastSelectedIndex = currentIndex;\n }\n \n this.ref.detectChanges(); \n };\n getUserNameStyle(){\n return {\n font: this.selectedUserPreviewStyle.textFont || fontHelper(this.themeService.theme.typography.name),\n color: this.selectedUserPreviewStyle.textColor || this.themeService.theme.palette.getAccent(),\n }\n }\n\n /**\n * Handle checkbox click to detect shift key\n */\n onCheckboxClick = (user: CometChat.User, event: Event) => {\n this.isShiftPressed = (event as MouseEvent).shiftKey;\n };\n\n /**\n * Handle checkbox changed event \n */\n onCheckboxChanged = (user: CometChat.User, event: any) => {\n this.addMembersToList(user, event);\n // Reset shift flag after processing\n this.isShiftPressed = false;\n };\n\n /**\n * Handle keyboard events for accessibility\n */\n onKeyDown = (event: KeyboardEvent) => {\n // Track shift key state for keyboard navigation\n if (event.key === 'Shift') {\n this.isShiftPressed = true;\n }\n };\n\n /**\n * Handle keyboard events for accessibility \n */\n onKeyUp = (event: KeyboardEvent) => {\n if (event.key === 'Shift') {\n this.isShiftPressed = false;\n }\n };\n\n /**\n * Handle bulk selection when shift+click is used\n */\n private handleBulkSelection(currentIndex: number, selected: boolean): void {\n const startIndex = Math.min(this.lastSelectedIndex, currentIndex);\n const endIndex = Math.max(this.lastSelectedIndex, currentIndex);\n const shouldSelect = selected;\n \n // Apply selection/deselection to all users in range\n for (let i = startIndex; i <= endIndex; i++) {\n const user = this.usersList[i];\n if (user) {\n const wasSelected = !!this.selectedUsers[user.getUid()];\n \n if (shouldSelect && !wasSelected) {\n this.selectedUsers[user.getUid()] = user;\n if (this.onSelect) {\n this.onSelect(user, true);\n }\n this.updateCheckboxState(user.getUid(), true);\n } else if (!shouldSelect && wasSelected) {\n delete this.selectedUsers[user.getUid()];\n if (this.onSelect) {\n this.onSelect(user, false);\n }\n this.updateCheckboxState(user.getUid(), false);\n }\n }\n }\n this.lastSelectedIndex = currentIndex;\n }\n\n /**\n * Update checkbox state programmatically\n */\n private updateCheckboxState(userId: string, checked: boolean): void {\n setTimeout(() => {\n if (this.checkboxes) {\n const userCheckbox = this.checkboxes.find(checkboxRef => \n userId === checkboxRef.nativeElement.getAttribute('data-uid')\n );\n \n if (userCheckbox) {\n const root: any = userCheckbox.nativeElement.shadowRoot || userCheckbox.nativeElement;\n const input: HTMLInputElement = root.querySelector('input[type=\"checkbox\"]');\n \n if (input && input.checked !== checked) {\n input.checked = checked;\n const changeEvent = new Event('change', { bubbles: true });\n input.dispatchEvent(changeEvent);\n }\n }\n }\n }, 0);\n }\n\n /**\n * Get array of selected users for preview\n */\n getSelectedUsersArray(): CometChat.User[] {\n return Object.values(this.selectedUsers);\n }\n\n /**\n * Get count of selected users\n */\n getSelectedUsersCount(): number {\n return Object.keys(this.selectedUsers).length;\n }\n\n /**\n * Remove user from selection by triggering checkbox click\n */\n removeSelectedUser(user: CometChat.User) {\n const userCheckbox = this.checkboxes.find(checkboxRef => \n user.getUid() === checkboxRef.nativeElement.getAttribute('data-uid')\n );\n\n if (userCheckbox) {\n const root: any = userCheckbox.nativeElement.shadowRoot || userCheckbox.nativeElement;\n const input = root.querySelector('input[type=\"checkbox\"]');\n \n if (input) {\n input.click();\n }\n }\n }\n\n /**\n * Track by function for ngFor performance\n */\n trackByUserId(index: number, user: CometChat.User): string {\n return user.getUid();\n }\n fetchNextUsersList = (state: States = States.loading) => {\n this.onScrolledToBottom = null;\n if (!(this.disableLoadingState && state == States.loading)) {\n this.state = state;\n }\n if (\n this.requestBuilder &&\n (this.requestBuilder as any).pagination &&\n ((this.requestBuilder as any).pagination.current_page == 0 ||\n (this.requestBuilder as any).pagination.current_page !=\n (this.requestBuilder as any).pagination.total_pages)\n ) {\n this.fetchingUsers = true;\n this.onScrolledToBottom = this.fetchNextUsersList;\n this.ref.detectChanges();\n try {\n this.requestBuilder.fetchNext().then(\n (userList: CometChat.User[]) => {\n console.log(userList)\n if (userList.length <= 0) {\n if (this.onEmpty) {\n this.onEmpty();\n this.previousSearchKeyword = \"\";\n }\n }\n if (\n userList.length <= 0 &&\n (this.usersList?.length <= 0 || this.disableLoadingState)\n ) {\n this.state = States.empty;\n this.ref.detectChanges();\n } else {\n if (!this.disableLoadingState) {\n if (this.isWebsocketReconnected) {\n this.usersList = userList;\n this.isWebsocketReconnected = false;\n }\n else {\n this.usersList = [...this.usersList, ...userList];\n\n }\n } else {\n if (\n this.searchKeyword != this.previousSearchKeyword ||\n [0, 1].includes(\n (this.requestBuilder as any).pagination.current_page\n )\n ) {\n this.usersList = userList;\n } else {\n this.usersList = [...this.usersList, ...userList];\n }\n }\n this.state = States.loaded;\n\n this.ref.detectChanges();\n }\n if (this.firstReload) {\n this.attachConnectionListeners();\n this.firstReload = false;\n }\n this.fetchingUsers = false;\n this.previousSearchKeyword = this.searchKeyword;\n },\n (error: any) => {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n this.state = States.error;\n this.fetchingUsers = false;\n this.ref.detectChanges();\n }\n );\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n if (this.usersList?.length <= 0) {\n this.state = States.error;\n this.ref.detectChanges();\n }\n this.fetchingUsers = false;\n }\n }\n };\n\n setRequestBuilder() {\n if (!this.searchKeyword) {\n this.previousSearchKeyword = \"\";\n }\n if (this.searchRequestBuilder && this.searchKeyword) {\n this.requestBuilder = this.searchRequestBuilder\n .setSearchKeyword(this.searchKeyword)\n .build();\n } else if (this.usersRequestBuilder) {\n this.requestBuilder = this.usersRequestBuilder\n .setSearchKeyword(this.searchKeyword)\n .build();\n } else {\n this.requestBuilder = new CometChat.UsersRequestBuilder()\n .setLimit(this.limit)\n .setSearchKeyword(this.searchKeyword)\n .build();\n }\n return this.requestBuilder;\n }\n /**\n * @param {string} key\n */\n onSearch = (key: string) => {\n try {\n this.searchKeyword = key;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.setRequestBuilder();\n if (!this.disableLoadingState) {\n this.usersList = [];\n this.ref.detectChanges();\n }\n if (!this.fetchingUsers || (this.fetchingUsers && key == \"\")) {\n this.usersList = [];\n this.fetchNextUsersList();\n }\n }, 500);\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n };\n setThemeStyle() {\n this.setUsersStyle();\n this.setListItemStyle();\n this.setAvatarStyle();\n this.setStatusStyle();\n this.setSelectedUserStyle();\n\n this.listStyle = {\n titleTextFont: this.usersStyle.titleTextFont,\n titleTextColor: this.usersStyle.titleTextColor,\n emptyStateTextFont: this.usersStyle.emptyStateTextFont,\n emptyStateTextColor: this.usersStyle.emptyStateTextColor,\n errorStateTextFont: this.usersStyle.errorStateTextFont,\n errorStateTextColor: this.usersStyle.errorStateTextColor,\n loadingIconTint: this.usersStyle.loadingIconTint,\n separatorColor: this.usersStyle.separatorColor,\n searchIconTint: this.usersStyle.searchIconTint,\n searchBorder: this.usersStyle.searchBorder,\n searchBorderRadius: this.usersStyle.searchBorderRadius,\n searchBackground: this.usersStyle.searchBackground,\n searchPlaceholderTextFont: this.usersStyle.searchPlaceholderTextFont,\n searchPlaceholderTextColor: this.usersStyle.searchPlaceholderTextColor,\n searchTextFont: this.usersStyle.searchTextFont,\n searchTextColor: this.usersStyle.searchTextColor,\n sectionHeaderTextColor: this.usersStyle.sectionHeaderTextColor,\n sectionHeaderTextFont: this.usersStyle.sectionHeaderTextFont,\n };\n this.ref.detectChanges();\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: this.themeService.theme.palette.getAccent100(),\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n hoverBackground: this.themeService.theme.palette.getAccent50(),\n });\n this.listItemStyle = { ...defaultStyle, ...this.listItemStyle };\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"28px\",\n height: \"28px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n });\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };\n }\n\n setStatusStyle() {\n let defaultStyle: BaseStyle = {\n height: \"12px\",\n width: \"12px\",\n border: \"none\",\n borderRadius: \"24px\",\n };\n this.statusIndicatorStyle = {\n ...defaultStyle,\n ...this.statusIndicatorStyle,\n };\n }\n setUsersStyle() {\n let defaultStyle: UsersStyle = new UsersStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n separatorColor: this.themeService.theme.palette.getAccent400(),\n onlineStatusColor: this.themeService.theme.palette.getSuccess(),\n sectionHeaderTextColor: this.themeService.theme.palette.getAccent600(),\n sectionHeaderTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n searchIconTint: this.themeService.theme.palette.getAccent600(),\n searchPlaceholderTextColor:\n this.themeService.theme.palette.getAccent600(),\n searchBackground: this.themeService.theme.palette.getAccent100(),\n searchPlaceholderTextFont: fontHelper(\n this.themeService.theme.typography.text3\n ),\n searchTextColor: this.themeService.theme.palette.getAccent600(),\n searchTextFont: fontHelper(this.themeService.theme.typography.text3),\n });\n this.usersStyle = { ...defaultStyle, ...this.usersStyle };\n this.checkboxStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"4px\",\n checkedBackgroundColor: this.themeService.theme.palette.getPrimary(),\n uncheckedBackgroundColor: this.themeService.theme.palette.getAccent400()\n }\n }\n\n setSelectedUserStyle() {\n let defaultStyle: SelectedUserPreviewStyle = new SelectedUserPreviewStyle({\n borderRadius: \"1000px\",\n width: \"140px\",\n height: \"fit-content\",\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n textColor: this.themeService.theme.palette.getAccent(),\n textFont: fontHelper(this.themeService.theme.typography.name),\n background: this.themeService.theme.palette.getBackground(),\n closeIconTint: this.themeService.theme.palette.getPrimary(),\n });\n this.selectedUserPreviewStyle = { ...defaultStyle, ...this.selectedUserPreviewStyle };\n this.removeMemberButtonStyle.buttonIconTint = this.selectedUserPreviewStyle.closeIconTint || this.themeService.theme.palette.getAccent600()!;\n this.selectedUserPillStyle = {\n borderRadius: this.selectedUserPreviewStyle.borderRadius || \"1000px\",\n width: this.selectedUserPreviewStyle.width || \"140px\",\n height: this.selectedUserPreviewStyle.height || \"fit-content\",\n border: this.selectedUserPreviewStyle.border || `none`,\n color: this.selectedUserPreviewStyle.textColor || this.themeService.theme.palette.getAccent(),\n font: this.selectedUserPreviewStyle.textFont || fontHelper(this.themeService.theme.typography.name),\n background: this.selectedUserPreviewStyle.background || this.themeService.theme.palette.getBackground(),\n }\n this.selectedUsersPreviewWrapper = {\n borderTop:`1px solid ${this.themeService.theme.palette.getAccent100()}`,\n borderBottom:`none`,\n background: this.usersStyle.background || \"transparent\"\n }\n }\n\n userStyle = () => {\n return {\n height: this.usersStyle.height,\n width: this.usersStyle.width,\n background: this.usersStyle.background,\n border: this.usersStyle.border,\n borderRadius: this.usersStyle.borderRadius,\n };\n };\n}\n","<div class=\"cc-users\" [ngStyle]=\"userStyle()\" (keydown)=\"onKeyDown($event)\" (keyup)=\"onKeyUp($event)\" tabindex=\"0\">\n <div class=\"cc-menus\" *ngIf=\"menu\">\n <ng-container *ngTemplateOutlet=\"menu\">\n </ng-container>\n </div>\n\n <!-- Users List -->\n <div class=\"cc-users__list\" [class.cc-users__list--with-selection]=\"getSelectedUsersCount() > 0\">\n <cometchat-list [listItemView]=\"listItemView ? listItemView : listItem\" [onScrolledToBottom]=\"onScrolledToBottom\" [onSearch]=\"onSearch\"\n [list]=\"usersList\" [searchText]=\"searchKeyword\" [searchPlaceholderText]=\"searchPlaceholder\"\n [searchIconURL]=\"searchIconURL\" [hideSearch]=\"hideSearch\" [hideError]=\"hideError\" [title]=\"title\"\n [sectionHeaderField]=\"sectionHeaderField\" [showSectionHeader]=\"showSectionHeader\"\n [emptyStateText]=\"emptyStateText\" [loadingIconURL]=\"loadingIconURL\"\n [titleAlignment]=\"titleAlignment\" [loadingStateView]=\"loadingStateView\" [emptyStateView]=\"emptyStateView\"\n [errorStateText]=\"errorStateText\" [errorStateView]=\"errorStateView\" [listStyle]=\"listStyle\" [state]=\"state\">\n </cometchat-list>\n </div>\n\n <!-- Selected Users Preview Section -->\n <div class=\"cc-selected-users\" [style]=\"selectedUsersPreviewWrapper\" *ngIf=\"showSelectedUsersPreview && getSelectedUsersCount() > 0\">\n <div class=\"cc-selected-users__list\">\n <div class=\"cc-selected-user\" *ngFor=\"let user of getSelectedUsersArray(); trackBy: trackByUserId\" [style]=\"selectedUserPillStyle\">\n <div class=\"cc-selected-user__avatar\">\n <cometchat-avatar \n [image]=\"user?.getAvatar() || ''\" \n [name]=\"user?.getName()\" \n [avatarStyle]=\"avatarStyle\">\n </cometchat-avatar>\n </div>\n <div class=\"cc-selected-user__name\" [style]=\"getUserNameStyle()\">{{user?.getName()}}</div>\n <div class=\"cc-selected-user__remove\" (click)=\"removeSelectedUser(user)\">\n <cometchat-button \n [iconURL]=\"'assets/close2x.svg'\" \n [buttonStyle]=\"removeMemberButtonStyle\">\n </cometchat-button>\n </div>\n </div>\n </div>\n </div>\n <ng-template #listItem let-user>\n <cometchat-list-item [title]=\"user?.name\" [avatarURL]=\"user?.avatar\" [avatarName]=\"user?.name\"\n [listItemStyle]=\"listItemStyle\" [avatarStyle]=\"avatarStyle\" [statusIndicatorStyle]=\"getStatusIndicatorStyle(user)\"\n [statusIndicatorColor]=\"getStatusIndicatorColor(user)\" [hideSeparator]=\"hideSeparator\" (cc-listitem-clicked)=\"onClick(user)\" [isActive]=\"getActiveUser(user)\"\n [userPresencePlacement]=\"userPresencePlacement\">\n <div slot=\"subtitleView\" *ngIf=\"subtitleView\">\n <ng-container *ngTemplateOutlet=\"subtitleView;context:{ $implicit: user }\">\n </ng-container>\n </div>\n\n <div slot=\"menuView\" class=\"cc-users__options\" *ngIf=\"options\">\n <cometchat-menu-list [data]=\"options(user)\">\n\n </cometchat-menu-list>\n </div>\n <div slot=\"tailView\" *ngIf=\"selectionMode != selectionmodeEnum.none\" class=\"cc-users__tail-view\">\n <ng-container *ngTemplateOutlet=\"tailView\">\n </ng-container>\n </div>\n <ng-template #tailView>\n <div *ngIf=\"selectionMode == selectionmodeEnum.single\" class=\"cc-users__selection--single\">\n <cometchat-radio-button [attr.data-uid]=\"user?.uid\" #radioElement (cc-radio-button-changed)=\"addMembersToList(user,$event)\" [checked]=\"isUserSelected(user)\" ></cometchat-radio-button>\n\n </div>\n <div *ngIf=\"selectionMode == selectionmodeEnum.multiple\" class=\"cc-users__selection--multiple\">\n <cometchat-checkbox \n [attr.data-uid]=\"user?.uid\" \n #checkboxElement \n [checkboxStyle]=\"checkboxStyle\" \n (cc-checkbox-changed)=\"onCheckboxChanged(user, $event)\"\n (click)=\"onCheckboxClick(user, $event)\" \n [checked]=\"isUserSelected(user)\">\n </cometchat-checkbox>\n </div>\n </ng-template>\n </cometchat-list-item>\n\n </ng-template>\n</div>\n","import { Component, OnInit, Input, ChangeDetectorRef, ChangeDetectionStrategy, TemplateRef} from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { AddMembersStyle, UsersStyle, CometChatUIKitUtility, BaseStyle, SelectedUserPreviewStyle } from '@cometchat/uikit-shared';\nimport '@cometchat/uikit-elements'\nimport { CometChatTheme, fontHelper, localize, CometChatOption, CometChatGroupEvents, CometChatUIKitConstants, TitleAlignment, SelectionMode } from '@cometchat/uikit-resources'\nimport { AvatarStyle, ListItemStyle } from '@cometchat/uikit-elements'\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\n/**\n*\n* CometChatAddMembersComponentComponent is used to render group members to add\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-add-members\",\n templateUrl: \"./cometchat-add-members.component.html\",\n styleUrls: [\"./cometchat-add-members.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CometChatAddMembersComponent implements OnInit {\n\n @Input() usersRequestBuilder!: CometChat.UsersRequestBuilder;\n @Input() searchRequestBuilder!: CometChat.UsersRequestBuilder;\n @Input() subtitleView!: TemplateRef<any>;\n @Input() listItemView!: TemplateRef<any>;\n @Input() disableUsersPresence: boolean = false;\n @Input() menu!: TemplateRef<any>;\n @Input() options!: ((member: CometChat.User) => CometChatOption[]) | null;\n @Input() backButtonIconURL: string = \"assets/backbutton.svg\"\n @Input() closeButtonIconURL: string = \"assets/close2x.svg\"\n @Input() showBackButton: boolean = true;\n @Input() hideSeparator: boolean = false;\n @Input() selectionMode: SelectionMode = SelectionMode.multiple;\n @Input() searchPlaceholder: string = localize(\"SEARCH\");\n @Input() hideError: boolean = false;\n @Input() searchIconURL: string = \"assets/search.svg\";\n @Input() hideSearch: boolean = false;\n @Input() title: string = localize(\"ADD_MEMBERS\");\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n @Input() onBack!: () => void;\n @Input() onClose!: () => void;\n @Input() onSelect!: (user: CometChat.User, selected: boolean) => void;\n\n @Input() buttonText: string = localize(\"ADD_MEMBERS\");\n @Input() group!: CometChat.Group;\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() errorStateView!: TemplateRef<any>;\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() listItemStyle: ListItemStyle = {}\n @Input() showSectionHeader: boolean = false;\n @Input() sectionHeaderField: string = \"name\";\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() emptyStateText: string = localize(\"NO_USERS_FOUND\")\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() onAddMembersButtonClick!: (guid: string, members: CometChat.User[]) => void;\n @Input() titleAlignment: TitleAlignment = TitleAlignment.center;\n titleAlignmentEnum: typeof TitleAlignment = TitleAlignment\n selectionmodeEnum: typeof SelectionMode = SelectionMode;\n @Input() addMembersStyle: AddMembersStyle = {};\n @Input() showSelectedMembersPreview: boolean = false;\n @Input() selectedMemberPreviewStyle: SelectedUserPreviewStyle = {};\n\n /**\n * @deprecated This property is deprecated as of version 4.3.14. Use `statusIndicatorStyle` instead.\n */\n @Input() StatusIndicatorStyle: BaseStyle = {};\n\n @Input() statusIndicatorStyle: BaseStyle = {}\n @Input() avatarStyle: AvatarStyle = {}\n loggedInUser!: CometChat.User | null;\n actionMessagesList: CometChat.Action[] = []\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) { }\n addMemberButtonStyle: any = {\n height: \"100%\",\n width: \"100%\",\n background: \"rgb(51, 153, 255)\",\n padding: \"8px\",\n buttonTextColor: \"white\",\n buttonTextFont: \"\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n border: \"none\",\n borderRadius: \"8px\"\n }\n searchKeyword: string = \"\";\n public usersRequest: any;\n public timeout: any;\n public usersList: CometChat.User[] = [];\n public userListenerId: string = \"userlist_\" + new Date().getTime();\n usersStyle: UsersStyle = {\n width: \"100%\",\n height: \"100%\",\n background: \"\",\n border: \"\",\n borderRadius: \"\",\n searchBackground: \"#efefef\",\n onlineStatusColor: \"\",\n separatorColor: \"rgb(222 222 222 / 46%)\",\n sectionHeaderTextFont: \"\",\n sectionHeaderTextColor: \"\"\n };\n membersList: any[] = [];\n addedMembers: CometChat.GroupMember[] = []\n ngOnInit(): void {\n this.setUsersStyle()\n this.setAddMembersStyle();\n this.membersList = []\n this.addedMembers = []\n this.actionMessagesList = []\n\n CometChat.getLoggedinUser().then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n }).catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n }\n /**\n * @param {string} uid\n */\n addRemoveUsers = (user: CometChat.User, selected: boolean) => {\n if (this.onSelect) {\n this.onSelect(user, selected)\n }\n\n else {\n let key = this.membersList.findIndex(\n (m: any) => m.getUid() === user.getUid()\n );\n if (key >= 0) {\n this.membersList.splice(key, 1)\n }\n else {\n let member: CometChat.GroupMember = new CometChat.GroupMember(user.getUid(), CometChatUIKitConstants.groupMemberScope.participant)\n member.setName(user.getName())\n member.setGuid(this.group.getGuid())\n\n this.membersList.push(member)\n }\n }\n this.ref.detectChanges()\n }\n closeClicked() {\n if (this.onClose) {\n this.onClose()\n }\n }\n backClicked() {\n if (this.onBack) {\n this.onBack()\n }\n }\n addMembersToGroup = () => {\n if (this.group && this.membersList.length > 0) {\n if (this.onAddMembersButtonClick) {\n this.onAddMembersButtonClick(this.group.getGuid(), this.membersList)\n this.ref.detectChanges()\n return\n }\n else {\n CometChat.addMembersToGroup(this.group.getGuid(), this.membersList, []).then((response: any) => {\n for (const key in response) {\n if (response.hasOwnProperty(key) && response[key] === \"success\") {\n\n const matchingUser: CometChat.GroupMember = this.membersList.find((user: CometChat.User) => user.getUid() === key);\n if (matchingUser) {\n\n this.createActionMessage(matchingUser)\n if (!matchingUser.getScope()) {\n matchingUser.setScope(CometChatUIKitConstants.groupMemberScope.participant as CometChat.GroupMemberScope)\n }\n this.addedMembers.push(matchingUser)\n }\n\n }\n }\n this.group.setMembersCount(this.group.getMembersCount() + this.addedMembers?.length || 0)\n CometChatGroupEvents.ccGroupMemberAdded.next(\n {\n messages: this.actionMessagesList,\n usersAdded: this.addedMembers,\n userAddedIn: this.group,\n userAddedBy: this.loggedInUser!\n\n }\n )\n this.membersList = []\n this.addedMembers = []\n this.actionMessagesList = []\n if (this.onBack) {\n this.onBack()\n }\n this.ref.detectChanges()\n })\n .catch((err: CometChat.CometChatException) => {\n console.log(err)\n this.membersList = [];\n this.ref.detectChanges()\n })\n }\n }\n else {\n return\n }\n }\n createActionMessage(actionOn: CometChat.GroupMember) {\n let actionMessage: CometChat.Action = new CometChat.Action(this.group.getGuid(), CometChatUIKitConstants.MessageTypes.groupMember, CometChatUIKitConstants.MessageReceiverType.group, CometChatUIKitConstants.MessageCategory.action as any)\n actionMessage.setAction(CometChatUIKitConstants.groupMemberAction.ADDED)\n actionMessage.setActionBy(this.loggedInUser!)\n actionMessage.setActionFor(this.group)\n actionMessage.setActionOn(actionOn)\n actionMessage.setReceiver(this.group)\n actionMessage.setSender(this.loggedInUser!)\n actionMessage.setConversationId(\"group_\" + this.group.getGuid())\n actionMessage.setMuid(CometChatUIKitUtility.ID())\n actionMessage.setMessage(`${this.loggedInUser?.getName()} added ${actionOn.getName()}`)\n actionMessage.setSentAt(CometChatUIKitUtility.getUnixTimestamp())\n this.actionMessagesList.push(actionMessage)\n }\n\n setAddMembersStyle() {\n\n let defaultStyle: AddMembersStyle = new AddMembersStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `none`,\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n onlineStatusColor: this.themeService.theme.palette.getSuccess(),\n separatorColor: this.themeService.theme.palette.getAccent400(),\n width: \"100%\",\n height: \"100%\",\n borderRadius: \"none\",\n searchPlaceholderTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n searchPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),\n searchTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n searchTextColor: this.themeService.theme.palette.getAccent400(),\n searchIconTint: this.themeService.theme.palette.getAccent600(),\n searchBorder: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n searchBorderRadius: \"8px\",\n searchBackground: this.themeService.theme.palette.getAccent50(),\n closeButtonIconTint: this.themeService.theme.palette.getPrimary(),\n backButtonIconTint: this.themeService.theme.palette.getPrimary(),\n addMembersButtonBackground: this.themeService.theme.palette.getPrimary(),\n addMembersButtonTextColor: this.themeService.theme.palette.getAccent900(\"light\"),\n addMembersButtonTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n padding: \"0 100px\"\n })\n this.addMembersStyle = { ...defaultStyle, ...this.addMembersStyle }\n this.addMemberButtonStyle.background = this.addMembersStyle.addMembersButtonBackground;\n this.addMemberButtonStyle.buttonTextFont = this.addMembersStyle.addMembersButtonTextFont;\n this.addMemberButtonStyle.buttonTextColor = this.addMembersStyle.addMembersButtonTextColor;\n }\n setUsersStyle() {\n let defaultStyle: UsersStyle = new UsersStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: \"none\",\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n separatorColor: this.themeService.theme.palette.getAccent400(),\n onlineStatusColor: this.themeService.theme.palette.getSuccess(),\n searchIconTint: this.themeService.theme.palette.getAccent600(),\n searchPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),\n searchBackground: this.themeService.theme.palette.getAccent100(),\n searchPlaceholderTextFont: fontHelper(this.themeService.theme.typography.text3),\n searchTextColor: this.themeService.theme.palette.getAccent600(),\n searchTextFont: fontHelper(this.themeService.theme.typography.text3)\n })\n this.usersStyle = { ...defaultStyle, ...this.addMembersStyle }\n }\n\n // styles\n backButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.addMembersStyle.backButtonIconTint || this.themeService.theme.palette.getPrimary()\n }\n }\n closeButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.addMembersStyle.closeButtonIconTint || this.themeService.theme.palette.getPrimary()\n }\n }\n\n wrapperStyle = () => {\n return {\n height: this.addMembersStyle.height,\n width: this.addMembersStyle.width,\n background: this.addMembersStyle.background,\n border: this.addMembersStyle.border,\n borderRadius: this.addMembersStyle.borderRadius\n }\n }\n addMembersStyles = () => {\n return {\n padding: this.addMembersStyle.padding\n }\n }\n}\n","<div class=\"cc-add-members\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-back-button\">\n <cometchat-button [iconURL]=\"backButtonIconURL\" [buttonStyle]=\"backButtonStyle()\" (cc-button-clicked)=\"backClicked()\" *ngIf=\"showBackButton\">\n\n </cometchat-button>\n </div>\n <div class=\"cc-add-members__wrapper\" [ngStyle]=\"addMembersStyles()\">\n <div class=\"cc-users\">\n <cometchat-users [searchPlaceholder]=\"searchPlaceholder\" [usersRequestBuilder]=\"usersRequestBuilder\"\n [hideSearch]=\"hideSearch\"\n [statusIndicatorStyle]=\"statusIndicatorStyle\"\n [avatarStyle]=\"avatarStyle\"\n [searchIconURL]=\"searchIconURL\"\n [searchRequestBuilder]=\"searchRequestBuilder\"\n [usersStyle]=\"usersStyle\"\n [subtitleView]=\"subtitleView\"\n [options]=\"options\"\n [usersRequestBuilder]=\"usersRequestBuilder\"\n [emptyStateView]=\"emptyStateView\"\n [onSelect]=\" addRemoveUsers\"\n [sectionHeaderField]=\"sectionHeaderField\"\n [loadingIconURL]=\"loadingIconURL\"\n [errorStateView]=\"errorStateView\"\n [loadingStateView]=\"loadingStateView\"\n [titleAlignment]=\"titleAlignment\"\n [showSectionHeader]=\"showSectionHeader\"\n [listItemView]=\"listItemView\"\n [menu]=\"menu\"\n [hideSeparator]=\"hideSeparator\"\n [hideError]=\"hideError\"\n [selectionMode]=\" selectionMode\"\n [listItemStyle]=\"listItemStyle\"\n [title]=\"title\" \n [showSelectedUsersPreview]=\"showSelectedMembersPreview\"\n [selectedUserPreviewStyle]=\"selectedMemberPreviewStyle\"\n >\n\n </cometchat-users>\n\n </div>\n\n <div class=\"cc-add-members__buttons\">\n <cometchat-button [disabled]=\"!membersList || (membersList && membersList!.length <= 0)\" class=\"cc-add-members__buttons--add\" [text]=\"buttonText\" [buttonStyle]=\"addMemberButtonStyle\" (click)=\"addMembersToGroup()\" ></cometchat-button>\n\n </div>\n </div>\n <div class=\"cc-close-button\">\n <cometchat-button [iconURL]=\"closeButtonIconURL\" [buttonStyle]=\"closeButtonStyle()\" (cc-button-clicked)=\"closeClicked()\">\n\n </cometchat-button>\n </div>\n</div>","import { AvatarStyle, BaseStyle, ListItemStyle } from '@cometchat/uikit-elements'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';\nimport { CometChatGroupEvents, CometChatMessageEvents, CometChatTheme, CometChatUIKitConstants, CometChatUserEvents, IGroupLeft, IGroupMemberAdded, IGroupMemberJoined, IGroupMemberKickedBanned, IOwnershipChanged, fontHelper, localize } from '@cometchat/uikit-resources';\n\nimport { CometChat } from '@cometchat/chat-sdk-javascript';\nimport { CometChatException } from '../../Shared/Utils/ComeChatException';\nimport { CometChatThemeService } from '../../CometChatTheme.service';\nimport { MessageHeaderStyle } from '@cometchat/uikit-shared';\nimport { Subscription } from 'rxjs';\nimport { MessageUtils } from '../../Shared/Utils/MessageUtils';\n\n/**\n*\n* CometChatMessageHeader is a used to render listitem component.\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: 'cometchat-message-header',\n templateUrl: './cometchat-message-header.component.html',\n styleUrls: ['./cometchat-message-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CometChatMessageHeaderComponent implements OnInit, OnChanges {\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"28px\",\n height: \"28px\",\n border: \"none\",\n\n }\n @Input() statusIndicatorStyle: BaseStyle = {\n borderRadius: \"16px\",\n width: \"10px\",\n height: \"10px\",\n border: \"none\",\n }\n @Input() messageHeaderStyle: MessageHeaderStyle = {\n width: \"100%\",\n height: \"100%\",\n }\n @Input() listItemStyle: ListItemStyle = {\n width: \"\",\n height: \"100%\",\n border: \"none\",\n borderRadius: \"2px\",\n separatorColor: \"\",\n activeBackground: \"transparent\",\n hoverBackground: \"transparent\"\n }\n @Input() subtitleView: any;\n @Input() disableUsersPresence: boolean = false;\n @Input() disableTyping: boolean = false;\n /**\n * @deprecated\n *\n * This property is deprecated as of version 4.3.7 due to newer property 'passwordGroupIcon'. It will be removed in subsequent versions.\n */\n @Input() protectedGroupIcon: string = \"assets/Locked.svg\";\n @Input() passwordGroupIcon: string | undefined = undefined;\n @Input() privateGroupIcon: string = \"assets/Private.svg\";\n @Input() menu: any;\n @Input() user!: CometChat.User;\n @Input() group!: CometChat.Group;\n @Input() backButtonIconURL: string = \"assets/backbutton.svg\";\n @Input() hideBackButton: boolean = false;\n @Input() listItemView!: TemplateRef<any>;\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n @Input() onBack: () => void = () => { }\n public groupsListenerId: string = \"groupsList_\" + new Date().getTime();\n userListenerId = \"userlist_\" + new Date().getTime();\n public subtitleText: string = \"\";\n public loggedInUser!: CometChat.User;\n public isTyping: boolean = false;\n theme: CometChatTheme = new CometChatTheme({})\n ccGroupMemberAdded!: Subscription;\n ccGroupLeft!: Subscription;\n ccGroupMemberJoined!: Subscription;\n ccGroupMemberKicked!: Subscription;\n ccGroupMemberBanned!: Subscription;\n ccOwnershipChanged!: Subscription;\n onTypingStarted!: Subscription;\n ccUserBlocked!: Subscription;\n ccUserUnblocked!: Subscription;\n onTypingEnded!: Subscription;\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) {\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"user\"] || changes[\"group\"]) {\n this.removeListener()\n if (!this.loggedInUser) {\n CometChat.getLoggedinUser().then((user: CometChat.User | null) => {\n this.loggedInUser = user as CometChat.User;\n this.attachListeners()\n this.updateSubtitle()\n }).catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n }\n else {\n this.attachListeners()\n this.updateSubtitle()\n }\n\n }\n }\n ngOnInit(): void {\n this.setListItemStyle()\n this.setAvatarStyle()\n this.setStatusStyle()\n this.subscribeToEvents();\n this.backButtonStyle.buttonIconTint = this.messageHeaderStyle?.backButtonIconTint || this.themeService.theme.palette.getPrimary();\n this.statusColor.online = this.messageHeaderStyle.onlineStatusColor ?? this.themeService.theme.palette.getSuccess()\n\n }\n // subscribe to global events\n subscribeToEvents() {\n this.ccGroupMemberAdded = CometChatGroupEvents.ccGroupMemberAdded.subscribe((item: IGroupMemberAdded) => {\n if (this.group && this.group.getGuid() == item?.userAddedIn!.getGuid()) {\n this.group == item?.userAddedIn;\n this.ref.detectChanges()\n this.updateSubtitle()\n }\n })\n this.ccGroupMemberBanned = CometChatGroupEvents.ccGroupMemberBanned.subscribe((item: IGroupMemberKickedBanned) => {\n if (this.group && this.group.getGuid() == item?.kickedFrom!.getGuid()) {\n this.group == item?.kickedFrom;\n this.ref.detectChanges()\n this.updateSubtitle()\n }\n })\n this.ccGroupMemberJoined = CometChatGroupEvents.ccGroupMemberJoined.subscribe((item: IGroupMemberJoined) => {\n if (this.group && this.group.getGuid() == item?.joinedGroup!.getGuid()) {\n this.group == item?.joinedGroup;\n this.ref.detectChanges()\n this.updateSubtitle()\n }\n })\n this.ccGroupMemberKicked = CometChatGroupEvents.ccGroupMemberKicked.subscribe((item: IGroupMemberKickedBanned) => {\n if (this.group && this.group.getGuid() == item?.kickedFrom!.getGuid()) {\n this.group == item?.kickedFrom;\n this.ref.detectChanges()\n this.updateSubtitle()\n }\n })\n this.ccOwnershipChanged = CometChatGroupEvents.ccOwnershipChanged.subscribe((item: IOwnershipChanged) => {\n if (this.group && this.group.getGuid() == item?.group!.getGuid()) {\n this.group == item?.group;\n this.ref.detectChanges()\n this.updateSubtitle();\n }\n })\n this.ccGroupLeft = CometChatGroupEvents.ccGroupLeft.subscribe((item: IGroupLeft) => {\n if (this.group && this.group.getGuid() == item?.leftGroup!.getGuid() && this.loggedInUser?.getUid() == item?.userLeft?.getUid()) {\n this.group == item?.leftGroup;\n this.ref.detectChanges()\n this.updateSubtitle()\n }\n })\n }\n // unsubscribe to subscribed events.\n unsubscribeToEvents() {\n this.ccGroupMemberAdded?.unsubscribe();\n this.ccGroupMemberBanned?.unsubscribe();\n this.ccGroupMemberJoined?.unsubscribe();\n this.ccGroupMemberKicked?.unsubscribe();\n this.ccOwnershipChanged?.unsubscribe();\n this.ccUserBlocked?.unsubscribe();\n this.ccUserUnblocked?.unsubscribe();\n this.ccGroupLeft?.unsubscribe();\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: \"transparent\",\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: \"\",\n hoverBackground: \"transparent\",\n cursor: 'default'\n })\n this.listItemStyle = { ...defaultStyle, ...this.listItemStyle }\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"36px\",\n height: \"36px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n })\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle }\n }\n setStatusStyle() {\n let defaultStyle: BaseStyle = {\n height: \"12px\",\n width: \"12px\",\n border: \"none\",\n borderRadius: \"24px\",\n\n }\n if(!this.disableUsersPresence){\n this.statusIndicatorStyle = { ...defaultStyle, ...this.statusIndicatorStyle }\n }else {\n this.statusIndicatorStyle = {};\n }\n }\n /**\n * @param {CometChat.User} user\n */\n getStatusIndicatorStyle = (user: CometChat.User) => {\n let userStatusVisibility = new MessageUtils().getUserStatusVisibility(user) || this.disableUsersPresence;\n if(!userStatusVisibility){\n return(\n this.statusIndicatorStyle\n )\n }\n return null;\n }\n getHeadersStyle(): MessageHeaderStyle {\n const defaultValues = this.messageHeaderStyle;\n let defaultStyle: MessageHeaderStyle = new MessageHeaderStyle({\n background: defaultValues.background || this.themeService.theme.palette.getBackground(),\n border: defaultValues.border || `none`,\n onlineStatusColor: defaultValues.onlineStatusColor || this.themeService.theme.palette.getSuccess(),\n privateGroupIconBackground: defaultValues.privateGroupIconBackground || this.themeService.theme.palette.getSuccess(),\n passwordGroupIconBackground: defaultValues.passwordGroupIconBackground || \"RGB(247, 165, 0)\",\n backButtonIconTint: defaultValues.backButtonIconTint || this.themeService.theme.palette.getPrimary(),\n subtitleTextColor: defaultValues.subtitleTextColor || this.themeService.theme.palette.getAccent600(),\n subtitleTextFont: defaultValues.subtitleTextFont || fontHelper(this.themeService.theme.typography.subtitle2),\n typingIndicatorTextColor: defaultValues.typingIndicatorTextColor || this.themeService.theme.palette.getPrimary(),\n typingIndicatorTextFont: defaultValues.typingIndicatorTextFont || fontHelper(this.themeService.theme.typography.subtitle1),\n height: defaultValues.height || \"45px\",\n width: defaultValues.width || \"100%\",\n });\n\n return defaultStyle;\n }\n public statusColor: any = {\n online: \"#00f300\",\n private: \"#00f300\",\n password: \"#F7A500\",\n public: \"\"\n }\n backButtonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"none\",\n background: \"transparent\",\n buttonIconTint: \"\"\n }\n checkStatusType = () => {\n if (this.user) {\n let userStatusVisibility = new MessageUtils().getUserStatusVisibility(this.user) || this.disableUsersPresence;\n return userStatusVisibility ? null : this.statusColor[this.user?.getStatus()];\n }\n else if (this.group) {\n return this.statusColor[this.group?.getType()];\n }\n else return;\n }\n onBackClicked() {\n if (this.onBack) {\n this.onBack()\n }\n }\n updateSubtitle() {\n const count = this.group?.getMembersCount();\n const membersText = localize(count > 1 ? \"MEMBERS\" : \"MEMBER\");\n if (this.user) {\n const userStatusVisibility = this.user.getBlockedByMe() || this.user.getHasBlockedMe() || this.disableUsersPresence;\n if (userStatusVisibility) {\n this.subtitleText = \"\";\n } else {\n const status = this.user.getStatus();\n this.subtitleText = status ? localize(status.toUpperCase()) : localize( \"OFFLINE\");\n }\n this.ref.detectChanges();\n }\n else {\n this.subtitleText = `${count} ${membersText}`;\n this.ref.detectChanges();\n }\n\n }\n getSubtitleView() {\n return this.subtitleView(this.user || this.group);\n }\n checkGroupType(): string {\n let image: string = \"\";\n if (this.group) {\n switch (this.group?.getType()) {\n case CometChatUIKitConstants.GroupTypes.password:\n image = this.passwordGroupIcon || this.protectedGroupIcon;\n break;\n case CometChatUIKitConstants.GroupTypes.private:\n image = this.privateGroupIcon;\n break;\n default:\n image = \"\"\n break;\n }\n }\n return image\n }\n updateUserStatus(user: CometChat.User) {\n if (this.user && this.user.getUid() && this.user.getUid() === user.getUid()) {\n this.user.setStatus(user.getStatus());\n this.updateSubtitle()\n }\n // this.ref.detectChanges();\n }\n\n handleGroupEvent = (group: CometChat.Group, user: CometChat.User, hasJoined: boolean, newScope?: CometChat.GroupMemberScope) => {\n if (this.group.getGuid() !== group.getGuid()) {\n return;\n }\n if (user.getUid() === this.loggedInUser?.getUid()) {\n group.setHasJoined(hasJoined);\n if (newScope) {\n group.setScope(newScope);\n }\n }\n this.group = group;\n this.ref.detectChanges();\n this.updateSubtitle();\n };\n \n\n attachListeners() {\n try {\n CometChat.addUserListener(\n this.userListenerId,\n new CometChat.UserListener({\n onUserOnline: (onlineUser: CometChat.User) => {\n /* when someuser/friend comes online, user will be received here */\n this.updateUserStatus(onlineUser);\n },\n onUserOffline: (offlineUser: CometChat.User) => {\n /* when someuser/friend went offline, user will be received here */\n this.updateUserStatus(offlineUser);\n },\n })\n );\n if (this.user) {\n this.ccUserBlocked = CometChatUserEvents.ccUserBlocked.subscribe(\n (item: CometChat.User) => {\n if (item.getUid() == this.user.getUid())\n this.updateUserStatus(item);\n }\n );\n this.ccUserUnblocked = CometChatUserEvents.ccUserUnblocked.subscribe(\n (item: CometChat.User) => {\n if (item.getUid() == this.user.getUid())\n this.updateUserStatus(item);\n }\n );\n }\n\n if (!this.disableTyping) {\n this.onTypingStarted = CometChatMessageEvents.onTypingStarted.subscribe((typingIndicator: CometChat.TypingIndicator) => {\n this.isTyping = true;\n this.setTypingIndicatorText(typingIndicator)\n });\n this.onTypingEnded = CometChatMessageEvents.onTypingEnded.subscribe((typingIndicator: CometChat.TypingIndicator) => {\n this.isTyping = false;\n this.updateSubtitle()\n });\n }\n CometChat.addGroupListener(\n this.groupsListenerId,\n new CometChat.GroupListener({\n onGroupMemberScopeChanged: (message: CometChat.Action, changedUser: CometChat.User, newScope: CometChat.GroupMemberScope, oldScope: CometChat.GroupMemberScope, changedGroup: CometChat.Group) => {\n this.handleGroupEvent(changedGroup, changedUser, true, newScope);\n },\n onGroupMemberKicked: (message: CometChat.Action, kickedUser: CometChat.User, kickedBy: CometChat.User, kickedFrom: CometChat.Group) => {\n this.handleGroupEvent(kickedFrom, kickedUser, false);\n },\n onMemberAddedToGroup: (message: CometChat.Action, userAdded: CometChat.User, userAddedBy: CometChat.User, userAddedIn: CometChat.Group) => {\n this.handleGroupEvent(userAddedIn, userAdded, true);\n },\n onGroupMemberLeft: (message: CometChat.Action, leavingUser: CometChat.User, group: CometChat.Group) => {\n this.handleGroupEvent(group, leavingUser, false);\n },\n onGroupMemberJoined: (message: CometChat.Action, joinedUser: CometChat.User, joinedGroup: CometChat.Group) => {\n this.handleGroupEvent(joinedGroup, joinedUser, true);\n }\n })\n );\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error))\n }\n }\n }\n removeListener() {\n CometChat.removeUserListener(this.userListenerId);\n this.onTypingStarted?.unsubscribe();\n this.onTypingEnded?.unsubscribe();\n }\n ngOnDestroy() {\n this.removeListener()\n this.unsubscribeToEvents()\n }\n setTypingIndicatorText = (typing: CometChat.TypingIndicator) => {\n const sender = typing.getSender();\n const receiverId = typing.getReceiverId();\n const loggedInUser = this.loggedInUser;\n\n if (this.user && sender.getUid() === this.user?.getUid() && loggedInUser?.getUid() === receiverId) {\n const isBlocked = this.user.getBlockedByMe() || this.user.getHasBlockedMe();\n if (isBlocked) {\n return;\n }\n\n this.subtitleText = localize(\"IS_TYPING\");\n this.ref.detectChanges();\n } else if (this.group && this.group.getGuid() === receiverId) {\n this.subtitleText = `${sender.getName()} ${localize(\"IS_TYPING\")}`;\n this.ref.detectChanges();\n }\n }\n\n headerStyle = () => {\n const headerStyle = this.getHeadersStyle();\n return {\n width: headerStyle.width,\n height: headerStyle.height,\n border: headerStyle.border,\n borderRadius: headerStyle.borderRadius,\n background: headerStyle.background,\n }\n }\n subtitleStyle = () => {\n const headerStyle = this.getHeadersStyle();\n\n if (this.user && this.user.getStatus() == CometChatUIKitConstants.userStatusType.online) {\n return {\n textFont: headerStyle.subtitleTextFont,\n textColor: this.themeService.theme.palette.getPrimary()\n }\n }\n else {\n return {\n textFont: this.isTyping ? headerStyle.typingIndicatorTextFont : headerStyle.subtitleTextFont,\n textColor: this.isTyping ? headerStyle.typingIndicatorTextColor : headerStyle.subtitleTextColor\n }\n }\n }\n}\n","<div class=\"cc-message-header__wrapper\" [ngStyle]=\"headerStyle()\">\n <div class=\"cc-message-header\">\n <div class=\"cc-message-header__back-button\" *ngIf=\"!hideBackButton\">\n <cometchat-button [iconURL]=\"backButtonIconURL\"\n [buttonStyle]=\"backButtonStyle\"\n (cc-button-clicked)=\"onBackClicked()\"></cometchat-button>\n </div>\n <div class=\"cc-message-header__listitem\">\n <cometchat-list-item *ngIf=\"!listItemView;else listitem\"\n [avatarName]=\"user?.getName() || this.group?.getName()\"\n [avatarURL]=\"this.user?.getAvatar() || this.group?.getIcon()\"\n [listItemStyle]=\"listItemStyle\"\n [statusIndicatorColor]=\"checkStatusType()\"\n [statusIndicatorIcon]=\"checkGroupType()\"\n [title]=\"this.user?.getName() || this.group?.getName()\"\n [hideSeparator]=\"true\" [statusIndicatorStyle]=\"getStatusIndicatorStyle(user)\"\n [avatarStyle]=\"avatarStyle\">\n <div slot=\"subtitleView\">\n <div *ngIf=\"!subtitleView; else subtitle\">\n <cometchat-label [text]=\"subtitleText\"\n [labelStyle]=\"subtitleStyle()\">\n\n </cometchat-label>\n </div>\n <ng-template #subtitle>\n <ng-container\n *ngTemplateOutlet=\"subtitleView;context:{ $implicit: user ?? group }\">\n\n </ng-container>\n </ng-template>\n\n </div>\n </cometchat-list-item>\n <ng-template #listitem>\n <ng-container *ngTemplateOutlet=\"listItemView\">\n\n </ng-container>\n </ng-template>\n </div>\n </div>\n <div class=\"cc-message-header__menu\" *ngIf=\"menu\">\n <ng-container *ngTemplateOutlet=\"menu;context:{ $implicit: user ?? group }\">\n\n </ng-container>\n </div>\n</div>\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatMessageHeaderComponent } from \"./cometchat-message-header/cometchat-message-header.component\";\n\nimport { DatePipe } from \"@angular/common\";\n\nimport '@cometchat/uikit-elements'\n@NgModule({\n declarations: [CometChatMessageHeaderComponent],\n imports: [\n CommonModule,\n\n ],\n exports: [CometChatMessageHeaderComponent],\n providers: [DatePipe],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatMessageHeader {}","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatUsersComponent } from \"./cometchat-users/cometchat-users.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport '@cometchat/uikit-elements'\nimport { CometChatList } from \"../CometChatList/cometchat-list.module\";\n@NgModule({\n declarations: [CometChatUsersComponent],\n imports: [\n CommonModule,\n FormsModule,\n CometChatList\n ],\n exports: [CometChatUsersComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatUsers {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatAddMembersComponent } from \"./cometchat-add-members/cometchat-add-members.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CometChatMessageHeader } from \"../CometChatMessageHeader/cometchat-message-header.module\";\nimport { CometChatUsers } from \"../CometChatUsers/cometchat-users.module\";\nimport '@cometchat/uikit-elements'\n@NgModule({\n declarations: [CometChatAddMembersComponent],\n imports: [CommonModule,FormsModule,CometChatMessageHeader,CometChatUsers],\n exports: [CometChatAddMembersComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatAddMembers {}\n","import { Component, OnInit, Input, ChangeDetectorRef, ChangeDetectionStrategy, TemplateRef } from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { Subscription } from \"rxjs\";\nimport { BannedMembersStyle, BaseStyle, ListStyle, CometChatUIKitUtility } from '@cometchat/uikit-shared';\nimport { CometChatTheme, fontHelper, localize, CometChatOption, CometChatGroupEvents, SelectionMode, CometChatUIKitConstants, IGroupMemberKickedBanned, States, TitleAlignment, } from '@cometchat/uikit-resources'\nimport '@cometchat/uikit-elements'\nimport { AvatarStyle, CheckboxStyle, ListItemStyle } from '@cometchat/uikit-elements'\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { CometChatException } from \"../../Shared/Utils/ComeChatException\";\nimport { MessageUtils } from \"../../Shared/Utils/MessageUtils\";\n/**\n*\n* CometChatBannedMembersComponent is used to render list of banned members\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-banned-members\",\n templateUrl: \"./cometchat-banned-members.component.html\",\n styleUrls: [\"./cometchat-banned-members.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CometChatBannedMembersComponent implements OnInit {\n @Input() bannedMembersRequestBuilder!: CometChat.BannedMembersRequestBuilder;\n @Input() searchRequestBuilder!: CometChat.BannedMembersRequestBuilder;\n @Input() subtitleView!: TemplateRef<any>;\n @Input() listItemView!: TemplateRef<any>;\n @Input() disableUsersPresence: boolean = true;\n @Input() menu!: TemplateRef<any>;\n @Input() options!: ((member: CometChat.GroupMember) => CometChatOption[]) | null;\n @Input() backButtonIconURL: string = \"assets/backbutton.svg\"\n @Input() closeButtonIconURL: string = \"assets/close2x.svg\"\n @Input() showBackButton: boolean = true;\n @Input() hideSeparator: boolean = false;\n @Input() selectionMode: SelectionMode = SelectionMode.none;\n @Input() searchPlaceholder: string = localize(\"SEARCH\");\n @Input() searchIconURL: string = \"assets/search.svg\";\n @Input() hideSearch: boolean = true;\n @Input() title: string = localize(\"BANNED_MEMBERS\");\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n\n @Input() onSelect!: (member: CometChat.GroupMember, selected: boolean) => void;\n @Input() onBack!: () => void;\n @Input() onClose!: () => void;\n @Input() group!: CometChat.Group;\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() errorStateView!: TemplateRef<any>;\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() emptyStateText: string = localize(\"NO_BANNED_MEMBERS_FOUND\")\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() titleAlignment: TitleAlignment = TitleAlignment.center;\n @Input() unbanIconURL: string = \"assets/close2x.svg\"\n @Input() statusIndicatorStyle: any = {\n height: \"10px\",\n width: \"10px\",\n borderRadius: \"16px\",\n border: \"\"\n };\n menuListStyle = {\n width: \"\",\n height: \"\",\n border: \"none\",\n borderRadius: \"8px\",\n background: \"white\",\n textFont: \"400 15px Inter\",\n textColor: \"black\",\n iconTint: \"rgb(51, 153, 255)\",\n iconBackground: \"transparent\",\n iconBorder: \"none\",\n iconBorderRadius: \"0\",\n submenuWidth: \"100%\",\n submenuHeight: \"100%\",\n submenuBorder: \"1px solid #e8e8e8\",\n submenuBorderRadius: \"8px\",\n submenuBackground: \"white\",\n }\n unbanIconStyle: any = {\n border: \"none\",\n background: \"transparent\",\n buttonIconTint: \"rgb(51, 153, 255)\"\n }\n selectedMember!: CometChat.GroupMember;\n titleAlignmentEnum: typeof TitleAlignment = TitleAlignment\n selectionmodeEnum: typeof SelectionMode = SelectionMode;\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"32px\",\n height: \"32px\",\n };\n @Input() bannedMembersStyle: BannedMembersStyle = {\n width: \"100%\",\n height: \"100%\",\n background: \"\",\n border: \"\",\n borderRadius: \"\",\n\n padding: \"0 100px\"\n };\n @Input() listItemStyle: ListItemStyle = {\n height: \"100%\",\n width: \"100%\",\n background: \"\",\n activeBackground: \"transparent\",\n borderRadius: \"grey\",\n titleFont: \"\",\n titleColor: \"\",\n border: \"\",\n hoverBackground: \"transparent\",\n separatorColor: \"rgb(222 222 222 / 46%)\"\n };\n searchKeyword: string = \"\";\n listStyle: ListStyle = new ListStyle({});\n public limit: number = 30;\n public bannedMembersRequest: any;\n public state: States = States.loading;\n public timeout: any;\n public bannedMembers: CometChat.GroupMember[] = [];\n public scopes: string[] = []\n public ccGroupMemberBanned!: Subscription;\n public membersListenerId: string = \"bannedMembers_\" + new Date().getTime();\n loggedInUser!: CometChat.User | null;\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) { }\n membersList: CometChat.GroupMember[] = [];\n onScrolledToBottom: any = null;\n checkboxStyle: CheckboxStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"4px\",\n checkedBackgroundColor: \"#2196F3\",\n uncheckedBackgroundColor: \"#ccc\"\n }\n ngOnInit(): void {\n this.attachListeners()\n this.onScrolledToBottom = this.fetchNextBannedMembers\n this.setThemeStyle()\n CometChat.getLoggedinUser().then((user: CometChat.User | null) => {\n this.loggedInUser = user\n this.bannedMembersRequest = this.getRequestBuilder()\n this.fetchNextBannedMembers()\n }).catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n\n }\n backClicked() {\n if (this.onBack) {\n this.onBack()\n }\n }\n closeClicked() {\n if (this.onClose) {\n this.onClose()\n }\n }\n onMembersSelected(member: CometChat.GroupMember, event: any) {\n let selected: boolean = event.detail.checked\n if (this.onSelect) {\n this.onSelect(member, selected)\n }\n }\n /**\n * @param {CometChat.GroupMember} member\n */\n getStatusIndicatorColor = (member: CometChat.GroupMember) => {\n let userStatusVisibility = new MessageUtils().getUserStatusVisibility(member) || this.disableUsersPresence;\n if (!userStatusVisibility) {\n return this.bannedMembersStyle.onlineStatusColor ?? this.themeService.theme.palette.getSuccess();\n }\n return null\n }\n unBanMember = (member: CometChat.GroupMember) => {\n CometChat.unbanGroupMember(this.group.getGuid(), member.getUid()).then(() => {\n CometChatGroupEvents.ccGroupMemberUnbanned.next({\n unbannedBy: this.loggedInUser!,\n unbannedFrom: this.group,\n unbannedUser: member\n\n })\n this.updateMember(member)\n }).catch((err: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(err)\n }\n\n })\n }\n /**\n * @param {CometChat.User} member\n */\n updateMember = (member: CometChat.GroupMember) => {\n let memberlist: CometChat.GroupMember[] = [...this.bannedMembers];\n //search for user\n let userKey = memberlist.findIndex((u: CometChat.GroupMember, k) => u.getUid() == member.getUid());\n //if found in the list, update user object\n if (userKey > -1) {\n memberlist.splice(userKey, 1);\n this.bannedMembers = [...memberlist];\n this.ref.detectChanges();\n }\n else {\n memberlist.push(member)\n this.bannedMembers = [...memberlist];\n this.ref.detectChanges();\n }\n };\n /**\n * @param {CometChat.User} member\n */\n updateMemberStatus = (member: CometChat.User) => {\n let memberlist = [...this.bannedMembers];\n //search for user\n let userKey = memberlist.findIndex((u: CometChat.GroupMember, k) => u.getUid() == member.getUid());\n //if found in the list, update user object\n if (userKey > -1) {\n let user: CometChat.GroupMember = memberlist[userKey];\n user.setStatus(member.getStatus())\n memberlist.splice(userKey, 1, user);\n this.bannedMembers = [...memberlist];\n this.ref.detectChanges();\n }\n\n };\n attachListeners() {\n //Attaching User Listeners to dynamilcally update when a user comes online and goes offline\n CometChat.addUserListener(\n this.membersListenerId,\n new CometChat.UserListener({\n onUserOnline: (onlineUser: CometChat.User) => {\n /* when someuser/friend comes online, user will be received here */\n this.updateMemberStatus(onlineUser);\n },\n onUserOffline: (offlineUser: CometChat.User) => {\n /* when someuser/friend went offline, user will be received here */\n this.updateMemberStatus(offlineUser);\n },\n })\n );\n CometChat.addGroupListener(\n this.membersListenerId,\n new CometChat.GroupListener({\n onGroupMemberBanned: (message: CometChat.Action, bannedUser: CometChat.User, bannedBy: CometChat.User, bannedFrom: CometChat.Group) => {\n this.updateMember(bannedUser as CometChat.GroupMember)\n },\n onGroupMemberUnbanned: (\n message: CometChat.Action,\n unbannedUser: CometChat.User,\n unbannedBy: CometChat.User,\n unbannedFrom: CometChat.Group\n ) => {\n this.updateMember(unbannedUser as CometChat.GroupMember)\n },\n })\n );\n }\n removeListener() {\n CometChat.removeUserListener(this.membersListenerId);\n this.membersListenerId = \"\";\n }\n fetchNextBannedMembers = () => {\n this.onScrolledToBottom = null\n if (this.bannedMembersRequest && this.bannedMembersRequest.pagination && (this.bannedMembersRequest.pagination.current_page == 0 || this.bannedMembersRequest.pagination.current_page != this.bannedMembersRequest.pagination.total_pages)) {\n this.onScrolledToBottom = this.fetchNextBannedMembers\n this.state = States.loading\n this.ref.detectChanges();\n try {\n this.bannedMembersRequest.fetchNext().then(\n (bannedMembers: CometChat.GroupMember[]) => {\n this.state = States.loading\n if ((bannedMembers.length <= 0 && this.bannedMembers?.length <= 0) || (bannedMembers.length === 0 && this.bannedMembers?.length <= 0)) {\n this.state = States.empty\n this.ref.detectChanges();\n } else {\n this.state = States.loaded\n this.bannedMembers = [...this.bannedMembers, ...bannedMembers];\n this.ref.detectChanges();\n }\n },\n (error: any) => {\n if (this.onError) {\n this.onError(CometChatException(error))\n }\n this.state = States.error\n this.ref.detectChanges();\n }\n );\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error))\n }\n this.state = States.error\n this.ref.detectChanges();\n }\n }\n else {\n this.state = States.loaded\n }\n\n }\n getRequestBuilder() {\n if (this.searchRequestBuilder) {\n return this.searchRequestBuilder.build()\n }\n else if (this.bannedMembersRequestBuilder) {\n return this.bannedMembersRequestBuilder.build();\n }\n else {\n return new CometChat.BannedMembersRequestBuilder(this.group?.getGuid())\n .setLimit(this.limit)\n .setSearchKeyword(this.searchKeyword)\n .build();\n }\n }\n subscribeToEvents() {\n this.ccGroupMemberBanned = CometChatGroupEvents.ccGroupMemberBanned.subscribe((item: IGroupMemberKickedBanned) => {\n if (item?.kickedFrom?.getGuid() == this.group.getGuid()) {\n this.updateMember(item?.kickedUser as CometChat.GroupMember)\n }\n })\n }\n // unsubscribe to subscribed events.\n unsubscribeToEvents() {\n this.ccGroupMemberBanned.unsubscribe();\n }\n /**\n * @param {string} key\n */\n onSearch = (key: string) => {\n try {\n this.searchKeyword = key;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n const request = this.searchRequestBuilder ? this.searchRequestBuilder.setSearchKeyword(this.searchKeyword).build() : this.getRequestBuilder();\n this.bannedMembersRequest = request;\n this.bannedMembers = [];\n this.fetchNextBannedMembers();\n }, 500);\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error))\n }\n\n }\n };\n\n setThemeStyle() {\n this.setBanMembersStyle()\n this.setListItemStyle()\n this.setAvatarStyle()\n this.setStatusStyle()\n this.menuListStyle.background = this.themeService.theme.palette.getBackground() as string;\n this.menuListStyle.iconBackground = this.themeService.theme.palette.getBackground() as string;\n this.menuListStyle.iconTint = this.themeService.theme.palette.getAccent400() as string;\n this.menuListStyle.submenuBackground = this.themeService.theme.palette.getBackground() as string;\n this.menuListStyle.textFont = fontHelper(this.themeService.theme.typography.caption1);\n this.menuListStyle.textColor = this.themeService.theme.palette.getAccent500() as string;\n this.unbanIconStyle.buttonIconTint = this.bannedMembersStyle.unbanIconTint;\n\n }\n setBanMembersStyle() {\n let defaultStyle: BannedMembersStyle = new BannedMembersStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n onlineStatusColor: this.themeService.theme.palette.getSuccess(),\n separatorColor: this.themeService.theme.palette.getAccent400(),\n width: \"100%\",\n height: \"100%\",\n borderRadius: \"none\",\n searchIconTint: this.themeService.theme.palette.getAccent600(),\n searchPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),\n searchBackground: this.themeService.theme.palette.getAccent100(),\n searchPlaceholderTextFont: fontHelper(this.themeService.theme.typography.text3),\n searchTextColor: this.themeService.theme.palette.getAccent600(),\n searchTextFont: fontHelper(this.themeService.theme.typography.text3),\n searchBorderRadius: \"8px\",\n closeButtonIconTint: this.themeService.theme.palette.getPrimary(),\n backButtonIconTint: this.themeService.theme.palette.getPrimary(),\n padding: \"0 100px\",\n unbanIconTint: this.themeService.theme.palette.getPrimary()\n })\n this.bannedMembersStyle = { ...defaultStyle, ...this.bannedMembersStyle }\n this.listStyle = {\n titleTextFont: this.bannedMembersStyle.titleTextFont,\n titleTextColor: this.bannedMembersStyle.titleTextColor,\n emptyStateTextFont: this.bannedMembersStyle.emptyStateTextFont,\n emptyStateTextColor: this.bannedMembersStyle.emptyStateTextColor,\n errorStateTextFont: this.bannedMembersStyle.errorStateTextFont,\n errorStateTextColor: this.bannedMembersStyle.errorStateTextColor,\n loadingIconTint: this.bannedMembersStyle.loadingIconTint,\n separatorColor: this.bannedMembersStyle.separatorColor,\n searchIconTint: this.bannedMembersStyle.searchIconTint,\n searchBorder: this.bannedMembersStyle.searchBorder,\n searchBorderRadius: this.bannedMembersStyle.searchBorderRadius,\n searchBackground: this.bannedMembersStyle.searchBackground,\n searchPlaceholderTextFont: this.bannedMembersStyle.searchPlaceholderTextFont,\n searchPlaceholderTextColor: this.bannedMembersStyle.searchPlaceholderTextColor,\n searchTextFont: this.bannedMembersStyle.searchTextFont,\n searchTextColor: this.bannedMembersStyle.searchTextColor,\n }\n this.checkboxStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"4px\",\n checkedBackgroundColor: this.themeService.theme.palette.getPrimary(),\n uncheckedBackgroundColor: this.themeService.theme.palette.getAccent400()\n }\n }\n setStatusStyle() {\n let defaultStyle: BaseStyle = {\n height: \"12px\",\n width: \"12px\",\n border: \"none\",\n borderRadius: \"24px\",\n }\n this.statusIndicatorStyle = { ...defaultStyle, ...this.statusIndicatorStyle }\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: \"\",\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n hoverBackground: \"\"\n })\n this.listItemStyle = { ...defaultStyle, ...this.listItemStyle }\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"36px\",\n height: \"36px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n })\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle }\n }\n\n membersStyles = () => {\n return {\n padding: this.bannedMembersStyle.padding\n }\n }\n // styles\n backButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.bannedMembersStyle.backButtonIconTint || this.themeService.theme.palette.getPrimary()\n }\n }\n closeButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.bannedMembersStyle.closeButtonIconTint || this.themeService.theme.palette.getPrimary()\n }\n }\n wrapperStyle = () => {\n return {\n height: this.bannedMembersStyle.height,\n width: this.bannedMembersStyle.width,\n background: this.bannedMembersStyle.background,\n border: this.bannedMembersStyle.border,\n borderRadius: this.bannedMembersStyle.borderRadius\n }\n }\n}\n","<div class=\"cc-banned-members\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-banned-members__back\">\n <cometchat-button [iconURL]=\"backButtonIconURL\" [buttonStyle]=\"backButtonStyle()\" *ngIf=\"showBackButton\" (cc-button-clicked)=\"backClicked()\" >\n\n </cometchat-button>\n </div>\n <div class=\"cc-banned-members__wrapper\" [ngStyle]=\"membersStyles()\">\n <div class=\"cc-banned-members__menus\" *ngIf=\"menu\">\n <ng-container *ngTemplateOutlet=\"menu\">\n </ng-container>\n </div>\n <cometchat-list [listItemView]=\"listItemView ? listItemView : listItem\" [onScrolledToBottom]=\"onScrolledToBottom\" [onSearch]=\"onSearch\"\n [list]=\"bannedMembers\" [searchText]=\"searchKeyword\" [searchPlaceholderText]=\"searchPlaceholder\"\n [searchIconURL]=\"searchIconURL\" [hideSearch]=\"hideSearch\" [title]=\"title\"\n\n [emptyStateText]=\"emptyStateText\" [loadingIconURL]=\"loadingIconURL\"\n [titleAlignment]=\"titleAlignment\" [loadingStateView]=\"loadingStateView\" [emptyStateView]=\"emptyStateView\"\n [errorStateText]=\"errorStateText\" [errorStateView]=\"errorStateView\" [listStyle]=\"listStyle\" [state]=\"state\">\n </cometchat-list>\n <ng-template #listItem let-bannedMember>\n <cometchat-list-item [statusIndicatorStyle]=\"statusIndicatorStyle\"\n [statusIndicatorColor]=\"getStatusIndicatorColor(bannedMember)\" [title]=\"bannedMember?.name\" [avatarURL]=\"bannedMember?.avatar\" [avatarName]=\"bannedMember?.name\"\n [listItemStyle]=\"listItemStyle\" [avatarStyle]=\"avatarStyle\"\n [hideSeparator]=\"hideSeparator\">\n <div slot=\"subtitleView\" *ngIf=\"subtitleView\" class=\"cc-banned-members__subtitle-view\">\n <ng-container *ngTemplateOutlet=\"subtitleView\">\n </ng-container>\n </div>\n <div slot=\"menuView\" *ngIf=\"options\">\n <cometchat-menu-list [data]=\"options(bannedMember)\" [menuListStyle]=\"menuListStyle\"></cometchat-menu-list>\n </div>\n <div slot=\"tailView\" *ngIf=\"selectionMode != selectionmodeEnum.none; else changeScope\" class=\"cc-banned-members__tail-view\">\n <ng-container *ngTemplateOutlet=\"tailView\">\n </ng-container>\n </div>\n <ng-template #changeScope>\n <div slot=\"tailView\">\n <div class=\"cc-banned-members__unban\">\n <cometchat-button [buttonStyle]=\"unbanIconStyle\" [iconURL]=\"unbanIconURL\" (click)=\"unBanMember(bannedMember)\">\n\n </cometchat-button>\n </div>\n </div>\n </ng-template>\n </cometchat-list-item>\n <ng-template #tailView>\n <div *ngIf=\"selectionMode == selectionmodeEnum.single\" class=\"cc-banned-members__selection--single\">\n <cometchat-radio-button (cc-radio-button-changed)=\"onMembersSelected(bannedMember,$event)\"></cometchat-radio-button>\n </div>\n <div *ngIf=\"selectionMode == selectionmodeEnum.multiple\" class=\"cc-banned-members__selection--multiple\">\n <cometchat-checkbox [checkboxStyle]=\"checkboxStyle\" (cc-checkbox-changed)=\"onMembersSelected(bannedMember,$event)\"></cometchat-checkbox>\n </div>\n </ng-template>\n </ng-template>\n </div>\n <div class=\"cc-close-button\">\n <cometchat-button [iconURL]=\"closeButtonIconURL\" [buttonStyle]=\"closeButtonStyle()\" (cc-button-clicked)=\"closeClicked()\">\n\n </cometchat-button>\n </div>\n</div>\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatBannedMembersComponent } from \"./cometchat-banned-members/cometchat-banned-members.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CometChatMessageHeader } from \"../CometChatMessageHeader/cometchat-message-header.module\";\nimport { CometChatUsers } from \"../CometChatUsers/cometchat-users.module\";\nimport '@cometchat/uikit-elements'\nimport { CometChatList } from \"../CometChatList/cometchat-list.module\";\n@NgModule({\n declarations: [CometChatBannedMembersComponent],\n imports: [CommonModule,FormsModule,CometChatMessageHeader,CometChatUsers,CometChatList],\n exports: [CometChatBannedMembersComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatBannedMembers {}\n","import \"@cometchat/uikit-elements\";\n\nimport {\n AvatarStyle,\n BackdropStyle,\n BadgeStyle,\n CheckboxStyle,\n ConfirmDialogStyle,\n DateStyle,\n IconStyle,\n ListItemStyle,\n ReceiptStyle,\n} from \"@cometchat/uikit-elements\";\nimport {\n BaseStyle,\n CometChatSoundManager,\n CometChatTextFormatter,\n CometChatUIKitUtility,\n ConversationUtils,\n ConversationsStyle,\n ListStyle,\n MessageReceiptUtils,\n} from \"@cometchat/uikit-shared\";\nimport {\n CardMessage,\n CometChatCallEvents,\n CometChatConversationEvents,\n CometChatGroupEvents,\n CometChatMessageEvents,\n CometChatOption,\n CometChatUIKitConstants,\n CometChatUserEvents,\n CustomInteractiveMessage,\n DatePatterns,\n FormMessage,\n IGroupLeft,\n IGroupMemberAdded,\n IGroupMemberKickedBanned,\n IGroupMemberScopeChanged,\n IMessages,\n MentionsTargetElement,\n MessageStatus,\n SchedulerMessage,\n SelectionMode,\n States,\n TitleAlignment,\n UserPresencePlacement,\n fontHelper,\n localize,\n} from \"@cometchat/uikit-resources\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n NgZone,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from \"@angular/core\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\n\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatException } from \"../../Shared/Utils/ComeChatException\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { CometChatUIKit } from \"../../Shared/CometChatUIkit/CometChatUIKit\";\nimport { Subscription } from \"rxjs\";\nimport { MessageUtils } from \"../../Shared/Utils/MessageUtils\";\nimport {processSubtitleContent} from '@cometchat/uikit-elements'\n\n/**\n *\n * CometChatConversation is a wrapper component consists of CometChatListBaseComponent and ConversationListComponent.\n *\n * @version 1.0.0\n * @author CometChatTeam\n * @copyright © 2022 CometChat Inc.\n *\n */\n@Component({\n selector: \"cometchat-conversations\",\n templateUrl: \"./cometchat-conversations.component.html\",\n styleUrls: [\"./cometchat-conversations.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatConversationsComponent implements OnInit, OnChanges {\n /**\n * This properties will come from Parent.\n */\n @Input() subtitleView!: TemplateRef<any>;\n @Input() title: string = localize(\"CHATS\"); //Title of the component\n @Input() options!:\n | ((conversation: CometChat.Conversation) => CometChatOption[])\n | null;\n @Input() searchPlaceHolder: string = localize(\"SEARCH\"); // placeholder text of search input\n @Input() disableUsersPresence: boolean = false;\n /**\n * @deprecated\n *\n * This property is deprecated as of version 4.3.16 due to newer property 'hideReceipt'. It will be removed in subsequent versions.\n */\n @Input() disableReceipt: boolean = false;\n @Input() hideReceipt: boolean = false;\n @Input() disableTyping: boolean = false;\n @Input() deliveredIcon: string = \"assets/message-delivered.svg\";\n @Input() readIcon: string = \"assets/message-read.svg\";\n @Input() errorIcon: string = \"assets/warning-small.svg\";\n @Input() datePattern: DatePatterns = DatePatterns.DayDateTime;\n @Input() onError: (error: CometChat.CometChatException) => void = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n @Input() sentIcon: string = \"assets/message-sent.svg\";\n @Input() privateGroupIcon: string = \"assets/Private.svg\";\n /**\n * @deprecated\n *\n * This property is deprecated as of version 4.3.7 due to newer property 'passwordGroupIcon'. It will be removed in subsequent versions.\n */\n @Input() protectedGroupIcon: string = \"assets/Locked.svg\";\n @Input() passwordGroupIcon: string | undefined = undefined;\n @Input() customSoundForMessages: string = \"\";\n @Input() activeConversation: CometChat.Conversation | null = null; //selected conversation\n @Input() searchIconURL: string = \"assets/search.svg\"; //image URL of the search icon\n @Input() hideSearch: boolean = true; //switch on/ff search input\n @Input() conversationsRequestBuilder!: CometChat.ConversationsRequestBuilder;\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() onSelect!: (\n conversation: CometChat.Conversation,\n selected: boolean\n ) => void;\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() errorStateView!: TemplateRef<any>;\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() emptyStateText: string = localize(\"NO_CHATS_FOUND\");\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() titleAlignment: TitleAlignment = TitleAlignment.left;\n\n @Input() listItemView!: TemplateRef<any>;\n @Input() menu!: TemplateRef<any>;\n @Input() hideSeparator: boolean = false;\n @Input() searchPlaceholder: string = localize(\"SEARCH\");\n @Input() hideError: boolean = false;\n @Input() selectionMode: SelectionMode = SelectionMode.none;\n @Input() disableSoundForMessages: boolean = false;\n @Input() confirmDialogTitle = localize(\"DELETE_CONVERSATION\");\n @Input() confirmButtonText: string = localize(\"DELETE\");\n @Input() cancelButtonText: string = localize(\"CANCEL\");\n @Input() confirmDialogMessage: string = localize(\n \"WOULD__YOU_LIKE_TO_DELETE_THIS_CONVERSATION\"\n );\n @Input() onItemClick!: (conversation: CometChat.Conversation) => void;\n @Input() deleteConversationDialogStyle: ConfirmDialogStyle = new ConfirmDialogStyle({\n confirmButtonBackground: this.themeService.theme.palette.getError(),\n cancelButtonBackground: this.themeService.theme.palette.getSecondary(),\n confirmButtonTextColor:\n this.themeService.theme.palette.getAccent900(\"light\"),\n confirmButtonTextFont: fontHelper(\n this.themeService.theme.typography.text2\n ),\n cancelButtonTextColor:\n this.themeService.theme.palette.getAccent900(\"dark\"),\n cancelButtonTextFont: fontHelper(\n this.themeService.theme.typography.text2\n ),\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n messageTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n messageTextColor: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n height: \"100%\",\n width: \"100%\",\n borderRadius: \"8px\",\n });\n @Input() backdropStyle: BackdropStyle = {\n height: \"100%\",\n width: \"100%\",\n background: \"rgba(0, 0, 0, 0.5)\",\n position: \"fixed\",\n };\n @Input() badgeStyle: BadgeStyle = {\n width: \"25px\",\n height: \"15px\",\n background: \"#5aaeff\",\n textColor: \"white\",\n textFont: \"400 13px Inter, sans-serif\",\n borderRadius: \"16px\",\n };\n @Input() dateStyle: DateStyle = {\n textFont: \"400 11px Inter, sans-serif\",\n textColor: \"rgba(20, 20, 20, 0.58)\",\n };\n @Input() conversationsStyle: ConversationsStyle = {\n width: \"\",\n height: \"\",\n border: \"\",\n borderRadius: \"\",\n };\n @Input() listItemStyle: ListItemStyle = {\n height: \"97%\",\n width: \"100%\",\n };\n @Input() statusIndicatorStyle: any = {\n height: \"10px\",\n width: \"10px\",\n borderRadius: \"16px\",\n };\n @Input() typingIndicatorText: string = localize(\"IS_TYPING\");\n @Input() threadIndicatorText: string = localize(\"IN_A_THREAD\");\n @Input() avatarStyle: AvatarStyle = {};\n @Input() receiptStyle: ReceiptStyle = {};\n ccGroupMemberAdded!: Subscription;\n ccGroupMemberJoined!: Subscription;\n ccGroupMemberKicked!: Subscription;\n ccGroupMemberBanned!: Subscription;\n ccGroupMemberScopeChanged!: Subscription;\n ccOwnershipChanged!: Subscription;\n ccMessageEdit!: Subscription;\n ccMessageSent!: Subscription;\n ccMessageEdited!: Subscription;\n ccMessageDelete!: Subscription;\n ccGroupDeleted!: Subscription;\n ccGroupLeft!: Subscription;\n ccUserBlocked!: Subscription;\n ccUserUnblocked!: Subscription;\n\n ccMessageRead!: Subscription;\n onTextMessageReceived!: Subscription;\n onMediaMessageReceived!: Subscription;\n onCustomMessageReceived!: Subscription;\n onFormMessageReceived!: Subscription;\n onSchedulerMessageReceived!: Subscription;\n onCardMessageReceived!: Subscription;\n onCustomInteractiveMessageReceived!: Subscription;\n onMessagesRead!: Subscription;\n onMessageDeleted!: Subscription;\n onMessagesReadByAll!: Subscription;\n onMessagesDeliveredToAll!: Subscription;\n onMessageEdited!: Subscription;\n onMessagesDelivered!: Subscription;\n onTypingStarted!: Subscription;\n onTypingEnded!: Subscription;\n public ccOutgoingCall!: Subscription;\n public ccCallRejected!: Subscription;\n public ccCallEnded!: Subscription;\n public ccCallAccepted!: Subscription;\n public ccGroupCreated!: Subscription;\n iconStyle: any = {\n iconTint: \"lightgrey\",\n height: \"20px\",\n width: \"20px\",\n };\n listStyle: ListStyle = new ListStyle({});\n menustyle = {\n width: \"\",\n height: \"\",\n border: \"none\",\n borderRadius: \"8px\",\n background: \"transparent\",\n textFont: \"\",\n textColor: \"black\",\n iconTint: \"grey\",\n iconBackground: \"transparent\",\n iconBorder: \"none\",\n iconBorderRadius: \"0\",\n submenuWidth: \"70px\",\n submenuHeight: \"20px\",\n submenuBorder: \"1px solid #e8e8e8\",\n submenuBorderRadius: \"8px\",\n submenuBackground: \"white\",\n };\n public typingIndicator!: CometChat.TypingIndicator | null;\n public typingListenerId: string =\n \"conversation__LISTENER\" + new Date().getTime();\n public callListenerId = \"call_\" + new Date().getTime();\n public connectionListenerId = \"connection_\" + new Date().getTime();\n selectionmodeEnum: typeof SelectionMode = SelectionMode;\n public isDialogOpen: boolean = false;\n public isEmpty: boolean = false;\n public isLoading: boolean = true;\n public state: States = States.loading;\n public statusColor: any = {\n online: \"\",\n private: \"\",\n password: \"#F7A500\",\n public: \"\",\n };\n public limit: number = 30;\n public isError: boolean = false;\n public conversationList: CometChat.Conversation[] = [];\n public scrolledToBottom: boolean = false;\n public checkItemChange: boolean = false;\n conversationOptions!: CometChatOption[];\n public showConfirmDialog: boolean = false;\n public conversationToBeDeleted: CometChat.Conversation | null = null;\n public userListenerId: string = \"chatlist_user_\" + new Date().getTime();\n public groupListenerId: string = \"chatlist_group_\" + new Date().getTime();\n public groupToUpdate: CometChat.Group | {} = {};\n public conversationType?: string = undefined;\n safeHtml!: SafeHtml;\n enablePolls: boolean = false;\n enableStickers: boolean = false;\n enableWhiteboard: boolean = false;\n enableDocument: boolean = false;\n threadIconURL: string = \"assets/thread-arrow.svg\";\n public confirmDialogStyle: ConfirmDialogStyle = {\n height: \"100%\",\n width: \"100%\",\n borderRadius: \"8px\",\n };\n subtitleValue!: string;\n modalStyle: BaseStyle = {\n height: \"230px\",\n width: \"270px\",\n };\n firstReload: boolean = false;\n isActive: boolean = true;\n contactsNotFound: boolean = false;\n chatSearch!: boolean;\n requestBuilder!: CometChat.ConversationsRequest;\n checkboxStyle: CheckboxStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"4px\",\n checkedBackgroundColor: \"#2196F3\",\n uncheckedBackgroundColor: \"#ccc\"\n }\n /**\n * Properties for internal use\n */\n public localize = localize;\n /**\n * This properties will come from Parent.\n */\n @Input() loggedInUser!: CometChat.User | null;\n //To be enabled in UMC\n // @Input() mentionsIconURL!: string;\n @Input() disableMentions: boolean = false;\n @Input() textFormatters?: Array<CometChatTextFormatter>;\n\n /**\n * Properties for internal use\n */\n /**\n * passing this callback to menuList component on delete click\n * @param {CometChat.Conversation} conversation\n */\n deleteConversationOnClick: (() => void) | null = () => {\n this.showConfirmationDialog(this.conversationToBeDeleted!);\n };\n // callback for confirmDialogComponent\n onConfirmClick = () => {\n this.deleteSelectedConversation();\n };\n onConversationSelected(conversation: CometChat.Conversation, event: any) {\n let selected: boolean = event.detail.checked;\n if (this.onSelect) {\n this.onSelect(conversation, selected);\n }\n }\n getStatusIndicatorStyle = (conversation: CometChat.Conversation) => {\n const convWith = conversation.getConversationWith();\n\n if (convWith instanceof CometChat.User) {\n let userStatusVisibility = new MessageUtils().getUserStatusVisibility(convWith);\n if (!this.disableUsersPresence && !userStatusVisibility) {\n return this.statusIndicatorStyle;\n }\n return null;\n } else if (conversation.getConversationType() === CometChatUIKitConstants.MessageReceiverType.group) {\n return {\n height: \"12px\",\n width: \"12px\",\n borderRadius: \"16px\",\n };\n } else {\n return null;\n }\n };\n\n\n //To be enabled in UMC\n // getMentionIconStyle(): IconStyle {\n // return new IconStyle({\n // height: \"16px\",\n // width: \"16px\",\n // iconTint:\n // this.conversationsStyle?.mentionIconTint ??\n // this.themeService.theme.palette.getPrimary(),\n // });\n // }\n\n /**\n * @param {CometChat.Conversation} conversation\n */\n checkStatusType(conversation: CometChat.Conversation) {\n let item: CometChat.User | CometChat.Group = conversation.getConversationWith()\n if (\n item instanceof CometChat.User\n ) {\n let userStatusVisibility = new MessageUtils().getUserStatusVisibility(item) || this.disableUsersPresence;\n if (!userStatusVisibility)\n return this.statusColor[item?.getStatus()];\n else return null;\n }\n else {\n return this.statusColor[item?.getType()]\n }\n }\n\n getExtensionData(messageObject: CometChat.BaseMessage) {\n let messageText;\n //xss extensions data\n const xssData = CometChatUIKitUtility.checkMessageForExtensionsData(\n messageObject,\n \"xss-filter\"\n );\n if (\n xssData &&\n CometChatUIKitUtility.checkHasOwnProperty(xssData, \"sanitized_text\") &&\n CometChatUIKitUtility.checkHasOwnProperty(xssData, \"hasXSS\") &&\n xssData.hasXSS === \"yes\"\n ) {\n messageText = xssData.sanitized_text;\n }\n //datamasking extensions data\n const maskedData = CometChatUIKitUtility.checkMessageForExtensionsData(\n messageObject,\n \"data-masking\"\n );\n if (\n maskedData &&\n CometChatUIKitUtility.checkHasOwnProperty(maskedData, \"data\") &&\n CometChatUIKitUtility.checkHasOwnProperty(\n maskedData.data,\n \"sensitive_data\"\n ) &&\n CometChatUIKitUtility.checkHasOwnProperty(\n maskedData.data,\n \"message_masked\"\n ) &&\n maskedData.data.sensitive_data === \"yes\"\n ) {\n messageText = maskedData.data.message_masked;\n }\n //profanity extensions data\n const profaneData = CometChatUIKitUtility.checkMessageForExtensionsData(\n messageObject,\n \"profanity-filter\"\n );\n if (\n profaneData &&\n CometChatUIKitUtility.checkHasOwnProperty(profaneData, \"profanity\") &&\n CometChatUIKitUtility.checkHasOwnProperty(profaneData, \"message_clean\") &&\n profaneData.profanity === \"yes\"\n ) {\n messageText = profaneData.message_clean;\n }\n return messageText || (messageObject as any).text;\n }\n setSubtitle = (conversationObject: CometChat.Conversation) => {\n const lastMessage = conversationObject.getLastMessage();\n if(lastMessage && lastMessage?.getType() === CometChatUIKitConstants.MessageTypes.text){\n lastMessage.setText(processSubtitleContent((lastMessage as CometChat.TextMessage).getText()));\n }\n if (this.typingIndicator) {\n const isTyping =\n (conversationObject as any)?.conversationWith?.guid ==\n this.typingIndicator.getReceiverId();\n if (isTyping) {\n return `${this.typingIndicator.getSender().getName()} ${this.typingIndicatorText\n }`;\n } else if (\n (conversationObject as any)?.conversationWith?.uid ==\n this.typingIndicator?.getSender().getUid() &&\n this.typingIndicator.getReceiverType() !==\n CometChatUIKitConstants.MessageReceiverType.group\n ) {\n return this.typingIndicatorText;\n }\n }\n let subtitle = ChatConfigurator.getDataSource().getLastConversationMessage(\n conversationObject,\n this.loggedInUser!,\n\n {\n disableMentions: this.disableMentions,\n theme: this.themeService.theme,\n mentionsTargetElement: MentionsTargetElement.conversation,\n textFormatters: this.textFormatters\n }\n );\n let icon =\n conversationObject?.getLastMessage()?.getType() ==\n CometChatUIKitConstants.MessageTypes.audio\n ? \"📞 \"\n : \"📹 \";\n\n return this.sanitizer.bypassSecurityTrustHtml(\n conversationObject?.getLastMessage()?.getCategory() ==\n CometChatUIKitConstants.MessageCategory.call\n ? icon + subtitle\n : subtitle\n );\n };\n\n //To be enabled in UMC\n // getUnreadMentionsIconStyle() {\n // return {\n // paddingRight: \"3px\",\n // };\n // }\n\n checkGroupType(conversation: CometChat.Conversation): string {\n let image: string = \"\";\n if (\n conversation.getConversationType() ==\n CometChatUIKitConstants.MessageReceiverType.group\n ) {\n let group: CometChat.Group = conversation.getConversationWith() as CometChat.Group;\n switch (group.getType()) {\n case CometChatUIKitConstants.GroupTypes.password:\n image = this.passwordGroupIcon || this.protectedGroupIcon;\n break;\n case CometChatUIKitConstants.GroupTypes.private:\n image = this.privateGroupIcon;\n break;\n default:\n image = \"\";\n break;\n }\n }\n return image;\n }\n // callback for confirmDialogComponent\n onCancelClick = () => {\n this.isDialogOpen = false;\n this.conversationToBeDeleted = null;\n this.ref.detectChanges();\n };\n getMessageReceipt = (conversation: CometChat.Conversation) => {\n let receipt = MessageReceiptUtils.getReceiptStatus(\n conversation.getLastMessage()\n );\n return receipt;\n };\n getDate() {\n return this.datePattern ?? DatePatterns.DayDateTime;\n }\n optionsStyle = {\n background: \"transparent\",\n border: \"none\",\n };\n\n constructor(\n private ngZone: NgZone,\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService,\n private sanitizer: DomSanitizer\n ) { }\n\n ngOnInit() {\n this.firstReload = true;\n if (!this.conversationsRequestBuilder) {\n this.conversationsRequestBuilder =\n new CometChat.ConversationsRequestBuilder()\n .setLimit(this.limit)\n }\n this.setConversationOptions();\n this.setThemeStyle();\n this.subscribeToEvents();\n this.attachListeners(this.conversationUpdated);\n this.requestBuilder = this.conversationsRequestBuilder.build();\n if (this.requestBuilder?.getConversationType()) {\n this.conversationType = this.requestBuilder.getConversationType();\n }\n this.getConversation();\n }\n /**\n * Determines if the last message should trigger an update based on its category and type.\n *\n * @param message - The last message sent or received in the conversation.\n * @returns {boolean} - Returns true if the message should trigger an update, false otherwise.\n */\n checkIfLastMessageShouldUpdate(message: CometChat.BaseMessage): boolean | undefined {\n if (this.conversationType && this.conversationType != message.getReceiverType()) {\n return false;\n }\n // Checking if the message is a custom message\n let isCustomMessage = message?.getCategory() === CometChatUIKitConstants.MessageCategory.custom\n // Check if the message is a reply to another message\n if (message?.getParentMessageId() && !CometChatUIKit.conversationUpdateSettings?.shouldUpdateOnMessageReplies()) {\n return false;\n }\n if (isCustomMessage) {\n if (message?.getParentMessageId() && CometChatUIKit.conversationUpdateSettings?.shouldUpdateOnMessageReplies() && this.shouldIncrementForCustomMessage(message as CometChat.CustomMessage)) {\n return true\n }\n return this.shouldIncrementForCustomMessage(message as CometChat.CustomMessage);\n }\n // Check if the message is an action message\n if (message?.getCategory() === CometChatUIKitConstants.MessageCategory.action) {\n // Check if the message is a group member action\n if (message?.getType() === CometChatUIKitConstants.MessageTypes.groupMember) {\n return CometChatUIKit.conversationUpdateSettings?.shouldUpdateOnGroupActions();\n }\n // By default, action messages should trigger an update\n return true\n }\n // Check if the message is a call (either audio or video)\n if (message?.getCategory() === CometChatUIKitConstants.MessageCategory.call &&\n (message?.getType() === CometChatUIKitConstants.MessageTypes.audio ||\n message.getType() === CometChatUIKitConstants.MessageTypes.video)) {\n return CometChatUIKit.conversationUpdateSettings?.shouldUpdateOnCallActivities();\n }\n // By default, messages should trigger an update\n return true;\n }\n shouldIncrementForCustomMessage(message: CometChat.CustomMessage) {\n const metadata: any = message.getMetadata();\n // Checking if the custom message should increment the unread message counter\n return message.willUpdateConversation()\n || (metadata && metadata.hasOwnProperty(\"incrementUnreadCount\") && metadata.incrementUnreadCount) || CometChatUIKit.conversationUpdateSettings?.shouldUpdateOnCustomMessages();\n }\n attachConnectionListeners() {\n CometChat.addConnectionListener(\n this.connectionListenerId,\n new CometChat.ConnectionListener({\n onConnected: () => {\n console.log(\"ConnectionListener =>connected\");\n this.fetchNewConversations();\n },\n inConnecting: () => {\n console.log(\"ConnectionListener => In connecting\");\n },\n onDisconnected: () => {\n console.log(\"ConnectionListener => On Disconnected\");\n },\n })\n );\n }\n updateConversationObject(conversation: CometChat.Conversation) {\n if (conversation.getLastMessage() && this.checkIfLastMessageShouldUpdate(conversation.getLastMessage())) {\n let index = this.conversationList.findIndex(\n (element: CometChat.Conversation) =>\n element.getConversationId() == conversation.getConversationId()\n );\n this.conversationList.splice(index, 1, conversation);\n this.ref.detectChanges();\n }\n }\n subscribeToEvents() {\n if (!this.conversationType || this.conversationType == CometChatUIKitConstants.MessageReceiverType.group) {\n this.ccGroupMemberScopeChanged =\n CometChatGroupEvents.ccGroupMemberScopeChanged.subscribe(\n (item: IGroupMemberScopeChanged) => {\n let conversation = this.getConversationFromGroup(item.group!);\n if (conversation) {\n conversation.setLastMessage(item.message);\n this.updateConversationObject(conversation);\n }\n }\n );\n this.ccGroupMemberAdded = CometChatGroupEvents.ccGroupMemberAdded.subscribe(\n (item: IGroupMemberAdded) => {\n let group: CometChat.Group = item.userAddedIn!;\n let actionMessage: CometChat.Action[] = item.messages!;\n let conversation: CometChat.Conversation | null =\n this.getConversationFromGroup(item.userAddedIn!);\n conversation?.setConversationWith(group);\n conversation?.setLastMessage(actionMessage[actionMessage?.length - 1]);\n this.updateConversationObject(conversation!);\n }\n );\n this.ccGroupMemberKicked =\n CometChatGroupEvents.ccGroupMemberKicked.subscribe(\n (item: IGroupMemberKickedBanned) => {\n let conversation = this.getConversationFromGroup(item.kickedFrom!);\n if (conversation) {\n conversation.setLastMessage(item.message);\n this.updateConversationObject(conversation);\n }\n }\n );\n this.ccGroupMemberBanned =\n CometChatGroupEvents.ccGroupMemberBanned.subscribe(\n (item: IGroupMemberKickedBanned) => {\n let conversation = this.getConversationFromGroup(item.kickedFrom!);\n if (conversation) {\n conversation.setLastMessage(item.message);\n this.updateConversationObject(conversation);\n }\n }\n );\n this.ccGroupDeleted = CometChatGroupEvents.ccGroupDeleted.subscribe(\n (item: CometChat.Group) => {\n let conversation: CometChat.Conversation | null =\n this.getConversationFromGroup(item);\n if (conversation) {\n this.removeConversation(conversation);\n }\n }\n );\n this.ccGroupLeft = CometChatGroupEvents.ccGroupLeft.subscribe(\n (item: IGroupLeft) => {\n let conversationKey: number = this.conversationList.findIndex(\n (c: CometChat.Conversation) =>\n c?.getConversationType() ===\n CometChatUIKitConstants.MessageReceiverType.group &&\n (c?.getConversationWith() as CometChat.Group).getGuid() ==\n item.leftGroup.getGuid()\n );\n if (conversationKey >= 0) {\n let conversation: CometChat.Conversation =\n this.conversationList[conversationKey];\n this.removeConversation(conversation);\n if (\n this.activeConversation &&\n this.activeConversation?.getConversationId() ==\n conversation?.getConversationId()\n ) {\n this.activeConversation = null;\n }\n }\n }\n );\n }\n if (!this.conversationType || this.conversationType == CometChatUIKitConstants.MessageReceiverType.user) {\n this.ccUserBlocked = CometChatUserEvents.ccUserBlocked.subscribe(\n (item: CometChat.User) => {\n let conversation: CometChat.Conversation | null =\n this.getConversationFromUser(item);\n if (conversation && !this.requestBuilder?.isIncludeBlockedUsers()) {\n this.removeConversation(conversation);\n }\n else {\n this.updateUser(item);\n }\n this.ref.detectChanges();\n }\n );\n this.ccUserUnblocked = CometChatUserEvents.ccUserUnblocked.subscribe(\n (item: CometChat.User) => {\n let conversation: CometChat.Conversation | null =\n this.getConversationFromUser(item);\n if (conversation && this.requestBuilder?.isIncludeBlockedUsers()) {\n this.updateUser(item);\n }\n this.ref.detectChanges();\n }\n );\n }\n\n this.ccMessageEdit = CometChatMessageEvents.ccMessageEdited.subscribe(\n (object: IMessages) => {\n if (!this.conversationType || this.conversationType == object?.message?.getReceiverType()) {\n let message: CometChat.BaseMessage = object.message!;\n if (object.status == MessageStatus.success) {\n this.updateEditedMessage(message as CometChat.TextMessage);\n }\n }\n\n }\n );\n this.ccMessageSent = CometChatMessageEvents.ccMessageSent.subscribe(\n (obj: IMessages) => {\n let message: CometChat.BaseMessage = obj.message!;\n if (obj.status == MessageStatus.success) {\n this.updateConversation(message, false);\n }\n }\n );\n this.ccMessageDelete = CometChatMessageEvents.ccMessageDeleted.subscribe(\n (messageObject: CometChat.BaseMessage) => {\n this.updateConversation(messageObject);\n this.ref.detectChanges();\n }\n );\n this.ccMessageRead = CometChatMessageEvents.ccMessageRead.subscribe(\n (messageObject: CometChat.BaseMessage) => {\n let conversation = this.getConversationFromId(messageObject.getConversationId());\n if(conversation){\n this.updateEditedMessage(conversation.getLastMessage() as CometChat.TextMessage);\n this.resetUnreadCount(conversation.getConversationId());\n return;\n }\n if (!this.conversationType || this.conversationType == messageObject.getReceiverType()) {\n CometChat.CometChatHelper.getConversationFromMessage(\n messageObject\n ).then((conversation: CometChat.Conversation) => {\n if (\n conversation &&\n this.activeConversation &&\n conversation?.getConversationId() ==\n this.activeConversation?.getConversationId()\n ) {\n this.updateEditedMessage(messageObject as CometChat.TextMessage);\n this.resetUnreadCount();\n }\n });\n }\n }\n );\n this.ccCallEnded = CometChatCallEvents.ccCallEnded.subscribe(\n (call: CometChat.Call) => {\n if (call && Object.keys(call).length > 0) {\n this.updateConversation(call);\n }\n }\n );\n this.ccCallRejected = CometChatCallEvents.ccCallRejected.subscribe(\n (call: CometChat.Call) => {\n this.updateConversation(call);\n }\n );\n this.ccOutgoingCall = CometChatCallEvents.ccOutgoingCall.subscribe(\n (call: CometChat.Call) => {\n this.updateConversation(call);\n }\n );\n this.ccCallAccepted = CometChatCallEvents.ccCallAccepted.subscribe(\n (call: CometChat.Call) => {\n this.updateConversation(call);\n }\n );\n this.ccGroupCreated = CometChatGroupEvents.ccGroupCreated.subscribe(\n (group: CometChat.Group) => {\n CometChat.getConversation(group.getGuid(),CometChatUIKitConstants.MessageReceiverType.group).then((conversation:CometChat.Conversation)=>{\n this.conversationList.unshift(conversation);\n this.ref.detectChanges();\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n }\n );\n }\n unsubscribeToEvents() {\n this.ccGroupMemberAdded?.unsubscribe();\n this.ccGroupMemberKicked?.unsubscribe();\n this.ccGroupMemberBanned?.unsubscribe();\n this.ccMessageEdit?.unsubscribe();\n this.ccMessageSent?.unsubscribe();\n this.ccMessageEdited?.unsubscribe();\n this.ccMessageDelete?.unsubscribe();\n this.ccGroupDeleted?.unsubscribe();\n this.ccGroupLeft?.unsubscribe();\n this.ccUserBlocked?.unsubscribe();\n this.ccUserUnblocked?.unsubscribe();\n this.ccMessageRead?.unsubscribe();\n this.ccGroupCreated?.unsubscribe();\n }\n getConversationFromUser(user: CometChat.User) {\n let index = this.conversationList.findIndex(\n (element: CometChat.Conversation) =>\n element.getConversationType() ==\n CometChatUIKitConstants.MessageReceiverType.user &&\n (element.getConversationWith() as CometChat.User).getUid() ==\n user.getUid()\n );\n if (index >= 0) {\n return this.conversationList[index];\n }\n return null;\n }\n getConversationFromId(id: string) {\n let index = this.conversationList.findIndex(\n (element: CometChat.Conversation) =>\n element.getConversationId() == id\n );\n if (index >= 0) {\n return this.conversationList[index];\n }\n return null;\n }\n getConversationFromGroup(\n group: CometChat.Group\n ): CometChat.Conversation | null {\n let index = this.conversationList.findIndex(\n (element: CometChat.Conversation) =>\n element.getConversationType() ==\n CometChatUIKitConstants.MessageReceiverType.group &&\n (element.getConversationWith() as CometChat.Group).getGuid() ==\n group.getGuid()\n );\n if (index >= 0) {\n return this.conversationList[index];\n }\n return null;\n }\n ngOnChanges(change: SimpleChanges) {\n try {\n if (change[\"activeConversation\"]) {\n this.resetUnreadCount();\n this.ref.detectChanges();\n }\n if (change[\"conversationsStyle\"]) {\n this.setThemeStyle();\n }\n /**\n * When user sends message conversationList is updated with latest message\n */\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n ngOnDestroy() {\n try {\n this.removeListeners();\n this.unsubscribeToEvents();\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n this.ref.detectChanges();\n }\n // getting default conversation option and adding callback in it\n setConversationOptions() {\n if (this.options) {\n return;\n }\n this.conversationOptions = ConversationUtils.getDefaultOptions();\n this.conversationOptions.forEach((element: CometChatOption) => {\n if (\n !element.onClick &&\n element.id == CometChatUIKitConstants.ConversationOptions.delete\n ) {\n element.onClick = this.deleteConversationOnClick;\n }\n });\n return;\n }\n // reset unread count\n onClick(conversation: CometChat.Conversation) {\n if (this.onItemClick) {\n this.onItemClick(conversation);\n }\n }\n // set unread count\n resetUnreadCount(conversationId?: string) {\n const targetConversationId = conversationId || this.activeConversation?.getConversationId();\n \n if (!targetConversationId) return;\n \n const conversationIndex = this.conversationList.findIndex(\n (conv) => conv.getConversationId() === targetConversationId\n );\n \n if (conversationIndex < 0) return;\n \n const updatedConversation = this.conversationList[conversationIndex];\n updatedConversation.setUnreadMessageCount(0);\n \n const lastMessage = updatedConversation.getLastMessage();\n if (lastMessage instanceof CometChat.TextMessage) {\n lastMessage.setMuid(this.getUinx());\n }\n \n this.conversationList = [\n ...this.conversationList.slice(0, conversationIndex),\n updatedConversation,\n ...this.conversationList.slice(conversationIndex + 1),\n ];\n \n this.ref.detectChanges();\n }\n // sets property from theme to style object\n setThemeStyle() {\n this.setAvatarStyle();\n this.setBadgeStyle();\n this.setConfirmDialogStyle();\n this.setConversationsStyle();\n this.setListItemStyle();\n this.setDateStyle();\n this.setStatusStyle();\n this.setReceiptStyle();\n this.statusColor.private =\n this.conversationsStyle?.privateGroupIconBackground;\n this.statusColor.online = this.conversationsStyle?.onlineStatusColor;\n this.statusColor.password =\n this.conversationsStyle?.passwordGroupIconBackground;\n this.listStyle = {\n titleTextFont: this.conversationsStyle.titleTextFont,\n titleTextColor: this.conversationsStyle.titleTextColor,\n emptyStateTextFont: this.conversationsStyle.emptyStateTextFont,\n emptyStateTextColor: this.conversationsStyle.emptyStateTextColor,\n errorStateTextFont: this.conversationsStyle.errorStateTextFont,\n errorStateTextColor: this.conversationsStyle.errorStateTextColor,\n loadingIconTint: this.conversationsStyle.loadingIconTint,\n separatorColor: this.conversationsStyle.separatorColor,\n };\n this.iconStyle.iconTint = this.themeService.theme.palette.getAccent400();\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"97%\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: this.themeService.theme.palette.getAccent50(),\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n hoverBackground: this.themeService.theme.palette.getAccent50(),\n });\n this.listItemStyle = { ...defaultStyle, ...this.listItemStyle };\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"36px\",\n height: \"36px\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n });\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };\n }\n setStatusStyle() {\n let defaultStyle: BaseStyle = {\n height: \"12px\",\n width: \"12px\",\n border: \"none\",\n borderRadius: \"24px\",\n };\n this.statusIndicatorStyle = {\n ...defaultStyle,\n ...this.statusIndicatorStyle,\n };\n }\n setConversationsStyle() {\n let defaultStyle: ConversationsStyle = new ConversationsStyle({\n lastMessageTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n lastMessageTextColor: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n onlineStatusColor: this.themeService.theme.palette.getSuccess(),\n separatorColor: this.themeService.theme.palette.getAccent400(),\n privateGroupIconBackground: this.themeService.theme.palette.getSuccess(),\n passwordGroupIconBackground: \"RGB(247, 165, 0)\",\n typingIndictorTextColor: this.themeService.theme.palette.getPrimary(),\n typingIndictorTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n threadIndicatorTextFont: fontHelper(\n this.themeService.theme.typography.caption2\n ),\n threadIndicatorTextColor: this.themeService.theme.palette.getAccent600(),\n });\n this.conversationsStyle = { ...defaultStyle, ...this.conversationsStyle };\n this.checkboxStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"4px\",\n checkedBackgroundColor: this.themeService.theme.palette.getPrimary(),\n uncheckedBackgroundColor: this.themeService.theme.palette.getAccent400()\n }\n }\n setDateStyle() {\n let defaultStyle: DateStyle = new DateStyle({\n textFont: fontHelper(this.themeService.theme.typography.caption2),\n textColor: this.themeService.theme.palette.getAccent600(),\n background: \"transparent\",\n });\n this.dateStyle = { ...defaultStyle, ...this.dateStyle };\n }\n setReceiptStyle() {\n let defaultStyle: ReceiptStyle = new ReceiptStyle({\n waitIconTint: this.themeService.theme.palette.getAccent700(),\n sentIconTint: this.themeService.theme.palette.getAccent600(),\n deliveredIconTint: this.themeService.theme.palette.getAccent600(),\n readIconTint: this.themeService.theme.palette.getPrimary(),\n errorIconTint: this.themeService.theme.palette.getError(),\n height: \"20px\",\n width: \"20px\",\n background: \"transparent\"\n });\n this.receiptStyle = { ...defaultStyle, ...this.receiptStyle };\n }\n setBadgeStyle() {\n let defaultStyle: BadgeStyle = new BadgeStyle({\n textFont: fontHelper(this.themeService.theme.typography.subtitle2),\n textColor: this.themeService.theme.palette.getAccent(\"dark\"),\n background: this.themeService.theme.palette.getPrimary(),\n height: \"16px\",\n borderRadius: \"16px\",\n width: \"24px\",\n });\n this.badgeStyle = { ...defaultStyle, ...this.badgeStyle };\n }\n setConfirmDialogStyle() {\n let defaultStyle: ConfirmDialogStyle = new ConfirmDialogStyle({\n confirmButtonBackground: this.themeService.theme.palette.getError(),\n cancelButtonBackground: this.themeService.theme.palette.getSecondary(),\n confirmButtonTextColor:\n this.themeService.theme.palette.getAccent900(\"light\"),\n confirmButtonTextFont: fontHelper(\n this.themeService.theme.typography.text2\n ),\n cancelButtonTextColor:\n this.themeService.theme.palette.getAccent900(\"dark\"),\n cancelButtonTextFont: fontHelper(\n this.themeService.theme.typography.text2\n ),\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n messageTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n messageTextColor: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n height: \"100%\",\n width: \"350px\",\n borderRadius: \"8px\",\n });\n this.deleteConversationDialogStyle = {\n ...defaultStyle,\n ...this.deleteConversationDialogStyle,\n };\n }\n // checking if user has his own configuration else will use default configuration\n /**\n * @param {Object={}} config\n * @param {Object} defaultConfig?\n * @returns defaultConfig\n */\n // calling subtitle callback from configurations\n /**\n * @param {CometChat.Conversation} conversation\n */\n /**\n * Fetches the coversation based on the conversationRequest config\n */\n fetchNextConversation(): any {\n try {\n return this.requestBuilder.fetchNext();\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n updateEditedMessage(message: CometChat.TextMessage) {\n let index = this.conversationList.findIndex(\n (conversationObj: CometChat.Conversation) =>\n conversationObj.getLastMessage() &&\n (conversationObj.getLastMessage() as CometChat.BaseMessage).getId() ==\n message?.getId()\n );\n if (index >= 0) {\n this.conversationEditedDeleted(message);\n }\n }\n /**\n * attaches Listeners for user activity , group activities and calling\n * @param callback\n */\n /**\n * @param {Function} callback\n */\n attachListeners(callback: any) {\n try {\n if (!this.disableUsersPresence && (!this.conversationType || this.conversationType == CometChatUIKitConstants.MessageReceiverType.user)) {\n CometChat.addUserListener(\n this.userListenerId,\n new CometChat.UserListener({\n onUserOnline: (onlineUser: object) => {\n /* when someuser/friend comes online, user will be received here */\n callback(\n CometChatUIKitConstants.userStatusType.online,\n onlineUser\n );\n },\n onUserOffline: (offlineUser: object) => {\n /* when someuser/friend went offline, user will be received here */\n callback(\n CometChatUIKitConstants.userStatusType.offline,\n offlineUser\n );\n },\n })\n );\n }\n if (!this.conversationType || this.conversationType == CometChatUIKitConstants.MessageReceiverType.group) {\n CometChat.addGroupListener(\n this.groupListenerId,\n new CometChat.GroupListener({\n onGroupMemberScopeChanged: (\n message: any,\n changedUser: any,\n newScope: any,\n oldScope: any,\n changedGroup: any\n ) => {\n this.updateConversation(message);\n },\n onGroupMemberKicked: (\n message: any,\n kickedUser: any,\n kickedBy: any,\n kickedFrom: any\n ) => {\n if (this.loggedInUser?.getUid() === kickedUser.getUid()) {\n this.removeConversationFromMessage(kickedFrom)\n }\n else {\n this.updateConversation(message);\n }\n\n },\n onGroupMemberBanned: (\n message: any,\n bannedUser: any,\n bannedBy: any,\n bannedFrom: any\n ) => {\n if (this.loggedInUser?.getUid() === bannedUser.getUid()) {\n this.removeConversationFromMessage(bannedFrom)\n }\n else {\n this.updateConversation(message);\n }\n },\n onMemberAddedToGroup: (\n message: any,\n userAdded: any,\n userAddedBy: any,\n userAddedIn: any\n ) => {\n this.updateConversation(message);\n },\n onGroupMemberLeft: (message: any, leavingUser: any, group: any) => {\n this.updateConversation(message);\n },\n onGroupMemberJoined: (\n message: any,\n joinedUser: any,\n joinedGroup: any\n ) => {\n this.updateConversation(message);\n },\n })\n );\n }\n CometChat.addCallListener(\n this.callListenerId,\n new CometChat.CallListener({\n onIncomingCallReceived: (call: CometChat.Call) => {\n this.updateConversation(call);\n },\n onIncomingCallCancelled: (call: CometChat.Call) => {\n this.updateConversation(call);\n },\n onOutgoingCallRejected: (call: CometChat.Call) => {\n this.updateConversation(call);\n },\n onOutgoingCallAccepted: (call: CometChat.Call) => {\n this.updateConversation(call);\n },\n onCallEndedMessageReceived: (call: CometChat.Call) => {\n this.updateConversation(call);\n },\n })\n );\n\n // SDK listeners\n this.onTextMessageReceived =\n CometChatMessageEvents.onTextMessageReceived.subscribe(\n (textMessage: CometChat.TextMessage) => {\n callback(\n CometChatUIKitConstants.messages.TEXT_MESSAGE_RECEIVED,\n null,\n textMessage\n );\n }\n );\n this.onMediaMessageReceived =\n CometChatMessageEvents.onMediaMessageReceived.subscribe(\n (mediaMessage: CometChat.MediaMessage) => {\n callback(\n CometChatUIKitConstants.messages.MEDIA_MESSAGE_RECEIVED,\n null,\n mediaMessage\n );\n }\n );\n this.onCustomMessageReceived =\n CometChatMessageEvents.onCustomMessageReceived.subscribe(\n (customMessage: CometChat.BaseMessage) => {\n callback(\n CometChatUIKitConstants.messages.CUSTOM_MESSAGE_RECEIVED,\n null,\n customMessage\n );\n }\n );\n this.onFormMessageReceived =\n CometChatMessageEvents.onFormMessageReceived.subscribe(\n (formMessage: FormMessage) => {\n callback(\n CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED,\n null,\n formMessage\n );\n }\n );\n this.onSchedulerMessageReceived =\n CometChatMessageEvents.onSchedulerMessageReceived.subscribe(\n (formMessage: SchedulerMessage) => {\n callback(\n CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED,\n null,\n formMessage\n );\n }\n );\n this.onCardMessageReceived =\n CometChatMessageEvents.onCardMessageReceived.subscribe(\n (cardMessage: CardMessage) => {\n callback(\n CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED,\n null,\n cardMessage\n );\n }\n );\n this.onCustomInteractiveMessageReceived =\n CometChatMessageEvents.onCustomInteractiveMessageReceived.subscribe(\n (customMessage: CustomInteractiveMessage) => {\n callback(\n CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED,\n null,\n customMessage\n );\n }\n );\n this.onMessagesRead = CometChatMessageEvents.onMessagesRead.subscribe(\n (messageReceipt: CometChat.MessageReceipt) => {\n if (!this.disableReceipt && messageReceipt.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user && (!this.conversationType || this.conversationType == messageReceipt.getReceiverType())) {\n this.markAsRead(messageReceipt);\n }\n }\n );\n this.onMessagesReadByAll = CometChatMessageEvents.onMessagesReadByAll.subscribe(\n (messageReceipt: CometChat.MessageReceipt) => {\n if (!this.disableReceipt && messageReceipt.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.group && (!this.conversationType || this.conversationType == messageReceipt.getReceiverType())) {\n this.markAsRead(messageReceipt);\n\n }\n }\n );\n this.onMessagesDeliveredToAll = CometChatMessageEvents.onMessagesDeliveredToAll.subscribe(\n (messageReceipt: CometChat.MessageReceipt) => {\n if (!this.disableReceipt && messageReceipt.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.group && (!this.conversationType || this.conversationType == messageReceipt?.getReceiverType())) {\n this.updateDeliveredMessage(messageReceipt);\n\n\n }\n }\n );\n this.onMessageDeleted = CometChatMessageEvents.onMessageDeleted.subscribe(\n (deletedMessage: CometChat.BaseMessage) => {\n callback(\n CometChatUIKitConstants.messages.MESSAGE_DELETED,\n null,\n deletedMessage\n );\n }\n );\n this.onMessageEdited = CometChatMessageEvents.onMessageEdited.subscribe(\n (editedMessage: CometChat.BaseMessage) => {\n callback(\n CometChatUIKitConstants.messages.MESSAGE_EDITED,\n null,\n editedMessage\n );\n }\n );\n this.onMessagesDelivered =\n CometChatMessageEvents.onMessagesDelivered.subscribe(\n (messageReceipt: CometChat.MessageReceipt) => {\n if (!this.disableReceipt && messageReceipt.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user && (!this.conversationType || this.conversationType == messageReceipt?.getReceiverType())) {\n this.updateDeliveredMessage(messageReceipt);\n }\n }\n );\n this.onTypingStarted = CometChatMessageEvents.onTypingStarted.subscribe(\n (typingIndicator: CometChat.TypingIndicator) => {\n if (!this.conversationType || this.conversationType == typingIndicator?.getReceiverType()) {\n if (!this.disableTyping) {\n this.typingIndicator = typingIndicator;\n this.ref.detectChanges();\n }\n }\n\n }\n );\n this.onTypingEnded = CometChatMessageEvents.onTypingEnded.subscribe(\n (typingIndicator: CometChat.TypingIndicator) => {\n if (!this.conversationType || this.conversationType == typingIndicator?.getReceiverType()) {\n this.typingIndicator = null;\n this.ref.detectChanges();\n }\n\n }\n );\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n fetchNewConversations() {\n this.requestBuilder = this.conversationsRequestBuilder.build();\n if (this.requestBuilder?.getConversationType()) {\n this.conversationType = this.requestBuilder.getConversationType();\n }\n this.conversationList = [];\n this.getConversation(States.loaded);\n }\n removeConversationFromMessage(group: CometChat.Group) {\n let conversation: CometChat.Conversation | null = this.getConversationFromGroup(group)\n if (conversation) {\n this.updateConversationList(conversation)\n }\n }\n /**\n * Removes all listeners\n */\n removeListeners() {\n try {\n CometChat.removeUserListener(this.userListenerId);\n CometChat.removeGroupListener(this.groupListenerId);\n CometChat.removeConnectionListener(this.connectionListenerId);\n this.onTextMessageReceived?.unsubscribe();\n this.onMediaMessageReceived?.unsubscribe();\n this.onCustomMessageReceived?.unsubscribe();\n this.onFormMessageReceived?.unsubscribe();\n this.onSchedulerMessageReceived?.unsubscribe();\n this.onCardMessageReceived?.unsubscribe();\n this.onCustomInteractiveMessageReceived?.unsubscribe();\n this.onMessagesRead?.unsubscribe();\n this.onMessagesDeliveredToAll?.unsubscribe();\n this.onMessagesReadByAll?.unsubscribe();\n this.onMessageDeleted?.unsubscribe();\n this.onMessageEdited?.unsubscribe();\n this.onMessagesDelivered?.unsubscribe();\n this.onTypingStarted?.unsubscribe();\n this.onTypingEnded?.unsubscribe();\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n /**\n * Fetches Conversations Details with all the users\n */\n getConversation = (states: States = States.loading) => {\n if (\n this.requestBuilder &&\n (this.requestBuilder as any).pagination &&\n ((this.requestBuilder as any).pagination.current_page == 0 ||\n (this.requestBuilder as any).pagination.current_page !=\n (this.requestBuilder as any).pagination.total_pages)\n ) {\n try {\n this.state = states;\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n this.fetchNextConversation()\n .then((conversationList: CometChat.Conversation[]) => {\n conversationList.forEach(\n (conversation: CometChat.Conversation) => {\n if (\n this.activeConversation &&\n this.activeConversation !== null &&\n this.activeConversation.getConversationType() ===\n conversation.getConversationType()\n ) {\n if (\n this.activeConversation.getConversationId() ==\n conversation.getConversationId()\n ) {\n conversation.setUnreadMessageCount(0);\n //conversation.setUnreadMentionInMessageCount(0);\n }\n }\n }\n );\n if (states == States.loaded) {\n this.conversationList = [...conversationList];\n } else {\n this.conversationList = [\n ...this.conversationList,\n ...conversationList,\n ];\n }\n\n if (\n conversationList.length <= 0 &&\n this.conversationList?.length <= 0\n ) {\n this.ngZone.run(() => {\n if (this.state != States.empty) {\n this.state = States.empty;\n this.ref.detectChanges();\n }\n this.ref.detach(); // Detach the change detector\n });\n } else {\n this.ngZone.run(() => {\n this.ref.detectChanges();\n if (this.state != States.loaded) {\n this.state = States.loaded;\n this.ref.detectChanges();\n }\n this.ref.detach(); // Detach the change detector\n });\n }\n if (this.firstReload) {\n this.attachConnectionListeners();\n this.firstReload = false;\n }\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n if (this.conversationList?.length <= 0) {\n this.state = States.error;\n this.ref.detectChanges();\n }\n });\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n this.state = States.error;\n this.ref.detectChanges();\n });\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n };\n isReceiptDisable(conversation: CometChat.Conversation) {\n let item: any = conversation.getConversationWith();\n let message: CometChat.BaseMessage = conversation.getLastMessage();\n if (\n !(this.disableReceipt || this.hideReceipt) &&\n message &&\n !message?.getDeletedAt() &&\n message?.getCategory() !=\n CometChatUIKitConstants.MessageCategory.action &&\n message?.getCategory() != CometChatUIKitConstants.MessageCategory.call &&\n (!this.typingIndicator ||\n (item?.uid != this.typingIndicator.getReceiverId() &&\n item?.guid != this.typingIndicator.getReceiverId())) &&\n message.getSender()?.getUid() == this.loggedInUser?.getUid()\n ) {\n return true;\n } else {\n return false;\n }\n }\n /**\n * Updates the conversation list's last message , badgeCount , user presence based on activities propagated by listeners\n */\n conversationUpdated = (\n key: any,\n item: CometChat.User | CometChat.Group | null = null,\n message: CometChat.BaseMessage,\n options = null\n ) => {\n try {\n switch (key) {\n case CometChatUIKitConstants.userStatusType.online:\n case CometChatUIKitConstants.userStatusType.offline: {\n this.updateUser(item);\n break;\n }\n case CometChatUIKitConstants.messages.MESSAGE_READ: {\n this.updateConversation(message, false);\n break;\n }\n case CometChatUIKitConstants.messages.MESSAGE_DELIVERED: {\n this.updateConversation(message, false);\n break;\n }\n case CometChatUIKitConstants.messages.TEXT_MESSAGE_RECEIVED:\n case CometChatUIKitConstants.messages.MEDIA_MESSAGE_RECEIVED:\n case CometChatUIKitConstants.messages.CUSTOM_MESSAGE_RECEIVED:\n case CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED:\n if (!this.disableReceipt) {\n this.markMessageAsDelivered(message);\n }\n this.updateConversation(message);\n break;\n case CometChatUIKitConstants.groupMemberAction.ADDED:\n case CometChatUIKitConstants.groupMemberAction.BANNED:\n case CometChatUIKitConstants.groupMemberAction.JOINED:\n case CometChatUIKitConstants.groupMemberAction.KICKED:\n case CometChatUIKitConstants.groupMemberAction.LEFT:\n case CometChatUIKitConstants.groupMemberAction.UNBANNED:\n case CometChatUIKitConstants.groupMemberAction.SCOPE_CHANGE:\n this.updateConversation(message);\n break;\n case CometChatUIKitConstants.messages.MESSAGE_EDITED:\n case CometChatUIKitConstants.messages.MESSAGE_DELETED:\n this.conversationEditedDeleted(message);\n break;\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n };\n /**\n * @param {CometChat.BaseMessage} message\n */\n markMessageAsDelivered = (message: CometChat.BaseMessage) => {\n if (!message.hasOwnProperty(\"deliveredAt\") && message.getSender().getUid() !== this.loggedInUser?.getUid() &&\n (!this.disableReceipt || this.hideReceipt) && (!this.activeConversation || this.activeConversation?.getConversationId() != message.getConversationId())) {\n CometChat.markAsDelivered(message);\n }\n };\n\n /**\n * @param {CometChat.BaseMessage} readMessage\n */\n getUinx = () => {\n return String(Math.round(+new Date() / 1000));\n };\n markAsRead(readMessage: CometChat.MessageReceipt) {\n let conversationlist: CometChat.Conversation[] = [...this.conversationList];\n const conversationKey = conversationlist.findIndex(\n (conversationObj: CometChat.Conversation) =>\n (\n conversationObj.getLastMessage() as CometChat.BaseMessage\n )?.getId() == Number(readMessage.getMessageId()) && (\n conversationObj.getLastMessage() as CometChat.BaseMessage\n ).getSender().getUid() == this.loggedInUser?.getUid()\n );\n if (conversationKey > -1) {\n let newConversationObject!: CometChat.Conversation;\n if (\n !(\n conversationlist[\n conversationKey\n ].getLastMessage() as CometChat.TextMessage\n ).getReadAt()\n ) {\n newConversationObject = conversationlist[conversationKey];\n (\n newConversationObject.getLastMessage() as CometChat.TextMessage\n ).setReadAt(readMessage.getReadAt());\n newConversationObject.setUnreadMessageCount(0);\n (\n newConversationObject.getLastMessage() as CometChat.TextMessage\n ).setMuid(this.getUinx());\n conversationlist.splice(conversationKey, 1, newConversationObject);\n this.conversationList = [...conversationlist];\n this.ref.detectChanges();\n }\n }\n }\n /**\n * Updates Detail when user comes online/offline\n * @param\n */\n /**\n * @param {CometChat.User|CometChat.Group|null} user\n */\n updateUser(user: CometChat.User | CometChat.Group | null) {\n try {\n //when user updates\n const conversationlist: CometChat.Conversation[] = [\n ...this.conversationList,\n ];\n //Gets the index of user which comes offline/online\n const conversationKey = conversationlist.findIndex(\n (conversationObj: CometChat.Conversation) =>\n conversationObj.getConversationType() ===\n CometChatUIKitConstants.MessageReceiverType.user &&\n (conversationObj.getConversationWith() as CometChat.User).getUid() ===\n (user as CometChat.User).getUid()\n );\n if (conversationKey > -1) {\n let conversationObj: CometChat.Conversation =\n conversationlist[conversationKey];\n let conversationWithObj: CometChat.User =\n conversationObj.getConversationWith() as CometChat.User;\n conversationWithObj.setStatus((user as CometChat.User).getStatus());\n let newConversationObj: CometChat.Conversation = conversationObj;\n newConversationObj.setConversationWith(conversationWithObj);\n (newConversationObj.getLastMessage() as CometChat.TextMessage).setMuid(\n this.getUinx()\n );\n conversationlist.splice(conversationKey, 1, newConversationObj);\n this.conversationList = conversationlist;\n this.ref.detectChanges();\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n this.ref.detectChanges();\n }\n }\n /**\n *\n * Gets the last message\n * @param conversation\n /**\n * @param {CometChat.BaseMessage} message\n * @param {CometChat.Conversation|{}} conversation\n */\n makeLastMessage(\n message: CometChat.BaseMessage,\n conversation: CometChat.Conversation | {} = {}\n ) {\n const newMessage = message;\n return newMessage;\n }\n updateConversationWithForGroup(message: CometChat.Action, conversation: CometChat.Conversation) {\n if (message.getReceiverType() === CometChatUIKitConstants.MessageReceiverType.group &&\n conversation.getConversationType() === CometChatUIKitConstants.MessageReceiverType.group) {\n\n const isSameGroup = (message.getReceiver() as CometChat.Group).getGuid() ===\n (message.getActionFor() as CometChat.Group).getGuid();\n\n if (isSameGroup) {\n let updatedGroup = conversation.getConversationWith() as CometChat.Group;\n updatedGroup.setMembersCount((message.getActionFor() as CometChat.Group).getMembersCount());\n conversation.setConversationWith(updatedGroup);\n }\n }\n }\n /**\n *\n * Updates Conversations as Text/Custom Messages are received\n * @param\n *\n */\n /**\n * @param {CometChat.BaseMessage} message\n * @param {boolean} notification\n */\n updateConversation(\n message: CometChat.BaseMessage,\n notification: boolean = true\n ) {\n let metadata: any;\n if (message instanceof CometChat.CustomMessage) {\n metadata = message.getMetadata();\n }\n try {\n if (this.checkIfLastMessageShouldUpdate(message)) {\n this.makeConversation(message)\n .then((response: any) => {\n let isCustomMessage: boolean = message instanceof CometChat.CustomMessage\n const conversationKey = response.conversationKey;\n const conversationObj: CometChat.Conversation =\n response.conversationObj;\n const conversationList = response.conversationList;\n if (conversationKey > -1) {\n // if sender is not logged in user then increment count\n let unreadMessageCount =\n (this.loggedInUser?.getUid() != message.getSender().getUid() ||\n this.loggedInUser?.getUid() == message.getReceiverId())\n ? this.makeUnreadMessageCount(conversationObj)\n : this.makeUnreadMessageCount(conversationObj) - 1;\n let lastMessageObj: CometChat.BaseMessage = this.makeLastMessage(\n message,\n conversationObj\n );\n let newConversationObj: CometChat.Conversation = conversationObj;\n if (message instanceof CometChat.Action) {\n this.updateConversationWithForGroup(message, newConversationObj)\n }\n newConversationObj.setLastMessage(lastMessageObj);\n if (message.getCategory() != CometChatUIKitConstants.MessageCategory.action) {\n newConversationObj.setUnreadMessageCount(unreadMessageCount);\n }\n if (\n lastMessageObj.getSender().getUid() != this.loggedInUser?.getUid()\n ) {\n let timesLoggedInUserIsMentioned = 0;\n let mentionedUsers = lastMessageObj.getMentionedUsers();\n if (mentionedUsers.length) {\n for (\n let i = 0;\n i < mentionedUsers.length;\n i++\n ) {\n if (mentionedUsers[i].getUid() == this.loggedInUser?.getUid()) {\n timesLoggedInUserIsMentioned++;\n }\n }\n }\n }\n conversationList.splice(conversationKey, 1);\n conversationList.unshift(newConversationObj);\n this.conversationList = [...conversationList];\n if (this.loggedInUser?.getUid() == message.getSender().getUid()) {\n this.activeConversation = newConversationObj;\n }\n if (\n notification &&\n this.loggedInUser?.getUid() != message?.getSender()?.getUid()\n ) {\n if(!this.disableSoundForMessages){\n this.playAudio();\n }\n this.ref.detectChanges();\n }\n } else {\n let incrementCount = this.loggedInUser?.getUid() != message.getSender().getUid() ? 1 : 0\n let lastMessageObj = this.makeLastMessage(message);\n conversationObj.setLastMessage(lastMessageObj);\n if (message instanceof CometChat.Action) {\n this.updateConversationWithForGroup(message, conversationObj)\n }\n if (message.getCategory() != CometChatUIKitConstants.MessageCategory.action) {\n conversationObj.setUnreadMessageCount(incrementCount);\n }\n\n conversationList.unshift(conversationObj);\n this.conversationList = conversationList;\n this.ref.detectChanges();\n if (\n notification &&\n this.loggedInUser?.getUid() != message?.getSender()?.getUid()\n ) {\n if(!this.disableSoundForMessages){\n this.playAudio();\n }\n this.ref.detectChanges();\n }\n }\n if (this.state != States.loaded) {\n this.state = States.loaded;\n }\n this.ref.detectChanges();\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n this.ref.detectChanges();\n });\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n this.ref.detectChanges();\n }\n updateDeliveredMessage(messageReceipt: CometChat.MessageReceipt) {\n let conversationList: CometChat.Conversation[] = [...this.conversationList];\n let conversationKey: number = conversationList.findIndex(\n (c: CometChat.Conversation) =>\n (\n c.getLastMessage() as CometChat.BaseMessage\n )?.getId() == Number(messageReceipt.getMessageId()) && (\n c.getLastMessage() as CometChat.BaseMessage\n ).getSender().getUid() == this.loggedInUser?.getUid()\n );\n let conversationObj: CometChat.Conversation;\n if (conversationKey > -1) {\n conversationObj = conversationList[conversationKey];\n if (\n !(\n conversationObj.getLastMessage() as CometChat.TextMessage\n ).getDeliveredAt()\n ) {\n (\n conversationObj.getLastMessage() as CometChat.TextMessage\n ).setDeliveredAt(Number(this.getUinx()));\n (conversationObj.getLastMessage() as CometChat.TextMessage).setMuid(\n this.getUinx()\n );\n conversationList.splice(conversationKey, 1, conversationObj);\n this.conversationList = [...conversationList];\n this.ref.detectChanges();\n }\n }\n }\n /**\n *\n * Gets The Count of Unread Messages\n * @param\n */\n /**\n * @param {any} conversation\n * @param {any} operator\n */\n makeUnreadMessageCount(\n conversation: CometChat.Conversation,\n operator: any = null\n ) {\n if (Object.keys(conversation).length === 0) {\n return 1;\n }\n let unreadMessageCount: number = conversation.getUnreadMessageCount();\n if (\n this.activeConversation &&\n this.activeConversation.getConversationId() ===\n conversation.getConversationId()\n ) {\n unreadMessageCount += 1;\n } else if (\n (this.activeConversation &&\n this.activeConversation.hasOwnProperty(\"guid\") &&\n conversation.getConversationWith().hasOwnProperty(\"guid\") &&\n (\n this.activeConversation.getConversationWith() as CometChat.Group\n ).getGuid() ===\n (conversation.getConversationWith() as CometChat.Group).getGuid()) ||\n (this.activeConversation &&\n this.activeConversation.hasOwnProperty(\"uid\") &&\n conversation.getConversationWith().hasOwnProperty(\"uid\") &&\n (\n this.activeConversation.getConversationWith() as CometChat.User\n ).getUid() ===\n (conversation.getConversationWith() as CometChat.User).getUid())\n ) {\n unreadMessageCount = 0;\n } else {\n if (operator && operator === \"decrement\") {\n unreadMessageCount = unreadMessageCount ? unreadMessageCount - 1 : 0;\n } else {\n unreadMessageCount = unreadMessageCount + 1;\n }\n }\n return unreadMessageCount;\n }\n /**\n * Changes detail of conversations\n * @param\n */\n /**\n * @param {CometChat.BaseMessage} message\n */\n makeConversation(message: CometChat.BaseMessage) {\n const promise = new Promise((resolve, reject) => {\n let conversationKey: number = this.conversationList.findIndex(\n (c: CometChat.Conversation) =>\n c?.getConversationId() === message?.getConversationId()\n );\n if (conversationKey >= 0) {\n let conversation: CometChat.Conversation =\n this.conversationList[conversationKey];\n resolve({\n conversationKey: conversationKey,\n conversationObj: conversation,\n conversationList: this.conversationList,\n });\n } else {\n CometChat.CometChatHelper.getConversationFromMessage(message)\n .then((conversation: CometChat.Conversation) => {\n if (\n conversation?.getConversationWith() instanceof CometChat.Group &&\n !(\n conversation.getConversationWith() as CometChat.Group\n ).getScope()\n ) {\n (\n conversation.getConversationWith() as CometChat.Group\n ).setHasJoined(true);\n (conversation.getConversationWith() as CometChat.Group).setScope(\n CometChatUIKitConstants.groupMemberScope.participant\n );\n }\n resolve({\n conversationKey: -1,\n conversationObj: conversation,\n conversationList: this.conversationList,\n });\n this.ref.detectChanges();\n })\n .catch((error: CometChat.CometChatException) => reject(error));\n }\n });\n return promise;\n }\n /**\n * Updates Conversation View when message is edited or deleted\n */\n conversationEditedDeleted(message: CometChat.BaseMessage) {\n try {\n this.makeConversation(message)\n .then((response: any) => {\n const conversationKey = response.conversationKey;\n const conversationObj: CometChat.Conversation =\n response.conversationObj;\n const conversationList = response.conversationList;\n if (conversationKey > -1) {\n let lastMessageObj: CometChat.BaseMessage =\n conversationObj.getLastMessage();\n if (lastMessageObj.getId() === message.getId()) {\n conversationObj.setLastMessage(message);\n (\n conversationObj.getLastMessage() as CometChat.TextMessage\n ).setMuid(this.getUinx());\n conversationList.splice(conversationKey, 1, conversationObj);\n this.conversationList = [...conversationList];\n this.ref.detectChanges();\n }\n }\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n this.ref.detectChanges();\n });\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n /**\n * If User scrolls to the bottom of the current Conversation list than fetch next items of the Conversation list and append\n * @param Event\n */\n /**\n * Plays Audio When Message is Received\n */\n playAudio() {\n try {\n if (!this.disableSoundForMessages) {\n if (this.customSoundForMessages) {\n CometChatSoundManager.play(CometChatSoundManager.Sound.incomingMessageFromOther,this.customSoundForMessages);\n } else {\n CometChatSoundManager.play(\n CometChatSoundManager.Sound.incomingMessageFromOther\n );\n }\n } else {\n return;\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n /*\n * Updates the convesation list when deleted.\n * Adding Conversation Object to CometchatService\n */\n /**\n * @param {CometChat.Conversation|{}} conversation\n */\n updateConversationList(conversation: CometChat.Conversation | null) {\n let index = this.conversationList.findIndex(\n (element: CometChat.Conversation) =>\n element?.getConversationId() == conversation?.getConversationId()\n );\n this.conversationList.splice(index, 1);\n this.ref.detectChanges();\n }\n /**\n * showing dialog for confirm and cancel\n * @param {CometChat.Conversation|{}} conversation\n */\n showConfirmationDialog = (conversation: CometChat.Conversation) => {\n this.isDialogOpen = true;\n this.conversationToBeDeleted = conversation;\n this.ref.detectChanges();\n };\n onOptionClick(event: any, conversation: CometChat.Conversation) {\n let option: CometChatOption = event?.detail?.data;\n this.conversationToBeDeleted = conversation;\n if (option) {\n option.onClick!();\n }\n }\n /**\n * show confirm dialog screen\n * @param {CometChat.Conversation|{}} conversaton\n */\n // check is there is any active conversation and mark it as active\n getActiveConversation(conversation: CometChat.Conversation) {\n if (this.selectionMode == SelectionMode.none || !this.selectionMode) {\n return (\n this.activeConversation &&\n (this.activeConversation as any)?.conversationId ==\n (conversation as any)?.conversationId\n );\n } else {\n return false;\n }\n }\n /**\n * handle confirm dialog response\n * @param {string} value\n */\n // calling cometchat.deleteConversation method\n deleteSelectedConversation() {\n if (this.conversationToBeDeleted) {\n if (\n this.activeConversation &&\n this.activeConversation.getConversationId() ==\n this.conversationToBeDeleted.getConversationId()\n ) {\n this.activeConversation = null;\n }\n let conversationWith;\n let conversationType = this.conversationToBeDeleted.getConversationType();\n if (\n conversationType === CometChatUIKitConstants.MessageReceiverType.user\n ) {\n conversationWith = (\n this.conversationToBeDeleted.getConversationWith() as CometChat.User\n ).getUid();\n } else {\n conversationWith = (\n this.conversationToBeDeleted.getConversationWith() as CometChat.Group\n ).getGuid();\n }\n CometChat.deleteConversation(conversationWith, conversationType).then(\n (deletedConversation) => {\n CometChatConversationEvents.ccConversationDeleted.next(\n this.conversationToBeDeleted!\n );\n this.updateConversationList(this.conversationToBeDeleted);\n this.conversationToBeDeleted = null;\n this.ref.detectChanges();\n }\n );\n this.isDialogOpen = false;\n this.ref.detectChanges();\n }\n }\n // exposed methods to users.\n updateLastMessage(message: CometChat.BaseMessage) {\n this.updateConversation(message);\n }\n removeConversation(conversation: CometChat.Conversation) {\n this.updateConversationList(conversation);\n }\n styles: any = {\n wrapperStyle: () => {\n return {\n height: this.conversationsStyle.height,\n width: this.conversationsStyle.width,\n border:\n this.conversationsStyle.border ||\n `1px solid ${this.themeService.theme.palette.getAccent400()}`,\n borderRadius: this.conversationsStyle.borderRadius,\n background:\n this.conversationsStyle.background ||\n this.themeService.theme.palette.getBackground(),\n };\n },\n };\n subtitleStyle = (conversation: any) => {\n if (\n this.typingIndicator &&\n ((this.typingIndicator.getReceiverType() ==\n CometChatUIKitConstants.MessageReceiverType.user &&\n this.typingIndicator.getSender().getUid() ==\n conversation.conversationWith?.uid) ||\n this.typingIndicator.getReceiverId() ==\n conversation.conversationWith?.guid)\n ) {\n return {\n font: this.conversationsStyle.typingIndictorTextColor,\n color: this.conversationsStyle.typingIndictorTextColor,\n };\n }\n return {\n font: this.conversationsStyle.lastMessageTextFont,\n color: this.conversationsStyle.lastMessageTextColor,\n };\n };\n itemThreadIndicatorStyle = () => {\n return {\n textFont:\n this.conversationsStyle.threadIndicatorTextFont ||\n fontHelper(this.themeService.theme.typography.caption2),\n textColor:\n this.conversationsStyle.threadIndicatorTextColor ||\n this.themeService.theme.palette.getAccent400(),\n };\n };\n}\n","<div class=\"cc-conversations\" [ngStyle]=\"styles.wrapperStyle()\">\n <cometchat-backdrop [backdropStyle]=\"backdropStyle\" *ngIf=\"isDialogOpen\">\n <cometchat-confirm-dialog [title]=\"confirmDialogTitle\"\n [messageText]=\"confirmDialogMessage\" [cancelButtonText]=\"cancelButtonText\"\n [confirmButtonText]=\"confirmButtonText\"\n (cc-confirm-clicked)=\"onConfirmClick()\"\n (cc-cancel-clicked)=\"onCancelClick()\"\n [confirmDialogStyle]=\"deleteConversationDialogStyle\">\n </cometchat-confirm-dialog>\n </cometchat-backdrop>\n <div class=\"cc-conversations__menus\" *ngIf=\"menu\">\n\n <ng-container *ngTemplateOutlet=\"menu\">\n </ng-container>\n\n </div>\n <cometchat-list [state]=\"state\" [searchIconURL]=\"searchIconURL\"\n [hideError]=\"hideError\" [emptyStateText]=\"emptyStateText\"\n [loadingIconURL]=\"loadingIconURL\" [titleAlignment]=\"titleAlignment\"\n [loadingStateView]=\"loadingStateView\" [listStyle]=\"listStyle\"\n [emptyStateView]=\"emptyStateView\" [errorStateText]=\"errorStateText\"\n [errorStateView]=\"errorStateView\" [onScrolledToBottom]=\"getConversation\"\n [list]=\"conversationList\"\n [listItemView]=\"listItemView ? listItemView : listItem\" [title]=\"title\"\n [hideSearch]=\"hideSearch\"></cometchat-list>\n</div>\n<ng-template #listItem let-conversation>\n <cometchat-list-item [hideSeparator]=\"hideSeparator\"\n [avatarStyle]=\"avatarStyle\"\n [statusIndicatorStyle]=\"getStatusIndicatorStyle(conversation)\"\n [id]=\"conversation?.conversationId\"\n [isActive]=\"getActiveConversation(conversation)\"\n (cc-listitem-clicked)=\"onClick(conversation)\"\n [title]=\"conversation?.conversationWith?.name\"\n [statusIndicatorIcon]=\"checkGroupType(conversation)\"\n [statusIndicatorColor]=\"checkStatusType(conversation)\"\n [listItemStyle]=\"listItemStyle\"\n [avatarURL]=\"conversation?.conversationWith?.avatar || conversation?.conversationWith?.icon\"\n [avatarName]=\"conversation?.conversationWith?.name\">\n <div slot=\"subtitleView\" *ngIf=\"subtitleView;else conversationSubtitle\">\n <ng-container *ngTemplateOutlet=\"subtitleView;context:{ $implicit: conversation }\">\n </ng-container>\n </div>\n <ng-template #conversationSubtitle>\n\n <div class=\"cc-conversations__subtitle-view \" slot=\"subtitleView\">\n <div class=\"cc-conversations__threadview\"\n *ngIf=\"conversation?.lastMessage?.parentMessageId\">\n <cometchat-label [labelStyle]=\"itemThreadIndicatorStyle()\"\n [text]=\"threadIndicatorText\"> </cometchat-label>\n <cometchat-icon [URL]=\"threadIconURL\"\n [iconStyle]=\"iconStyle\"></cometchat-icon>\n\n </div>\n <div class=\"cc-conversations__subtitle\">\n <div class=\"cc-conversations__readreceipt\"\n *ngIf=\"isReceiptDisable(conversation)\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(conversation)\"\n [receiptStyle]=\"receiptStyle\" [sentIcon]=\"sentIcon\"\n [errorIcon]=\"errorIcon\" [deliveredIcon]=\"deliveredIcon\"\n [readIcon]=\"readIcon\"></cometchat-receipt>\n </div>\n\n <div [ngStyle]=\"subtitleStyle(conversation)\" class=\"cc-subtitle__text\"\n [innerHTML]=\"setSubtitle(conversation)\"></div>\n </div>\n\n </div>\n </ng-template>\n <div slot=\"menuView\" class=\"cc-conversations__optionsview\"\n *ngIf=\"selectionMode == selectionmodeEnum.none\">\n <div *ngIf=\"options\">\n <cometchat-menu-list [data]=\"options(conversation)\"\n (cc-menu-clicked)=\"onOptionClick($event,conversation)\"\n [menuListStyle]=\"menustyle\">\n\n </cometchat-menu-list>\n </div>\n <div *ngIf=\"!options && conversationOptions\">\n <cometchat-menu-list [data]=\"conversationOptions\"\n (cc-menu-clicked)=\"onOptionClick($event,conversation)\"\n [menuListStyle]=\"menustyle\">\n\n </cometchat-menu-list>\n </div>\n </div>\n <div slot=\"tailView\" class=\"cc-conversations__tail-view\">\n <div class=\"tail__view\"\n *ngIf=\"selectionMode == selectionmodeEnum.none && conversation?.lastMessage\">\n <div class=\"cc-date\">\n <cometchat-date *ngIf=\"conversation?.lastMessage\"\n [dateStyle]=\"dateStyle\"\n [timestamp]=\"conversation?.lastMessage?.sentAt\"\n [pattern]=\"getDate()\"></cometchat-date>\n </div>\n <div class=\"cc-conversations__badge\">\n <!-- <cometchat-icon *ngIf=\"conversation?.getUnreadMentionInMessageCount()\" [ngStyle]=\"getUnreadMentionsIconStyle()\" [iconStyle]=getMentionIconStyle() [URL]=\"mentionsIconURL\"></cometchat-icon> -->\n <cometchat-badge [count]=\"conversation?.unreadMessageCount\"\n [badgeStyle]=\"badgeStyle\"></cometchat-badge>\n </div>\n </div>\n <div class=\"cc-conversations__selection-view\"\n *ngIf=\"selectionMode != selectionmodeEnum.none\">\n <ng-container *ngTemplateOutlet=\"tailView\">\n </ng-container>\n </div>\n </div>\n </cometchat-list-item>\n <ng-template #tailView>\n <div *ngIf=\"selectionMode == selectionmodeEnum.single\">\n <cometchat-radio-button\n (cc-radio-button-changed)=\"onConversationSelected(conversation,$event)\"></cometchat-radio-button>\n </div>\n <div *ngIf=\"selectionMode == selectionmodeEnum.multiple\">\n <cometchat-checkbox [checkboxStyle]=\"checkboxStyle\"\n (cc-checkbox-changed)=\"onConversationSelected(conversation,$event)\"></cometchat-checkbox>\n </div>\n </ng-template>\n</ng-template>\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatConversationsComponent } from \"./cometchat-conversations/cometchat-conversations.component\";\nimport { CometChatList } from \"../CometChatList/cometchat-list.module\";\nimport '@cometchat/uikit-elements'\n@NgModule({\n declarations: [CometChatConversationsComponent],\n imports: [\n CommonModule,\n CometChatList\n ],\n exports: [CometChatConversationsComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatConversations {}\n","import { Component, OnInit, Input, ChangeDetectorRef, ChangeDetectionStrategy, TemplateRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { BaseStyle } from '@cometchat/uikit-shared';\nimport { MenuListStyle } from '@cometchat/uikit-elements'\nimport { CometChatThemeService } from '../../CometChatTheme.service';\nimport { CometChatMessageOption, CometChatTheme, CometChatUIKitConstants, MessageBubbleAlignment } from '@cometchat/uikit-resources';\n@Component({\n selector: 'cometchat-message-bubble',\n templateUrl: './cometchat-message-bubble.component.html',\n styleUrls: ['./cometchat-message-bubble.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CometChatMessageBubbleComponent implements OnInit, OnChanges {\n @Input() messageBubbleStyle: BaseStyle = {\n width: \"100%\",\n height: \"auto\",\n background: \"\",\n borderRadius: \"12px\",\n border: \"none\"\n };\n @Input() alignment: MessageBubbleAlignment = MessageBubbleAlignment.right;\n @Input() options: CometChatMessageOption[] = [];\n @Input() id?: number | string = undefined;\n @Input() leadingView!: TemplateRef<any> | null;\n @Input() headerView!: TemplateRef<any> | null;\n @Input() replyView!: TemplateRef<any> | null;\n @Input() contentView!: TemplateRef<any> | null;\n @Input() threadView!: TemplateRef<any> | null;\n @Input() footerView!: TemplateRef<any> | null;\n @Input() bottomView!: TemplateRef<any> | null;\n @Input() statusInfoView!: TemplateRef<any> | null;\n optionsStyle: MenuListStyle = {\n width: \"\",\n height: \"\",\n border: \"1px solid #e8e8e8\",\n borderRadius: \"8px\",\n submenuWidth: \"100%\",\n submenuHeight: \"inherit\",\n submenuBorder: \"1px solid #e8e8e8\",\n submenuBorderRadius: \"8px\",\n moreIconTint: \"grey\"\n }\n @Input() moreIconURL: string = \"assets/moreicon.svg\";\n @Input() topMenuSize: number = 3;\n public theme: CometChatTheme = new CometChatTheme({})\n public uikitConstant: typeof MessageBubbleAlignment = MessageBubbleAlignment;\n public isHovering: boolean = false;\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) { }\n ngOnChanges(changes: SimpleChanges): void {\n }\n ngOnInit(): void {\n this.optionsStyle = new MenuListStyle({\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n borderRadius: \"8px\",\n background: this.themeService.theme.palette.getBackground(),\n submenuWidth: \"100%\",\n submenuHeight: \"100%\",\n submenuBorder: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n submenuBorderRadius: \"8px\",\n submenuBackground: this.themeService.theme.palette.getBackground(),\n moreIconTint: this.themeService.theme.palette.getAccent()\n })\n }\n /**\n * hide show menu options on hover\n * @param {MouseEvent} event?\n */\n hideShowMenuOption(event?: MouseEvent) {\n setTimeout(() => {\n this.isHovering = event?.type === \"mouseenter\";\n this.ref.detectChanges();\n }, 0);\n }\n /**\n * @param {any} event\n */\n onOptionClick(event: any) {\n const onClick = event?.detail?.data?.onClick;\n if (onClick) {\n onClick(this.id, event?.detail?.event);\n }\n if(event?.detail?.data && event?.detail?.data?.id != CometChatUIKitConstants.MessageOption.reactToMessage) {\n this.isHovering = false;\n this.ref.detectChanges();\n }\n }\n wrapperStyle = () => {\n switch (this.alignment) {\n case MessageBubbleAlignment.right:\n return {\n display: \"flex\",\n justifyContent: \"flex-end\"\n };\n case MessageBubbleAlignment.left:\n return {\n display: \"flex\",\n justifyContent: \"flex-start\"\n };\n case MessageBubbleAlignment.center:\n return {\n display: \"flex\",\n justifyContent: \"center\"\n };\n default:\n return {\n display: \"flex\",\n justifyContent: \"center\"\n };\n }\n };\n bubbleStyle = () => {\n return {\n ...this.messageBubbleStyle,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\"\n }\n }\n bubbleAlignmentStyle(): any {\n return {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: this.alignment == MessageBubbleAlignment.left ? \"flex-start\" : \"flex-end\",\n }\n }\n optionsStyles: any = () => {\n return {\n justifyContent: this.alignment == MessageBubbleAlignment.left ? \"flex-start\" : \"flex-end\",\n top: this.headerView && this.alignment == MessageBubbleAlignment.left ? \"-8px\" : \"-28px\",\n background: this.optionsStyle?.background,\n border: 'none',\n borderRadius: this.optionsStyle?.borderRadius,\n }\n }\n titleStyle() {\n return {\n display: \"flex\",\n justifyContent: this.alignment == MessageBubbleAlignment.left ? \"flex-start\" : \"flex-end\",\n alignItems: \"flex-start\"\n }\n }\n}\n","<div class=\"cc-message-bubble__wrapper\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-message-bubble__container\"\n (mouseenter)=\"hideShowMenuOption($event)\"\n (mouseleave)=\"hideShowMenuOption($event)\">\n <div class=\"cc-message-bubble__avatar\" *ngIf=\"leadingView\">\n <ng-container *ngTemplateOutlet=\"leadingView\">\n </ng-container>\n </div>\n <div class=\"cc-message-bubble\" [ngStyle]=\"bubbleAlignmentStyle()\">\n <div class=\"cc-message-bubble__title\" [ngStyle]=\"titleStyle()\"\n *ngIf=\"headerView\">\n <ng-container [ngTemplateOutlet]=\"headerView\">\n </ng-container>\n </div>\n <div class=\"cc-messageoptions\"\n *ngIf=\"options && options.length >= 1 && isHovering\"\n [ngStyle]=\"optionsStyles()\">\n <cometchat-menu-list [parentClassName]=\"'cc-message-list__wrapper'\" [moreIconURL]=\"moreIconURL\"\n [topMenuSize]=\"topMenuSize\" [menuListStyle]=\"optionsStyle\"\n [data]=\"options\" (cc-menu-clicked)=\"onOptionClick($event)\">\n </cometchat-menu-list>\n </div>\n <div class=\"cc-message-bubble__content\" [ngStyle]=\"bubbleStyle()\">\n <ng-container *ngTemplateOutlet=\"replyView\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"contentView\">\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"statusInfoView\">\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"bottomView\">\n </ng-container>\n\n <div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"footerView\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"threadView\">\n </ng-container>\n\n </div>\n </div>\n</div>\n","import { CometChatThemeService } from \"./../../../../CometChatTheme.service\";\nimport { CometChat, CometChatException } from \"@cometchat/chat-sdk-javascript\";\nimport {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n TemplateRef,\n ViewChild,\n ChangeDetectorRef,\n ElementRef,\n SimpleChanges,\n} from \"@angular/core\";\nimport {\n ListItemStyle,\n AvatarStyle,\n TextInputStyle,\n DateStyle,\n} from \"@cometchat/uikit-elements\";\nimport {\n CometChatOption,\n localize,\n SelectionMode,\n TitleAlignment,\n States,\n CometChatMessageTemplate,\n MessageListAlignment,\n MessageBubbleAlignment,\n CometChatMessageOption,\n CometChatUIKitConstants,\n CometChatUIEvents,\n CometChatGroupEvents,\n fontHelper,\n DatePatterns,\n Receipts,\n} from \"@cometchat/uikit-resources\";\nimport {\n UsersStyle,\n BaseStyle,\n ListStyle,\n CometChatUIKitUtility,\n} from \"@cometchat/uikit-shared\";\nimport { Subscription } from \"rxjs\";\n\n@Component({\n selector: \"aiassist-bot-message-list\",\n templateUrl: \"./aiassist-bot-message-list.component.html\",\n styleUrls: [\"./aiassist-bot-message-list.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AIAssistBotMessageListComponent implements OnInit {\n messagesList: CometChat.BaseMessage[] = [];\n botMessagesList: CometChat.BaseMessage[] = [];\n @Input() hideSearch: boolean = true;\n @Input() footerView!: TemplateRef<any>;\n\n @Input() user!: CometChat.User;\n @Input() group!: CometChat.Group;\n @Input() currentAskAIBot!: any;\n @Input() subtitleText: string = localize(\"COMETCHAT_ASK_BOT_SUBTITLE\");\n @Input() sendIconUrl: string = \"assets/Send.svg\";\n @Input() waitIcon: string = \"assets/wait.svg\";\n @Input() errorIcon: string = \"assets/warning-small.svg\";\n @Input() botFirstMessageText: string = localize(\n \"COMETCHAT_BOT_FIRST_MESSAGE\"\n );\n @Input() closeButtonIconURL: string = \"assets/close2x.svg\";\n @Input() sendButtonIconURL: string = \"assets/Send.svg\";\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"28px\",\n height: \"28px\",\n };\n @Input() aiBotChatHeaderStyle: any = {\n backGround: \"rgba(20, 20, 20, 0.15)\",\n };\n @Input() aiBotChatContainerStyle: any = {\n backGround: \"rgba(255,255,255)\",\n };\n @Input() datePattern: DatePatterns = DatePatterns.time;\n bubbleDateStyle: DateStyle = {};\n\n @ViewChild(\"inputRef\", { static: false }) inputRef!: ElementRef;\n\n ccChatChanged!: Subscription;\n\n messageTemplate: CometChatMessageTemplate[] = [];\n @Input() alignment: MessageListAlignment = MessageListAlignment.standard;\n public loggedInUser!: CometChat.User;\n\n public receipts: any = Receipts.wait;\n public currentMessageObject: CometChat.BaseMessage | null = null;\n public typesMap: any = {};\n public messageTypesMap: any = {};\n inputValue!: string;\n\n constructor(\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) { }\n\n ngOnInit(): void {\n\n this.setAvatarStyle();\n this.setAiBotChatHeader();\n this.setAiBotChatContainerStyle();\n let receiverId: string = this.user\n ? this.user?.getUid()!\n : this.group?.getGuid()!;\n\n let receiverType = this.user\n ? CometChatUIKitConstants.MessageReceiverType.user\n : CometChatUIKitConstants.MessageReceiverType.group;\n\n let firstMessage = new CometChat.TextMessage(\n this.currentAskAIBot?.id!,\n this.botFirstMessageText,\n receiverType\n );\n firstMessage.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n\n this.botMessagesList.push(firstMessage);\n\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user!;\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n\n this.setMessagesStyle();\n this.subscribeToEvents();\n }\n\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"28px\",\n height: \"28px\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n });\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };\n }\n\n setAiBotChatHeader() {\n let defaultStyle: any = {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: \"10px\",\n height: \"40px\",\n background: this.themeService.theme?.palette.getAccent200(),\n };\n this.aiBotChatHeaderStyle = {\n ...defaultStyle,\n ...this.aiBotChatHeaderStyle,\n };\n }\n setAiBotChatContainerStyle() {\n let defaultStyle: any = {\n background: this.themeService.theme.palette.getBackground(),\n };\n this.aiBotChatContainerStyle = {\n ...defaultStyle,\n ...this.aiBotChatContainerStyle,\n };\n }\n\n ngOnDestroy(): void {\n this.unSubscribeToEvent();\n }\n\n subscribeToEvents() {\n this.ccChatChanged = CometChatUIEvents.ccActiveChatChanged.subscribe(() => {\n CometChatUIEvents.ccShowPanel.next({\n child: { showBotView: false },\n });\n });\n }\n\n unSubscribeToEvent() {\n this.ccChatChanged?.unsubscribe();\n }\n\n onError(error: CometChatException) {\n throw new Error(\"Method not implemented.\");\n }\n\n generateRandomString(length: any) {\n const characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let randomString = \"\";\n\n for (let i = 0; i < length; i++) {\n const randomIndex = Math.floor(Math.random() * characters.length);\n randomString += characters.charAt(randomIndex);\n }\n\n return randomString;\n }\n\n handleClick() {\n this.receipts = Receipts.wait;\n\n let receiverId: string = this.user\n ? this.user?.getUid()!\n : this.group?.getGuid()!;\n\n let receiverType = this.user\n ? CometChatUIKitConstants.MessageReceiverType.user\n : CometChatUIKitConstants.MessageReceiverType.group;\n\n let botUid = this.currentAskAIBot?.id!;\n let question = this.inputValue;\n this.inputRef?.nativeElement?.emptyInputField();\n let query = new CometChat.TextMessage(\n this.loggedInUser.getUid()!,\n question,\n receiverType\n );\n\n // Generate a random string for the message ID\n let randomString = this.generateRandomString(10); // Specify the desired length\n\n // Convert the random string to a number (may not be the best practice)\n let randomStringAsNumber = parseInt(randomString, 36); // 36 is the radix for alphanumeric characters\n\n query.setId(randomStringAsNumber);\n\n query.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n this.currentMessageObject = query;\n if (question.trim().length > 0) {\n this.botMessagesList.push(query);\n\n CometChat.askBot(receiverId, receiverType, botUid, question)\n .then((response) => {\n return response;\n })\n .then((messageText) => {\n this.inputValue = \"\";\n this.receipts = null;\n let answer = new CometChat.TextMessage(\n botUid,\n messageText,\n receiverType\n );\n answer.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n\n this.botMessagesList.push(answer);\n this.ref.detectChanges();\n })\n .catch((error) => {\n this.receipts = Receipts.error;\n\n console.error(\"error\", error);\n });\n }\n }\n\n setMessageBubbleStyle(msg: CometChat.BaseMessage): BaseStyle {\n let style!: BaseStyle;\n if (msg.getReceiverId() !== this.loggedInUser?.getUid()) {\n style = {\n background: this.themeService.theme.palette.getAccent100(),\n borderRadius: \"12px\",\n };\n } else {\n style = {\n background: this.themeService.theme.palette.getPrimary(),\n borderRadius: \"12px\",\n };\n }\n\n return style;\n }\n\n getBubbleAlignment(message: CometChat.BaseMessage) {\n return message.getReceiverId() !== this.loggedInUser?.getUid()\n ? MessageBubbleAlignment.left\n : MessageBubbleAlignment.right;\n }\n\n textInputStyle: TextInputStyle = {\n width: \"98%\",\n dividerColor: \"transparent\",\n background: \"transparent\",\n border: \"2px solid red transparent\",\n };\n\n sendButtonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.themeService.theme.palette.getPrimary(),\n };\n\n messageInputChanged = (event: any) => {\n const text = event?.detail?.value?.trim();\n this.inputValue = text;\n };\n\n closeButtonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.themeService.theme.palette.getPrimary(),\n };\n\n labelStyle: any = {\n textFont: \"400 11px Inter\",\n textColor: \"grey\",\n };\n\n onCloseDetails() {\n CometChatUIEvents.ccShowPanel.next({\n child: { showBotView: false },\n });\n }\n\n setMessagesStyle() {\n this.bubbleDateStyle = {\n textColor: this.themeService.theme.palette.getAccent600(),\n textFont: fontHelper(this.themeService.theme.typography.caption2),\n padding: \"3px\"\n };\n }\n\n getBotTitleStyle() {\n return {\n font: fontHelper(this.themeService.theme.typography.subtitle1),\n color: this.themeService.theme.palette.getAccent(),\n }\n }\n\n getBotSubtitleStyle() {\n return {\n font: fontHelper(this.themeService.theme.typography.caption2),\n color: this.themeService.theme.palette.getAccent500(),\n }\n }\n\n}\n","<div class=\"cc-ai-assist-message-list__wrapper\"\n [ngStyle]=\"aiBotChatContainerStyle\">\n <div class=\"cc-ai-assist-message-list__header-view\"\n [ngStyle]=\"aiBotChatHeaderStyle\">\n <div class=\"cc-ai-assist-message-list__header-avatar\">\n <cometchat-avatar [image]=\"currentAskAIBot?.iconURL\"\n [avatarStyle]=\"avatarStyle\">\n </cometchat-avatar>\n <div class=\"cc-ai-assist-message-list__header-bot-name\">\n\n\n <div [ngStyle]=\"getBotTitleStyle()\">\n {{currentAskAIBot?.title}}\n </div>\n <div [ngStyle]=\"getBotSubtitleStyle()\">\n {{subtitleText}}\n </div>\n </div>\n\n </div>\n\n <cometchat-button [iconURL]=\"closeButtonIconURL\"\n class=\"cc-details__close-button\" [buttonStyle]=\"closeButtonStyle\"\n (cc-button-clicked)=\"onCloseDetails()\"></cometchat-button>\n </div>\n <div class=\"cc-ai-assist-message-list\">\n <cometchat-list [listItemView]=\"listItem\" [list]=\"botMessagesList\"\n [hideSearch]=\"hideSearch\">\n </cometchat-list>\n <ng-template #listItem let-message>\n <cometchat-message-bubble [bottomView]=\"null\"\n [statusInfoView]=\"statusInfoView\" [threadView]=\"null\"\n [contentView]=\"contentView\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"getBubbleAlignment(message)\" [leadingView]=\"leadingView\"\n [headerView]=\"bubbleHeader\">\n <ng-template #contentView>\n <div class=\"cc-ai-assist-message\">\n {{message.data.text}}\n </div>\n </ng-template>\n <ng-template #leadingView>\n\n </ng-template>\n <ng-template #bubbleHeader>\n\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc__assist-bot__statusinfo\">\n\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"bubbleDateStyle\"></cometchat-date>\n <cometchat-receipt\n *ngIf=\"message?.receiverId !==currentAskAIBot.id && message?.getId()===currentMessageObject?.getId()\"\n [receipt]=\"receipts\" [waitIcon]=\"waitIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </cometchat-message-bubble>\n <hr>\n </ng-template>\n </div>\n\n <div class=\"cc-ai-assist__input-wrapper\">\n <div class=\"cc-ai-assist__input\">\n <cometchat-text-input [textInputStyle]=\"textInputStyle\" #inputRef\n (cc-text-input-changed)=\"messageInputChanged($event)\"\n (cc-text-input-entered)=\"handleClick()\"></cometchat-text-input>\n <cometchat-button [iconURL]=\"sendIconUrl\"\n (cc-button-clicked)=\"handleClick()\"\n [buttonStyle]=\"sendButtonStyle\"></cometchat-button>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';\nimport { CometChatMessageEvents, CometChatMessageTemplate, CometChatUIKitConstants, DatePatterns, Receipts, States, fontHelper, localize } from '@cometchat/uikit-resources';\nimport { DateStyle, LabelStyle, ListItemStyle, ReceiptStyle } from '@cometchat/uikit-elements';\nimport { ListStyle, MessageInformationStyle, MessageReceiptUtils } from '@cometchat/uikit-shared';\n\nimport { CometChat } from '@cometchat/chat-sdk-javascript';\nimport { CometChatException } from '../../Shared/Utils/ComeChatException';\nimport { CometChatThemeService } from '../../CometChatTheme.service';\nimport { Subscription } from \"rxjs\";\nimport { CometChatUIKit } from '../../Shared/CometChatUIkit/CometChatUIKit';\n\n/**\n*\n* CometChatMessageInformationComponent is a used to render listitem component.\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: 'cometchat-message-information',\n templateUrl: './cometchat-message-information.component.html',\n styleUrls: ['./cometchat-message-information.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CometChatMessageInformationComponent implements OnInit, OnChanges {\n @Input() closeIconURL: string = \"assets/close2x.svg\";\n @Input() message!: CometChat.BaseMessage;\n @Input() title: string = localize(\"MESSAGE_INFORMATION\");\n @Input() template!: CometChatMessageTemplate;\n @Input() bubbleView!: TemplateRef<any>;\n @Input() subtitleView!: TemplateRef<any>;\n @Input() listItemView!: TemplateRef<any>;\n @Input() receiptDatePattern!: (timestamp: number) => string;\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n @Input() messageInformationStyle: MessageInformationStyle = {\n height: \"500px\",\n width: \"500px\"\n };\n @Input() readIcon: string = \"assets/message-read.svg\";\n @Input() deliveredIcon: string = \"assets/message-delivered.svg\";\n @Input() onClose!: () => void;\n @Input() listItemStyle: ListItemStyle = {};\n @Input() emptyStateText: string = localize(\"NO_RECIPIENTS\")\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() errorStateView!: TemplateRef<any>;\n onMessagesDelivered!: Subscription;\n onMessagesRead!: Subscription;\n receipts: CometChat.MessageReceipt[] = [];\n receiptStyle = new ReceiptStyle({})\n isUserType: boolean = false;\n deliveredReceipt: Receipts = Receipts.delivered;\n readReceipt: Receipts = Receipts.read;\n listStyle: ListStyle = {};\n messageText: string = localize(\"MESSAGE\");\n receiptInfoText: string = localize(\"RECEIPT_INFORMATION\")\n emptyLabelStyle: LabelStyle = {\n textFont: '400 11px Inter',\n textColor: \"black\"\n }\n dateStyle: DateStyle = {\n\n }\n loggedInUser: CometChat.User | null = null;\n dividerStyle: any = {}\n states: States = States.loading\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) { }\n ngOnChanges(changes: SimpleChanges): void {\n\n }\n getDatePattern(timestamp: number) {\n if (this.receiptDatePattern) {\n return this.receiptDatePattern(timestamp)\n }\n else {\n return undefined;\n }\n }\n ngOnInit(): void {\n this.setTheme()\n CometChatUIKit.getLoggedinUser()!.then((user: CometChat.User | null) => {\n if (user) {\n this.loggedInUser = user;\n this.getMessageReceipts()\n this.addMessageEventListeners()\n }\n })\n\n\n }\n setTheme() {\n this.setMessageInfoStyle()\n this.setListItemStyle()\n let { sendIconTint, deliveredIconTint, readIconTint } = this.messageInformationStyle;\n this.receiptStyle = new ReceiptStyle({\n sentIconTint: sendIconTint ?? this.themeService.theme.palette.getAccent600(),\n deliveredIconTint: deliveredIconTint ?? this.themeService.theme.palette.getAccent600(),\n readIconTint: readIconTint ?? this.themeService.theme.palette.getPrimary(),\n height: \"20px\",\n width: \"20px\",\n background: \"transparent\"\n })\n this.listStyle = {\n titleTextFont: this.messageInformationStyle.titleTextFont,\n titleTextColor: this.messageInformationStyle.titleTextColor,\n emptyStateTextFont: this.messageInformationStyle.emptyStateTextFont,\n emptyStateTextColor: this.messageInformationStyle.emptyStateTextColor,\n errorStateTextFont: this.messageInformationStyle.errorStateTextFont,\n errorStateTextColor: this.messageInformationStyle.errorStateTextColor,\n loadingIconTint: this.messageInformationStyle.loadingIconTint,\n }\n this.dividerStyle = {\n background: this.messageInformationStyle.dividerTint,\n height: \"1px\",\n width: \"100%\",\n }\n this.dateStyle = {\n textFont: '400 11px Inter',\n textColor: this.themeService.theme.palette.getAccent600(),\n background: \"transparent\",\n height: \"100%\",\n width: \"100%\",\n }\n this.ref.detectChanges()\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"fit-content\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: \"transparent\",\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n hoverBackground: \"transparent\"\n })\n this.listItemStyle = { ...defaultStyle, ...this.listItemStyle }\n }\n setMessageInfoStyle() {\n let defaultStyle: MessageInformationStyle = new MessageInformationStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n borderRadius: \"8px\",\n subtitleTextColor: this.themeService.theme.palette.getAccent600(),\n subtitleTextFont: fontHelper(this.themeService.theme.typography.caption2),\n dividerTint: this.themeService.theme.palette.getAccent100(),\n height: \"500px\",\n width: \"500px\",\n captionTextColor: this.themeService.theme.palette.getAccent600(),\n captionTextFont: fontHelper(this.themeService.theme.typography.caption3)\n })\n this.messageInformationStyle = { ...defaultStyle, ...this.messageInformationStyle }\n }\n ngOnDestroy() {\n this.onMessagesDelivered.unsubscribe()\n this.onMessagesRead.unsubscribe();\n }\n addMessageEventListeners() {\n try {\n this.onMessagesDelivered = CometChatMessageEvents.onMessagesDelivered.subscribe((messageReceipt: CometChat.MessageReceipt) => {\n if (this.message?.getId() == Number(messageReceipt.getMessageId())) {\n this.updateReceipt(messageReceipt)\n this.message?.setDeliveredAt(messageReceipt.getDeliveredAt())\n this.ref.detectChanges()\n }\n })\n this.onMessagesRead = CometChatMessageEvents.onMessagesRead.subscribe((messageReceipt: CometChat.MessageReceipt) => {\n if (this.message?.getId() == Number(messageReceipt.getMessageId())) {\n this.updateReceipt(messageReceipt)\n this.message?.setReadAt(messageReceipt.getReadAt())\n this.ref.detectChanges()\n }\n })\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n getAvatarUrl() {\n return this.isUserType ? (this.message.getReceiver() as CometChat.User).getAvatar() : \"\"\n }\n getUserReceipt() {\n return this.message.getReadAt() || this.message.getDeliveredAt()\n }\n getMessageReceipt() {\n let receipt = MessageReceiptUtils.getReceiptStatus(this.message)\n return receipt\n }\n updateReceipt(receipt: CometChat.MessageReceipt) {\n let messageKey = this.receipts.findIndex(\n (m: CometChat.MessageReceipt) => m.getSender().getUid() === receipt.getSender().getUid()\n );\n if (messageKey > -1) {\n if (receipt.getReceiptType() == receipt.RECEIPT_TYPE.READ_RECEIPT) {\n this.receipts[messageKey].setReadAt(receipt.getReadAt())\n }\n else {\n this.receipts[messageKey].setDeliveredAt(receipt.getDeliveredAt())\n }\n\n }\n\n this.ref.detectChanges();\n }\n getMessageReceipts() {\n if (this.message.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {\n this.isUserType = true;\n this.emptyStateText = localize(\"NO_RECIPIENT\")\n this.states = States.loaded\n this.ref.detectChanges()\n }\n else {\n this.emptyStateText = localize(\"NO_RECIPIENTS\")\n this.states = States.loading\n this.isUserType = false;\n CometChat.getMessageReceipts(this.message.getId()).then((receipts: any) => {\n this.receipts = receipts.filter((receipt: CometChat.MessageReceipt) => receipt.getSender().getUid() !== this.loggedInUser?.getUid()) as CometChat.MessageReceipt[];\n this.states = this.receipts.length > 0 ? States.loaded : States.empty;\n this.ref.detectChanges();\n })\n .catch((err: CometChat.CometChatException) => {\n this.states = States.error\n })\n }\n\n }\n closeClicked() {\n if (this.onClose) {\n this.onClose()\n }\n }\n closeButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.themeService.theme.palette.getPrimary()\n }\n }\n getSubtitleStyle() {\n return {\n textFont: this.messageInformationStyle.subtitleTextFont,\n textColor: this.messageInformationStyle.subtitleTextColor\n }\n }\n getTitleStyle() {\n return {\n textFont: this.messageInformationStyle.titleTextFont,\n textColor: this.messageInformationStyle.titleTextColor\n }\n }\n wrapperStyle = () => {\n return {\n height: this.messageInformationStyle.height,\n width: this.messageInformationStyle.width,\n background: this.messageInformationStyle.background,\n border: this.messageInformationStyle.border,\n borderRadius: this.messageInformationStyle.borderRadius\n }\n }\n getCaptionStyle = () => {\n return {\n textFont: this.messageInformationStyle.captionTextFont,\n textColor: this.messageInformationStyle.captionTextColor\n }\n }\n\n}\n","<div class=\"cc-message-information__wrapper\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-message-information__header\">\n <div class=\"cc-message-information__title\">\n <cometchat-label [text]=\"title\"\n [labelStyle]=\"getTitleStyle()\"></cometchat-label>\n </div>\n <div class=\"cc-close-button\">\n <cometchat-button [iconURL]=\"closeIconURL\"\n [buttonStyle]=\"closeButtonStyle()\" (cc-button-clicked)=\"closeClicked()\">\n </cometchat-button>\n </div>\n </div>\n <div class=\"cc-message-information__bubble\">\n <cometchat-label class=\"cc-message-information__caption\"\n [labelStyle]=\"getCaptionStyle()\" [text]=\"messageText\"></cometchat-label>\n <div class=\"cc-message-information__bubble-view\">\n <cometchat-divider [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n <ng-container\n *ngTemplateOutlet=\"bubbleView; context:{ $implicit: message }\">\n </ng-container>\n <cometchat-divider [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n </div>\n </div>\n <div class=\"cc-message-information__list-item\">\n <cometchat-label class=\"cc-message-information__caption\"\n [labelStyle]=\"getCaptionStyle()\"\n [text]=\"receiptInfoText\"></cometchat-label>\n <div class=\"cc-message-information__bubble-view\"\n *ngIf=\"isUserType; else listView\">\n <ng-container *ngIf=\"listItemView; else userListitem\">\n <ng-container\n *ngTemplateOutlet=\"listItemView; context:{ $implicit: message }\">\n </ng-container>\n </ng-container>\n <ng-template #userListitem>\n <div *ngIf=\"!getUserReceipt(); else userReceiptView\"\n class=\"cc-empty-state-view\">\n <cometchat-label *ngIf=\"!emptyStateView else customEmptyView\"\n [text]=\"emptyStateText\"\n [labelStyle]=\"emptyLabelStyle\"></cometchat-label>\n <ng-template #customEmptyView>\n <ng-container *ngTemplateOutlet=\"emptyStateView\">\n </ng-container>\n </ng-template>\n </div>\n <ng-template #userReceiptView>\n <cometchat-divider [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n <cometchat-list-item [hideSeparator]=\"true\" [id]=\"message.getId()\"\n [title]=\"message.getReceiver().getName()\"\n [listItemStyle]=\"listItemStyle\" [avatarURL]=\"getAvatarUrl()\"\n [avatarName]=\"message.getReceiver().getName()\">\n <div slot=\"subtitleView\" *ngIf=\"subtitleView;else userSubtitle\">\n <ng-container *ngTemplateOutlet=\"subtitleView\">\n </ng-container>\n </div>\n <ng-template #userSubtitle>\n <div class=\"cc-list-item__subtitle-view \" slot=\"subtitleView\">\n <div class=\"cc-list-item__subtitle\">\n <div class=\"cc-list-item__delivered-receipt\"\n *ngIf=\"message.getDeliveredAt()\">\n <div class=\"cc-list-item__receipt\">\n <cometchat-receipt [receipt]=\"deliveredReceipt\"\n [receiptStyle]=\"receiptStyle\"\n [deliveredIcon]=\"deliveredIcon\"\n [readIcon]=\"readIcon\"></cometchat-receipt>\n <cometchat-label [text]=\"'Delivered'\"\n [labelStyle]=\"getSubtitleStyle()\"></cometchat-label>\n </div>\n <cometchat-date [timestamp]=\"message.getDeliveredAt()\"\n [dateStyle]=\"dateStyle\"></cometchat-date>\n </div>\n <div class=\"cc-list-item__read-receipt\"\n *ngIf=\"message.getReadAt()\">\n <div class=\"cc-list-item__receipt\">\n <cometchat-receipt [receipt]=\"readReceipt\"\n [receiptStyle]=\"receiptStyle\"\n [deliveredIcon]=\"deliveredIcon\"\n [readIcon]=\"readIcon\"></cometchat-receipt>\n <cometchat-label [text]=\"'Read'\"\n [labelStyle]=\"getSubtitleStyle()\"></cometchat-label>\n </div>\n <cometchat-date [timestamp]=\"message.getReadAt()\"\n [dateStyle]=\"dateStyle\"></cometchat-date>\n </div>\n </div>\n </div>\n </ng-template>\n </cometchat-list-item>\n <cometchat-divider [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n </ng-template>\n </ng-template>\n </div>\n </div>\n</div>\n<!-- list item view -->\n<ng-template #listView>\n <cometchat-list [list]=\"receipts\"\n [listItemView]=\"listItemView ? listItemView : listItem\" [hideSearch]=\"true\"\n [state]=\"states\" [emptyStateText]=\"emptyStateText\"\n [errorStateText]=\"errorStateText\" [loadingIconURL]=\"loadingIconURL\"\n [loadingStateView]=\"loadingStateView\" [errorStateView]=\"errorStateView\"\n [emptyStateView]=\"emptyStateView\" [title]=\"''\"></cometchat-list>\n</ng-template>\n<ng-template #listItem let-messageReceipt>\n <cometchat-divider [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n <cometchat-list-item [hideSeparator]=\"true\"\n [title]=\"messageReceipt.getSender().getName()\"\n [listItemStyle]=\"listItemStyle\"\n [avatarURL]=\"messageReceipt.getSender()?.getAvatar()\"\n [avatarName]=\"messageReceipt.getSender().getName()\">\n <div slot=\"subtitleView\" *ngIf=\"subtitleView;else userSubtitle\">\n <ng-container *ngTemplateOutlet=\"subtitleView\">\n </ng-container>\n </div>\n <ng-template #userSubtitle>\n <div class=\"cc-list-item__subtitle-view \" slot=\"subtitleView\">\n <div class=\"cc-list-item__subtitle\">\n <div class=\"cc-list-item__delivered-receipt\"\n *ngIf=\"messageReceipt.getDeliveredAt()\">\n <div class=\"cc-list-item__receipt\">\n <cometchat-receipt [receipt]=\"deliveredReceipt\"\n [receiptStyle]=\"receiptStyle\" [deliveredIcon]=\"deliveredIcon\"\n [readIcon]=\"readIcon\"></cometchat-receipt>\n <cometchat-label [text]=\"'Delivered'\"\n [labelStyle]=\"getSubtitleStyle()\"></cometchat-label>\n </div>\n <cometchat-date [timestamp]=\"messageReceipt.getDeliveredAt()\"\n [dateStyle]=\"dateStyle\"></cometchat-date>\n </div>\n <div class=\"cc-list-item__read-receipt\"\n *ngIf=\"messageReceipt.getReadAt()\">\n <div class=\"cc-list-item__receipt\">\n <cometchat-receipt [receipt]=\"readReceipt\"\n [receiptStyle]=\"receiptStyle\" [deliveredIcon]=\"deliveredIcon\"\n [readIcon]=\"readIcon\"></cometchat-receipt>\n <cometchat-label [text]=\"'Read'\"\n [labelStyle]=\"getSubtitleStyle()\"></cometchat-label>\n </div>\n <cometchat-date [timestamp]=\"messageReceipt.getReadAt()\"\n [dateStyle]=\"dateStyle\"></cometchat-date>\n </div>\n </div>\n </div>\n </ng-template>\n </cometchat-list-item>\n <cometchat-divider [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n</ng-template>\n","import {\n ApplicationRef,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from \"@angular/core\";\nimport {\n AvatarStyle,\n BackdropStyle,\n BaseStyle,\n CallscreenStyle,\n CheckboxStyle,\n ConfirmDialogStyle,\n DateStyle,\n DocumentBubbleStyle,\n DropdownStyle,\n EmojiKeyboardStyle,\n FullScreenViewerStyle,\n InputStyle,\n LabelStyle,\n ListItemStyle,\n MenuListStyle,\n PanelStyle,\n QuickViewStyle,\n RadioButtonStyle,\n ReceiptStyle,\n SingleSelectStyle,\n} from \"@cometchat/uikit-elements\";\nimport {\n CalendarStyle,\n CallingDetailsUtils,\n CardBubbleStyle,\n CollaborativeDocumentConstants,\n CollaborativeWhiteboardConstants,\n CometChatSoundManager,\n TimeSlotStyle,\n CometChatUIKitUtility,\n FormBubbleStyle,\n ImageModerationStyle,\n InteractiveMessageUtils,\n LinkPreviewConstants,\n MessageInformationConfiguration,\n MessageListStyle,\n MessageReceiptUtils,\n MessageTranslationConstants,\n MessageTranslationStyle,\n PollsBubbleStyle,\n SchedulerBubbleStyle,\n SmartRepliesConfiguration,\n SmartRepliesConstants,\n SmartRepliesStyle,\n ThumbnailGenerationConstants,\n ReactionsStyle,\n ReactionListConfiguration,\n ReactionInfoConfiguration,\n ReactionListStyle,\n ReactionInfoStyle,\n ReactionsConfiguration,\n UserMentionStyle,\n CometChatUrlsFormatter,\n CometChatTextFormatter,\n UrlFormatterStyle,\n CometChatMentionsFormatter,\n CometChatUIKitLoginListener,\n StorageUtils,\n NewMessageIndicatorStyle,\n} from \"@cometchat/uikit-shared\";\nimport {\n ActivePopover,\n CardMessage,\n CometChatCallEvents,\n CometChatGroupEvents,\n CometChatMessageEvents,\n CometChatMessageOption,\n CometChatMessageTemplate,\n CometChatTheme,\n CometChatUIEvents,\n CometChatUIKitConstants,\n CustomInteractiveMessage,\n DatePatterns,\n DocumentIconAlignment,\n FormMessage,\n IGroupLeft,\n IGroupMemberAdded,\n IGroupMemberKickedBanned,\n IGroupMemberScopeChanged,\n IMessages,\n IPanel,\n MessageBubbleAlignment,\n MessageListAlignment,\n MessageStatus,\n Placement,\n SchedulerMessage,\n States,\n TimestampAlignment,\n fontHelper,\n localize,\n} from \"@cometchat/uikit-resources\";\nimport {\n CometChatUIKitCalls,\n LinkPreviewStyle,\n StickersConstants,\n} from \"@cometchat/uikit-shared\";\n\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatException } from \"../../Shared/Utils/ComeChatException\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { CometChatUIKit } from \"../../Shared/CometChatUIkit/CometChatUIKit\";\nimport { Subscription, isEmpty } from \"rxjs\";\nimport { MessageUtils } from \"../../Shared/Utils/MessageUtils\";\n\n/**\n *\n * CometChatMessageList is a wrapper component for messageBubble\n *\n * @version 1.0.0\n * @author CometChatTeam\n * @copyright © 2022 CometChat Inc.\n *\n */\n@Component({\n selector: \"cometchat-message-list\",\n templateUrl: \"./cometchat-message-list.component.html\",\n styleUrls: [\"./cometchat-message-list.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatMessageListComponent\n implements OnInit, OnDestroy, OnChanges {\n @ViewChild(\"listScroll\", { static: false }) listScroll!: ElementRef;\n @ViewChild(\"bottom\", { static: false }) bottom!: ElementRef;\n @ViewChild(\"top\", { static: false }) top!: ElementRef;\n @ViewChild(\"textBubble\", { static: false }) textBubble!: TemplateRef<any>;\n @ViewChild(\"threadMessageBubble\", { static: false })\n threadMessageBubble!: TemplateRef<any>;\n @ViewChild(\"fileBubble\", { static: false }) fileBubble!: TemplateRef<any>;\n @ViewChild(\"audioBubble\", { static: false }) audioBubble!: TemplateRef<any>;\n @ViewChild(\"videoBubble\", { static: false }) videoBubble!: TemplateRef<any>;\n @ViewChild(\"imageBubble\", { static: false }) imageBubble!: TemplateRef<any>;\n @ViewChild(\"formBubble\", { static: false }) formBubble!: TemplateRef<any>;\n @ViewChild(\"cardBubble\", { static: false }) cardBubble!: TemplateRef<any>;\n @ViewChild(\"stickerBubble\", { static: false })\n stickerBubble!: TemplateRef<any>;\n @ViewChild(\"documentBubble\", { static: false })\n documentBubble!: TemplateRef<any>;\n @ViewChild(\"whiteboardBubble\", { static: false })\n whiteboardBubble!: TemplateRef<any>;\n @ViewChild(\"popoverRef\", { static: false }) popoverRef!: any;\n @ViewChild(\"directCalling\", { static: false })\n directCalling!: TemplateRef<any>;\n @ViewChild(\"schedulerBubble\", { static: false })\n schedulerBubble!: TemplateRef<any>;\n @ViewChild(\"pollBubble\", { static: false }) pollBubble!: TemplateRef<any>;\n @ViewChildren(\"messageBubbleRef\") messageBubbleRef!: QueryList<ElementRef>;\n\n @Input() hideError: boolean = false;\n @Input() hideDateSeparator: boolean = false;\n @Input() errorStateView!: TemplateRef<any>;\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() emptyStateText: string = localize(\"NO_MESSAGES_FOUND\");\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() user!: CometChat.User;\n @Input() group!: CometChat.Group;\n /**\n * @deprecated\n *\n * This property is deprecated as of version 4.3.16 due to newer property 'hideReceipt'. It will be removed in subsequent versions.\n */\n @Input() disableReceipt: boolean = false;\n @Input() hideReceipt: boolean = false;\n @Input() disableSoundForMessages: boolean = false;\n @Input() customSoundForMessages: string = \"\";\n @Input() readIcon: string = \"assets/message-read.svg\";\n @Input() deliveredIcon: string = \"assets/message-delivered.svg\";\n @Input() sentIcon: string = \"assets/message-sent.svg\";\n @Input() waitIcon: string = \"assets/wait.svg\";\n @Input() errorIcon: string = \"assets/warning-small.svg\";\n @Input() aiErrorIcon: string = \"assets/ai-error.svg\";\n @Input() aiEmptyIcon: string = \"assets/ai-empty.svg\";\n @Input() alignment: MessageListAlignment = MessageListAlignment.standard;\n @Input() showAvatar: boolean = true;\n @Input() datePattern: DatePatterns = DatePatterns.time;\n @Input() timestampAlignment: TimestampAlignment = TimestampAlignment.bottom;\n @Input() DateSeparatorPattern: DatePatterns = DatePatterns.DayDateTime;\n @Input() templates: CometChatMessageTemplate[] = [];\n @Input() messagesRequestBuilder!: CometChat.MessagesRequestBuilder;\n @Input() newMessageIndicatorText: string = \"\";\n @Input() newMessageIndicatorIconUrl: string = \"\";\n @Input() scrollToBottomOnNewMessages: boolean = false;\n @Input() thresholdValue: number = 1000;\n @Input() unreadMessageThreshold: number = 30;\n @Input() reactionsConfiguration: ReactionsConfiguration =\n new ReactionsConfiguration({});\n @Input() disableReactions: Boolean = false;\n @Input() emojiKeyboardStyle: EmojiKeyboardStyle = {};\n @Input() apiConfiguration?: (\n user?: CometChat.User,\n group?: CometChat.Group\n ) => Promise<Object>;\n\n @Input() onThreadRepliesClick!:\n | ((message: CometChat.BaseMessage, view: TemplateRef<any>) => void)\n | null;\n @Input() headerView!: TemplateRef<any>;\n @Input() footerView!: TemplateRef<any>;\n @Input() parentMessageId!: number;\n @Input() threadIndicatorIcon: string = \"assets/threadIndicatorIcon.svg\";\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"28px\",\n height: \"28px\",\n };\n @Input() newMessageIndicatorStyle: NewMessageIndicatorStyle = {}\n @Input() backdropStyle: BackdropStyle = {\n height: \"100%\",\n width: \"100%\",\n background: \"rgba(0, 0, 0, 0.5)\",\n position: \"fixed\",\n };\n @Input() dateSeparatorStyle: DateStyle = {\n height: \"\",\n width: \"\",\n };\n @Input() messageListStyle: MessageListStyle = {\n nameTextFont: \"400 11px Inter\",\n emptyStateTextFont: \"700 22px Inter\",\n errorStateTextFont: \"700 22px Inter\",\n };\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n @Input() messageInformationConfiguration: MessageInformationConfiguration =\n new MessageInformationConfiguration({});\n @Input() disableMentions: boolean = false;\n state: States = States.loading;\n optionsStyle: MenuListStyle = {\n width: \"\",\n height: \"\",\n border: \"1px solid #e8e8e8\",\n borderRadius: \"8px\",\n background: \"white\",\n submenuWidth: \"100%\",\n submenuHeight: \"100%\",\n submenuBorder: \"1px solid #e8e8e8\",\n submenuBorderRadius: \"8px\",\n submenuBackground: \"white\",\n moreIconTint: \"grey\",\n };\n receiptStyle: ReceiptStyle = {};\n documentBubbleAlignment: DocumentIconAlignment = DocumentIconAlignment.right;\n callBubbleAlignment: DocumentIconAlignment = DocumentIconAlignment.left;\n imageModerationStyle: ImageModerationStyle = {};\n timestampEnum: typeof TimestampAlignment = TimestampAlignment;\n public chatChanged: boolean = true;\n starterErrorStateText: string = localize(\"SOMETHING_WRONG\");\n starterEmptyStateText: string = localize(\"NO_MESSAGES_FOUND\");\n starterLoadingStateText: string = localize(\"GENERATING_ICEBREAKERS\");\n summaryErrorStateText: string = localize(\"SOMETHING_WRONG\");\n summaryEmptyStateText: string = localize(\"NO_MESSAGES_FOUND\");\n summaryLoadingStateText: string = localize(\"GENERATING_SUMMARY\");\n // public properties\n public requestBuilder: any;\n public closeImageModeration: any;\n public timeStampColor: string = \"\";\n public timeStampFont: string = \"\";\n smartReplyStyle: SmartRepliesStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n };\n conversationStarterStyle: SmartRepliesStyle = {};\n conversationSummaryStyle: PanelStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n titleFont: \"\",\n titleColor: \"\",\n closeIconTint: \"\",\n boxShadow: \"\",\n textFont: \"\",\n textColor: \"\",\n background: \"\",\n };\n\n public showSmartReply: boolean = false;\n public enableConversationStarter: boolean = false;\n public showConversationStarter: boolean = false;\n public conversationStarterState: States = States.loading;\n public conversationStarterReplies: string[] = [];\n public enableConversationSummary: boolean = false;\n public showConversationSummary: boolean = false;\n public conversationSummaryState: States = States.loading;\n public conversationSummary: string[] = [];\n public getUnreadCount: any = 0;\n\n ccHidePanel!: Subscription;\n ccShowPanel!: Subscription;\n ccActivePppover!:Subscription;\n smartReplyMessage: CometChat.BaseMessage | null = null;\n public enableSmartReply: boolean = false;\n smartReplyConfig!: SmartRepliesConfiguration;\n public timeStampBackground: string = \"\";\n linkPreviewStyle: LinkPreviewStyle = {};\n public unreadMessagesStyle = {};\n public modalStyle = {\n height: \"fit-content\",\n width: \"fit-content\",\n closeIconTint: \"blue\",\n };\n public dividerStyle: BaseStyle = {\n height: \"1px\",\n width: \"100%\",\n background: \"grey\",\n };\n pollBubbleStyle: PollsBubbleStyle = {};\n labelStyle: any = {\n textFont: \"400 11px Inter\",\n textColor: \"grey\",\n };\n imageBubbleStyle: any = {\n height: \"auto\",\n width: \"100%\",\n border: \"none\",\n borderRadius: \"8px 8px 0px 0px\",\n background: \"transparent\",\n };\n messagesList: CometChat.BaseMessage[] = [];\n bubbleDateStyle: DateStyle = {};\n whiteboardIconURL: string = \"assets/collaborativewhiteboard.svg\";\n documentIconURL: string = \"assets/collaborativedocument.svg\";\n directCallIconURL: string = \"assets/Video-call2x.svg\";\n placeholderIconURL: string = \"/assets/placeholder.png\";\n downloadIconURL: string = \"assets/download.svg\";\n translationStyle: MessageTranslationStyle = {};\n documentBubbleStyle: DocumentBubbleStyle = {};\n callBubbleStyle: DocumentBubbleStyle = {};\n whiteboardTitle: string = localize(\"COLLABORATIVE_WHITEBOARD\");\n whiteboardSubitle: string = localize(\"DRAW_WHITEBOARD_TOGETHER\");\n whiteboardButtonText: string = localize(\"OPEN_WHITEBOARD\");\n documentTitle: string = localize(\"COLLABORATIVE_DOCUMENT\");\n documentSubitle: string = localize(\"DRAW_DOCUMENT_TOGETHER\");\n documentButtonText: string = localize(\"OPEN_DOCUMENT\");\n joinCallButtonText: string = localize(\"JOIN\");\n topObserver!: IntersectionObserver;\n bottomObserver!: IntersectionObserver;\n localize: typeof localize = localize;\n reinitialized: boolean = false;\n addReactionIconURL: string = \"assets/addreaction.svg\";\n MessageTypesConstant: typeof CometChatUIKitConstants.MessageTypes =\n CometChatUIKitConstants.MessageTypes;\n callConstant: string = CometChatUIKitConstants.MessageCategory.call;\n public typesMap: any = {};\n public messageTypesMap: any = {};\n theme: CometChatTheme = new CometChatTheme({});\n public groupListenerId = \"group_\" + new Date().getTime();\n public callListenerId = \"call_\" + new Date().getTime();\n public loggedInUser!: CometChat.User;\n public states: typeof States = States;\n MessageCategory = CometChatUIKitConstants.MessageCategory;\n public numberOfTopScroll: number = 0;\n keepRecentMessages: boolean = true;\n messageTemplate: CometChatMessageTemplate[] = [];\n public openContactsView: boolean = false;\n messageCount!: number;\n isOnBottom: boolean = false;\n UnreadCount: CometChat.BaseMessage[] = [];\n newMessageCount: number | string = 0;\n type: string = \"\";\n confirmText: string = localize(\"YES\");\n cancelText: string = localize(\"NO\");\n warningText: string = \"Are you sure want to see unsafe content?\";\n ccMessageDelete!: Subscription;\n ccMessageReact!: Subscription;\n ccMessageRead!: Subscription;\n ccMessageEdit!: Subscription;\n ccLiveReaction!: Subscription;\n ccMessageSent!: Subscription;\n ccMessageEdited!: Subscription;\n ccGroupMemberAdded!: Subscription;\n ccGroupLeft!: Subscription;\n ccGroupMemberJoined!: Subscription;\n ccGroupMemberKicked!: Subscription;\n ccGroupMemberBanned!: Subscription;\n ccOwnershipChanged!: Subscription;\n ccGroupDeleted!: Subscription;\n ccGroupCreated!: Subscription;\n ccOutgoingCall!: Subscription;\n ccCallRejected!: Subscription;\n ccCallEnded!: Subscription;\n ccCallAccepted!: Subscription;\n ccGroupMemberScopeChanged!: Subscription;\n onTextMessageReceived!: Subscription;\n onMessageReactionAdded!: Subscription;\n onMessageReactionRemoved!: Subscription;\n onCustomMessageReceived!: Subscription;\n onFormMessageReceived!: Subscription;\n onSchedulerMessageReceived!: Subscription;\n onCardMessageReceived!: Subscription;\n onCustomInteractiveMessageReceived!: Subscription;\n onMediaMessageReceived!: Subscription;\n onMessagesDelivered!: Subscription;\n onMessagesRead!: Subscription;\n onMessagesReadByAll!: Subscription;\n onMessagesDeliveredToAll!: Subscription;\n onMessageDeleted!: Subscription;\n onMessageEdited!: Subscription;\n onTransientMessageReceived!: Subscription;\n onInteractionGoalCompleted!: Subscription;\n threadedAlignment: MessageBubbleAlignment = MessageBubbleAlignment.left;\n messageInfoAlignment: MessageBubbleAlignment = MessageBubbleAlignment.right;\n openEmojiKeyboard: boolean = false;\n keyboardAlignment: string = Placement.right;\n popoverStyle: any = {\n height: \"330px\",\n width: \"325px\",\n };\n videoBubbleStyle: BaseStyle = {\n height: \"130px\",\n width: \"230px\",\n border: \"none\",\n borderRadius: \"8px\",\n background: \"transparent\",\n };\n threadViewAlignment = MessageBubbleAlignment.left;\n whiteboardURL: string | URL | undefined;\n enableDataMasking: boolean = false;\n enableThumbnailGeneration: boolean = false;\n enableLinkPreview: boolean = false;\n enablePolls: boolean = false;\n enableReactions: boolean = false;\n enableImageModeration: boolean = false;\n enableStickers: boolean = false;\n enableWhiteboard: boolean = false;\n enableDocument: boolean = false;\n showOngoingCall: boolean = false;\n enableCalling: boolean = false;\n ongoingCallStyle: CallscreenStyle = {};\n sessionId: string = \"\";\n openMessageInfoPage: boolean = false;\n messageInfoObject!: CometChat.BaseMessage;\n firstReload: boolean = false;\n isWebsocketReconnected: boolean = false;\n public connectionListenerId = \"connection_\" + new Date().getTime();\n lastMessageId: number = 0;\n isConnectionReestablished: boolean = false;\n @Input() textFormatters?: Array<CometChatTextFormatter>;\n\n closeIconURL: string = \"assets/close2x.svg\";\n threadOpenIcon: string = \"assets/side-arrow.svg\";\n confirmDialogStyle: ConfirmDialogStyle = {};\n public messageToReact: CometChat.BaseMessage | null = null;\n\n public limit: number = 30;\n types: string[] = [];\n categories: string[] = [];\n callbacks: Map<string, (sessionId: string) => void> = new Map();\n\n constructor(\n private ngZone: NgZone,\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) { }\n ngOnChanges(changes: SimpleChanges): void {\n try {\n if (changes[\"user\"] || changes[\"group\"]) {\n this.chatChanged = true;\n }\n\n if (\n changes[CometChatUIKitConstants.MessageReceiverType.user] ||\n changes[CometChatUIKitConstants.MessageReceiverType.group]\n ) {\n this.showConversationStarter = false;\n this.showConversationSummary = false;\n\n this.conversationStarterReplies = [];\n this.conversationSummary = [];\n this.state = States.loading;\n this.messagesList = [];\n this.ref.detectChanges();\n this.showEnabledExtensions();\n this.numberOfTopScroll = 0;\n if (!this.loggedInUser) {\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user as CometChat.User;\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n }\n this.messagesList = [];\n if (this.user) {\n if (Object.keys(this.user).length > 1) {\n this.user = this.user;\n this.type = CometChatUIKitConstants.MessageReceiverType.user;\n this.createRequestBuilder();\n } else {\n CometChat.getUser(this.user).then((user: CometChat.User) => {\n this.user = user;\n this.type = CometChatUIKitConstants.MessageReceiverType.user;\n this.createRequestBuilder();\n });\n }\n } else if (this.group) {\n if (Object.keys(this.group).length > 1) {\n this.group = this.group;\n this.type = CometChatUIKitConstants.MessageReceiverType.group;\n this.createRequestBuilder();\n } else {\n CometChat.getGroup(this.group).then((group: CometChat.Group) => {\n this.group = group;\n this.type = CometChatUIKitConstants.MessageReceiverType.group;\n this.createRequestBuilder();\n });\n }\n }\n setTimeout(() => {\n this.scrollToBottom();\n }, 10);\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n sendMessage(\n message: CometChat.BaseMessage,\n receiverId: string,\n receiverType: string\n ) {\n if (message.getType() == CometChatUIKitConstants.MessageTypes.text) {\n const newMessage = new CometChat.TextMessage(\n receiverId,\n (message as CometChat.TextMessage).getText(),\n receiverType\n );\n return new Promise((resolve, reject) => {\n CometChatUIKit.sendTextMessage(newMessage as CometChat.TextMessage)\n .then((message: CometChat.BaseMessage) => {\n resolve(message);\n })\n .catch((err: CometChat.CometChatException) => {\n reject(err);\n });\n });\n } else {\n const uploadedFile = (message as any)?.data?.attachments[0];\n const newMessage = new CometChat.MediaMessage(\n receiverId,\n \"\",\n message.getType(),\n receiverType\n );\n let attachment = new CometChat.Attachment(uploadedFile);\n newMessage.setAttachment(attachment);\n return new Promise((resolve, reject) => {\n CometChatUIKit.sendMediaMessage(newMessage as CometChat.MediaMessage)\n .then((message: CometChat.BaseMessage) => {\n resolve(message);\n })\n .catch((err: CometChat.CometChatException) => {\n reject(err);\n });\n });\n }\n }\n closeContactsPage = () => {\n this.openContactsView = false;\n this.ref.detectChanges();\n };\n onEmojiKeyboardClosed() {\n if (this.messageToReact) {\n this.messageToReact = null;\n this.ref.detectChanges();\n }\n }\n addReaction = (event: any) => {\n let emoji = event?.detail?.id;\n this.popoverRef.nativeElement.openContentView(event);\n if (this.messageToReact) {\n this.reactToMessage(emoji, this.messageToReact);\n setTimeout(() => {\n this.messageToReact = null;\n }, 0);\n }\n };\n getCallBubbleTitle(message: CometChat.BaseMessage) {\n if (\n !message.getSender() ||\n message.getSender().getUid() == this.loggedInUser.getUid()\n ) {\n return localize(\"YOU_INITIATED_GROUP_CALL\");\n } else {\n return `${message.getSender().getName()} ${localize(\n \"INITIATED_GROUP_CALL\"\n )}`;\n }\n }\n getCallActionMessage = (call: CometChat.Call) => {\n return CallingDetailsUtils.getCallStatus(call, this.loggedInUser);\n };\n ngOnDestroy(): void {\n this.showConversationStarter = false;\n this.showConversationSummary = false;\n\n this.unsubscribeToEvents();\n try {\n //Removing Message Listeners\n CometChat.removeGroupListener(this.groupListenerId);\n CometChat.removeCallListener(this.callListenerId);\n CometChat.removeConnectionListener(this.connectionListenerId)\n this.onTextMessageReceived?.unsubscribe();\n this.onMediaMessageReceived?.unsubscribe();\n this.onMessageReactionAdded?.unsubscribe();\n this.onMessageReactionRemoved?.unsubscribe();\n this.onCustomMessageReceived?.unsubscribe();\n this.onFormMessageReceived?.unsubscribe();\n this.onSchedulerMessageReceived?.unsubscribe();\n this.onCardMessageReceived?.unsubscribe();\n this.onCustomInteractiveMessageReceived?.unsubscribe();\n this.onMessagesDelivered?.unsubscribe();\n this.onMessagesRead?.unsubscribe();\n this.onMessagesDeliveredToAll?.unsubscribe();\n this.onMessagesReadByAll?.unsubscribe();\n this.onMessageDeleted?.unsubscribe();\n this.onMessageEdited?.unsubscribe();\n this.onTransientMessageReceived?.unsubscribe();\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n this.ref.detectChanges();\n }\n /**\n * Creates a new ReactionsStyle object with the defined or default styles.\n *\n * @returns {ReactionsStyle} Returns an instance of ReactionsStyle with the set or default styles.\n */\n getReactionsStyle() {\n const reactionsStyle = this.reactionsConfiguration?.reactionsStyle || {};\n return new ReactionsStyle({\n height: reactionsStyle?.height || \"fit-content\",\n width: reactionsStyle?.width || \"fit-content\",\n border: reactionsStyle?.border || \"none\",\n borderRadius: reactionsStyle?.borderRadius || \"0\",\n background: reactionsStyle?.background || \"transparent\",\n activeReactionBackground:\n reactionsStyle?.activeReactionBackground ||\n this.themeService.theme.palette.getPrimary150(),\n reactionBackground:\n reactionsStyle?.reactionBackground ||\n this.themeService.theme.palette.getBackground(),\n reactionBorder:\n reactionsStyle?.reactionBorder ||\n `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n activeReactionBorder:\n reactionsStyle?.activeReactionBorder ||\n `1px solid ${this.themeService.theme.palette.getPrimary500()}`,\n reactionBorderRadius: reactionsStyle?.reactionBorderRadius || \"12px\",\n activeReactionCountTextColor:\n reactionsStyle?.activeReactionCountTextColor ||\n this.themeService.theme.palette.getAccent(),\n activeReactionCountTextFont:\n reactionsStyle?.activeReactionCountTextFont ||\n fontHelper(this.themeService.theme.typography.caption1),\n reactionCountTextFont:\n reactionsStyle?.reactionCountTextFont ||\n fontHelper(this.themeService.theme.typography.caption1),\n reactionCountTextColor:\n reactionsStyle?.reactionCountTextColor ||\n this.themeService.theme.palette.getAccent(),\n reactionBoxShadow:\n reactionsStyle?.reactionBoxShadow || \"rgba(0, 0, 0, 0.1) 0px 4px 12px\",\n reactionEmojiFont:\n reactionsStyle?.reactionEmojiFont ||\n fontHelper(this.themeService.theme.typography.subtitle1),\n });\n }\n isMobileView = () => {\n return window.innerWidth <= 768;\n };\n getBubbleById(id: string): ElementRef | undefined {\n let targetBubble: ElementRef | undefined;\n this.messageBubbleRef.forEach((bubble: ElementRef) => {\n if (bubble.nativeElement.id === id)\n targetBubble = bubble;\n });\n\n return targetBubble;\n }\n showEmojiKeyboard = (id: number, event: any) => {\n CometChatUIEvents.ccActivePopover.next(ActivePopover.messageList)\n let message: CometChat.BaseMessage | false = this.getMessageById(id);\n if (message) {\n this.messageToReact = message;\n if (this.isMobileView()) {\n let bubbleRef = this.getBubbleById(String(id))\n if (bubbleRef) {\n const rect = bubbleRef.nativeElement.getBoundingClientRect();\n const isAtTop = rect.top < innerHeight / 2;\n const isAtBottom = rect.bottom > window.innerHeight / 2;\n if (isAtTop) {\n this.keyboardAlignment = Placement.bottom;\n } else if (isAtBottom) {\n this.keyboardAlignment = Placement.top;\n }\n }\n }\n else {\n this.keyboardAlignment =\n message.getSender()?.getUid() == this.loggedInUser?.getUid()\n ? Placement.left\n : Placement.right;\n }\n this.ref.detectChanges();\n this.popoverRef.nativeElement.openContentView(event);\n }\n };\n setBubbleView = () => {\n this.messageTemplate.forEach((element: CometChatMessageTemplate) => {\n this.messageTypesMap[element.category+'_'+element.type] = element; \n });\n };\n openThreadView = (message: CometChat.BaseMessage) => {\n if (this.onThreadRepliesClick) {\n this.onThreadRepliesClick(message, this.threadMessageBubble);\n }\n };\n threadCallback = (id: number) => {\n let messageObject: any = this.getMessageById(id);\n this.openThreadView(messageObject);\n };\n deleteCallback = (id: number) => {\n let messageObject: any = this.getMessageById(id);\n this.deleteMessage(messageObject);\n };\n editCallback = (id: number) => {\n let messageObject: any = this.getMessageById(id);\n this.onEditMessage(messageObject);\n };\n copyCallback = (id: number) => {\n let messageObject: any = this.getMessageById(id);\n this.onCopyMessage(messageObject);\n };\n messagePrivatelyCallback = (id: number) => {\n let messageObject: any = this.getMessageById(id);\n this.sendMessagePrivately(messageObject);\n };\n messageInfoCallback = (id: number) => {\n let messageObject: any = this.getMessageById(id);\n this.openMessageInfo(messageObject);\n };\n openMessageInfo(messageObject: CometChat.BaseMessage) {\n this.openMessageInfoPage = true;\n this.messageInfoObject = CometChatUIKitUtility.clone(messageObject);\n this.ref.detectChanges();\n }\n closeMessageInfoPage = () => {\n this.openMessageInfoPage = false;\n this.ref.detectChanges();\n };\n sendMessagePrivately(messageObject: CometChat.BaseMessage) {\n CometChatUIEvents.ccOpenChat.next({ user: messageObject.getSender() });\n }\n getMessageById(id: number | string) {\n let messageKey = this.messagesList.findIndex((m) => m.getId() == id);\n if (messageKey > -1) {\n return this.messagesList[messageKey];\n } else {\n return false;\n }\n }\n isTranslated(message: CometChat.TextMessage): any {\n let translatedMessageObject: any = message;\n if (\n translatedMessageObject &&\n translatedMessageObject?.data?.metadata &&\n translatedMessageObject?.data?.metadata[\n MessageTranslationConstants.translated_message\n ]\n ) {\n return translatedMessageObject.data.metadata[\n MessageTranslationConstants.translated_message\n ];\n } else {\n return null;\n }\n }\n updateTranslatedMessage = (translation: any) => {\n var receivedMessage = translation;\n var translatedText = receivedMessage.translations[0].message_translated;\n let messageList: CometChat.BaseMessage[] = [...this.messagesList];\n let messageKey = messageList.findIndex(\n (m) => m.getId() === receivedMessage.msgId\n );\n let data: any;\n if (messageKey > -1) {\n var messageObj: CometChat.BaseMessage = messageList[messageKey];\n if ((messageObj as CometChat.TextMessage).getMetadata()) {\n data = (messageObj as CometChat.TextMessage).getMetadata();\n } else {\n (messageObj as CometChat.TextMessage).setMetadata({});\n data = (messageObj as CometChat.TextMessage).getMetadata();\n }\n data[MessageTranslationConstants.translated_message] = translatedText;\n var newMessageObj: CometChat.TextMessage | CometChat.BaseMessage =\n messageObj;\n messageList.splice(messageKey, 1, newMessageObj);\n this.messagesList = [...messageList];\n this.ref.detectChanges();\n }\n };\n translateMessage = (id: number) => {\n let message: CometChat.BaseMessage | false = this.getMessageById(id);\n if (message) {\n CometChat.callExtension(\n MessageTranslationConstants.message_translation,\n MessageTranslationConstants.post,\n MessageTranslationConstants.v2_translate,\n {\n msgId: message.getId(),\n text: (message as CometChat.TextMessage).getText(),\n languages: navigator.languages,\n }\n )\n .then((result: any) => {\n if (\n result?.translations[0]?.message_translated !=\n (message as CometChat.TextMessage)?.getText()\n ) {\n this.updateTranslatedMessage(result);\n this.ref.detectChanges();\n } else {\n return;\n }\n // Result of translations\n })\n .catch((error: CometChat.CometChatException) => { });\n }\n };\n setOptionsCallback(options: CometChatMessageOption[], id: number) {\n options?.forEach((element: CometChatMessageOption) => {\n switch (element.id) {\n case CometChatUIKitConstants.MessageOption.deleteMessage:\n if (!element.onClick) {\n element.onClick = this.deleteCallback;\n }\n break;\n case CometChatUIKitConstants.MessageOption.editMessage:\n if (!element.onClick) {\n element.onClick = this.editCallback;\n }\n break;\n case CometChatUIKitConstants.MessageOption.translateMessage:\n if (!element.onClick) {\n element.onClick = this.translateMessage;\n }\n break;\n case CometChatUIKitConstants.MessageOption.copyMessage:\n if (!element.onClick) {\n element.onClick = this.copyCallback;\n }\n break;\n case CometChatUIKitConstants.MessageOption.reactToMessage:\n if (!element.onClick || !(element as any).customView) {\n element.onClick = this.showEmojiKeyboard;\n }\n break;\n case CometChatUIKitConstants.MessageOption.replyInThread:\n if (!element.onClick) {\n element.onClick = this.threadCallback;\n }\n break;\n case CometChatUIKitConstants.MessageOption.sendMessagePrivately:\n if (!element.onClick) {\n element.onClick = this.messagePrivatelyCallback;\n }\n break;\n case CometChatUIKitConstants.MessageOption.messageInformation:\n if (!element.onClick) {\n element.onClick = this.messageInfoCallback;\n }\n break;\n default:\n break;\n }\n });\n return options;\n }\n /**\n * send message options based on type\n * @param {CometChat.BaseMessage} msgObject\n */\n setMessageOptions(\n msgObject: CometChat.BaseMessage\n ): CometChatMessageOption[] {\n let options!: CometChatMessageOption[];\n if (\n this.messageTemplate &&\n this.messageTemplate.length > 0 &&\n !msgObject?.getDeletedAt() &&\n msgObject?.getType() != CometChatUIKitConstants.MessageTypes.groupMember\n ) {\n this.messageTemplate.forEach((element: CometChatMessageTemplate) => {\n if (\n msgObject?.getId() &&\n element.type == msgObject?.getType() &&\n element?.options\n ) {\n options =\n this.setOptionsCallback(\n element?.options(\n this.loggedInUser,\n msgObject,\n this.themeService.theme,\n this.group\n ),\n msgObject?.getId()\n ) || [];\n }\n });\n } else {\n options = [];\n }\n options = this.filterEmojiOptions(options);\n return options;\n }\n /**\n * Reacts to a message by either adding or removing the reaction.\n *\n * @param {string} emoji - The emoji used for the reaction.\n * @param {CometChat.BaseMessage} message - The message that was reacted to.\n */\n\n reactToMessage(emoji: string, message: CometChat.BaseMessage) {\n const messageId = message?.getId();\n const msgObject = this.getMessageById(messageId) as CometChat.BaseMessage;\n const reactions = msgObject?.getReactions() || [];\n const emojiObject = reactions?.find((reaction: any) => {\n return reaction?.reaction == emoji;\n });\n if (emojiObject && emojiObject?.getReactedByMe()) {\n const updatedReactions: any[] = [];\n reactions.forEach((reaction) => {\n if (reaction?.getReaction() == emoji) {\n if (reaction?.getCount() === 1) {\n return;\n } else {\n reaction.setCount(reaction?.getCount() - 1);\n reaction.setReactedByMe(false);\n updatedReactions.push(reaction);\n }\n } else {\n updatedReactions.push(reaction);\n }\n });\n msgObject.setReactions(updatedReactions);\n this.updateMessage(msgObject);\n CometChat.removeReaction(messageId, emoji)\n .then((message) => { })\n .catch((error) => {\n // Return old message object instead of\n this.updateMessage(msgObject); //need changes\n console.log(error);\n });\n } else {\n const updatedReactions = [];\n const reactionAvailable = reactions.find((reaction) => {\n return reaction?.getReaction() == emoji;\n });\n\n reactions.forEach((reaction) => {\n if (reaction?.getReaction() == emoji) {\n reaction.setCount(reaction?.getCount() + 1);\n reaction.setReactedByMe(true);\n updatedReactions.push(reaction);\n } else {\n updatedReactions.push(reaction);\n }\n });\n if (!reactionAvailable) {\n const react: CometChat.ReactionCount = new CometChat.ReactionCount(\n emoji,\n 1,\n true\n );\n updatedReactions.push(react);\n }\n msgObject.setReactions(updatedReactions);\n this.updateMessage(msgObject);\n CometChat.addReaction(messageId, emoji)\n .then((response: any) => { })\n .catch((error: any) => {\n console.log(error);\n this.updateMessage(msgObject);\n });\n }\n }\n /**\n * Filters out the 'add reaction' option if reactions are disabled.\n *\n * @param {CometChatMessageOption[]} options - The original set of message options.\n * @returns {CometChatMessageOption[]} The filtered set of message options.\n */\n\n filterEmojiOptions = (options: CometChatMessageOption[]) => {\n if (this.disableReactions && options?.length > 0) {\n return options.filter((option: CometChatMessageOption) => {\n return option.id !== CometChatUIKitConstants.MessageOption.reactToMessage;\n });\n }\n return options;\n };\n getClonedReactionObject(message: CometChat.BaseMessage) {\n return CometChatUIKitUtility.clone(message);\n }\n /**\n * passing style based on message object\n * @param {CometChat.BaseMessage} messageObject\n */\n setMessageBubbleStyle(msg: CometChat.BaseMessage): BaseStyle {\n let style!: BaseStyle;\n if (msg?.getDeletedAt()) {\n style = {\n background: \"transparent\",\n border: `1px dashed ${this.themeService.theme.palette.getAccent400()}`,\n borderRadius: \"12px\",\n };\n } else if (\n msg?.getType() == CometChatUIKitConstants.calls.meeting &&\n (!msg?.getSender() ||\n msg?.getSender().getUid() == this.loggedInUser.getUid())\n ) {\n style = {\n background: this.themeService.theme.palette.getPrimary(),\n border: `none`,\n borderRadius: \"12px\",\n };\n // } else if (this.getLinkPreview(msg as CometChat.TextMessage)) {\n // style = {\n // borderRadius: \"8px\",\n // background: this.themeService.theme.palette.getAccent100(),\n // };\n } else if (msg?.getType() == StickersConstants.sticker) {\n style = {\n background: \"transparent\",\n borderRadius: \"12px\",\n };\n } else if (\n !msg?.getDeletedAt() &&\n msg?.getCategory() == CometChatUIKitConstants.MessageCategory.message &&\n msg?.getType() == CometChatUIKitConstants.MessageTypes.text &&\n (!msg?.getSender() ||\n this.loggedInUser!.getUid() == msg?.getSender().getUid())\n ) {\n style = {\n background:\n this.alignment == MessageListAlignment.left\n ? this.themeService.theme.palette.getAccent100()\n : this.themeService.theme.palette.getPrimary(),\n borderRadius: \"12px\",\n };\n } else if (\n !msg?.getDeletedAt() &&\n msg?.getCategory() == CometChatUIKitConstants.MessageCategory.message &&\n msg?.getType() == CometChatUIKitConstants.MessageTypes.audio\n ) {\n style = {\n borderRadius: \"\",\n background: this.themeService.theme.palette.getSecondary(),\n };\n } else if (\n msg?.getType() == CometChatUIKitConstants.MessageTypes.groupMember ||\n msg?.getCategory() == this.callConstant\n ) {\n style = {\n background: \"transparent\",\n borderRadius: \"12px\",\n border: `1px solid ${this.themeService.theme.palette.getSecondary()}`,\n };\n } else if (\n !msg?.getDeletedAt() &&\n msg?.getCategory() === CometChatUIKitConstants.MessageCategory.interactive\n ) {\n return {\n background: this.themeService.theme.palette.getSecondary(),\n width: \"300px\",\n };\n } else {\n if (\n msg?.getSender() &&\n msg?.getSender().getUid() != this.loggedInUser.getUid()\n ) {\n style = {\n background: this.themeService.theme.palette.getSecondary(),\n borderRadius: \"12px\",\n };\n } else {\n style = {\n background: this.themeService.theme.palette.getSecondary(),\n borderRadius: \"12px\",\n };\n }\n }\n return style;\n }\n getSessionId(message: CometChat.CustomMessage) {\n let data: any = message.getData();\n return data?.customData?.sessionID;\n }\n getWhiteboardDocument(message: CometChat.CustomMessage) {\n try {\n if (message?.getData()) {\n var data: any = message.getData();\n if (data?.metadata) {\n var metadata = data?.metadata;\n if (\n CometChatUIKitUtility.checkHasOwnProperty(metadata, \"@injected\")\n ) {\n var injectedObject = metadata[\"@injected\"];\n if (injectedObject?.extensions) {\n var extensionObject = injectedObject.extensions;\n return extensionObject[\n CollaborativeWhiteboardConstants.whiteboard\n ]\n ? extensionObject[CollaborativeWhiteboardConstants.whiteboard]\n .board_url\n : extensionObject[CollaborativeDocumentConstants.document]\n .document_url;\n }\n }\n }\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n openLinkURL(event: any) {\n window.open(event?.detail?.url, \"_blank\");\n }\n getSticker(message: CometChat.CustomMessage) {\n try {\n let stickerData: any = null;\n if (\n CometChatUIKitUtility.checkHasOwnProperty(\n message,\n StickersConstants.data\n ) &&\n CometChatUIKitUtility.checkHasOwnProperty(\n (message as CometChat.CustomMessage).getData(),\n StickersConstants.custom_data\n )\n ) {\n stickerData = (message as any).data.customData;\n if (\n CometChatUIKitUtility.checkHasOwnProperty(\n stickerData,\n StickersConstants.sticker_url\n )\n ) {\n return stickerData.sticker_url;\n } else {\n return \"\";\n }\n } else {\n return \"\";\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n /**\n * Checks if the 'statusInfoView' is present in the default template provided by the user\n * If present, returns the user-defined template, otherwise returns null.\n *\n * @param message Message object for which the status info view needs to be fetched\n * @returns User-defined TemplateRef if present, otherwise null\n */\n getContentView = (\n message: CometChat.BaseMessage\n ): TemplateRef<any> | null => {\n if (\n this.messageTypesMap[message.getCategory()+'_'+message?.getType()] &&\n this.messageTypesMap[message.getCategory()+'_'+message?.getType()]?.contentView\n ) {\n return this.messageTypesMap[message.getCategory()+'_'+message?.getType()]?.contentView(message);\n } else {\n return message.getDeletedAt()\n ? this.typesMap[CometChatUIKitConstants.MessageCategory.message+'_'+CometChatUIKitConstants.MessageTypes.text]\n : this.typesMap[message.getCategory()+'_'+message?.getType()];\n }\n };\n /**\n * Checks if the 'headerView' is present in the default template provided by the user\n * If present, returns the user-defined template, otherwise returns null.\n *\n * @param message Message object for which the status info view needs to be fetched\n * @returns User-defined TemplateRef if present, otherwise null\n */\n getHeaderView(message: CometChat.BaseMessage): TemplateRef<any> | null {\n let view: TemplateRef<any> | null = null;\n if (\n this.messageTypesMap[message.getCategory()+'_'+message?.getType()] &&\n this.messageTypesMap[message.getCategory()+'_'+message?.getType()]?.headerView\n ) {\n view = this.messageTypesMap[message.getCategory()+'_'+message?.getType()]?.headerView(message);\n return view;\n } else {\n return null;\n }\n }\n /**\n * Checks if the 'footerView' is present in the default template provided by the user\n * If present, returns the user-defined template, otherwise returns null.\n *\n * @param message Message object for which the status info view needs to be fetched\n * @returns User-defined TemplateRef if present, otherwise null\n */\n getFooterView(message: CometChat.BaseMessage): TemplateRef<any> | null {\n let view: TemplateRef<any> | null = null;\n if (\n this.messageTypesMap[message.getCategory()+'_'+message?.getType()] &&\n this.messageTypesMap[message.getCategory()+'_'+message?.getType()]?.footerView\n ) {\n view = this.messageTypesMap[message.getCategory()+'_'+message?.getType()]?.footerView(message);\n return view;\n } else {\n return null;\n }\n }\n /**\n * Checks if the 'bottomView' is present in the default template provided by the user\n * If present, returns the user-defined template, otherwise returns null.\n *\n * @param message Message object for which the status info view needs to be fetched\n * @returns User-defined TemplateRef if present, otherwise null\n */\n getBottomView(message: CometChat.BaseMessage): TemplateRef<any> | null {\n if (\n this.messageTypesMap[message.getCategory()+'_'+message?.getType()] &&\n this.messageTypesMap[message.getCategory()+'_'+message?.getType()]?.bottomView\n ) {\n return this.messageTypesMap[message.getCategory()+'_'+message?.getType()]?.bottomView(message);\n } else {\n return null;\n }\n }\n /**\n * Checks if the 'statusInfoView' is present in the default template provided by the user\n * If present, returns the user-defined template, otherwise returns null.\n *\n * @param message Message object for which the status info view needs to be fetched\n * @returns User-defined TemplateRef if present, otherwise null\n */\n\n getStatusInfoView(message: CometChat.BaseMessage): TemplateRef<any> | null {\n if (\n this.messageTypesMap[message.getCategory()+'_'+message?.getType()] &&\n this.messageTypesMap[message.getCategory()+'_'+message?.getType()]?.statusInfoView\n ) {\n return this.messageTypesMap[message.getCategory()+'_'+message?.getType()]?.statusInfoView(message);\n } else {\n return null;\n }\n }\n isAudioOrVideoMessage(message: CometChat.BaseMessage) {\n const messageType = message?.getType();\n const typesToCheck = [\n CometChatUIKitConstants.MessageTypes.image,\n CometChatUIKitConstants.MessageTypes.video,\n ];\n return typesToCheck.includes(messageType);\n }\n\n setBubbleAlignment = (message: CometChat.BaseMessage) => {\n let alignment: MessageBubbleAlignment = MessageBubbleAlignment.center;\n if (this.alignment == MessageListAlignment.left) {\n alignment = MessageBubbleAlignment.left;\n } else {\n if (\n message?.getType() ==\n CometChatUIKitConstants.MessageTypes.groupMember ||\n message.getCategory() == this.callConstant\n ) {\n alignment = MessageBubbleAlignment.center;\n } else if (\n !message?.getSender() ||\n (message?.getSender().getUid() == this.loggedInUser.getUid() &&\n message?.getType() !=\n CometChatUIKitConstants.MessageTypes.groupMember)\n ) {\n alignment = MessageBubbleAlignment.right;\n } else {\n alignment = MessageBubbleAlignment.left;\n }\n }\n return alignment;\n };\n\n getFormMessageBubbleStyle() {\n const textStyle = new InputStyle({\n width: \"100%\",\n height: \"30px\",\n border: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n borderRadius: \"6px\",\n padding: \"0px 0px 0px 5px\",\n placeholderTextColor: this.themeService.theme.palette.getAccent400(),\n placeholderTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n textFont: fontHelper(this.themeService.theme.typography.subtitle2),\n textColor: this.themeService.theme.palette.getAccent(),\n background: this.themeService.theme.palette.getBackground(),\n });\n const labelStyle = new LabelStyle({\n textFont: fontHelper(this.themeService.theme.typography.subtitle1),\n textColor: this.themeService.theme.palette.getAccent(),\n background: \"transparent\",\n });\n const radioButtonStyle = new RadioButtonStyle({\n height: \"16px\",\n width: \"16px\",\n border: \"none\",\n labelTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n labelTextColor: this.themeService.theme.palette.getAccent600(),\n borderRadius: \"4px\",\n background: \"\",\n });\n const checkboxStyle = new CheckboxStyle({\n height: \"16px\",\n width: \"16px\",\n border: \"none\",\n borderRadius: \"4px\",\n background: \"\",\n labelTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n labelTextColor: this.themeService.theme.palette.getAccent(),\n });\n const dropdownStyle = new DropdownStyle({\n height: \"35px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n borderRadius: \"6px\",\n activeTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n activeTextColor: this.themeService.theme.palette.getAccent(),\n arrowIconTint: this.themeService.theme.palette.getAccent700(),\n textFont: fontHelper(this.themeService.theme.typography.subtitle2),\n textColor: this.themeService.theme.palette.getAccent(),\n optionBackground: this.themeService.theme.palette.getBackground(),\n optionBorder: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n optionHoverBorder: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n hoverTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n hoverTextColor: this.themeService.theme.palette.getAccent(),\n hoverTextBackground: this.themeService.theme.palette.getAccent100(),\n });\n const buttonGroupStyle = {\n height: \"40px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getPrimary(),\n border: `none`,\n borderRadius: \"6px\",\n buttonTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n buttonTextColor: this.themeService.theme.palette.getBackground(),\n justifyContent: \"center\",\n };\n const singleSelectStyle = new SingleSelectStyle({\n height: \"100%\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n border: \"none\",\n borderRadius: \"12px\",\n activeTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n activeTextColor: this.themeService.theme.palette.getAccent(),\n activeTextBackground: this.themeService.theme.palette.getAccent100(),\n textFont: fontHelper(this.themeService.theme.typography.subtitle2),\n textColor: this.themeService.theme.palette.getAccent(),\n optionBackground: this.themeService.theme.palette.getBackground(),\n optionBorder: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n optionBorderRadius: \"3px\",\n hoverTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n hoverTextColor: this.themeService.theme.palette.getAccent(),\n hoverTextBackground: this.themeService.theme.palette.getAccent100(),\n });\n const quickViewStyle = new QuickViewStyle({\n background: \"transparent\",\n height: \"fit-content\",\n width: \"100%\",\n titleFont: fontHelper(this.themeService.theme.typography.subtitle2),\n titleColor: this.themeService.theme.palette.getPrimary(),\n subtitleFont: fontHelper(this.themeService.theme.typography.subtitle2),\n subtitleColor: this.themeService.theme.palette.getAccent600(),\n leadingBarTint: this.themeService.theme.palette.getPrimary(),\n leadingBarWidth: \"4px\",\n borderRadius: \"8px\",\n });\n return new FormBubbleStyle({\n width: \"300px\",\n height: \"fit-content\",\n border: \"none\",\n background: \"transparent\",\n wrapperBackground: this.themeService.theme.palette.getBackground(),\n borderRadius: \"8px\",\n wrapperBorderRadius: \"8px\",\n textInputStyle: textStyle,\n labelStyle: labelStyle,\n radioButtonStyle: radioButtonStyle,\n checkboxStyle: checkboxStyle,\n dropdownStyle: dropdownStyle,\n buttonStyle: buttonGroupStyle,\n singleSelectStyle: singleSelectStyle,\n quickViewStyle: quickViewStyle,\n titleColor: this.themeService.theme.palette.getAccent(),\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n goalCompletionTextColor: this.themeService.theme.palette.getAccent(),\n goalCompletionTextFont: fontHelper(\n this.themeService.theme.typography.subtitle1\n ),\n wrapperPadding: \"2px\",\n datePickerBorder: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n datePickerBorderRadius: \"6px\",\n datePickerFont: fontHelper(this.themeService.theme.typography.subtitle2),\n datePickerFontColor: this.themeService.theme.palette.getAccent(),\n });\n }\n\n getCardMessageBubbleStyle() {\n const buttonStyle = {\n height: \"40px\",\n width: \"100%\",\n background: \"transparent\",\n border: `none`,\n borderRadius: \"0px\",\n buttonTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n buttonTextColor: `${this.themeService.theme.palette.getPrimary()}`,\n justifyContent: \"center\",\n };\n\n return new CardBubbleStyle({\n background: \"transparent\",\n borderRadius: \"8px\",\n height: \"fit-content\",\n width: \"300px\",\n imageHeight: \"auto\",\n imageWidth: \"100%\",\n imageRadius: \"8px\",\n imageBackgroundColor: \"transparent\",\n descriptionFontColor: this.themeService.theme.palette.getAccent(),\n descriptionFont: fontHelper(this.themeService.theme.typography.subtitle2),\n buttonStyle: buttonStyle,\n dividerTintColor: this.themeService.theme.palette.getAccent100(),\n wrapperBackground: this.themeService.theme.palette.getBackground(),\n wrapperBorderRadius: \"8px\",\n wrapperPadding: \"2px\",\n disabledButtonColor: this.themeService.theme.palette.getAccent600(),\n });\n }\n\n getCallBubbleStyle(message: CometChat.BaseMessage) {\n var isLeftAligned = this.alignment == MessageListAlignment.left;\n var isUserSentMessage =\n !message?.getSender() ||\n this.loggedInUser!.getUid() === message?.getSender().getUid();\n if (isUserSentMessage && !isLeftAligned) {\n return {\n titleFont: fontHelper(this.themeService.theme.typography.text2),\n titleColor: this.themeService.theme.palette.getAccent(\"dark\"),\n iconTint: this.themeService.theme.palette.getAccent(\"dark\"),\n buttonTextFont: fontHelper(this.themeService.theme.typography.text2),\n buttonTextColor: this.themeService.theme.palette.getPrimary(),\n buttonBackground: this.themeService.theme.palette.getAccent(\"dark\"),\n width: \"240px\",\n };\n } else {\n return {\n titleFont: fontHelper(this.themeService.theme.typography.text2),\n titleColor: this.themeService.theme.palette.getAccent(),\n iconTint: this.themeService.theme.palette.getPrimary(),\n buttonTextFont: fontHelper(this.themeService.theme.typography.text2),\n buttonTextColor: this.themeService.theme.palette.getPrimary(),\n buttonBackground: this.themeService.theme.palette.getAccent(\"dark\"),\n width: \"240px\",\n };\n }\n }\n getBubbleWrapper = (\n message: CometChat.BaseMessage\n ): TemplateRef<any> | null => {\n let view: TemplateRef<any> | null;\n if (\n this.messageTypesMap &&\n this.messageTypesMap[message?.getCategory()+'_'+message?.getType()] &&\n this.messageTypesMap[message?.getCategory()+'_'+message?.getType()].bubbleView\n ) {\n view = this.messageTypesMap[message?.getCategory()+'_'+message?.getType()].bubbleView(message);\n return view;\n } else {\n view = null;\n return view;\n }\n };\n getBubbleAlignment(message: CometChat.BaseMessage) {\n return this.alignment == MessageListAlignment.left ||\n (message.getSender() &&\n message.getSender().getUid() != this.loggedInUser.getUid())\n ? MessageBubbleAlignment.left\n : MessageBubbleAlignment.right;\n }\n setTranslationStyle = (message: CometChat.BaseMessage) => {\n var isLeftAligned = this.alignment !== MessageListAlignment.left;\n var isUserSentMessage =\n !message?.getSender() ||\n this.loggedInUser!.getUid() === message?.getSender().getUid();\n if (!isLeftAligned) {\n return new MessageTranslationStyle({\n translatedTextFont: fontHelper(\n this.themeService.theme.typography.text3\n ),\n translatedTextColor: this.themeService.theme.palette.getAccent(\"light\"),\n helpTextColor: this.themeService.theme.palette.getAccent700(),\n helpTextFont: fontHelper(this.themeService.theme.typography.caption2),\n background: \"transparent\",\n });\n } else {\n if (isUserSentMessage) {\n return new MessageTranslationStyle({\n translatedTextFont: fontHelper(\n this.themeService.theme.typography.text3\n ),\n translatedTextColor:\n this.themeService.theme.palette.getAccent(\"dark\"),\n helpTextColor: this.themeService.theme.palette.getAccent700(\"dark\"),\n helpTextFont: fontHelper(this.themeService.theme.typography.caption2),\n background: \"transparent\",\n });\n } else {\n return new MessageTranslationStyle({\n translatedTextFont: fontHelper(\n this.themeService.theme.typography.text3\n ),\n translatedTextColor:\n this.themeService.theme.palette.getAccent(\"light\"),\n helpTextColor: this.themeService.theme.palette.getAccent700(),\n helpTextFont: fontHelper(this.themeService.theme.typography.caption2),\n background: \"transparent\",\n });\n }\n }\n };\n getCallTypeIcon(message: CometChat.BaseMessage) {\n if (message.getType() == CometChatUIKitConstants.MessageTypes.audio) {\n return \"assets/Audio-Call.svg\";\n } else {\n return \"assets/Video-call.svg\";\n }\n }\n callStatusStyle(message: CometChat.BaseMessage) {\n\n if (message.getCategory() == this.callConstant) {\n let missedCallTextColor = CallingDetailsUtils.isMissedCall(\n message as CometChat.Call,\n this.loggedInUser\n )\n ? this.themeService.theme.palette.getError()\n : this.themeService.theme.palette.getAccent600()\n return {\n buttonTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n buttonTextColor: missedCallTextColor,\n borderRadius: \"10px\",\n border: \"none\",\n buttonIconTint: missedCallTextColor,\n background: \"transparent\",\n iconBackground: \"transparent\",\n padding: \"8px 12px\",\n gap: \"4px\",\n height: \"25px\",\n justifyContent: \"center\",\n };\n } else {\n return null;\n }\n }\n setTextBubbleStyle = (message: CometChat.BaseMessage) => {\n let isInfoBubble = this.messageInfoObject && message.getId() && this.messageInfoObject.getId() == message.getId()\n var isDeleted = message.getDeletedAt();\n var notLeftAligned = this.alignment !== MessageListAlignment.left;\n var isTextMessage =\n message.getCategory() ===\n CometChatUIKitConstants.MessageCategory.message &&\n message?.getType() === CometChatUIKitConstants.MessageTypes.text;\n var isUserSentMessage =\n !message?.getSender() ||\n this.loggedInUser!.getUid() === message?.getSender().getUid();\n var isGroupMemberMessage =\n message?.getType() === CometChatUIKitConstants.MessageTypes.groupMember;\n if (!isDeleted && notLeftAligned && isTextMessage && isUserSentMessage) {\n return {\n textFont: fontHelper(this.themeService.theme.typography.text3),\n textColor: this.themeService.theme.palette.getAccent900(\"light\"),\n bubblePadding: isInfoBubble ? \"8px 12px\" : \"8px 12px 0 12px\"\n };\n }\n if (\n !isDeleted &&\n notLeftAligned &&\n isTextMessage &&\n !isUserSentMessage &&\n !isGroupMemberMessage\n ) {\n return {\n textFont: fontHelper(this.themeService.theme.typography.text3),\n textColor: this.themeService.theme.palette.getAccent(),\n bubblePadding: \"8px 12px 2px 12px\"\n };\n }\n if (isGroupMemberMessage) {\n return {\n textFont: fontHelper(this.themeService.theme.typography.subtitle2),\n textColor: this.themeService.theme.palette.getAccent600(),\n };\n }\n if (!notLeftAligned && isTextMessage) {\n return {\n textFont: fontHelper(this.themeService.theme.typography.text2),\n textColor: this.themeService.theme.palette.getAccent(),\n };\n }\n return {\n textFont: fontHelper(this.themeService.theme.typography.text2),\n textColor: this.themeService.theme.palette.getAccent400(),\n bubblePadding: \"8px 12px\"\n };\n };\n /*\n* isPartOfCurrentChatForUIEvent: To check if the message belongs for this list and is not part of thread even for current list\n it only runs for UI event because it assumes logged in user is always sender\n* @param: message: CometChat.BaseMessage\n*/\n isPartOfCurrentChatForUIEvent =\n (message: CometChat.BaseMessage) => {\n const receiverId = message?.getReceiverId();\n const receiverType = message?.getReceiverType();\n if (this.parentMessageId) {\n if (message.getParentMessageId() === this.parentMessageId) {\n return true;\n }\n else {\n return false;\n }\n } else {\n if (message.getParentMessageId()) {\n return false\n }\n\n if (this.user) {\n if (receiverType === CometChatUIKitConstants.MessageReceiverType.user && receiverId === this.user.getUid()) {\n return true\n }\n } else if (this.group) {\n if (receiverType === CometChatUIKitConstants.MessageReceiverType.group && receiverId === this.group.getGuid()) {\n return true\n }\n }\n\n return false\n\n }\n }\n\n /*\n * isPartOfCurrentChatForSDKEvent: To check if the message belongs for this list and is not part of thread even for current list\n it only runs for SDK event because it needs senderId to check if the message is sent by the same user\n * @param: message: CometChat.BaseMessage\n */\n isPartOfCurrentChatForSDKEvent =\n (message: CometChat.BaseMessage) => {\n const receiverId = message?.getReceiverId();\n const receiverType = message?.getReceiverType();\n const senderId = message?.getSender()?.getUid();\n if (this.parentMessageId) {\n if (message.getParentMessageId() === this.parentMessageId) {\n return true;\n }\n else {\n return false;\n }\n } else {\n if (message.getParentMessageId()) {\n return false\n }\n\n if (this.user) {\n if (receiverType === CometChatUIKitConstants.MessageReceiverType.user && (receiverId === this.user.getUid() || senderId === this.user.getUid())) {\n return true\n }\n else {\n return false;\n }\n } else if (this.group) {\n if (receiverType === CometChatUIKitConstants.MessageReceiverType.group && (receiverId === this.group.getGuid())) {\n return true\n }\n else {\n return false;\n }\n }\n\n return false\n\n }\n }\n\n /*\n * isThreadOfCurrentChatForUIEvent: To check if the message belongs thread of this list,\n it only runs for UI event because it assumes logged in user is always sender\n * @param: message: CometChat.BaseMessage\n */\n isThreadOfCurrentChatForUIEvent =\n (message: CometChat.BaseMessage) => {\n if (!message.getParentMessageId()) {\n return false\n }\n\n const receiverId = message?.getReceiverId();\n\n if (this.user) {\n if (receiverId === this.user.getUid()) {\n return true\n }\n } else if (this.group) {\n if (receiverId === this.group.getGuid()) {\n return true\n }\n }\n\n return false\n }\n\n /*\n * isThreadOfCurrentChatForSDKEvent: To check if the message belongs thread of this list,\n it only runs for SDK event because it needs senderId to check if the message is sent by the same user\n * @param: message: CometChat.BaseMessage\n */\n isThreadOfCurrentChatForSDKEvent =\n (message: CometChat.BaseMessage) => {\n if (!message.getParentMessageId()) {\n return false;\n }\n\n const receiverId = message?.getReceiverId();\n const senderId = message?.getSender()?.getUid();\n\n if (this.user) {\n if (receiverId === this.user.getUid() || senderId === this.user.getUid()) {\n return true;\n }\n } else if (this.group) {\n if (receiverId === this.group.getGuid()) {\n return true;\n }\n }\n\n return false;\n }\n setFileBubbleStyle(message: CometChat.BaseMessage): any {\n var isFileMessage =\n message.getCategory() ===\n CometChatUIKitConstants.MessageCategory.message &&\n message?.getType() === CometChatUIKitConstants.MessageTypes.file;\n if (isFileMessage) {\n return {\n titleFont: fontHelper(this.theme.typography.subtitle1),\n titleColor: this.themeService.theme.palette.getAccent(),\n subtitleFont: fontHelper(this.theme.typography.subtitle2),\n subtitleColor: this.themeService.theme.palette.getAccent600(),\n iconTint: this.themeService.theme.palette.getPrimary(),\n };\n } else {\n return;\n }\n }\n ngAfterViewInit() {\n this.ioBottom();\n this.ioTop();\n this.checkMessageTemplate();\n }\n\n getStartCallFunction(message: CometChat.CustomMessage): (sessionId: string) => void {\n let sessionId = this.getSessionId(message)\n let callback = this.callbacks.get(sessionId);\n if (!callback) {\n callback = (sessionId: string) => this.startDirectCall(sessionId, message);\n this.callbacks.set(sessionId, callback);\n }\n return callback;\n }\n startDirectCall = (sessionId: string, message: any) => {\n this.sessionId = sessionId;\n this.showOngoingCall = true;\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, message)\n this.ref.detectChanges();\n };\n launchCollaborativeDocument = (url: string) => {\n window.open(url,\"\",\"fullscreen=yes, scrollbars=auto\");\n };\n\n launchCollaborativeWhiteboard = (url: string) => {\n window.open(\n url + `&username=${this.loggedInUser?.getName()}`,\n \"\",\n \"fullscreen=yes, scrollbars=auto\"\n );\n };\n /**\n * Extracting types and categories from template\n *\n */\n checkMessageTemplate() {\n this.typesMap = {\n [CometChatUIKitConstants.MessageCategory.message+'_'+CometChatUIKitConstants.MessageTypes.text]: this.textBubble,\n [CometChatUIKitConstants.MessageCategory.message+'_'+CometChatUIKitConstants.MessageTypes.file]: this.fileBubble,\n [CometChatUIKitConstants.MessageCategory.message+'_'+CometChatUIKitConstants.MessageTypes.audio]: this.audioBubble,\n [CometChatUIKitConstants.MessageCategory.message+'_'+CometChatUIKitConstants.MessageTypes.video]: this.videoBubble,\n [CometChatUIKitConstants.MessageCategory.message+'_'+CometChatUIKitConstants.MessageTypes.image]: this.imageBubble,\n [CometChatUIKitConstants.MessageCategory.action+'_'+CometChatUIKitConstants.MessageTypes.groupMember]: this.textBubble,\n custom_extension_sticker: this.stickerBubble,\n custom_extension_whiteboard: this.whiteboardBubble,\n custom_extension_document: this.documentBubble,\n custom_extension_poll: this.pollBubble,\n custom_meeting: this.directCalling,\n [CometChatUIKitConstants.MessageCategory.call+'_'+CometChatUIKitConstants.MessageTypes.audio]: this.audioBubble,\n [CometChatUIKitConstants.MessageCategory.call+'_'+CometChatUIKitConstants.MessageTypes.video]: this.videoBubble,\n [CometChatUIKitConstants.MessageCategory.interactive+'_'+CometChatUIKitConstants.MessageTypes.scheduler]: this.schedulerBubble,\n [CometChatUIKitConstants.MessageCategory.interactive+'_'+CometChatUIKitConstants.MessageTypes.form]: this.formBubble,\n [CometChatUIKitConstants.MessageCategory.interactive+'_'+CometChatUIKitConstants.MessageTypes.card]: this.cardBubble,\n };\n if(this.messageTemplate.length <= 0) {\n this.createRequestBuilder()\n }\n this.setBubbleView();\n }\n getPollBubbleData(message: CometChat.CustomMessage, type?: string) {\n let data: any = message.getCustomData();\n if (type) {\n return data[type];\n } else {\n return message.getSender().getUid();\n }\n }\n getThreadCount(message: CometChat.BaseMessage) {\n var replyCount = message?.getReplyCount() || 0;\n var suffix = replyCount === 1 ? localize(\"REPLY\") : localize(\"REPLIES\");\n return `${replyCount} ${suffix}`;\n }\n showEnabledExtensions() {\n if (ChatConfigurator.names.includes(\"textmoderator\")) {\n this.enableDataMasking = true;\n }\n if (ChatConfigurator.names.includes(\"thumbnailgeneration\")) {\n this.enableThumbnailGeneration = true;\n }\n if (ChatConfigurator.names.includes(\"linkpreview\")) {\n this.enableLinkPreview = true;\n }\n if (ChatConfigurator.names.includes(\"polls\")) {\n this.enablePolls = true;\n }\n if (ChatConfigurator.names.includes(\"reactions\")) {\n this.enableReactions = true;\n }\n if (ChatConfigurator.names.includes(\"imagemoderation\")) {\n this.enableImageModeration = true;\n }\n if (ChatConfigurator.names.includes(\"stickers\")) {\n this.enableStickers = true;\n }\n if (ChatConfigurator.names.includes(\"collaborativewhiteboard\")) {\n this.enableWhiteboard = true;\n }\n if (ChatConfigurator.names.includes(\"collaborativedocument\")) {\n this.enableDocument = true;\n }\n if (ChatConfigurator.names.includes(\"calling\")) {\n this.enableCalling = true;\n }\n if (ChatConfigurator.names.includes(\"aiconversationstarter\")) {\n this.enableConversationStarter = true;\n }\n if (ChatConfigurator.names.includes(\"aiconversationsummary\")) {\n this.enableConversationSummary = true;\n }\n }\n public openConfirmDialog: boolean = false;\n public openFullscreenView: boolean = false;\n public imageurlToOpen: string = \"\";\n fullScreenViewerStyle: FullScreenViewerStyle = {\n closeIconTint: \"blue\",\n };\n openImageInFullScreen(message: any) {\n this.imageurlToOpen = message?.data?.attachments[0]?.url;\n this.openFullscreenView = true;\n this.ref.detectChanges();\n }\n closeImageInFullScreen() {\n this.imageurlToOpen = \"\";\n this.openFullscreenView = false;\n this.ref.detectChanges();\n }\n openWarningDialog(event: any) {\n this.closeImageModeration = event?.detail?.onConfirm;\n this.openConfirmDialog = true;\n this.ref.detectChanges();\n }\n onConfirmClick = () => {\n this.openConfirmDialog = false;\n if (this.closeImageModeration) {\n this.closeImageModeration();\n }\n this.ref.detectChanges();\n };\n onCancelClick() {\n this.openConfirmDialog = false;\n this.ref.detectChanges();\n }\n getTextMessage(message: CometChat.TextMessage): string {\n var text = this.enableDataMasking\n ? CometChatUIKitUtility.getExtensionData(message)\n : null;\n return text?.trim()?.length > 0 ? text : message.getText();\n }\n getLinkPreview(message: CometChat.TextMessage): any {\n try {\n if (message?.getMetadata() && this.enableLinkPreview) {\n var metadata: any = message.getMetadata();\n var injectedObject = metadata[LinkPreviewConstants.injected];\n if (injectedObject && injectedObject?.extensions) {\n var extensionsObject = injectedObject.extensions;\n if (\n extensionsObject &&\n CometChatUIKitUtility.checkHasOwnProperty(\n extensionsObject,\n LinkPreviewConstants.link_preview\n )\n ) {\n var linkPreviewObject =\n extensionsObject[LinkPreviewConstants.link_preview];\n if (\n linkPreviewObject &&\n CometChatUIKitUtility.checkHasOwnProperty(\n linkPreviewObject,\n LinkPreviewConstants.links\n ) &&\n linkPreviewObject[LinkPreviewConstants.links].length\n ) {\n return linkPreviewObject[LinkPreviewConstants.links][0];\n } else {\n return null;\n }\n } else {\n return null;\n }\n }\n } else {\n return null;\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n getImageThumbnail(msg: CometChat.MediaMessage): string {\n var message: any = msg as CometChat.MediaMessage;\n let imageURL = \"\";\n if (this.enableThumbnailGeneration) {\n try {\n var metadata: any = message.getMetadata();\n var injectedObject = metadata?.[\n ThumbnailGenerationConstants.injected\n ] as { extensions?: any };\n var extensionsObject = injectedObject?.extensions;\n var thumbnailGenerationObject =\n extensionsObject[ThumbnailGenerationConstants.thumbnail_generation];\n var imageToDownload = thumbnailGenerationObject?.url_medium;\n if (imageToDownload) {\n imageURL = imageToDownload;\n } else {\n imageURL = message?.data?.attachments\n ? message?.data?.attachments[0]?.url\n : \"\";\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n } else {\n imageURL = message?.data?.attachments\n ? message?.data?.attachments[0]?.url\n : \"\";\n }\n return imageURL;\n }\n getLinkPreviewDetails(key: string, message: CometChat.TextMessage): string {\n let linkPreviewObject: any = this.getLinkPreview(message);\n if (Object.keys(linkPreviewObject).length > 0) {\n return linkPreviewObject[key];\n } else {\n return \"\";\n }\n }\n ngOnInit(): void {\n this.isWebsocketReconnected = false;\n this.firstReload = true;\n this.setMessagesStyle();\n this.setAvatarStyle();\n this.setDateStyle();\n this.subscribeToEvents();\n this.addMessageEventListeners();\n this.setOngoingCallStyle();\n this.state = States.loading;\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user as CometChat.User;\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n this.dateSeparatorStyle.background =\n this.dateSeparatorStyle.background ||\n this.themeService.theme.palette.getAccent600();\n this.dividerStyle.background =\n this.themeService.theme.palette.getAccent100();\n \n this.labelStyle.textColor = this.messageListStyle.nameTextColor || this.labelStyle.textColor;\n this.labelStyle.textFont = this.messageListStyle.nameTextFont || this.labelStyle.textFont;\n this.loadingStyle.iconTint = this.messageListStyle.loadingIconTint || this.loadingStyle.iconTint;\n }\n setOngoingCallStyle = () => {\n let defaultStyle = new CallscreenStyle({\n maxHeight: \"100%\",\n maxWidth: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"#1c2226\",\n minHeight: \"400px\",\n minWidth: \"400px\",\n minimizeIconTint: this.themeService.theme.palette.getAccent900(),\n maximizeIconTint: this.themeService.theme.palette.getAccent900(),\n });\n this.ongoingCallStyle = { ...defaultStyle, ...this.ongoingCallStyle };\n };\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"28px\",\n height: \"28px\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n });\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };\n }\n setDateStyle() {\n let defaultStyle = new DateStyle({\n textFont: fontHelper(this.themeService.theme.typography.subtitle2),\n textColor: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n height: \"100%\",\n width: \"100%\",\n border: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n borderRadius: \"8px\",\n padding: \"6px 12px\",\n });\n this.dateSeparatorStyle = { ...defaultStyle, ...this.dateSeparatorStyle };\n }\n setMessagesStyle() {\n this.popoverStyle = {\n height: \"330px\",\n width: \"325px\",\n border: `none`,\n borderRadius: \"8px\",\n boxShadow: `${this.themeService.theme.palette.getAccent400()} 0px 0px 8px`\n }\n let defaultEmojiStyle = {\n height: \"330px\",\n width: \"325px\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n borderRadius: \"8px\",\n ...this.emojiKeyboardStyle\n }\n this.newMessageIndicatorIconUrl = this.newMessageIndicatorIconUrl || 'assets/new-message-icon.svg'; \n this.emojiKeyboardStyle = defaultEmojiStyle;\n this.unreadMessagesStyle = {\n display: \"flex\",\n justifyContent: \"center\",\n padding: \"8px\",\n gap:\"4px\",\n buttonIconTint: this.newMessageIndicatorStyle.iconTint ?? this.themeService.theme.palette.getAccent(\"dark\"),\n iconHeight: this.newMessageIndicatorStyle.iconHeight ?? \"12px\",\n iconWidth: this.newMessageIndicatorStyle.iconWidth ?? \"12px\",\n height: this.newMessageIndicatorStyle.height ?? \"100%\",\n width: this.newMessageIndicatorStyle.width ?? \"100%\", \n border: this.newMessageIndicatorStyle.border ?? \"none\",\n borderRadius: this.newMessageIndicatorStyle.borderRadius ?? \"12px\",\n background: this.newMessageIndicatorStyle.background ?? this.themeService.theme.palette.getPrimary(),\n buttonTextColor: this.newMessageIndicatorStyle.textColor ?? this.themeService.theme.palette.getAccent(\"dark\"),\n buttonTextFont: this.newMessageIndicatorStyle.textFont ?? fontHelper(this.themeService.theme.typography.text3),\n };\n this.smartReplyStyle = {\n replyTextFont: fontHelper(this.themeService.theme.typography.caption1),\n replyTextColor: this.themeService.theme.palette.getAccent(),\n replyBackground: this.themeService.theme.palette.getBackground(),\n boxShadow: `0px 0px 1px ${this.themeService.theme.palette.getAccent600()}`,\n closeIconTint: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n ...this.smartReplyStyle,\n };\n this.conversationStarterStyle = {\n replyTextFont: fontHelper(this.themeService.theme.typography.caption1),\n replyTextColor: this.themeService.theme.palette.getAccent(),\n replyBackground: this.themeService.theme.palette.getBackground(),\n boxShadow: `0px 0px 1px ${this.themeService.theme.palette.getAccent600()}`,\n closeIconTint: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n ...this.conversationStarterStyle,\n };\n\n this.conversationSummaryStyle = {\n ...this.conversationSummaryStyle,\n width: \"100%\",\n height: \"fit-content\",\n borderRadius: \"8px\",\n background: this.themeService.theme.palette.getBackground(),\n boxShadow: `0px 0px 1px ${this.themeService.theme.palette.getAccent600()}`,\n textFont: fontHelper(this.themeService.theme.typography.caption2),\n closeIconTint: this.themeService.theme.palette.getAccent600()!,\n textColor: this.themeService.theme.palette.getAccent()!,\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n border: \"1px solid #6851D6\",\n };\n\n this.fullScreenViewerStyle.closeIconTint =\n this.themeService.theme.palette.getPrimary();\n let defaultStyle: MessageListStyle = new MessageListStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `none`,\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n nameTextFont: fontHelper(this.themeService.theme.typography.caption2),\n nameTextColor: this.themeService.theme.palette.getAccent600(),\n threadReplyTextFont: fontHelper(this.themeService.theme.typography.text2),\n threadReplyIconTint: this.themeService.theme.palette.getAccent500(),\n threadReplyTextColor: this.themeService.theme.palette.getAccent(),\n threadReplyUnreadBackground: this.themeService.theme.palette.getPrimary(),\n threadReplyUnreadTextColor:\n this.themeService.theme.palette.getAccent900(),\n threadReplyUnreadTextFont: fontHelper(\n this.themeService.theme.typography.caption2\n ),\n TimestampTextFont: fontHelper(\n this.themeService.theme.typography.caption3\n ),\n });\n this.messageListStyle = { ...defaultStyle, ...this.messageListStyle };\n this.linkPreviewStyle = new LinkPreviewStyle({\n titleColor: this.themeService.theme.palette.getAccent(),\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n descriptionColor: this.themeService.theme.palette.getAccent600(),\n descriptionFont: fontHelper(this.themeService.theme.typography.subtitle2),\n background: \"transparent\",\n height: \"100%\",\n width: \"100%\",\n });\n this.documentBubbleStyle = {\n titleFont: fontHelper(this.themeService.theme.typography.text2),\n titleColor: this.themeService.theme.palette.getAccent(),\n subtitleFont: fontHelper(this.themeService.theme.typography.subtitle2),\n subtitleColor: this.themeService.theme.palette.getAccent600(),\n iconTint: this.themeService.theme.palette.getAccent700(),\n buttonTextFont: fontHelper(this.themeService.theme.typography.text2),\n buttonTextColor: this.themeService.theme.palette.getPrimary(),\n buttonBackground: \"transparent\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n };\n this.pollBubbleStyle = {\n borderRadius: \"8px\",\n background: \"transparent\",\n votePercentTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n votePercentTextColor: this.themeService.theme.palette.getAccent600(),\n pollQuestionTextFont: fontHelper(\n this.themeService.theme.typography.subtitle1\n ),\n pollQuestionTextColor: this.themeService.theme.palette.getAccent(),\n pollOptionTextFont: fontHelper(this.themeService.theme.typography.text2),\n pollOptionTextColor: this.themeService.theme.palette.getAccent(),\n pollOptionBackground: this.themeService.theme.palette.getAccent900(),\n optionsIconTint: this.themeService.theme.palette.getAccent600(),\n totalVoteCountTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n totalVoteCountTextColor: this.themeService.theme.palette.getAccent600(),\n selectedPollOptionBackground:\n this.themeService.theme.palette.getAccent200(),\n userSelectedOptionBackground:\n this.themeService.theme.palette.getPrimary(),\n pollOptionBorder: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n pollOptionBorderRadius: \"8px\",\n };\n this.imageModerationStyle = {\n filterColor: this.themeService.theme.palette.getPrimary(),\n height: \"100%\",\n width: \"100%\",\n border: \"none\",\n warningTextColor: this.themeService.theme.palette.getAccent(\"dark\"),\n warningTextFont: fontHelper(this.themeService.theme.typography.title2),\n borderRadius: \"8px\",\n };\n this.confirmDialogStyle = {\n confirmButtonBackground: this.themeService.theme.palette.getError(),\n cancelButtonBackground: this.themeService.theme.palette.getSecondary(),\n confirmButtonTextColor:\n this.themeService.theme.palette.getAccent900(\"light\"),\n confirmButtonTextFont: fontHelper(\n this.themeService.theme.typography.text2\n ),\n cancelButtonTextColor:\n this.themeService.theme.palette.getAccent900(\"dark\"),\n cancelButtonTextFont: fontHelper(\n this.themeService.theme.typography.text2\n ),\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n messageTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n messageTextColor: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n height: \"100%\",\n width: \"100%\",\n border: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n borderRadius: \"8px\",\n };\n }\n getReceiptStyle(message: CometChat.BaseMessage) {\n const isTextMessage =\n message?.getType() === CometChatUIKitConstants.MessageTypes.text &&\n this.alignment != MessageListAlignment.left;\n this.receiptStyle = new ReceiptStyle({\n waitIconTint: this.themeService.theme.palette.getAccent700(),\n sentIconTint: this.themeService.theme.palette.getAccent600(),\n deliveredIconTint: this.themeService.theme.palette.getAccent600(),\n readIconTint: isTextMessage\n ? this.themeService.theme.palette.getBackground()\n : this.themeService.theme.palette.getPrimary(),\n errorIconTint: this.themeService.theme.palette.getError(),\n height: \"11px\",\n width: \"12px\",\n background: \"transparent\"\n });\n return { ...this.receiptStyle };\n }\n createRequestBuilder() {\n if (!this.templates || this.templates?.length == 0) {\n this.messageTemplate =\n ChatConfigurator.getDataSource().getAllMessageTemplates();\n this.categories =\n ChatConfigurator.getDataSource().getAllMessageCategories();\n this.types = ChatConfigurator.getDataSource().getAllMessageTypes();\n } else {\n this.messageTemplate = this.templates;\n }\n this.state = States.loading;\n this.requestBuilder = null;\n if (this.user || this.group) {\n if (this.user) {\n this.requestBuilder = this.messagesRequestBuilder\n ? CometChatUIKitUtility.clone(this.messagesRequestBuilder)\n : new CometChat.MessagesRequestBuilder()\n .setLimit(this.limit)\n .setTypes(this.types)\n .setCategories(this.categories)\n .hideReplies(true);\n this.requestBuilder = this.requestBuilder.setUID(this.user.getUid()).build();\n } else {\n this.requestBuilder = this.messagesRequestBuilder\n ? CometChatUIKitUtility.clone(this.messagesRequestBuilder)\n : new CometChat.MessagesRequestBuilder()\n .setLimit(this.limit)\n .setTypes(this.types)\n .hideReplies(true)\n .setCategories(this.categories)\n this.requestBuilder = this.requestBuilder.setGUID(this.group?.getGuid()).build();\n }\n this.computeUnreadCount();\n this.fetchPreviousMessages();\n }\n }\n\n computeUnreadCount() {\n if (this.user || this.group) {\n if (this.user) {\n CometChat.getUnreadMessageCountForUser(this.user?.getUid()).then(\n (res) => {\n const dynamicKey = this.user?.getUid();\n\n this.getUnreadCount = res[dynamicKey as keyof typeof res];\n },\n (error) => { }\n );\n } else {\n CometChat.getUnreadMessageCountForGroup(this.group?.getGuid()).then(\n (res) => {\n const dynamicKey = this.group?.getGuid();\n\n this.getUnreadCount = res[dynamicKey as keyof typeof res];\n },\n (error) => { }\n );\n }\n }\n }\n getActionMessage(message:CometChat.BaseMessage){\n const msg = new MessageUtils().getActionMessage(message as CometChat.Action);\n return msg ?? (message as CometChat.Action).getMessage();\n }\n /**\n * Listener To Receive Messages in Real Time\n * @param\n */\n fetchPreviousMessages = () => {\n if (this.reinitialized) {\n if (this.messagesRequestBuilder) {\n this.requestBuilder = CometChatUIKitUtility.clone(this.messagesRequestBuilder);\n } else {\n this.requestBuilder = new CometChat.MessagesRequestBuilder()\n .setLimit(this.limit)\n .setTypes(this.types)\n .setMessageId(this.messagesList[0].getId())\n .setCategories(this.categories)\n .hideReplies(true)\n if (this.user) {\n this.requestBuilder = this.requestBuilder.setUID(this.user?.getUid()).build();\n } else if (this.group) {\n this.requestBuilder = this.requestBuilder.setGUID(this.group?.getGuid()).build();\n }\n }\n }\n this.requestBuilder\n .fetchPrevious()\n .then(\n (messageList: CometChat.BaseMessage[]) => {\n if (messageList && messageList.length > 0) {\n messageList = messageList.map(\n (message: CometChat.BaseMessage, i) => {\n if (\n message.getCategory() ===\n CometChatUIKitConstants.MessageCategory.interactive\n ) {\n return InteractiveMessageUtils.convertInteractiveMessage(\n message as CometChat.InteractiveMessage\n );\n } else {\n return message;\n }\n }\n );\n }\n this.state = States.loading;\n // No Messages Found\n if (messageList.length === 0 && this.messagesList.length === 0) {\n this.state = States.empty;\n if (!this.parentMessageId && this.enableConversationStarter) {\n this.fetchConversationStarter();\n }\n this.ref.detectChanges();\n return;\n }\n if (messageList && messageList.length > 0) {\n if (\n this.getUnreadCount >= this.unreadMessageThreshold &&\n this.enableConversationSummary\n ) {\n this.fetchConversationSummary();\n }\n\n this.showConversationStarter = false;\n this.conversationStarterReplies = [];\n if (this.firstReload) {\n this.lastMessageId = Number(\n messageList[messageList.length - 1].getId()\n );\n }\n let lastMessage = messageList[messageList.length - 1];\n let isSentByMe: boolean = lastMessage?.getSender()?.getUid() ==\n this.loggedInUser?.getUid()\n if (\n !isSentByMe &&\n !lastMessage.getDeliveredAt()\n ) {\n //mark the message as delivered\n if (!this.disableReceipt) {\n CometChat.markAsDelivered(lastMessage).then(\n () => {\n if(lastMessage.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user){\n let messageKey = this.messagesList.findIndex(\n (m: CometChat.BaseMessage) =>\n m.getId() === lastMessage?.getId()\n );\n if (messageKey > -1) {\n this.markAllMessagAsDelivered(messageKey);\n }\n }\n }\n );\n }\n }\n if (!lastMessage?.getReadAt() && !isSentByMe) {\n if (!this.disableReceipt) {\n CometChat.markAsRead(lastMessage)\n .then(() => {\n if(lastMessage.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user){\n let messageKey = this.messagesList.findIndex(\n (m: CometChat.BaseMessage) =>\n m.getId() === lastMessage?.getId()\n );\n if (messageKey > -1) {\n this.markAllMessagAsRead(messageKey);\n }\n }\n \n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n } else {\n this.UnreadCount = [];\n this.ref.detectChanges();\n }\n }\n this.state = States.loaded;\n this.ref.detectChanges();\n //if the sender of the message is not the loggedin user, mark it as read.\n let prevScrollHeight = this.listScroll?.nativeElement.scrollHeight;\n setTimeout(() => {\n this.listScroll.nativeElement.scrollTop =\n this.listScroll?.nativeElement.scrollHeight - prevScrollHeight;\n }, 100);\n this.showSmartReply = false;\n this.smartReplyMessage = null;\n this.prependMessages(messageList);\n } else {\n this.state = States.loaded;\n }\n if (this.firstReload) {\n this.attachConnectionListener();\n this.firstReload = false;\n }\n this.ref.detectChanges();\n },\n (error: any) => {\n this.state = States.error;\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n this.ref.detectChanges();\n }\n )\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n if (this.messagesList?.length <= 0) {\n this.state = States.error;\n this.ref.detectChanges();\n }\n });\n };\n fetchActionMessages() {\n let requestBuilder: CometChat.MessagesRequestBuilder = new CometChat.MessagesRequestBuilder()\n .setType(CometChatUIKitConstants.MessageCategory.message)\n .setCategory(CometChatUIKitConstants.MessageCategory.action)\n .setMessageId(this.lastMessageId)\n .setLimit(this.limit)\n if (this.user) {\n requestBuilder.setUID(this.user?.getUid());\n } else if (this.group) {\n requestBuilder.setGUID(this.group?.getGuid());\n }\n requestBuilder.build()\n .fetchNext()\n .then((messages) => {\n if (messages && messages.length > 0) {\n messages.forEach((message: CometChat.BaseMessage) => {\n if (\n (message as CometChat.Action).getActionOn() instanceof\n CometChat.BaseMessage\n ) {\n let messageKey = this.messagesList.findIndex(\n (m) =>\n m.getId() ===\n (\n (\n message as CometChat.Action\n ).getActionOn() as CometChat.BaseMessage\n ).getId()\n );\n if (messageKey >= 0) {\n this.messagesList[messageKey] = (\n message as CometChat.Action\n ).getActionOn() as CometChat.BaseMessage;\n }\n }\n });\n this.messagesList = [...this.messagesList];\n this.ref.detectChanges();\n }\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n if (this.messagesList?.length <= 0) {\n this.state = States.error;\n this.ref.detectChanges();\n }\n });\n }\n fetchNextMessage = () => {\n let index = this.messagesList.length - 1;\n let messageId: number;\n if (\n this.reinitialized ||\n (this.lastMessageId > 0 && this.isWebsocketReconnected)\n ) {\n if (this.isWebsocketReconnected) {\n this.fetchActionMessages();\n messageId = this.lastMessageId;\n } else {\n messageId = this.messagesList[index].getId();\n }\n if (this.messagesRequestBuilder) {\n this.requestBuilder = this.user\n ? this.messagesRequestBuilder\n .setUID(this.user?.getUid())\n .setMessageId(messageId)\n .build()\n : this.messagesRequestBuilder\n .setGUID(this.group?.getGuid())\n .setMessageId(messageId)\n .build();\n } else {\n this.requestBuilder = new CometChat.MessagesRequestBuilder()\n .setLimit(this.limit)\n .setTypes(this.types)\n .setMessageId(messageId)\n .setCategories(this.categories)\n .hideReplies(true)\n if (this.user) {\n this.requestBuilder.setUID(this.user?.getUid()).build();\n } else if (this.group) {\n this.requestBuilder.setGUID(this.group?.getGuid()).build();\n }\n }\n this.requestBuilder\n .fetchNext()\n .then(\n (messageList: CometChat.BaseMessage[]) => {\n if (messageList && messageList.length > 0) {\n messageList = messageList.map(\n (message: CometChat.BaseMessage, i) => {\n if (\n message.getCategory() ===\n CometChatUIKitConstants.MessageCategory.interactive\n ) {\n return InteractiveMessageUtils.convertInteractiveMessage(\n message as CometChat.InteractiveMessage\n );\n } else {\n return message;\n }\n }\n );\n }\n this.state = States.loading;\n // No Messages Found\n if (messageList.length === 0 && this.messagesList.length === 0) {\n this.state = States.empty;\n this.ref.detectChanges();\n return;\n }\n if (messageList && messageList.length) {\n if (this.isOnBottom) {\n let lastMessage = messageList[messageList.length - 1];\n this.lastMessageId = Number(\n messageList[messageList.length - 1].getId()\n );\n this.firstReload = false;\n if (\n !lastMessage?.getReadAt() &&\n lastMessage?.getSender().getUid() !=\n this.loggedInUser?.getUid()\n ) {\n if (!this.disableReceipt) {\n CometChat.markAsRead(lastMessage);\n } else {\n this.UnreadCount = [];\n this.ref.detectChanges();\n }\n }\n if (\n !lastMessage?.getDeliveredAt() &&\n lastMessage?.getSender().getUid() !=\n this.loggedInUser?.getUid()\n ) {\n this.markMessageAsDelivered(lastMessage);\n this.markAllMessagAsDelivered(messageList.length - 1);\n }\n this.state = States.loaded;\n this.scrollToBottom();\n\n this.appendMessages(messageList);\n this.isWebsocketReconnected = false;\n this.ref.detectChanges();\n } else {\n let lastMessage = messageList[messageList.length - 1];\n this.lastMessageId = Number(\n messageList[messageList.length - 1].getId()\n );\n this.firstReload = false;\n if (this.scrollToBottomOnNewMessages) {\n setTimeout(() => {\n this.scrollToBottom();\n }, 100);\n } else {\n let countText = localize(\"NEW_MESSAGES\");\n if (\n this.newMessageIndicatorText &&\n this.newMessageIndicatorText != \"\"\n ) {\n countText = this.newMessageIndicatorText;\n } else {\n countText =\n this.UnreadCount.length > 0\n ? localize(\"NEW_MESSAGES\")\n : localize(\"NEW_MESSAGE\");\n }\n this.UnreadCount.push(...messageList);\n this.newMessageCount = this.UnreadCount.length + \" \" + countText;\n this.ref.detectChanges();\n }\n if (\n !lastMessage?.getDeliveredAt() &&\n lastMessage?.getSender().getUid() !=\n this.loggedInUser?.getUid()\n ) {\n this.markMessageAsDelivered(lastMessage);\n this.markAllMessagAsDelivered(messageList.length - 1);\n }\n this.state = States.loaded;\n this.appendMessages(messageList);\n this.isWebsocketReconnected = false;\n this.ref.detectChanges();\n }\n }\n },\n (error: any) => {\n this.state = States.error;\n console.log(error);\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n this.ref.detectChanges();\n }\n )\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n if (this.messagesList?.length <= 0) {\n this.state = States.error;\n this.ref.detectChanges();\n }\n });\n }\n };\n appendMessages = (messages: CometChat.BaseMessage[]) => {\n if(!this.isPartOfCurrentChatForSDKEvent(messages[0])){\n return;\n }\n this.messagesList.push(...messages);\n this.messageCount = this.messagesList.length;\n if (this.messageCount > this.thresholdValue) {\n this.keepRecentMessages = true;\n this.reInitializeMessageBuilder();\n }\n this.state = States.loaded;\n this.ref.detectChanges();\n };\n attachConnectionListener() {\n CometChat.addConnectionListener(\n this.connectionListenerId,\n new CometChat.ConnectionListener({\n onConnected: () => {\n this.isWebsocketReconnected = true;\n this.fetchNextMessage();\n console.log(\"ConnectionListener => connected\");\n },\n onDisconnected: () => {\n this.isWebsocketReconnected = false;\n console.log(\"ConnectionListener => On Disconnected\");\n },\n })\n );\n }\n addMessageEventListeners() {\n try {\n CometChat.addGroupListener(\n this.groupListenerId,\n new CometChat.GroupListener({\n onGroupMemberScopeChanged: (\n message: null | undefined,\n changedUser: CometChat.User,\n newScope: CometChat.GroupMemberScope,\n oldScope: CometChat.GroupMemberScope,\n changedGroup: null | undefined\n ) => {\n this.messageUpdate(\n CometChatUIKitConstants.groupMemberAction.SCOPE_CHANGE,\n message,\n changedGroup,\n { user: changedUser, scope: newScope }\n );\n },\n onGroupMemberKicked: (\n message: null | undefined,\n kickedUser: CometChat.User,\n kickedBy: CometChat.User,\n kickedFrom: null | undefined\n ) => {\n this.messageUpdate(\n CometChatUIKitConstants.groupMemberAction.KICKED,\n message,\n kickedFrom,\n {\n user: kickedUser,\n hasJoined: false,\n }\n );\n },\n onGroupMemberBanned: (\n message: null | undefined,\n bannedUser: CometChat.User,\n bannedBy: CometChat.User,\n bannedFrom: null | undefined\n ) => {\n this.messageUpdate(\n CometChatUIKitConstants.groupMemberAction.BANNED,\n message,\n bannedFrom,\n {\n user: bannedUser,\n }\n );\n },\n onGroupMemberUnbanned: (\n message: null | undefined,\n unbannedUser: CometChat.User,\n unbannedBy: CometChat.User,\n unbannedFrom: null | undefined\n ) => {\n this.messageUpdate(\n CometChatUIKitConstants.groupMemberAction.UNBANNED,\n message,\n unbannedFrom,\n { user: unbannedUser }\n );\n },\n onMemberAddedToGroup: (\n message: null | undefined,\n userAdded: CometChat.User,\n userAddedBy: CometChat.User,\n userAddedIn: null | undefined\n ) => {\n this.messageUpdate(\n CometChatUIKitConstants.groupMemberAction.ADDED,\n message,\n userAddedIn,\n {\n user: userAdded,\n hasJoined: true,\n }\n );\n },\n onGroupMemberLeft: (\n message: CometChat.BaseMessage,\n leavingUser: CometChat.GroupMember,\n group: CometChat.Group\n ) => {\n this.messageUpdate(\n CometChatUIKitConstants.groupMemberAction.LEFT,\n message,\n group,\n {\n user: leavingUser,\n }\n );\n },\n onGroupMemberJoined: (\n message: CometChat.BaseMessage,\n joinedUser: CometChat.GroupMember,\n joinedGroup: CometChat.Group\n ) => {\n this.messageUpdate(\n CometChatUIKitConstants.groupMemberAction.JOINED,\n message,\n joinedGroup,\n {\n user: joinedUser,\n }\n );\n },\n })\n );\n if (this.enableCalling) {\n CometChat.addCallListener(\n this.callListenerId,\n new CometChat.CallListener({\n onIncomingCallReceived: (call: CometChat.Call) => {\n if (this.isPartOfCurrentChatForSDKEvent(call)) {\n this.addMessage(call);\n }\n },\n onIncomingCallCancelled: (call: CometChat.Call) => {\n if (this.isPartOfCurrentChatForSDKEvent(call)) {\n this.addMessage(call);\n }\n },\n onOutgoingCallRejected: (call: CometChat.Call) => {\n if (this.isPartOfCurrentChatForSDKEvent(call)) {\n this.addMessage(call);\n }\n },\n onOutgoingCallAccepted: (call: CometChat.Call) => {\n if (this.isPartOfCurrentChatForSDKEvent(call)) {\n this.addMessage(call);\n }\n },\n onCallEndedMessageReceived: (call: CometChat.Call) => {\n if (this.isPartOfCurrentChatForSDKEvent(call)) {\n this.addMessage(call);\n }\n },\n })\n );\n }\n if (!this.disableReactions) {\n this.onMessageReactionAdded =\n CometChatMessageEvents.onMessageReactionAdded.subscribe(\n (reactionReceipt) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.MESSAGE_REACTION_ADDED,\n reactionReceipt\n );\n }\n );\n this.onMessageReactionRemoved =\n CometChatMessageEvents.onMessageReactionRemoved.subscribe(\n (reactionReceipt) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.MESSAGE_REACTION_REMOVED,\n reactionReceipt\n );\n }\n );\n }\n this.onTextMessageReceived =\n CometChatMessageEvents.onTextMessageReceived.subscribe(\n (message: CometChat.TextMessage) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.TEXT_MESSAGE_RECEIVED,\n message\n );\n }\n );\n this.onMediaMessageReceived =\n CometChatMessageEvents.onMediaMessageReceived.subscribe(\n (message: CometChat.MediaMessage) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.MEDIA_MESSAGE_RECEIVED,\n message\n );\n }\n );\n this.onCustomMessageReceived =\n CometChatMessageEvents.onCustomMessageReceived.subscribe(\n (message: CometChat.CustomMessage) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.CUSTOM_MESSAGE_RECEIVED,\n message\n );\n }\n );\n this.onFormMessageReceived =\n CometChatMessageEvents.onFormMessageReceived.subscribe(\n (message: FormMessage) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED,\n message\n );\n }\n );\n this.onSchedulerMessageReceived =\n CometChatMessageEvents.onSchedulerMessageReceived.subscribe(\n (message: SchedulerMessage) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED,\n message\n );\n }\n );\n this.onCardMessageReceived =\n CometChatMessageEvents.onCardMessageReceived.subscribe(\n (message: CardMessage) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED,\n message\n );\n }\n );\n this.onCustomInteractiveMessageReceived =\n CometChatMessageEvents.onCustomInteractiveMessageReceived.subscribe(\n (message: CustomInteractiveMessage) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED,\n message\n );\n }\n );\n this.onMessagesDelivered =\n CometChatMessageEvents.onMessagesDelivered.subscribe(\n (messageReceipt: CometChat.MessageReceipt) => {\n if (messageReceipt.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {\n this.messageUpdate(\n CometChatUIKitConstants.messages.MESSAGE_DELIVERED,\n messageReceipt\n );\n }\n\n }\n );\n this.onMessagesRead = CometChatMessageEvents.onMessagesRead.subscribe(\n (messageReceipt: CometChat.MessageReceipt) => {\n if (messageReceipt.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {\n this.messageUpdate(\n CometChatUIKitConstants.messages.MESSAGE_READ,\n messageReceipt\n );\n }\n }\n );\n this.onMessagesReadByAll = CometChatMessageEvents.onMessagesReadByAll.subscribe(\n (messageReceipt: CometChat.MessageReceipt) => {\n if (messageReceipt.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.group) {\n this.messageReadAndDelivered(messageReceipt, true);\n this.messageUpdate(\n CometChatUIKitConstants.messages.MESSAGE_READ,\n messageReceipt\n );\n }\n }\n );\n this.onMessagesDeliveredToAll = CometChatMessageEvents.onMessagesDeliveredToAll.subscribe(\n (messageReceipt: CometChat.MessageReceipt) => {\n if (messageReceipt.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.group) {\n this.messageReadAndDelivered(messageReceipt, true);\n this.messageUpdate(\n CometChatUIKitConstants.messages.MESSAGE_DELIVERED,\n messageReceipt\n );\n }\n\n }\n );\n this.onMessageDeleted = CometChatMessageEvents.onMessageDeleted.subscribe(\n (deletedMessage: CometChat.BaseMessage) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.MESSAGE_DELETED,\n deletedMessage\n );\n }\n );\n this.onMessageEdited = CometChatMessageEvents.onMessageEdited.subscribe(\n (editedMessage: CometChat.BaseMessage) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.MESSAGE_EDITED,\n editedMessage\n );\n }\n );\n this.onTransientMessageReceived =\n CometChatMessageEvents.onTransientMessageReceived.subscribe(\n (transientMessage: CometChat.TransientMessage) => {\n let liveReaction: any = transientMessage.getData();\n if (\n transientMessage.getReceiverType() ==\n CometChatUIKitConstants.MessageReceiverType.user &&\n this.user &&\n transientMessage?.getSender().getUid() == this.user.getUid() &&\n transientMessage.getReceiverId() == this.loggedInUser?.getUid() &&\n liveReaction[\"type\"] == \"live_reaction\"\n ) {\n CometChatMessageEvents.ccLiveReaction.next(\n liveReaction[\"reaction\"]\n );\n return;\n } else if (\n transientMessage.getReceiverType() ==\n CometChatUIKitConstants.MessageReceiverType.group &&\n this.group &&\n transientMessage.getReceiverId() == this.group.getGuid() &&\n transientMessage?.getSender().getUid() !=\n this.loggedInUser?.getUid() &&\n liveReaction[\"type\"] == \"live_reaction\"\n ) {\n CometChatMessageEvents.ccLiveReaction.next(\n liveReaction[\"reaction\"]\n );\n return;\n }\n }\n );\n this.onInteractionGoalCompleted =\n CometChatMessageEvents.onInteractionGoalCompleted.subscribe(\n (receipt: CometChat.InteractionReceipt) => {\n this.messageUpdate(\n CometChatUIKitConstants.messages.INTERACTION_GOAL_COMPLETED,\n receipt\n );\n }\n );\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n /**\n *\n * @param\n */\n /**\n * Updates messageList on basis of user activity or group activity or calling activity\n * @param {any=null} key\n * @param {CometChat.MessageReceipt | CometChat.BaseMessage} message\n * @param {CometChat.Group | null=null} group\n * @param {any=null} options\n */\n messageUpdate(\n key: string | null = null,\n message: CometChat.MessageReceipt | CometChat.BaseMessage | any = null,\n group: CometChat.Group | null = null,\n options: any = null\n ) {\n try {\n this.showConversationStarter = false;\n this.showConversationSummary = false;\n this.conversationStarterReplies = [];\n this.conversationSummary = [];\n this.ref.detectChanges();\n switch (key) {\n case CometChatUIKitConstants.messages.TEXT_MESSAGE_RECEIVED:\n case CometChatUIKitConstants.messages.MEDIA_MESSAGE_RECEIVED:\n this.markMessageAsDelivered(message);\n if (this.isPartOfCurrentChatForSDKEvent(message)) {\n this.messageReceived(message);\n }\n if (this.isThreadOfCurrentChatForSDKEvent(message)) {\n this.updateReplyCount(message)\n }\n break;\n \n case CometChatUIKitConstants.messages.MESSAGE_DELIVERED:\n case CometChatUIKitConstants.messages.MESSAGE_READ:\n this.messageReadAndDelivered(message);\n break;\n \n case CometChatUIKitConstants.messages.MESSAGE_DELETED:\n case CometChatUIKitConstants.messages.MESSAGE_EDITED: {\n this.messageEdited(message);\n break;\n }\n case CometChatUIKitConstants.groupMemberAction.SCOPE_CHANGE:\n case CometChatUIKitConstants.groupMemberAction.JOINED:\n case CometChatUIKitConstants.groupMemberAction.LEFT:\n case CometChatUIKitConstants.groupMemberAction.ADDED:\n case CometChatUIKitConstants.groupMemberAction.KICKED:\n case CometChatUIKitConstants.groupMemberAction.BANNED:\n case CometChatUIKitConstants.groupMemberAction.UNBANNED: {\n if (this.isPartOfCurrentChatForSDKEvent(message)) {\n this.addMessage(message);\n }\n break;\n }\n case CometChatUIKitConstants.messages.CUSTOM_MESSAGE_RECEIVED:\n case CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED:\n if (this.isPartOfCurrentChatForSDKEvent(message)) {\n this.customMessageReceived(message);\n }\n if (this.isThreadOfCurrentChatForSDKEvent(message)) {\n this.updateReplyCount(message)\n }\n break;\n case CometChatUIKitConstants.messages.INTERACTION_GOAL_COMPLETED:\n if (this.isPartOfCurrentChatForSDKEvent(message)) {\n this.updateInteractiveMessage(message);\n }\n\n break;\n case CometChatUIKitConstants.messages.MESSAGE_REACTION_ADDED:\n this.onReactionUpdated(message, true);\n break;\n case CometChatUIKitConstants.messages.MESSAGE_REACTION_REMOVED:\n this.onReactionUpdated(message, false);\n break;\n default:\n return;\n }\n this.ref.detectChanges();\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n /**\n * Updates a message's reactions based on a new reaction.\n *\n * @param {CometChat.ReactionEvent} message - The new message reaction.\n * @param {boolean} isAdded - True if the reaction was added, false if it was removed.\n * @returns {boolean} Returns false if the message was not found, true otherwise.\n */\n\n onReactionUpdated(message: CometChat.ReactionEvent, isAdded: boolean) {\n const messageId = message.getReaction()?.getMessageId();\n const messageObject = this.getMessageById(messageId);\n\n if (!messageObject) {\n return false;\n }\n\n let action: CometChat.REACTION_ACTION;\n if (isAdded) {\n action = CometChat.REACTION_ACTION.REACTION_ADDED;\n } else {\n action = CometChat.REACTION_ACTION.REACTION_REMOVED;\n }\n let modifiedMessage =\n CometChat.CometChatHelper.updateMessageWithReactionInfo(\n messageObject,\n message.getReaction(),\n action\n );\n if (modifiedMessage instanceof CometChat.BaseMessage) {\n this.updateMessage(modifiedMessage);\n }\n return true;\n }\n /**\n * translate message then call update message\n * @param {CometChat.BaseMessage} message\n */\n // translateMessage(message: CometChat.BaseMessage) {\n // }\n /**\n * @param {CometChat.BaseMessage} message\n */\n markMessageAsDelivered = (message: CometChat.BaseMessage) => {\n const shouldMarkDelivered = ((message.getReceiver() instanceof CometChat.Group) && this.group.getGuid() === (message.getReceiver() as CometChat.Group).getGuid())\n || (message?.getSender().getUid() === this.user?.getUid());\n if (\n !this.disableReceipt && shouldMarkDelivered &&\n message?.getSender().getUid() !== this.loggedInUser?.getUid() &&\n message.hasOwnProperty(\"deliveredAt\") === false\n ) {\n CometChat.markAsDelivered(message);\n }\n };\n /**\n * When Message is Received\n * @param message\n */\n /**\n * @param {CometChat.BaseMessage} message\n */\n messageReceived(message: CometChat.BaseMessage) { \n \n try {\n if (\n message.getReceiverId() === this.group?.getGuid() ||\n (message?.getSender().getUid() === this.user?.getUid() &&\n message.getReceiverId() === this.loggedInUser?.getUid())\n ) {\n if (\n (!message?.getReadAt() &&\n !message?.getParentMessageId() &&\n this.isOnBottom) ||\n (!message?.getReadAt() &&\n message.getParentMessageId() &&\n this.parentMessageId &&\n this.isOnBottom)\n ) {\n if (!this.disableReceipt) {\n CometChat.markAsRead(message).then(() => {\n CometChatMessageEvents.ccMessageRead.next(message);\n });\n } else {\n this.UnreadCount = [];\n this.ref.detectChanges();\n }\n CometChatMessageEvents.ccMessageRead.next(message);\n }\n this.messageReceivedHandler(message);\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n this.ref.detectChanges();\n }\n /**\n * Updating the reply count of Thread Parent Message\n * @param {CometChat.BaseMessage} messages\n */\n updateReplyCount(messages: CometChat.BaseMessage) {\n try {\n var receivedMessage = messages;\n let messageList: CometChat.BaseMessage[] = [...this.messagesList];\n let messageKey = messageList.findIndex(\n (m) => m.getId() === receivedMessage.getParentMessageId()\n );\n if (messageKey > -1) {\n var messageObj: CometChat.BaseMessage = messageList[messageKey];\n let replyCount = messageObj.getReplyCount()\n ? messageObj.getReplyCount()\n : 0;\n replyCount = replyCount + 1;\n messageObj.setReplyCount(replyCount);\n messageList.splice(messageKey, 1, messageObj);\n this.messagesList = [...messageList];\n this.ref.detectChanges();\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n /**\n * @param {CometChat.BaseMessage} message\n * @param {string} type\n */\n messageReceivedHandler = (message: CometChat.BaseMessage) => {\n ++this.messageCount;\n if (message.getParentMessageId()) {\n // this.updateReplyCount(message);\n this.updateUnreadReplyCount(message);\n this.addMessage(message);\n } else {\n if (this.messageCount > this.thresholdValue) {\n this.keepRecentMessages = true;\n this.reInitializeMessageBuilder();\n }\n this.addMessage(message);\n if (!this.isOnBottom) {\n if (this.scrollToBottomOnNewMessages) {\n setTimeout(() => {\n this.scrollToBottom();\n }, 100);\n } else {\n let countText = localize(\"NEW_MESSAGES\");\n if (\n this.newMessageIndicatorText &&\n this.newMessageIndicatorText != \"\"\n ) {\n countText = this.newMessageIndicatorText;\n } else {\n countText =\n this.UnreadCount.length > 0\n ? localize(\"NEW_MESSAGES\")\n : localize(\"NEW_MESSAGE\");\n }\n this.UnreadCount.push(message);\n this.newMessageCount = this.UnreadCount.length + \" \" + countText;\n this.ref.detectChanges();\n }\n }\n }\n if(!this.disableSoundForMessages){\n this.playAudio();\n }\n //handling dom lag - increment count only for main message list\n if (\n message.hasOwnProperty(\"parentMessageId\") === false &&\n this.parentMessageId\n ) {\n ++this.messageCount;\n this.ref.detectChanges();\n } else if (\n message.hasOwnProperty(\"parentMessageId\") === true &&\n this.parentMessageId\n ) {\n if (\n message.getParentMessageId() === this.parentMessageId &&\n this.isOnBottom\n ) {\n if (!this.disableReceipt) {\n CometChat.markAsRead(message).then(() => {\n CometChatMessageEvents.ccMessageRead.next(message);\n });\n } else {\n this.UnreadCount = [];\n this.ref.detectChanges();\n }\n this.ref.detectChanges();\n }\n } else {\n }\n };\n playAudio() {\n if (!this.disableSoundForMessages) {\n if (this.customSoundForMessages) {\n CometChatSoundManager.play(\n CometChatSoundManager.Sound.incomingMessage,\n this.customSoundForMessages\n );\n } else {\n CometChatSoundManager.play(CometChatSoundManager.Sound.incomingMessage);\n }\n }\n }\n getCallBuilder = (): any => {\n const callSettings: any = new CometChatUIKitCalls.CallSettingsBuilder()\n .enableDefaultLayout(true)\n .setIsAudioOnlyCall(false)\n .setCallListener(\n new CometChatUIKitCalls.OngoingCallListener({\n onCallEndButtonPressed: () => {\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, null);\n CometChatCallEvents.ccCallEnded.next({} as CometChat.Call);\n },\n onError: (error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n },\n })\n )\n .build();\n return callSettings;\n };\n reInitializeMessageList() {\n this.reinitialized = true;\n this.groupListenerId = \"group_\" + new Date().getTime();\n this.callListenerId = \"call_\" + new Date().getTime();\n this.addMessageEventListeners();\n if (this.messagesRequestBuilder) {\n if (this.keepRecentMessages) {\n this.messagesList.splice(1, this.messagesList.length - 30);\n } else {\n this.messagesList.splice(30);\n }\n this.requestBuilder = this.user\n ? this.messagesRequestBuilder.setUID(this.user.getUid()).build()\n : this.messagesRequestBuilder.setGUID(this.group.getGuid()).build();\n } else {\n if (this.keepRecentMessages) {\n this.messagesList.splice(1, this.messagesList.length - 30);\n this.scrollToBottom();\n } else {\n this.messagesList.splice(30);\n }\n }\n this.ref.detectChanges();\n }\n reInitializeMessageBuilder = () => {\n if (!this.parentMessageId) {\n this.messageCount = 0;\n }\n this.requestBuilder = null;\n CometChat.removeGroupListener(this.groupListenerId);\n CometChat.removeCallListener(this.callListenerId);\n this.reInitializeMessageList();\n };\n getMessageReceipt(message: CometChat.BaseMessage) {\n let receipt = MessageReceiptUtils.getReceiptStatus(message);\n return receipt;\n }\n messageReadAndDelivered(message: CometChat.MessageReceipt, isGroupReceipt: boolean = false) {\n try {\n if(isGroupReceipt){\n let messageKey = this.messagesList.findIndex(\n (m: CometChat.BaseMessage) =>\n m.getId() == Number(message.getMessageId())\n );\n if (messageKey > -1) {\n this.messagesList[messageKey].setDeliveredAt(\n message.getDeliveredAt()\n );\n this.ref.detectChanges();\n }\n console.log(message.getReceiptType());\n\n message.getReceiptType() == message.RECEIPT_TYPE.DELIVERED_TO_ALL_RECEIPT && this.markAllMessagAsDelivered(messageKey);\n message.getReceiptType() == message.RECEIPT_TYPE.READ_BY_ALL_RECEIPT && this.markAllMessagAsRead(messageKey);\n }\n else if (\n message.getSender().getUid() !== this.loggedInUser?.getUid()\n ) {\n if (\n message.getReceiptType() == CometChatUIKitConstants.messages.DELIVERY\n ) {\n //search for message\n let messageKey = this.messagesList.findIndex(\n (m: CometChat.BaseMessage) =>\n m.getId() == Number(message.getMessageId())\n );\n if (messageKey > -1) {\n this.messagesList[messageKey].setDeliveredAt(\n message.getDeliveredAt()\n );\n this.ref.detectChanges();\n }\n this.markAllMessagAsDelivered(messageKey);\n } else if (\n message.getReceiptType() == CometChatUIKitConstants.messages.READ\n ) {\n //search for message\n let messageKey = this.messagesList.findIndex(\n (m: CometChat.BaseMessage) =>\n m.getId() == Number(message.getMessageId())\n );\n this.ref.detectChanges();\n this.markAllMessagAsRead(messageKey);\n }\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n this.ref.detectChanges();\n }\n /**\n * @param {CometChat.BaseMessage} readMessage\n */\n markAllMessagAsRead(messageKey: number) {\n for (let i = messageKey; i >= 0; i--) {\n if (!this.messagesList[i].getReadAt()) {\n this.messagesList[i].setReadAt(\n CometChatUIKitUtility.getUnixTimestamp()\n );\n this.ref.detectChanges();\n }\n }\n CometChatMessageEvents.ccMessageRead.next(this.messagesList[messageKey]);\n }\n markAllMessagAsDelivered(messageKey: number) {\n for (let i = messageKey; i >= 0; i--) {\n if (!this.messagesList[i].getDeliveredAt()) {\n this.messagesList[i].setDeliveredAt(\n CometChatUIKitUtility.getUnixTimestamp()\n );\n this.ref.detectChanges();\n }\n }\n }\n /**\n * Emits an Action Indicating that a message was deleted by the user/person you are chatting with\n * @param {CometChat.BaseMessage} message\n */\n /**\n * Detects if the message that was edit is your current open conversation window\n * @param {CometChat.BaseMessage} message\n */\n messageEdited = (message: CometChat.BaseMessage) => {\n try {\n if (\n this.group &&\n message.getReceiverType() ===\n CometChatUIKitConstants.MessageReceiverType.group &&\n message.getReceiverId() === this.group?.getGuid()\n ) {\n this.updateEditedMessage(message);\n } else if (\n this.user &&\n message.getReceiverType() ===\n CometChatUIKitConstants.MessageReceiverType.user &&\n this.loggedInUser?.getUid() === message.getReceiverId() &&\n message?.getSender().getUid() === this.user?.getUid()\n ) {\n this.updateEditedMessage(message);\n } else if (\n this.user &&\n message.getReceiverType() ===\n CometChatUIKitConstants.MessageReceiverType.user &&\n this.loggedInUser?.getUid() === message?.getSender().getUid() &&\n message.getReceiverId() === this.user?.getUid()\n ) {\n this.updateEditedMessage(message);\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n };\n\n updateInteractiveMessage = (receipt: CometChat.InteractionReceipt) => {\n if (this.loggedInUser!.getUid() === receipt.getSender().getUid()) {\n const message = this.getMessageById(\n receipt.getMessageId()\n ) as CometChat.InteractiveMessage;\n if (message) {\n if (String(message?.getId()) == String(receipt.getMessageId())) {\n const interaction = receipt.getInteractions();\n (message as CometChat.InteractiveMessage).setInteractions(\n interaction\n );\n this.updateEditedMessage(\n InteractiveMessageUtils.convertInteractiveMessage(message)\n );\n }\n }\n }\n };\n\n /**\n * Emits an Action Indicating that a message was deleted by the user/person you are chatting with\n * @param {CometChat.BaseMessage} message\n */\n updateEditedMessage = (message: CometChat.BaseMessage) => {\n var messageList = this.messagesList;\n // let newMessage = CometChatUIKitUtility.clone(message);\n var messageKey = messageList.findIndex(\n (m) => m.getId() === message.getId()\n );\n if (messageKey > -1) {\n this.messagesList[messageKey] = message;\n this.ref.detectChanges();\n }\n // if (messageKey > -1) {\n // this.messagesList = [\n // ...messageList.slice(0, messageKey),\n // message,\n // ...messageList.slice(messageKey + 1),\n // ];\n // this.ref.detectChanges();\n // }\n };\n /**\n * Emits an Action Indicating that Group Data has been updated\n * @param\n */\n /**\n * When custom messages are received eg. Poll, Stickers emits action to update message list\n * @param message\n */\n /**\n * @param {CometChat.BaseMessage} message\n */\n customMessageReceived(message: CometChat.BaseMessage): any {\n try {\n this.markMessageAsDelivered(message);\n if (\n message.getReceiverId() === this.group?.getGuid() ||\n (message?.getSender().getUid() === this.user?.getUid() &&\n message.getReceiverId() === this.loggedInUser?.getUid())\n ) {\n if (\n (!message?.getReadAt() &&\n !message?.getParentMessageId() &&\n this.isOnBottom) ||\n (!message?.getReadAt() &&\n message.getParentMessageId() &&\n this.parentMessageId &&\n this.isOnBottom)\n ) {\n if (!this.disableReceipt) {\n CometChat.markAsRead(message).then(() => {\n CometChatMessageEvents.ccMessageRead.next(message);\n });\n } else {\n this.UnreadCount = [];\n this.ref.detectChanges();\n }\n }\n this.customMessageReceivedHandler(message);\n } else if (this.loggedInUser?.getUid() == message.getSender().getUid()) {\n this.customMessageReceivedHandler(message);\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n this.ref.detectChanges();\n return true;\n }\n /**\n * @param {CometChat.BaseMessage} message\n * @param {string} type\n */\n customMessageReceivedHandler = (message: CometChat.BaseMessage) => {\n ++this.messageCount;\n // add received message to messages list\n if (message.getParentMessageId()) {\n // this.updateReplyCount(message);\n this.updateUnreadReplyCount(message);\n this.addMessage(message);\n } else {\n if (this.messageCount > this.thresholdValue) {\n this.keepRecentMessages = true;\n this.reInitializeMessageBuilder();\n }\n this.addMessage(message);\n if (!this.isOnBottom) {\n if (this.scrollToBottomOnNewMessages) {\n setTimeout(() => {\n this.scrollToBottom();\n }, 100);\n } else {\n let countText = localize(\"NEW_MESSAGES\");\n if (\n this.newMessageIndicatorText &&\n this.newMessageIndicatorText != \"\"\n ) {\n countText = this.newMessageIndicatorText;\n } else {\n countText =\n this.UnreadCount.length > 0\n ? localize(\"NEW_MESSAGES\")\n : localize(\"NEW_MESSAGE\");\n }\n this.UnreadCount.push(message);\n this.newMessageCount = this.UnreadCount.length + \" \" + countText;\n this.ref.detectChanges();\n }\n }\n }\n if(!this.disableSoundForMessages){\n this.playAudio();\n }\n //handling dom lag - increment count only for main message list\n if (\n message.hasOwnProperty(\"parentMessageId\") === false &&\n !this.parentMessageId\n ) {\n ++this.messageCount;\n //if the user has not scrolled in chat window(scroll is at the bottom of the chat window)\n } else if (\n message.hasOwnProperty(\"parentMessageId\") === true &&\n this.parentMessageId &&\n this.isOnBottom\n ) {\n if (message.getParentMessageId() === this.parentMessageId) {\n if (!this.disableReceipt) {\n CometChat.markAsRead(message).then(() => {\n CometChatMessageEvents.ccMessageRead.next(message);\n });\n } else {\n this.UnreadCount = [];\n this.ref.detectChanges();\n }\n }\n } else {\n }\n this.ref.detectChanges();\n };\n /**\n * Compares two dates and sets Date on a a new day\n */\n /**\n * @param {number} firstDate\n * @param {number} secondDate\n */\n isDateDifferent(\n firstDate: number | undefined,\n secondDate: number | undefined\n ) {\n let firstDateObj: Date, secondDateObj: Date;\n firstDateObj = new Date(firstDate! * 1000);\n secondDateObj = new Date(secondDate! * 1000);\n return (\n firstDateObj.getDate() !== secondDateObj.getDate() ||\n firstDateObj.getMonth() !== secondDateObj.getMonth() ||\n firstDateObj.getFullYear() !== secondDateObj.getFullYear()\n );\n }\n\n /**\n * Returns formatters for the text bubbles\n *\n * @param {CometChat.BaseMessage} message\n * @returns\n */\n getTextFormatters = (message: CometChat.BaseMessage) => {\n let alignment = this.setBubbleAlignment(message);\n let config = {\n textFormatters:\n this.textFormatters && this.textFormatters.length\n ? [...this.textFormatters]\n : ChatConfigurator.getDataSource().getAllTextFormatters({\n disableMentions: this.disableMentions,\n theme: this.themeService.theme,\n alignment,\n }),\n };\n\n let textFormatters: Array<CometChatTextFormatter> = config.textFormatters;\n let urlTextFormatter!: CometChatUrlsFormatter;\n if (!this.disableMentions) {\n let mentionsTextFormatter!: CometChatMentionsFormatter;\n for (let i = 0; i < textFormatters.length; i++) {\n if (textFormatters[i] instanceof CometChatMentionsFormatter) {\n mentionsTextFormatter = textFormatters[\n i\n ] as CometChatMentionsFormatter;\n mentionsTextFormatter.setMessage(message);\n if (message.getMentionedUsers().length) {\n mentionsTextFormatter.setCometChatUserGroupMembers(\n message.getMentionedUsers()\n );\n }\n mentionsTextFormatter.setLoggedInUser(\n CometChatUIKitLoginListener.getLoggedInUser()!\n );\n if (urlTextFormatter) {\n break;\n }\n }\n if (textFormatters[i] instanceof CometChatUrlsFormatter) {\n urlTextFormatter = textFormatters[i] as CometChatUrlsFormatter;\n if (mentionsTextFormatter) {\n break;\n }\n }\n }\n if (!mentionsTextFormatter) {\n mentionsTextFormatter =\n ChatConfigurator.getDataSource().getMentionsTextFormatter({\n message,\n ...config,\n alignment,\n theme: this.themeService.theme,\n });\n textFormatters.push(mentionsTextFormatter);\n }\n } else {\n for (let i = 0; i < textFormatters.length; i++) {\n if (textFormatters[i] instanceof CometChatUrlsFormatter) {\n urlTextFormatter = textFormatters[i] as CometChatUrlsFormatter;\n break;\n }\n }\n }\n\n if (!urlTextFormatter) {\n urlTextFormatter = ChatConfigurator.getDataSource().getUrlTextFormatter({\n theme: this.themeService.theme,\n alignment,\n });\n textFormatters.push(urlTextFormatter);\n }\n\n for (let i = 0; i < textFormatters.length; i++) {\n textFormatters[i].setMessageBubbleAlignment(alignment);\n textFormatters[i].setMessage(message);\n }\n\n return textFormatters;\n };\n\n /**\n * prepend Fetched Messages\n * @param {CometChat.BaseMessage} messages\n */\n prependMessages(messages: CometChat.BaseMessage[]) {\n try {\n if(!this.isPartOfCurrentChatForSDKEvent(messages[0])){\n return;\n }\n this.messagesList = [...messages, ...this.messagesList];\n this.messageCount = this.messagesList.length;\n if (this.messageCount > this.thresholdValue) {\n this.keepRecentMessages = false;\n this.reInitializeMessageBuilder();\n }\n this.ngZone.run(() => {\n if (this.state != States.loaded) {\n this.state = States.loaded;\n }\n this.ref.detach(); // Detach the change detector\n });\n if (this.chatChanged) {\n CometChatUIEvents.ccActiveChatChanged.next({\n user: this.user,\n group: this.group,\n message: messages[messages?.length - 1],\n unreadMessageCount: this.getUnreadCount,\n });\n this.chatChanged = false;\n setTimeout(() => {\n this.scrollToBottom();\n }, 10);\n }\n } catch (error: any) {\n this.state = States.error;\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n /**\n * listening to bottom scroll using intersection observer\n */\n ioBottom() {\n var options = {\n root: this.listScroll?.nativeElement,\n rootMargin: \"-100% 0px 100px 0px\",\n threshold: 0,\n };\n var callback = (entries: any) => {\n var lastMessage = this.UnreadCount[this.UnreadCount.length - 1];\n this.isOnBottom = entries[0].isIntersecting;\n if (this.isOnBottom) {\n this.fetchNextMessage();\n if (!this.disableReceipt && this.UnreadCount?.length > 0) {\n CometChat.markAsRead(lastMessage).then(\n (res: CometChat.MessageReceipt) => {\n this.UnreadCount = [];\n let messageKey = this.messagesList.findIndex(\n (m: CometChat.BaseMessage) =>\n m.getId() === Number(res?.getMessageId())\n );\n if (messageKey > -1) {\n this.markAllMessagAsRead(messageKey);\n }\n this.ref.detectChanges();\n CometChatMessageEvents.ccMessageRead.next(lastMessage);\n }\n );\n } else {\n this.UnreadCount = [];\n this.ref.detectChanges();\n }\n }\n };\n var observer: IntersectionObserver = new IntersectionObserver(\n callback,\n options\n );\n observer.observe(this.bottom?.nativeElement);\n }\n /**\n * listening to top scroll using intersection observer\n */\n ioTop() {\n var options = {\n root: this.listScroll?.nativeElement,\n rootMargin: \"200px 0px 0px 0px\",\n threshold: 1.0,\n };\n var callback = (entries: any) => {\n if (entries[0].isIntersecting) {\n this.numberOfTopScroll++;\n if (this.numberOfTopScroll > 1) {\n this.fetchPreviousMessages();\n }\n }\n };\n var observer: IntersectionObserver = new IntersectionObserver(\n callback,\n options\n );\n observer.observe(this.top?.nativeElement);\n }\n // public methods\n addMessage = (message: CometChat.BaseMessage) => {\n this.messagesList.push(message);\n if (message.getId()) {\n this.lastMessageId = Number(message.getId());\n }\n if (\n !message?.getSender() ||\n this.loggedInUser?.getUid() == message?.getSender()?.getUid() ||\n this.isOnBottom\n ) {\n this.scrollToBottom();\n }\n if (this.state != States.loaded) {\n this.state = States.loaded;\n }\n this.ref.detectChanges();\n\n };\n /**\n * callback for copy message\n * @param {CometChat.TextMessage} object\n */\n onCopyMessage = (object: CometChat.TextMessage) => {\n let text = object.getText();\n if (\n !this.disableMentions &&\n object.getMentionedUsers &&\n object.getMentionedUsers().length\n ) {\n text = this.getMentionsTextWithoutStyle(object);\n }\n navigator.clipboard.writeText(text);\n };\n\n /**\n * This is to ensure that the uid doesn't get copied when clicking on the copy option.\n * This function changes the uid regex to '@userName' without formatting\n *\n * @param {CometChat.TextMessage} message\n * @returns\n */\n getMentionsTextWithoutStyle(message: CometChat.TextMessage) {\n const regex = /<@uid:(.*?)>/g;\n let messageText = message.getText();\n let messageTextTmp = message.getText();\n let match = regex.exec(messageText);\n let mentionedUsers = message.getMentionedUsers();\n while (match !== null) {\n let user;\n for (let i = 0; i < mentionedUsers.length; i++) {\n if (match[1] == mentionedUsers[i].getUid()) {\n user = mentionedUsers[i];\n }\n }\n if (user) {\n messageTextTmp = messageTextTmp.replace(\n match[0],\n \"@\" + user.getName() + \"\"\n );\n }\n match = regex.exec(messageText);\n }\n return messageTextTmp;\n }\n\n /**\n * callback for deleteMessage\n * @param {CometChat.BaseMessage} object\n */\n /**\n * @param {CometChat.BaseMessage} messages\n */\n messageSent(messages: CometChat.BaseMessage) {\n var message: CometChat.BaseMessage = messages;\n var messageList: CometChat.BaseMessage[] = [...this.messagesList];\n let messageKey = messageList.findIndex(\n (m: CometChat.BaseMessage) => m.getMuid() === message.getMuid()\n );\n if (messageKey > -1) {\n messageList.splice(messageKey, 1, message);\n }\n this.messagesList = messageList;\n this.ref.detectChanges();\n this.scrollToBottom();\n }\n /**\n * callback for editMessage option\n * @param {CometChat.BaseMessage} object\n */\n onEditMessage = (object: CometChat.BaseMessage) => {\n CometChatMessageEvents.ccMessageEdited.next({\n message: object,\n status: MessageStatus.inprogress,\n });\n };\n updateMessage(message: CometChat.BaseMessage, muid: boolean = false) {\n if (muid) {\n this.messageSent(message);\n } else {\n this.updateEditedMessage(message);\n }\n }\n removeMessage = (message: CometChat.BaseMessage) => {\n try {\n var messageKey = this.messagesList.findIndex(\n (msg) => msg?.getId() === message.getId()\n );\n if (messageKey > -1) {\n this.messagesList.splice(messageKey, 1, message);\n this.messagesList = [...this.messagesList];\n this.ref.detectChanges();\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n };\n /**\n * Returns the style configuration for the thread view of a message.\n *\n * @param {CometChat.BaseMessage} message - The message that the style configuration is for.\n * @returns {Object} The style configuration object.\n */\n getThreadViewStyle(message: CometChat.BaseMessage) {\n return {\n height: \"100%\",\n width: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.messageListStyle.threadReplyIconTint,\n display: \"flex\",\n flexFlow:\n this.isSentByMe(message) && this.alignment != MessageListAlignment.left\n ? \"row-reverse\"\n : \"row\",\n alignItems: \"flex-start\",\n buttonTextColor: this.messageListStyle?.threadReplyTextColor,\n buttonTextFont: this.messageListStyle?.threadReplyTextFont,\n iconHeight: \"15px\",\n iconWidth: \"15px\",\n gap: \"4px\",\n };\n }\n /**\n * Checks if a message was sent by the currently logged in user.\n *\n * @param {CometChat.BaseMessage} message - The message to check.\n * @returns {boolean} Returns true if the message is sent by the logged in user, false otherwise.\n */\n isSentByMe(message: CometChat.BaseMessage) {\n let sentByMe: boolean =\n !message?.getSender() ||\n message.getSender().getUid() == this.loggedInUser?.getUid();\n return sentByMe;\n }\n deleteMessage = (message: CometChat.BaseMessage) => {\n try {\n var messageId: any = message.getId();\n CometChat.deleteMessage(messageId)\n .then((deletedMessage) => {\n CometChatMessageEvents.ccMessageDeleted.next(deletedMessage);\n // this.ref.detectChanges()\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n };\n scrollToBottom = () => {\n try {\n setTimeout(() => {\n this.listScroll?.nativeElement.scroll({\n top: this.listScroll?.nativeElement.scrollHeight,\n left: 0,\n });\n this.isOnBottom = true;\n this.ref.detectChanges();\n }, 10);\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n };\n showHeaderTitle(message: CometChat.BaseMessage) {\n if (this.alignment == MessageListAlignment.left) {\n return true;\n } else {\n if (\n this.group &&\n message?.getCategory() !=\n CometChatUIKitConstants.MessageCategory.action &&\n message?.getSender() &&\n message?.getSender().getUid() != this.loggedInUser?.getUid() &&\n this.alignment == MessageListAlignment.standard\n ) {\n return true;\n } else {\n return false;\n }\n }\n }\n /**\n * Updates the count of unread reply messages for a given message.\n *\n * @param {CometChat.BaseMessage} message - The message for which the reply count is being updated.\n */\n\n updateUnreadReplyCount = (message: CometChat.BaseMessage) => {\n try {\n let messageList: CometChat.BaseMessage[] = [...this.messagesList];\n let messageKey = messageList.findIndex(\n (m) => m.getId() === message.getParentMessageId()\n );\n if (messageKey > -1) {\n const messageObj: CometChat.BaseMessage = messageList[messageKey];\n // let unreadReplyCount = messageObj.getUnreadReplyCount()\n // ? messageObj.getUnreadReplyCount()\n // : 0;\n // unreadReplyCount = unreadReplyCount + 1;\n // messageObj.setUnreadReplyCount(unreadReplyCount);\n messageList.splice(messageKey, 1, messageObj);\n this.messagesList = [...messageList];\n }\n // eslint-disable-next-line\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n };\n /**\n * Method to subscribe the required Rxjs events when the CometChatMessageListComponent loads\n */\n subscribeToEvents() {\n this.ccActivePppover = CometChatUIEvents.ccActivePopover.subscribe(\n (data: ActivePopover) => {\n if(data == ActivePopover.composer && this.messageToReact){\n this.popoverRef.nativeElement.openContentView();\n this.messageToReact = null;\n this.ref.detectChanges();\n }\n })\n this.ccShowPanel = CometChatUIEvents.ccShowPanel.subscribe(\n (data: IPanel) => {\n if (data.child?.showConversationSummaryView) {\n this.fetchConversationSummary();\n }\n this.smartReplyConfig = data.configuration!;\n this.smartReplyMessage = data.message!;\n var smartReplyObject = (data.message as any)?.metadata?.[\n SmartRepliesConstants.injected\n ]?.extensions?.[SmartRepliesConstants.smart_reply];\n if (this.isPartOfCurrentChatForSDKEvent(this.smartReplyMessage) && smartReplyObject && !smartReplyObject.error) {\n this.enableSmartReply = true;\n this.showSmartReply = true;\n this.ref.detectChanges();\n }\n }\n );\n this.ccHidePanel = CometChatUIEvents.ccHidePanel.subscribe(() => {\n this.smartReplyMessage = null;\n this.enableSmartReply = false;\n this.showSmartReply = false;\n });\n this.ccMessageRead = CometChatMessageEvents.ccMessageRead.subscribe(\n (message: CometChat.BaseMessage) => {\n if (message && message.getParentMessageId()) {\n const messageObj = this.getMessageById(message.getParentMessageId());\n // if (messageObj && messageObj.getUnreadReplyCount()) {\n // messageObj.setUnreadReplyCount(0);\n // this.updateMessage(messageObj);\n // }\n }\n }\n );\n this.ccGroupMemberAdded = CometChatGroupEvents.ccGroupMemberAdded.subscribe(\n (item: IGroupMemberAdded) => {\n item;\n this.appendMessages(item.messages!);\n }\n );\n this.ccGroupMemberBanned =\n CometChatGroupEvents.ccGroupMemberBanned.subscribe(\n (item: IGroupMemberKickedBanned) => {\n if (this.isPartOfCurrentChatForUIEvent(item.message)) {\n this.addMessage(item.message!);\n }\n }\n );\n this.ccGroupMemberKicked =\n CometChatGroupEvents.ccGroupMemberKicked.subscribe(\n (item: IGroupMemberKickedBanned) => {\n if (this.isPartOfCurrentChatForUIEvent(item.message)) {\n this.addMessage(item.message!);\n }\n }\n );\n this.ccGroupMemberScopeChanged =\n CometChatGroupEvents.ccGroupMemberScopeChanged.subscribe(\n (item: IGroupMemberScopeChanged) => {\n if (this.isPartOfCurrentChatForUIEvent(item.message)) {\n this.addMessage(item.message!);\n }\n }\n );\n this.ccGroupLeft = CometChatGroupEvents.ccGroupLeft.subscribe(\n (item: IGroupLeft) => {\n if (this.isPartOfCurrentChatForUIEvent(item.message)) {\n this.addMessage(item.message!);\n }\n }\n );\n this.ccMessageEdit = CometChatMessageEvents.ccMessageEdited.subscribe(\n (object: IMessages) => {\n if (object?.status == MessageStatus.success) {\n if (this.isPartOfCurrentChatForSDKEvent(object.message)) {\n let message: CometChat.BaseMessage = CometChatUIKitUtility.clone(object.message!);\n this.updateMessage(message);\n }\n }\n }\n );\n this.ccMessageSent = CometChatMessageEvents.ccMessageSent.subscribe(\n (obj: IMessages) => {\n if (obj.message) {\n let message: CometChat.BaseMessage = CometChatUIKitUtility.clone(obj.message!);\n switch (obj.status) {\n case MessageStatus.inprogress: {\n if (this.isPartOfCurrentChatForUIEvent(message)) {\n this.addMessage(message);\n\n }\n break;\n }\n case MessageStatus.success: {\n this.showConversationStarter = false;\n this.conversationStarterReplies = [];\n this.showConversationSummary = false;\n this.conversationSummary = [];\n this.ref.detectChanges();\n if (this.isThreadOfCurrentChatForUIEvent(message)) {\n this.updateReplyCount(CometChatUIKitUtility.clone(message));\n }\n this.updateMessage(message, true);\n break;\n }\n case MessageStatus.error: {\n if (!message.getSender() || this.isPartOfCurrentChatForUIEvent(message)) {\n this.updateMessage(CometChatUIKitUtility.clone(message));\n }\n }\n }\n\n }\n }\n );\n this.ccMessageDelete = CometChatMessageEvents.ccMessageDeleted.subscribe(\n (messageObject: CometChat.BaseMessage) => {\n this.removeMessage(messageObject);\n this.ref.detectChanges();\n }\n );\n this.ccCallEnded = CometChatCallEvents.ccCallEnded.subscribe(\n (call: CometChat.Call) => {\n this.showOngoingCall = false;\n this.sessionId = \"\";\n if (call && Object.keys(call).length > 0) {\n if (this.isPartOfCurrentChatForUIEvent(call)) {\n this.addMessage(call);\n }\n }\n this.ref.detectChanges();\n }\n );\n this.ccCallRejected = CometChatCallEvents.ccCallRejected.subscribe(\n (call: CometChat.Call) => {\n if (this.isPartOfCurrentChatForUIEvent(call)) {\n this.addMessage(call);\n }\n }\n );\n this.ccOutgoingCall = CometChatCallEvents.ccOutgoingCall.subscribe(\n (call: CometChat.Call) => {\n if (this.isPartOfCurrentChatForUIEvent(call)) {\n this.addMessage(call);\n }\n }\n );\n this.ccCallAccepted = CometChatCallEvents.ccCallAccepted.subscribe(\n (call: CometChat.Call) => {\n if (this.isPartOfCurrentChatForUIEvent(call)) {\n this.addMessage(call);\n }\n }\n );\n }\n closeSmartReply = () => {\n this.showSmartReply = false;\n this.smartReplyMessage = null;\n this.ref.detectChanges();\n };\n\n closeConversationSummary = () => {\n this.showConversationSummary = false;\n this.ref.detectChanges();\n };\n showStatusInfo(message: CometChat.BaseMessage) {\n if (\n message?.getCategory() != this.MessageCategory.action &&\n !message.getDeletedAt() &&\n message?.getCategory() != this.MessageCategory.call &&\n message?.getSentAt()\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n shouldShowMessage(message: CometChat.BaseMessage, disableReceipt: boolean, hideReceipt: boolean): boolean {\n return (\n !message.getDeletedAt() &&\n !(disableReceipt || hideReceipt) &&\n (!message.getSender() || this.loggedInUser.getUid() === message.getSender()?.getUid()) &&\n message.getCategory() !== this.MessageCategory.action &&\n message.getCategory() !== this.MessageCategory.call\n );\n }\n \n sendReply = (event: any) => {\n let reply: string = event?.detail?.reply;\n if (this.smartReplyConfig.ccSmartRepliesClicked) {\n this.smartReplyConfig.ccSmartRepliesClicked(\n reply,\n this.smartReplyMessage!,\n this.onError,\n this.customSoundForMessages,\n this.disableSoundForMessages\n );\n this.closeSmartReply();\n }\n };\n sendConversationStarter = (event: any) => {\n let reply: string = event?.detail?.reply;\n CometChatUIEvents.ccComposeMessage.next(reply);\n this.showConversationStarter = false;\n this.conversationStarterReplies = [];\n this.ref.detectChanges();\n };\n fetchConversationStarter() {\n this.showConversationStarter = true;\n this.conversationStarterState = States.loading;\n let receiverType: string = this.user\n ? CometChatUIKitConstants.MessageReceiverType.user\n : CometChatUIKitConstants.MessageReceiverType.group;\n let receiverId: string = this.user\n ? this.user.getUid()\n : this.group.getGuid();\n CometChat.getConversationStarter(receiverId, receiverType)\n .then((response: any) => {\n if (response) {\n Object.keys(response).forEach((reply) => {\n if (response[reply] && response[reply] != \"\") {\n this.conversationStarterReplies.push(response[reply]);\n }\n });\n if (\n this.conversationStarterReplies &&\n this.conversationStarterReplies.length > 0 &&\n this.messagesList?.length <= 0\n ) {\n this.conversationStarterState = States.loaded;\n this.ref.detectChanges();\n } else {\n this.conversationStarterState = States.empty;\n this.ref.detectChanges();\n }\n } else {\n this.conversationStarterState = States.empty;\n this.ref.detectChanges();\n }\n })\n .catch((err: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(err);\n }\n this.conversationStarterState = States.error;\n this.ref.detectChanges();\n });\n }\n\n fetchConversationSummary() {\n this.showConversationSummary = true;\n this.conversationSummaryState = States.loading;\n this.ref.detectChanges();\n\n let receiverType: string = this.user\n ? CometChatUIKitConstants.MessageReceiverType.user\n : CometChatUIKitConstants.MessageReceiverType.group;\n let receiverId: string = this.user\n ? this.user.getUid()\n : this.group.getGuid();\n\n let apiConfiguration = this.apiConfiguration;\n\n CometChat.getConversationSummary(receiverId, receiverType, apiConfiguration)\n .then((response: any) => {\n // throw new Error(\"Parameter is not a number!\");\n if (response) {\n this.conversationSummary = [response];\n }\n if (this.conversationSummary && this.conversationSummary.length > 0) {\n this.conversationSummaryState = States.loaded;\n this.ref.detectChanges();\n } else {\n this.conversationSummaryState = States.empty;\n this.ref.detectChanges();\n }\n })\n .catch((err: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(err);\n }\n this.conversationSummaryState = States.error;\n this.ref.detectChanges();\n });\n return this.conversationSummary;\n }\n\n getReplies(): string[] | null {\n let smartReply: any = this.smartReplyMessage;\n var smartReplyObject =\n smartReply?.metadata?.[SmartRepliesConstants.injected]?.extensions?.[\n SmartRepliesConstants.smart_reply\n ];\n if (\n smartReplyObject?.reply_positive &&\n smartReplyObject?.reply_neutral &&\n smartReplyObject?.reply_negative\n ) {\n var { reply_positive, reply_neutral, reply_negative } = smartReplyObject;\n return [reply_positive, reply_neutral, reply_negative];\n }\n return null;\n }\n /**\n * Method to unsubscribe all the Rxjs events when the CometChatMessageListComponent gets destroy\n */\n unsubscribeToEvents() {\n this.ccGroupMemberAdded?.unsubscribe();\n this.ccGroupMemberBanned?.unsubscribe();\n this.ccGroupMemberJoined?.unsubscribe();\n this.ccGroupMemberKicked?.unsubscribe();\n this.ccOwnershipChanged?.unsubscribe();\n this.ccGroupLeft?.unsubscribe();\n this.ccMessageEdit?.unsubscribe();\n this.ccMessageSent?.unsubscribe();\n this.ccLiveReaction?.unsubscribe();\n this.ccMessageDelete?.unsubscribe();\n this.ccGroupMemberScopeChanged?.unsubscribe();\n this.ccShowPanel?.unsubscribe();\n this.ccMessageRead?.unsubscribe();\n this.ccHidePanel?.unsubscribe();\n this.ccCallEnded?.unsubscribe();\n this.ccCallRejected?.unsubscribe();\n this.ccOutgoingCall?.unsubscribe();\n this.ccCallAccepted?.unsubscribe();\n }\n /**\n * Returns the appropriate thread icon based on the sender of the message.\n *\n * @param {CometChat.BaseMessage} message - The message for which the thread icon is being determined.\n * @returns {boolean} The icon for the thread. If the message was sent by the logged in user, returns 'threadRightArrow'. Otherwise, returns 'threadIndicatorIcon'.\n */\n getThreadIconAlignment(message: CometChat.BaseMessage): boolean {\n let sentByMe: boolean =\n this.isSentByMe(message) &&\n this.alignment === MessageListAlignment.standard;\n return sentByMe ? false : true;\n }\n /**\n * styling part\n */\n getBubbleDateStyle = (message: CometChat.BaseMessage) => {\n let isSentByMe =\n this.isSentByMe(message) && this.alignment != MessageListAlignment.left;\n let isTextMessage =\n message.getType() == CometChatUIKitConstants.MessageTypes.text;\n return {\n textColor:\n this.messageListStyle.TimestampTextColor || this.themeService.theme.palette.getAccent600(),\n textFont:\n this.messageListStyle.TimestampTextFont ||\n fontHelper(this.themeService.theme.typography.caption3),\n padding: \"0px\",\n display: \"block\",\n };\n };\n chatsListStyle = () => {\n return {\n height: this.messageListStyle.height,\n background: this.messageListStyle.background,\n };\n };\n messageContainerStyle = () => {\n return {\n width: this.messageListStyle.width,\n };\n };\n errorStyle = () => {\n return {\n textFont: this.messageListStyle.errorStateTextFont,\n textColor: this.messageListStyle.errorStateTextColor,\n };\n };\n conversationStarterStateStyle = () => {\n return {\n textFont: fontHelper(this.theme.typography.title2),\n textColor: this.theme.palette.getAccent600(),\n };\n };\n\n conversationSummaryStateStyle = () => {\n return {\n textFont: fontHelper(this.theme.typography.title2),\n textColor: this.theme.palette.getAccent600(),\n };\n };\n\n emptyStyle = () => {\n return {\n textFont: this.messageListStyle.emptyStateTextFont,\n textColor: this.messageListStyle.emptyStateTextColor,\n };\n };\n loadingStyle = {\n iconTint: this.messageListStyle?.loadingIconTint,\n };\n conversationStarterLoader = () => {\n return {\n iconTint: this.theme.palette.getAccent600(),\n };\n };\n\n conversationSummaryLoader = () => {\n return {\n iconTint: this.theme.palette.getAccent600(),\n };\n };\n getSchedulerBubbleStyle = (messgae: SchedulerMessage) => {\n let avatarStyle = new AvatarStyle({\n borderRadius: \"50%\",\n width: \"48px\",\n height: \"48px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n });\n let listItemStyle = new ListItemStyle({\n height: \"auto\",\n width: \"100%\",\n background: \"inherit\",\n activeBackground: \"transparent\",\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.text1),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: \"\",\n hoverBackground: \"transparent\",\n });\n\n let calendarStyle = new CalendarStyle({\n height: \"100%\",\n width: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n dateTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n dateTextColor: this.themeService.theme.palette.getAccent(),\n dayTextFont: fontHelper(this.themeService.theme.typography.text2),\n dayTextColor: this.themeService.theme.palette.getAccent(),\n monthYearTextFont: fontHelper(this.themeService.theme.typography.text2),\n monthYearTextColor: this.themeService.theme.palette.getAccent(),\n defaultDateTextBackground: \"transparent\",\n disabledDateTextColor: this.themeService.theme.palette.getAccent400(),\n disabledDateTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n disabledDateTextBackground: \"transparent\",\n titleTextFont: fontHelper(this.themeService.theme.typography.text1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n timezoneTextFont: fontHelper(this.themeService.theme.typography.caption2),\n timezoneTextColor: this.themeService.theme.palette.getAccent(),\n arrowButtonTextColor: this.themeService.theme.palette.getAccent(),\n arrowButtonTextFont: fontHelper(\n this.themeService.theme.typography.title2\n ),\n });\n let timeSlotStyle = new TimeSlotStyle({\n background: \"transparent\",\n height: \"fit-content\",\n width: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n calendarIconTint: this.themeService.theme.palette.getAccent(),\n timezoneIconTint: this.themeService.theme.palette.getAccent(),\n emptySlotIconTint: this.themeService.theme.palette.getAccent500(),\n emptySlotTextColor: this.themeService.theme.palette.getAccent500(),\n emptySlotTextFont: fontHelper(\n this.themeService.theme.typography.subtitle1\n ),\n dateTextColor: this.themeService.theme.palette.getAccent(),\n dateTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n seperatorTint: this.themeService.theme.palette.getAccent100(),\n slotBackground: this.themeService.theme.palette.getAccent900(),\n slotBorder: \"none\",\n slotBorderRadius: \"8px\",\n slotTextColor: this.themeService.theme.palette.getAccent(),\n slotTextFont: fontHelper(this.themeService.theme.typography.caption2),\n timezoneTextColor: this.themeService.theme.palette.getAccent(),\n timezoneTextFont: fontHelper(this.themeService.theme.typography.caption2),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n titleTextFont: fontHelper(this.themeService.theme.typography.text1),\n });\n let qucikViewStyle = new QuickViewStyle({\n background: this.themeService.theme.palette.getAccent50(),\n height: \"fit-content\",\n width: \"100%\",\n titleFont: fontHelper(this.themeService.theme.typography.subtitle2),\n titleColor: this.themeService.theme.palette.getAccent(),\n subtitleFont: fontHelper(this.themeService.theme.typography.subtitle2),\n subtitleColor: this.themeService.theme.palette.getAccent600(),\n leadingBarTint: this.themeService.theme.palette.getPrimary(),\n leadingBarWidth: \"4px\",\n borderRadius: \"8px\",\n });\n return new SchedulerBubbleStyle({\n avatarStyle: avatarStyle,\n listItemStyle: listItemStyle,\n quickViewStyle: qucikViewStyle,\n dateSelectorStyle: calendarStyle,\n timeSlotSelectorStyle: timeSlotStyle,\n backButtonIconTint: this.themeService.theme.palette.getPrimary(),\n background: \"transparent\",\n height: \"100%\",\n width: \"100%\",\n border: `1px solid ${this.themeService.theme.palette.getAccent100()}`,\n borderRadius: \"8px\",\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n suggestedTimeBackground: this.themeService.theme.palette.getAccent900(),\n suggestedTimeBorder: `1px solid ${this.themeService.theme.palette.getPrimary()}`,\n suggestedTimeBorderRadius: \"8px\",\n suggestedTimeDisabledBackground:\n this.themeService.theme.palette.getAccent50(),\n suggestedTimeDisabledBorder: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n suggestedTimeDisabledBorderRadius: \"8px\",\n suggestedTimeDisabledTextColor:\n this.themeService.theme.palette.getAccent700(),\n suggestedTimeDisabledTextFont: fontHelper(\n this.themeService.theme.typography.text3\n ),\n suggestedTimeTextColor: this.themeService.theme.palette.getPrimary(),\n suggestedTimeTextFont: fontHelper(\n this.themeService.theme.typography.text3\n ),\n moreButtonDisabledTextBackground: \"transparent\",\n moreButtonDisabledTextBorder: \"none\",\n moreButtonDisabledTextBorderRadius: \"0\",\n moreButtonDisabledTextColor:\n this.themeService.theme.palette.getAccent600(),\n moreButtonDisabledTextFont: fontHelper(\n this.themeService.theme.typography.caption2\n ),\n moreButtonTextBackground: \"transparent\",\n moreButtonTextBorder: \"none\",\n moreButtonTextBorderRadius: \"0\",\n moreButtonTextColor: this.themeService.theme.palette.getPrimary(),\n moreButtonTextFont: fontHelper(\n this.themeService.theme.typography.caption2\n ),\n goalCompletionTextColor: this.themeService.theme.palette.getAccent(),\n goalCompletionTextFont: fontHelper(\n this.themeService.theme.typography.text3\n ),\n errorTextColor: this.themeService.theme.palette.getError(),\n errorTextFont: fontHelper(this.themeService.theme.typography.text3),\n scheduleButtonStyle: {\n iconHeight: \"20px\",\n iconWidth: \"20px\",\n buttonIconTint: this.themeService.theme.palette.getAccent(),\n buttonTextFont: fontHelper(this.themeService.theme.typography.name),\n buttonTextColor: this.themeService.theme.palette.getAccent(\"dark\"),\n border: \"none\",\n borderRadius: \"8px\",\n background: this.themeService.theme.palette.getPrimary(),\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n padding: \"8px\",\n },\n seperatorTint: this.themeService.theme.palette.getAccent200(),\n subtitleTextColor: this.themeService.theme.palette.getAccent400(),\n subtitleTextFont: fontHelper(this.themeService.theme.typography.name),\n summaryTextColor: this.themeService.theme.palette.getAccent(),\n summaryTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n timezoneTextColor: this.themeService.theme.palette.getAccent600(),\n timezoneTextFont: fontHelper(this.themeService.theme.typography.caption2),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n timezoneIconTint: this.themeService.theme.palette.getAccent(),\n calendarIconTint: this.themeService.theme.palette.getAccent(),\n clockIconTint: this.themeService.theme.palette.getAccent(),\n });\n };\n /**\n * Configuration for the reaction list.\n * This includes styles for the avatar, list items, and reaction history.\n * @returns {ReactionListConfiguration} - The configured reaction list.\n */\n getReactionListConfiguration() {\n const avatarStyle = new AvatarStyle({\n borderRadius: \"50%\",\n width: \"35px\",\n height: \"35px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n outerViewBorderWidth: \"0\",\n outerViewBorderRadius: \"0\",\n outerViewBorderColor: \"\",\n outerViewBorderSpacing: \"0\",\n });\n const listItemStyle = new ListItemStyle({\n activeBackground: this.themeService.theme.palette.getBackground(),\n hoverBackground: this.themeService.theme.palette.getBackground(),\n titleFont: fontHelper(this.themeService.theme.typography.subtitle1),\n titleColor: this.themeService.theme.palette.getAccent(),\n separatorColor: this.themeService.theme.palette.getAccent100(),\n });\n const reactionHistoryStyle = new ReactionListStyle({\n width: \"320px\",\n height: \"300px\",\n borderRadius: \"12px\",\n background: this.themeService.theme.palette.getBackground(),\n border: \"none\",\n errorIconTint: this.themeService.theme.palette.getAccent400(),\n loadingIconTint: this.themeService.theme.palette.getAccent400(),\n sliderEmojiCountFont: fontHelper(\n this.themeService.theme.typography.text2\n ),\n sliderEmojiFont: fontHelper(this.themeService.theme.typography.text1),\n subtitleTextColor: this.themeService.theme.palette.getAccent500(),\n subtitleTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n tailViewFont: fontHelper(this.themeService.theme.typography.title1),\n dividerTint: this.themeService.theme.palette.getAccent100(),\n sliderEmojiCountColor: this.themeService.theme.palette.getAccent500(),\n activeEmojiBackground: this.themeService.theme.palette.getAccent100(),\n });\n\n return new ReactionListConfiguration({\n avatarStyle:\n this.reactionsConfiguration?.reactionListConfiguration?.avatarStyle ||\n avatarStyle,\n errorIconURL:\n this.reactionsConfiguration?.reactionListConfiguration?.errorIconURL ||\n \"\",\n listItemStyle:\n this.reactionsConfiguration?.reactionListConfiguration?.listItemStyle ||\n listItemStyle,\n loadingIconURL:\n this.reactionsConfiguration?.reactionListConfiguration\n ?.loadingIconURL || \"\",\n reactionListStyle:\n this.reactionsConfiguration?.reactionListConfiguration\n ?.reactionListStyle || reactionHistoryStyle,\n reactionItemClicked:\n this.reactionsConfiguration?.reactionListConfiguration\n ?.reactionItemClicked || this.onReactionItemClicked,\n reactionsRequestBuilder:\n this.reactionsConfiguration?.reactionListConfiguration\n ?.reactionsRequestBuilder || undefined,\n });\n }\n /**\n * Handles when a reaction item is clicked.\n * @param {CometChat.Reaction} reaction - The clicked reaction.\n * @param {CometChat.BaseMessage} message - The message the reaction is associated with.\n */\n\n onReactionItemClicked? = (\n reaction: CometChat.Reaction,\n message: CometChat.BaseMessage\n ): void => {\n if (reaction?.getReactedBy()?.getUid() === this.loggedInUser?.getUid()) {\n this.reactToMessage(reaction?.getReaction(), message);\n }\n };\n /**\n * Handles adding a reaction when clicked.\n * @param {CometChat.ReactionCount} reaction - The clicked reaction.\n * @param {CometChat.BaseMessage} message - The message the reaction is associated with.\n */\n addReactionOnClick = (\n reaction: CometChat.ReactionCount,\n message: CometChat.BaseMessage\n ) => {\n let onReactClick = this.reactionsConfiguration?.reactionClick;\n if (onReactClick) {\n onReactClick(reaction, message);\n } else {\n this.reactToMessage(reaction?.getReaction(), message);\n }\n };\n /**\n * Configuration for the reaction info.\n * This includes styles for the reaction info display.\n * @returns {ReactionInfoConfiguration} - The configured reaction info.\n */\n\n getReactionInfoConfiguration() {\n const config = this.reactionsConfiguration?.reactionInfoConfiguration || {};\n const reactionInfoStyle = new ReactionInfoStyle({\n background:\n config?.reactionInfoStyle?.background ||\n this.themeService.theme.palette.getAccent(),\n border: config?.reactionInfoStyle?.border || \"none\",\n borderRadius: config?.reactionInfoStyle?.borderRadius || \"12px\",\n errorIconTint:\n config?.reactionInfoStyle?.errorIconTint ||\n this.themeService.theme.palette.getBackground(),\n loadingIconTint:\n config?.reactionInfoStyle?.loadingIconTint ||\n this.themeService.theme.palette.getBackground(),\n namesColor:\n config?.reactionInfoStyle?.namesColor ||\n this.themeService.theme.palette.getBackground(),\n namesFont:\n config?.reactionInfoStyle?.namesFont ||\n fontHelper(this.themeService.theme.typography.subtitle2),\n reactedTextColor:\n config?.reactionInfoStyle?.reactedTextColor ||\n this.themeService.theme.palette.getAccent700(\"dark\"),\n reactedTextFont:\n config?.reactionInfoStyle?.reactedTextFont ||\n fontHelper(this.themeService.theme.typography.subtitle2),\n reactionFontSize: config?.reactionInfoStyle?.reactionFontSize || \"37px\",\n });\n return new ReactionInfoConfiguration({\n reactionInfoStyle: reactionInfoStyle,\n reactionsRequestBuilder: config?.reactionsRequestBuilder || undefined,\n errorIconURL: config?.errorIconURL || \"\",\n loadingIconURL: config?.loadingIconURL || \"\",\n });\n }\n /**\n * Get style object based on message type.\n * @param {CometChat.BaseMessage} message - The message object.\n * @return {object} The style object.\n */\n getStatusInfoStyle = (message: CometChat.BaseMessage) => {\n // Base styles that are common for both conditions\n const baseStyle = {\n display: \"flex\",\n alignItems: \"flex-end\",\n gap: \"1px\",\n padding: \"8px\",\n };\n\n // If message type is audio or video\n if (this.isAudioOrVideoMessage(message)) {\n return {\n ...baseStyle,\n justifyContent: \"center\",\n height: \"fit-content\",\n borderRadius: \"22px\",\n padding: \"3px 5px\",\n paddingTop: \"2px\",\n position: \"relative\",\n marginTop: \"-26px\",\n marginRight: \"6px\",\n background: this.themeService.theme.palette.getAccent500(\"dark\"),\n width: \"fit-content\",\n alignSelf: \"flex-end\",\n marginBottom: \"6px\",\n };\n }\n\n // Style for other types of messages\n return {\n ...baseStyle,\n justifyContent: \"flex-end\",\n alignItems: \"flex-end\",\n padding: \"0px 8px 4px 8px\",\n };\n };\n wrapperStyle = () => {\n return {\n height: this.messageListStyle.height,\n width: this.messageListStyle.width,\n background: this.messageListStyle.background,\n border: this.messageListStyle.border,\n borderRadius: this.messageListStyle.borderRadius,\n };\n };\n listStyle = () => {\n return {\n height: this.showSmartReply ? \"92%\" : \"100%\",\n };\n };\n /**\n * Styling for reactions component\n *\n */\n getReactionsWrapperStyle(message: CometChat.BaseMessage) {\n let alignment = this.setBubbleAlignment(message);\n return {\n width: \"100%\",\n paddingTop: \"5px\",\n boxSizing: \"border-box\",\n display: \"flex\",\n marginTop: \"-9px\",\n justifyContent:\n alignment === MessageBubbleAlignment.left ? \"flex-start\" : \"flex-end\",\n };\n }\n /**\n * Styling for unread thread replies\n * @returns LabelStyle\n */\n getUnreadRepliesCountStyle = () => {\n return {\n borderRadius: \"10px\",\n width: \"15px\",\n height: \"15px\",\n border: \"none\",\n background: this.messageListStyle?.threadReplyUnreadBackground,\n color: this.messageListStyle?.threadReplyUnreadTextColor,\n font: this.messageListStyle?.threadReplyUnreadTextFont,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n };\n };\n getThreadViewAlignment(message: CometChat.BaseMessage) {\n return {\n display: \"flex\",\n justifyContent:\n this.isSentByMe(message) &&\n this.alignment == MessageListAlignment.standard\n ? \"flex-end\"\n : \"flex-start\",\n };\n }\n}\n","<div class=\"cc-message-list__wrapper\" [ngStyle]=\"wrapperStyle()\"\n *ngIf=\"!openContactsView\">\n\n <div class=\"cc-message-list__header-view\">\n <div *ngIf=\"headerView\">\n <ng-container *ngTemplateOutlet=\"headerView\">\n </ng-container>\n </div>\n </div>\n <div class=\"cc-message-list\" #listScroll\n [ngStyle]=\"{height: showSmartReply || showConversationStarter || showConversationSummary ? '92%' : '100%'}\">\n <div class=\"cc-message-list__top\" #top>\n </div>\n <div class=\"cc-message-list__decorator-message\"\n *ngIf=\"state == states.loading || state == states.error || state == states.empty \"\n [ngStyle]=\"messageContainerStyle()\">\n <div class=\"cc-message-list__loading-view\"\n *ngIf=\"state == states.loading\">\n <cometchat-loader [iconURL]=\"loadingIconURL\"\n [loaderStyle]=\"loadingStyle\" *ngIf=\"!loadingStateView\">\n </cometchat-loader>\n <span class=\"cc-message-list__customview--loading\"\n *ngIf=\"state == states.loading && loadingStateView\">\n <ng-container *ngTemplateOutlet=\"loadingStateView\">\n </ng-container>\n </span>\n </div>\n <div class=\"cc-message-list__error-view\"\n *ngIf=\"state == states.error && !hideError \">\n <cometchat-label [labelStyle]=\"errorStyle()\"\n *ngIf=\"state == states.error && !errorStateView\"\n [text]=\"errorStateText\">\n </cometchat-label>\n <span class=\"cc-message-list__custom-view--error\"\n *ngIf=\"state == states.error && errorStateView\">\n <ng-container *ngTemplateOutlet=\"errorStateView\">\n </ng-container>\n </span>\n </div>\n <div class=\"cc-message-list__empty-view\" *ngIf=\"state == states.empty\">\n <span class=\"cc-message-list__custom-view--empty\"\n *ngIf=\"state == states.empty && emptyStateView\">\n <ng-container *ngTemplateOutlet=\"emptyStateView\">\n </ng-container>\n </span>\n </div>\n </div>\n <div class=\"cc-message-list__bubble\"\n *ngFor=\"let message of messagesList; let i = index\">\n <div class=\"cc-message-list__date-container\"\n *ngIf=\"(i === 0) && message?.getSentAt() && !hideDateSeparator\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message!.getSentAt()\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div class=\"cc-message-list__date-container\"\n *ngIf=\"(i > 0 && isDateDifferent(messagesList[i - 1]?.getSentAt(), messagesList[i]?.getSentAt())) && message?.getSentAt() && !hideDateSeparator\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <div *ngIf=\"!getBubbleWrapper(message)\" #messageBubbleRef\n [id]=\"message?.getId()\">\n <cometchat-message-bubble\n [leadingView]=\" showAvatar ? leadingView : null\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"showStatusInfo(message) ? statusInfoView : null\"\n [headerView]=\"getHeaderView(message) || message?.getCategory() != MessageCategory.action && showHeaderTitle(message) ? bubbleHeader : null\"\n [footerView]=\"getFooterView(message) || reactionView\"\n [contentView]=\"contentView\" [threadView]=\"threadView\"\n [id]=\"message?.getId() || message?.getMuid()\"\n [options]=\"setMessageOptions(message)\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"setBubbleAlignment(message)\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <cometchat-reactions\n *ngIf=\"message.getReactions() && message.getReactions().length > 0 && !disableReactions\"\n [messageObject]=\"getClonedReactionObject(message)\"\n [alignment]=\"setBubbleAlignment(message)\"\n [reactionsStyle]=\"getReactionsStyle()\"\n [reactionClick]=\"addReactionOnClick\"\n [reactionListConfiguration]=\"getReactionListConfiguration()\"\n [reactionInfoConfiguration]=\"getReactionInfoConfiguration()\"></cometchat-reactions>\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc-message-list__bubble-status-info\"\n [ngStyle]=\"getStatusInfoStyle(message)\">\n <div *ngIf=\"getStatusInfoView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getStatusInfoView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #bubbleFooter>\n <div class=\"cc-message-list__bubble-date\"\n *ngIf=\"timestampAlignment == timestampEnum.bottom && message?.getCategory() != MessageCategory.action && !message.getDeletedAt() && message?.getCategory() != MessageCategory.call && message?.getSentAt()\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\"shouldShowMessage(message, disableReceipt, hideReceipt)\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"getReceiptStyle(message)\"\n [waitIcon]=\"waitIcon\" [sentIcon]=\"sentIcon\"\n [deliveredIcon]=\"deliveredIcon\" [readIcon]=\"readIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n <ng-template #threadView>\n <div class=\"cc-message-list__threadreplies\"\n *ngIf=\"message?.getReplyCount() && !message.getDeletedAt()\"\n [ngStyle]=\"getThreadViewAlignment(message)\">\n <cometchat-icon-button [iconURL]=\"threadIndicatorIcon\"\n [mirrorIcon]=\"getThreadIconAlignment(message)\"\n [buttonStyle]=\"getThreadViewStyle(message)\"\n (cc-button-clicked)=\"openThreadView(message)\"\n [text]='getThreadCount(message)'>\n <!-- <span slot=\"buttonView\" [ngStyle]=\"getUnreadRepliesCountStyle()\"\n class=\"cc-message-list__unread-thread\"\n *ngIf=\"!message.getDeletedAt() && message.getUnreadReplyCount() > 0\">\n {{message.getUnreadReplyCount()}}\n </span> -->\n\n </cometchat-icon-button>\n </div>\n </ng-template>\n </cometchat-message-bubble>\n </div>\n </div>\n <div class=\"cc-message-list__bottom\" #bottom>\n </div>\n\n </div>\n <div class=\"cc-message-list__message-indicator\"\n *ngIf=\"UnreadCount && UnreadCount.length > 0 && !isOnBottom\"\n [ngStyle]=\"{bottom: showSmartReply || footerView || showConversationStarter || showConversationSummary ? '20px' : '10px'}\">\n <cometchat-icon-button [iconURL]=\"newMessageIndicatorIconUrl\" [text]=\"newMessageCount\"\n [buttonStyle]=\"unreadMessagesStyle\"\n (cc-button-clicked)=\"scrollToBottom()\"></cometchat-icon-button>\n </div>\n <div class=\"cc-message-list__footer-view\" [ngStyle]=\"{height: 'auto'}\">\n\n <div *ngIf=\"footerView;else footer\">\n <ng-container *ngTemplateOutlet=\"footerView\">\n </ng-container>\n </div>\n <ng-template #footer>\n\n <div class=\"cc-message-list__smart-replies\"\n *ngIf=\"!showConversationStarter && showSmartReply && getReplies()\">\n <smart-replies [smartReplyStyle]=\"smartReplyStyle\"\n [replies]=\"getReplies()\" (cc-reply-clicked)=\"sendReply($event)\"\n (cc-close-clicked)=\"closeSmartReply()\">\n </smart-replies>\n </div>\n\n\n <div class=\"cc-message-list__conversation-starters\"\n *ngIf=\"enableConversationStarter && showConversationStarter\">\n <cometchat-ai-card [state]=\"conversationStarterState\"\n [loadingStateText]=\"starterLoadingStateText\"\n [emptyStateText]=\"starterEmptyStateText\"\n [errorStateText]=\"errorStateText\">\n <smart-replies\n *ngIf=\"conversationStarterState == states.loaded && !parentMessageId\"\n [smartReplyStyle]=\"conversationStarterStyle\"\n [replies]=\"conversationStarterReplies\" slot=\"loadedView\"\n (cc-reply-clicked)=\"sendConversationStarter($event)\"\n [closeIconURL]=\"''\">\n </smart-replies>\n </cometchat-ai-card>\n </div>\n\n <div class=\"cc-message-list__conversation-summary\"\n *ngIf=\"enableConversationSummary && showConversationSummary\">\n\n <cometchat-ai-card [state]=\"conversationSummaryState\"\n [loadingStateText]=\"summaryLoadingStateText\"\n [emptyStateText]=\"summaryEmptyStateText\"\n [errorStateText]=\"errorStateText\" [errorIconURL]=\"aiErrorIcon\"\n [emptyIconURL]=\"aiEmptyIcon\">\n <cometchat-panel\n *ngIf=\"conversationSummaryState == states.loaded && !parentMessageId\"\n slot=\"loadedView\" [panelStyle]=\"conversationSummaryStyle\"\n title=\"Conversation Summary\" [text]=\"conversationSummary\"\n (cc-close-clicked)=\"closeConversationSummary()\">\n </cometchat-panel>\n </cometchat-ai-card>\n\n </div>\n\n </ng-template>\n </div>\n\n</div>\n<!-- default bubbles -->\n<ng-template #textBubble let-message>\n <cometchat-text-bubble\n *ngIf=\"message?.type == MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"getActionMessage(message)\"></cometchat-text-bubble>\n <cometchat-text-bubble *ngIf=\"message?.getDeletedAt()\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"localize('MESSAGE_IS_DELETED')\"></cometchat-text-bubble>\n <cometchat-text-bubble\n *ngIf=\"!isTranslated(message) && !getLinkPreview(message) && !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"getTextMessage(message)\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n <link-preview [linkPreviewStyle]=\"linkPreviewStyle\"\n (cc-link-clicked)=\"openLinkURL($event)\"\n *ngIf=\"!message?.getDeletedAt() && getLinkPreview(message) && enableLinkPreview\"\n [title]=\"getLinkPreviewDetails('title',message)\"\n [description]=\"getLinkPreviewDetails('description',message)\"\n [URL]=\"getLinkPreviewDetails('url',message)\"\n [image]=\"getLinkPreviewDetails('image',message)\"\n [favIconURL]=\"getLinkPreviewDetails('favicon',message)\">\n <cometchat-text-bubble\n *ngIf=\"!isTranslated(message) && getLinkPreview(message) && !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"getTextMessage(message)\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n </link-preview>\n <message-translation-bubble [alignment]=\"getBubbleAlignment(message)\"\n *ngIf=\"isTranslated(message)\"\n [messageTranslationStyle]=\"setTranslationStyle(message)\"\n [translatedText]=\"isTranslated(message)\"\n [textFormatters]=\"getTextFormatters(message)\">\n <cometchat-text-bubble\n *ngIf=\" !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"message?.text\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n\n </message-translation-bubble>\n</ng-template>\n<ng-template #fileBubble let-message>\n\n <cometchat-file-bubble [fileStyle]=\"setFileBubbleStyle(message)\"\n [downloadIconURL]=\"downloadIconURL\" [subtitle]=\"localize('SHARED_FILE')\"\n [title]=\"message?.data?.attachments ? message?.data?.attachments[0]?.name: ''\"\n [fileURL]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"></cometchat-file-bubble>\n</ng-template>\n<ng-template #audioBubble let-message>\n <cometchat-icon-button [disabled]=\"true\"\n *ngIf=\"message?.category == callConstant && message?.type == MessageTypesConstant.audio\"\n [iconURL]=\"getCallTypeIcon(message)\"\n [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n <cometchat-audio-bubble\n *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\">\n </cometchat-audio-bubble>\n</ng-template>\n<ng-template #videoBubble let-message>\n <cometchat-icon-button [disabled]=\"true\"\n *ngIf=\"message?.category == callConstant && message?.type == MessageTypesConstant.video\"\n [iconURL]=\"getCallTypeIcon(message)\"\n [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n\n <cometchat-video-bubble\n *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [videoStyle]=\"videoBubbleStyle\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"\n [poster]=\" getImageThumbnail(message)\"></cometchat-video-bubble>\n</ng-template>\n<ng-template #imageBubble let-message>\n <image-moderation (cc-show-dialog)=\"openWarningDialog($event)\"\n *ngIf=\"!message.getDeletedAt() && enableImageModeration\" [message]=\"message\"\n [imageModerationStyle]=\"imageModerationStyle\">\n <cometchat-image-bubble (cc-image-clicked)=\"openImageInFullScreen(message)\"\n [imageStyle]=\"imageBubbleStyle\" [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n </image-moderation>\n <cometchat-image-bubble [imageStyle]=\"imageBubbleStyle\"\n (cc-image-clicked)=\"openImageInFullScreen(message)\"\n *ngIf=\"!message.getDeletedAt() && !enableImageModeration\"\n [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n</ng-template>\n<ng-template #formBubble let-message>\n <cometchat-form-bubble [message]=\"message\"\n [formBubbleStyle]=\"getFormMessageBubbleStyle()\"></cometchat-form-bubble>\n</ng-template>\n<ng-template #cardBubble let-message>\n <cometchat-card-bubble [message]=\"message\"\n [cardBubbleStyle]=\"getCardMessageBubbleStyle()\"></cometchat-card-bubble>\n</ng-template>\n<ng-template #customTextBubble>\n</ng-template>\n<ng-template #stickerBubble let-message>\n <cometchat-image-bubble [src]=\"getSticker(message)\"\n [imageStyle]=\"imageBubbleStyle\"></cometchat-image-bubble>\n\n</ng-template>\n<ng-template #whiteboardBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\"\n [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboard\"\n [iconURL]=\"whiteboardIconURL\" [title]=\"whiteboardTitle\"\n [buttonText]=\"whiteboardButtonText\"\n [subtitle]=\"whiteboardSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #documentBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\"\n [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeDocument\"\n [iconURL]=\"documentIconURL\" [title]=\"documentTitle\"\n [buttonText]=\"documentButtonText\"\n [subtitle]=\"documentSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #directCalling let-message>\n <cometchat-document-bubble [hideSeparator]=\"true\"\n [iconAlignment]=\"callBubbleAlignment\"\n [documentStyle]=\"getCallBubbleStyle(message)\" [URL]=\"getSessionId(message)\"\n [ccClicked]=\"getStartCallFunction(message)\" [iconURL]=\"directCallIconURL\"\n [title]=\"getCallBubbleTitle(message)\" [buttonText]=\"joinCallButtonText\"\n *ngIf=\"message.category == 'custom'\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #schedulerBubble let-message>\n <cometchat-scheduler-bubble [schedulerMessage]=\"message\"\n [loggedInUser]=\"loggedInUser\"\n [schedulerBubbleStyle]=\"getSchedulerBubbleStyle(message)\"></cometchat-scheduler-bubble>\n\n</ng-template>\n<ng-template #pollBubble let-message>\n <polls-bubble [pollStyle]=\"pollBubbleStyle\"\n [pollQuestion]=\"getPollBubbleData(message,'question')\"\n [pollId]=\"getPollBubbleData(message,'id')\" [loggedInUser]=\"loggedInUser\"\n [senderUid]=\"getPollBubbleData(message)\"\n [metadata]=\"message?.metadata\"></polls-bubble>\n\n</ng-template>\n\n<!-- thread bubble view -->\n<ng-template #threadMessageBubble let-message>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"showStatusInfo(message) ? statusInfoView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [footerView]=\"getFooterView(message)\" [contentView]=\"contentView\"\n [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"threadedAlignment\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc-message-list__bubble-status-info\"\n [ngStyle]=\"getStatusInfoStyle(message)\">\n <div *ngIf=\"getStatusInfoView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getStatusInfoView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #bubbleFooter>\n <div class=\"cc-message-list__bubble-date\"\n *ngIf=\"timestampAlignment == timestampEnum.bottom && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call && message?.getSentAt()\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\"shouldShowMessage(message, disableReceipt, hideReceipt)\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"getReceiptStyle(message)\" [waitIcon]=\"waitIcon\"\n [sentIcon]=\"sentIcon\" [deliveredIcon]=\"\"\n [readIcon]=\"deliveredIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n </cometchat-message-bubble>\n\n</ng-template>\n\n\n<!-- -->\n<cometchat-popover [popoverStyle]=\"popoverStyle\" #popoverRef\n [placement]=\"keyboardAlignment\" (cc-popover-outside-clicked)=\"onEmojiKeyboardClosed()\">\n <cometchat-emoji-keyboard (cc-emoji-clicked)=\"addReaction($event)\"\n slot=\"content\"\n [emojiKeyboardStyle]=\"emojiKeyboardStyle\"></cometchat-emoji-keyboard>\n</cometchat-popover>\n<cometchat-backdrop *ngIf=\"openConfirmDialog\" [backdropStyle]=\"backdropStyle\">\n <cometchat-confirm-dialog [title]=\"''\" [messageText]=\"warningText\"\n (cc-confirm-clicked)=\"onConfirmClick()\" [cancelButtonText]=\"cancelText\"\n [confirmButtonText]=\"confirmText\" (cc-cancel-clicked)=\"onCancelClick()\"\n [confirmDialogStyle]=\"confirmDialogStyle\">\n\n </cometchat-confirm-dialog>\n</cometchat-backdrop>\n<cometchat-full-screen-viewer (cc-close-clicked)=\"closeImageInFullScreen()\"\n *ngIf=\"openFullscreenView\" [URL]=\"imageurlToOpen\"\n [closeIconURL]=\"closeIconURL\" [fullScreenViewerStyle]=\"fullScreenViewerStyle\">\n\n</cometchat-full-screen-viewer>\n\n<!-- ongoing callscreen for direct call -->\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\"\n [callSettingsBuilder]=\"getCallBuilder()\" [ongoingCallStyle]=\"ongoingCallStyle\"\n [sessionID]=\"sessionId\"></cometchat-ongoing-call>\n<!-- message information view -->\n<!-- thread bubble view -->\n<ng-template #messageinfoBubble let-message>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"getStatusInfoView(message)\"\n [footerView]=\"getFooterView(message)\"\n [leadingView]=\"showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [contentView]=\"contentView\" [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"messageInfoAlignment\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n </cometchat-message-bubble>\n\n</ng-template>\n<cometchat-backdrop *ngIf=\"openMessageInfoPage\" [backdropStyle]=\"backdropStyle\">\n <cometchat-message-information\n [closeIconURL]=\"messageInformationConfiguration.closeIconURL\"\n [loadingStateView]=\"messageInformationConfiguration.loadingStateView\"\n [errorStateView]=\"messageInformationConfiguration.errorStateView\"\n [listItemStyle]=\"messageInformationConfiguration.listItemStyle\"\n [emptyStateView]=\"messageInformationConfiguration.emptyStateView\"\n [loadingIconURL]=\"messageInformationConfiguration.loadingIconURL\"\n [readIcon]=\"messageInformationConfiguration.readIcon\"\n [deliveredIcon]=\"messageInformationConfiguration.deliveredIcon\"\n [onError]=\"messageInformationConfiguration.onError\"\n [SubtitleView]=\"messageInformationConfiguration.subtitleView\"\n [receiptDatePattern]=\"messageInformationConfiguration.receiptDatePattern\"\n [listItemView]=\"messageInformationConfiguration.listItemView \"\n [messageInformationStyle]=\"messageInformationConfiguration.messageInformationStyle\"\n [onClose]=\"messageInformationConfiguration.onClose ?? closeMessageInfoPage\"\n [bubbleView]=\"messageInformationConfiguration.bubbleView ?? messageinfoBubble\"\n [message]=\"messageInfoObject\">\n\n </cometchat-message-information>\n</cometchat-backdrop>\n","import {\n AvatarStyle,\n BackdropStyle,\n ChangeScopeStyle,\n CheckboxStyle,\n ListItemStyle,\n MenuListStyle,\n} from \"@cometchat/uikit-elements\";\nimport {\n BaseStyle,\n CometChatUIKitUtility,\n GroupMemberUtils,\n GroupMembersStyle,\n ListStyle,\n} from \"@cometchat/uikit-shared\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n} from \"@angular/core\";\nimport {\n CometChatGroupEvents,\n CometChatOption,\n CometChatTheme,\n CometChatUIKitConstants,\n SelectionMode,\n States,\n TitleAlignment,\n UserPresencePlacement,\n fontHelper,\n localize,\n} from \"@cometchat/uikit-resources\";\nimport { Subject, Subscription } from \"rxjs\";\n\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatException } from \"../../Shared/Utils/ComeChatException\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { MessageUtils } from \"../../Shared/Utils/MessageUtils\";\n\n/**\n *\n * CometChatGroupMembersComponent is used to render list of group members\n *\n * @version 1.0.0\n * @author CometChatTeam\n * @copyright © 2022 CometChat Inc.\n *\n */\n@Component({\n selector: \"cometchat-group-members\",\n templateUrl: \"./cometchat-group-members.component.html\",\n styleUrls: [\"./cometchat-group-members.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatGroupMembersComponent implements OnInit, OnChanges {\n @Input() groupMemberRequestBuilder!: CometChat.GroupMembersRequestBuilder;\n @Input() searchRequestBuilder!: CometChat.GroupMembersRequestBuilder;\n @Input() subtitleView!: TemplateRef<any>;\n @Input() listItemView!: TemplateRef<any>;\n @Input() tailView!: TemplateRef<any>;\n @Input() disableUsersPresence: boolean = false;\n @Input() menu!: TemplateRef<any>;\n @Input() options!:\n | ((member: CometChat.GroupMember) => CometChatOption[])\n | null;\n @Input() backButtonIconURL: string = \"assets/backbutton.svg\";\n @Input() closeButtonIconURL: string | undefined = \"assets/close2x.svg\";\n @Input() showBackButton: boolean = true;\n @Input() hideSeparator: boolean = false;\n @Input() selectionMode: SelectionMode = SelectionMode.none;\n @Input() searchPlaceholder: string = localize(\"SEARCH\");\n @Input() searchIconURL: string = \"assets/search.svg\";\n @Input() hideSearch: boolean = true;\n @Input() title: string = localize(\"MEMBERS\");\n @Input() onError?: ((error: CometChat.CometChatException) => void) | null = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n @Input() backdropStyle: BackdropStyle = {\n height: \"100%\",\n width: \"100%\",\n background: \"rgba(0, 0, 0, 0.5)\",\n position: \"fixed\",\n };\n @Input() onBack!: () => void;\n @Input() onClose!: () => void;\n @Input() onSelect!: (\n groupMember: CometChat.GroupMember,\n selected: boolean\n ) => void;\n @Input() group!: CometChat.Group;\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() errorStateView!: TemplateRef<any>;\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() emptyStateText: string = localize(\"NO_USERS_FOUND\");\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() titleAlignment: TitleAlignment = TitleAlignment.center;\n @Input() dropdownIconURL: string = \"assets/down-arrow.svg\";\n @Input() statusIndicatorStyle: any = {\n height: \"10px\",\n width: \"10px\",\n borderRadius: \"16px\",\n border: \"\",\n };\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"32px\",\n height: \"32px\",\n };\n @Input() groupMembersStyle: GroupMembersStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"\",\n borderRadius: \"\",\n };\n @Input() groupScopeStyle: ChangeScopeStyle = new ChangeScopeStyle({\n height: \"200px\",\n width: \"280px\",\n closeIconTint:\"\",\n buttonBackground:\"\",\n });\n @Input() listItemStyle: ListItemStyle = {\n height: \"100%\",\n width: \"100%\",\n background: \"\",\n activeBackground: \"transparent\",\n borderRadius: \"grey\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"\",\n hoverBackground: \"transparent\",\n separatorColor: \"rgba(222 222 222 / 46%)\",\n };\n @Input() onItemClick!: (user: CometChat.GroupMember) => void;\n @Input() onEmpty?: () => void;\n @Input() userPresencePlacement: UserPresencePlacement =\n UserPresencePlacement.bottom;\n @Input() disableLoadingState: boolean = false;\n listStyle: ListStyle = {};\n menuListStyle: MenuListStyle = {\n width: \"\",\n height: \"\",\n border: \"none\",\n borderRadius: \"8px\",\n background: \"white\",\n submenuWidth: \"100%\",\n submenuHeight: \"100%\",\n submenuBorder: \"1px solid #e8e8e8\",\n submenuBorderRadius: \"8px\",\n submenuBackground: \"white\",\n moreIconTint: \"rgb(51, 153, 255)\",\n };\n modalStyle: any = {\n height: \"212px\",\n width: \"360px\",\n background: \"white\",\n borderRadius: \"12px\",\n border: \"none\",\n };\n public limit: number = 30;\n moreIconURL: string = \"assets/moreicon.svg\";\n @Input() searchKeyword: string = \"\";\n onScrolledToBottom: any = null;\n public isString = (data: any) => typeof data == \"string\";\n public isArray = (data: any) => typeof data == \"object\" && data?.length > 0;\n public getOptions = (member: CometChat.GroupMember) => {\n let options = GroupMemberUtils.getViewMemberOptions(\n member,\n this.group,\n this.loggedInUser?.getUid(),\n this.themeService.theme\n );\n return options;\n };\n selectedMember!: CometChat.GroupMember | null;\n titleAlignmentEnum: typeof TitleAlignment = TitleAlignment;\n selectionmodeEnum: typeof SelectionMode = SelectionMode;\n public groupsRequest: any;\n public state: States = States.loading;\n public timeout: any;\n public groupMembers: CometChat.GroupMember[] = [];\n public scopes: string[] = [];\n public membersListenerId: string = \"memberlist_\" + new Date().getTime();\n loggedInUser!: CometChat.User | null;\n changeScope: boolean = false;\n fetchingGroups: boolean = false;\n fetchTimeOut: any;\n public previousSearchKeyword = \"\";\n checkboxStyle: CheckboxStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"4px\",\n checkedBackgroundColor: \"#2196F3\",\n uncheckedBackgroundColor: \"#ccc\"\n }\n\n constructor(\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) { }\n\n public memberScope: any[] = [];\n membersList: CometChat.GroupMember[] = [];\n\n closeClicked() {\n if (this.onClose) {\n this.onClose();\n }\n }\n backClicked() {\n if (this.onBack) {\n this.onBack();\n }\n }\n onClick = (groupMember: CometChat.GroupMember) => {\n if (this.onItemClick) {\n this.onItemClick(groupMember);\n }\n };\n onMemberSelected(member: CometChat.GroupMember, event: any) {\n let selected: boolean = event?.detail?.checked;\n if (this.onSelect) {\n this.onSelect(member, selected);\n }\n }\n ngOnInit(): void {\n this.onScrolledToBottom = this.fetchNextGroupMembers;\n this.setThemeStyle();\n this.attachListeners();\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n this.groupsRequest = this.getRequestBuilder();\n if (!this.fetchingGroups) {\n this.fetchNextGroupMembers();\n }\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"searchKeyword\"]) {\n this.searchKeyWordUpdated();\n }\n }\n\n searchKeyWordUpdated = () => {\n if (this.fetchingGroups) {\n clearTimeout(this.fetchTimeOut);\n this.fetchTimeOut = setTimeout(() => {\n this.searchForGroupMembers();\n }, 800);\n } else {\n this.searchForGroupMembers();\n }\n };\n\n searchForGroupMembers = () => {\n const request = this.searchRequestBuilder\n ? this.searchRequestBuilder.setSearchKeyword(this.searchKeyword).build()\n : this.getRequestBuilder();\n this.groupsRequest = request;\n if (!this.disableLoadingState) {\n this.groupMembers = [];\n }\n this.fetchNextGroupMembers();\n };\n\n ngOnDestroy() {\n this.removeListener();\n }\n /**\n * @param {CometChat.GroupMember} member\n */\n getStatusIndicatorColor = (member: CometChat.GroupMember) => {\n let userStatusVisibility = new MessageUtils().getUserStatusVisibility(member) || this.disableUsersPresence;\n if (!userStatusVisibility) {\n return this.groupMembersStyle.onlineStatusColor ?? this.themeService.theme.palette.getSuccess();\n }\n return null;\n };\n /**\n * @param {CometChat.GroupMember} member\n */\n getStatusIndicatorStyle = (member: CometChat.GroupMember) => {\n let userStatusVisibility = new MessageUtils().getUserStatusVisibility(member) || this.disableUsersPresence;\n if(!userStatusVisibility){\n return(\n this.statusIndicatorStyle\n )\n }\n return null;\n }\n changeMemberScope(event: any) {\n CometChat.updateGroupMemberScope(\n this.group.getGuid(),\n this.selectedMember!.getUid(),\n event?.detail?.value\n )\n .then((member: boolean) => {\n let scope: any = event?.detail?.value;\n this.changeScope = false;\n this.selectedMember?.setScope(scope);\n this.updateMember(this.selectedMember);\n CometChatGroupEvents.ccGroupMemberScopeChanged.next({\n scopeChangedFrom: this.selectedMember?.getScope(),\n scopeChangedTo: scope,\n message: this.createActionMessage(\n this.selectedMember!,\n CometChatUIKitConstants.groupMemberAction.SCOPE_CHANGE\n ),\n group: this.group,\n updatedUser: this.selectedMember!,\n });\n this.selectedMember = null;\n this.changeScope = false;\n })\n .catch((err: CometChat.CometChatException) => {\n this.changeScope = false;\n this.selectedMember = null;\n });\n }\n handleMenuAction = (menu: any, groupMember: CometChat.GroupMember) => {\n if (menu?.detail?.data?.onClick) {\n menu?.detail?.data?.onClick(groupMember);\n return;\n }\n let id = menu?.detail?.data?.id;\n this.selectedMember = groupMember;\n this.memberScope = GroupMemberUtils.allowScopeChange(\n this.group,\n groupMember\n );\n if (id == CometChatUIKitConstants.GroupMemberOptions.changeScope) {\n this.changeScope = true;\n this.scopes = [];\n } else if (id == CometChatUIKitConstants.GroupMemberOptions.ban) {\n this.changeScope = false;\n this.blockMember(groupMember);\n } else if (id == CometChatUIKitConstants.GroupMemberOptions.kick) {\n this.kickMember(groupMember);\n }\n };\n blockMember = (member: CometChat.GroupMember) => {\n CometChat.banGroupMember(this.group.getGuid(), member.getUid()).then(() => {\n this.group.setMembersCount(this.group.getMembersCount() - 1);\n this.addRemoveMember(member);\n CometChatGroupEvents.ccGroupMemberBanned.next({\n kickedBy: this.loggedInUser!,\n kickedFrom: this.group!,\n kickedUser: member,\n message: this.createActionMessage(\n member,\n CometChatUIKitConstants.groupMemberAction.BANNED\n ),\n });\n });\n };\n createActionMessage(actionOn: CometChat.GroupMember, action: string) {\n\n const messageUtils = new MessageUtils()\n\n let actionMessage: CometChat.Action = new CometChat.Action(\n this.group.getGuid(),\n CometChatUIKitConstants.MessageTypes.groupMember,\n CometChatUIKitConstants.MessageReceiverType.group,\n CometChatUIKitConstants.MessageCategory.action as any\n );\n actionMessage.setAction(action);\n actionMessage.setActionBy(this.loggedInUser!);\n actionMessage.setActionFor(this.group);\n actionMessage.setActionOn(actionOn);\n actionMessage.setReceiver(this.group);\n actionMessage.setSender(this.loggedInUser!);\n actionMessage.setConversationId(\"group_\" + this.group.getGuid());\n actionMessage.setMuid(CometChatUIKitUtility.ID());\n actionMessage.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n actionMessage.setReceiverType(\n CometChatUIKitConstants.MessageReceiverType.group\n );\n (actionMessage as any).data = {\n extras: {\n scope: {\n new: actionOn.getScope(),\n },\n },\n };\n actionMessage.setNewScope(actionOn.getScope())\n actionMessage.setMessage(\n messageUtils.getActionMessage(actionMessage)\n );\n return actionMessage;\n }\n kickMember = (member: CometChat.GroupMember) => {\n CometChat.kickGroupMember(this.group.getGuid(), member.getUid())\n .then(() => {\n this.group.setMembersCount(this.group.getMembersCount() - 1);\n this.addRemoveMember(member);\n CometChatGroupEvents.ccGroupMemberKicked.next({\n kickedBy: this.loggedInUser!,\n kickedFrom: this.group!,\n kickedUser: member,\n message: this.createActionMessage(\n member,\n CometChatUIKitConstants.groupMemberAction.KICKED\n ),\n });\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n };\n /**\n * @param {CometChat.User} member\n */\n updateMemberStatus = (member: CometChat.User) => {\n let memberlist = [...this.groupMembers];\n //search for user\n let userKey = memberlist.findIndex(\n (u: CometChat.GroupMember, k) => u.getUid() == member.getUid()\n );\n //if found in the list, update user object\n if (userKey > -1) {\n let user: CometChat.GroupMember = memberlist[userKey];\n user.setStatus(member.getStatus());\n memberlist.splice(userKey, 1, user);\n this.groupMembers = [...memberlist];\n this.ref.detectChanges();\n }\n };\n updateMember = (member: CometChat.GroupMember | null) => {\n let memberlist = [...this.groupMembers];\n //search for user\n let userKey = memberlist.findIndex(\n (u: CometChat.GroupMember, k) => u.getUid() == member!.getUid()\n );\n //if found in the list, update user object\n if (userKey > -1) {\n let user: CometChat.GroupMember = memberlist[userKey];\n memberlist.splice(userKey, 1, user);\n this.groupMembers = [...memberlist];\n this.ref.detectChanges();\n }\n };\n attachListeners() {\n //Attaching User Listeners to dynamilcally update when a user comes online and goes offline\n CometChat.addUserListener(\n this.membersListenerId,\n new CometChat.UserListener({\n onUserOnline: (onlineUser: CometChat.User) => {\n /* when someuser/friend comes online, user will be received here */\n this.updateMemberStatus(onlineUser);\n },\n onUserOffline: (offlineUser: CometChat.User) => {\n /* when someuser/friend went offline, user will be received here */\n this.updateMemberStatus(offlineUser);\n },\n })\n );\n CometChat.addGroupListener(\n this.membersListenerId,\n new CometChat.GroupListener({\n onGroupMemberScopeChanged: (\n message: CometChat.Action,\n changedUser: CometChat.GroupMember,\n newScope: CometChat.GroupMemberScope,\n oldScope: CometChat.GroupMemberScope,\n changedGroup: CometChat.Group\n ) => {\n if (changedUser.getUid() == this.loggedInUser?.getUid()) {\n changedGroup.setScope(newScope);\n }\n this.updateMember(changedUser as CometChat.GroupMember);\n },\n onGroupMemberKicked: (\n message: CometChat.Action,\n kickedUser: CometChat.User,\n kickedBy: CometChat.User,\n kickedFrom: CometChat.Group\n ) => {\n this.addRemoveMember(kickedUser as CometChat.GroupMember);\n },\n onGroupMemberBanned: (\n message: CometChat.Action,\n bannedUser: CometChat.User,\n bannedBy: CometChat.User,\n bannedFrom: CometChat.Group\n ) => {\n this.addRemoveMember(bannedUser as CometChat.GroupMember);\n },\n onGroupMemberUnbanned: (\n message: CometChat.Action,\n unbannedUser: CometChat.User,\n unbannedBy: CometChat.User,\n unbannedFrom: CometChat.Group\n ) => {\n if (unbannedUser.getUid() == this.loggedInUser?.getUid()) {\n unbannedFrom.setHasJoined(false);\n }\n this.addRemoveMember(unbannedUser as CometChat.GroupMember);\n },\n onMemberAddedToGroup: (\n message: CometChat.Action,\n userAdded: CometChat.User,\n userAddedBy: CometChat.User,\n userAddedIn: CometChat.Group\n ) => {\n let member: CometChat.GroupMember = new CometChat.GroupMember(\n userAdded.getUid(),\n CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT\n );\n member.setName(userAdded.getName());\n member.setGuid(this.group.getGuid());\n member.setUid(userAdded.getUid());\n if (userAdded.getUid() == this.loggedInUser?.getUid()) {\n userAddedIn.setHasJoined(true);\n }\n this.addRemoveMember(member);\n },\n onGroupMemberLeft: (\n message: CometChat.Action,\n leavingUser: CometChat.User,\n group: CometChat.Group\n ) => {\n if (leavingUser.getUid() == this.loggedInUser?.getUid()) {\n group.setHasJoined(false);\n }\n this.addRemoveMember(leavingUser as CometChat.GroupMember);\n },\n onGroupMemberJoined: (\n message: CometChat.Action,\n joinedUser: CometChat.User,\n joinedGroup: CometChat.Group\n ) => {\n this.addRemoveMember(joinedUser as CometChat.GroupMember);\n },\n })\n );\n }\n removeListener() {\n CometChat.removeUserListener(this.membersListenerId);\n this.membersListenerId = \"\";\n }\n addRemoveMember = (member: CometChat.GroupMember) => {\n let memberlist = [...this.groupMembers];\n //search for user\n let memberKey = memberlist.findIndex(\n (u: CometChat.GroupMember, k) => u.getUid() == member.getUid()\n );\n //if found in the list, update user object\n if (memberKey > -1) {\n memberlist.splice(memberKey, 1);\n this.groupMembers = [...memberlist];\n this.ref.detectChanges();\n } else {\n this.groupMembers.push(member);\n this.ref.detectChanges();\n }\n };\n fetchNextGroupMembers = () => {\n this.onScrolledToBottom = null;\n if (\n this.groupsRequest &&\n this.groupsRequest.pagination &&\n (this.groupsRequest.pagination.current_page == 0 ||\n this.groupsRequest.pagination.current_page !=\n this.groupsRequest.pagination.total_pages)\n ) {\n this.fetchingGroups = true;\n this.onScrolledToBottom = this.fetchNextGroupMembers;\n try {\n this.groupsRequest.fetchNext().then(\n (groupMembers: CometChat.GroupMember[]) => {\n if (!this.disableLoadingState) {\n this.state = States.loading;\n }\n if (groupMembers.length <= 0) {\n if (this.onEmpty) {\n this.onEmpty();\n this.previousSearchKeyword = '';\n }\n }\n if (\n groupMembers.length <= 0 &&\n (this.groupMembers?.length <= 0)\n ) {\n this.state = States.empty;\n this.ref.detectChanges();\n } else {\n if (!this.disableLoadingState) {\n this.groupMembers = [...this.groupMembers, ...groupMembers];\n } else {\n if (this.searchKeyword != this.previousSearchKeyword ||\n [0, 1].includes(\n (this.groupsRequest as any).pagination.current_page\n )) {\n this.previousSearchKeyword = this.searchKeyword;\n this.groupMembers = groupMembers;\n } else {\n this.groupMembers = [...this.groupMembers, ...groupMembers];\n }\n }\n this.state = States.loaded;\n this.ref.detectChanges();\n }\n this.fetchingGroups = false;\n this.previousSearchKeyword = this.searchKeyword;\n },\n (error: any) => {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n this.state = States.error;\n this.ref.detectChanges();\n this.fetchingGroups = false;\n }\n );\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n this.state = States.error;\n this.ref.detectChanges();\n this.fetchingGroups = false;\n }\n } else {\n this.state = States.loaded;\n return;\n }\n };\n getRequestBuilder() {\n if (!this.searchKeyword) {\n this.previousSearchKeyword = \"\";\n }\n if (this.searchRequestBuilder) {\n return this.searchRequestBuilder\n .setSearchKeyword(this.searchKeyword)\n .build();\n } else if (this.groupMemberRequestBuilder) {\n return this.groupMemberRequestBuilder\n .setSearchKeyword(this.searchKeyword)\n .build();\n } else {\n return new CometChat.GroupMembersRequestBuilder(this.group.getGuid())\n .setLimit(this.limit)\n .setSearchKeyword(this.searchKeyword)\n .build();\n }\n }\n /**\n * @param {string} key\n */\n onSearch = (key: string) => {\n this.searchKeyword = key;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n const request = this.getRequestBuilder();\n this.groupsRequest = request;\n if (!this.disableLoadingState) {\n this.groupMembers = [];\n }\n this.fetchNextGroupMembers();\n }, 500);\n };\n setThemeStyle() {\n this.setGroupMembersStyle();\n this.setScopeStyle();\n this.setListItemStyle();\n this.setAvatarStyle();\n this.setStatusStyle();\n this.menuListStyle = new MenuListStyle({\n border: \"none\",\n borderRadius: \"8px\",\n background: \"transparent\",\n submenuWidth: \"100%\",\n submenuHeight: \"100%\",\n submenuBorder: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n submenuBorderRadius: \"8px\",\n submenuBackground: this.themeService.theme.palette.getBackground(),\n moreIconTint: this.themeService.theme.palette.getPrimary(),\n });\n this.modalStyle.boxShadow = `0px 0px 1px ${this.themeService.theme.palette.getAccent600()}`;\n this.modalStyle.background =\n this.themeService.theme.palette.getBackground();\n this.groupScopeStyle.closeIconTint = \n this.groupScopeStyle.closeIconTint || this.themeService.theme.palette.getPrimary();\n this.groupScopeStyle.buttonBackground = \n this.groupScopeStyle.buttonBackground || this.themeService.theme.palette.getPrimary();\n }\n setGroupMembersStyle() {\n let defaultStyle: GroupMembersStyle = new GroupMembersStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n onlineStatusColor: this.themeService.theme.palette.getSuccess(),\n separatorColor: this.themeService.theme.palette.getAccent400(),\n width: \"100%\",\n height: \"100%\",\n borderRadius: \"none\",\n searchIconTint: this.themeService.theme.palette.getAccent600(),\n searchPlaceholderTextColor:\n this.themeService.theme.palette.getAccent600(),\n searchBackground: this.themeService.theme.palette.getAccent100(),\n searchPlaceholderTextFont: fontHelper(\n this.themeService.theme.typography.text3\n ),\n searchTextColor: this.themeService.theme.palette.getAccent600(),\n searchTextFont: fontHelper(this.themeService.theme.typography.text3),\n searchBorderRadius: \"8px\",\n closeButtonIconTint: this.themeService.theme.palette.getPrimary(),\n backButtonIconTint: this.themeService.theme.palette.getPrimary(),\n padding: \"0 100px\",\n });\n this.groupMembersStyle = { ...defaultStyle, ...this.groupMembersStyle };\n this.listStyle = {\n titleTextFont:\n this.groupMembersStyle.titleTextFont ||\n fontHelper(this.themeService.theme.typography.title1),\n titleTextColor:\n this.groupMembersStyle.titleTextColor ||\n this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: this.groupMembersStyle.emptyStateTextFont,\n emptyStateTextColor: this.groupMembersStyle.emptyStateTextColor,\n errorStateTextFont: this.groupMembersStyle.errorStateTextFont,\n errorStateTextColor: this.groupMembersStyle.errorStateTextColor,\n loadingIconTint: this.groupMembersStyle.loadingIconTint,\n separatorColor: this.groupMembersStyle.separatorColor,\n searchIconTint: this.groupMembersStyle.searchIconTint,\n searchBorder: this.groupMembersStyle.searchBorder,\n searchBorderRadius: this.groupMembersStyle.searchBorderRadius,\n searchBackground: this.groupMembersStyle.searchBackground,\n searchPlaceholderTextFont:\n this.groupMembersStyle.searchPlaceholderTextFont,\n searchPlaceholderTextColor:\n this.groupMembersStyle.searchPlaceholderTextColor,\n searchTextFont: this.groupMembersStyle.searchTextFont,\n searchTextColor: this.groupMembersStyle.searchTextColor,\n };\n this.checkboxStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"4px\",\n checkedBackgroundColor: this.themeService.theme.palette.getPrimary(),\n uncheckedBackgroundColor: this.themeService.theme.palette.getAccent400()\n }\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: \"\",\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n hoverBackground: \"\",\n });\n this.listItemStyle = { ...defaultStyle, ...this.listItemStyle };\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"36px\",\n height: \"36px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n });\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };\n }\n setStatusStyle() {\n let defaultStyle: BaseStyle = {\n height: \"12px\",\n width: \"12px\",\n border: \"none\",\n borderRadius: \"24px\",\n };\n this.statusIndicatorStyle = {\n ...defaultStyle,\n ...this.statusIndicatorStyle,\n };\n }\n setScopeStyle() {\n let defaultStyle: ChangeScopeStyle = new ChangeScopeStyle({\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n activeTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n activeTextColor: this.themeService.theme.palette.getAccent(),\n activeTextBackground: this.themeService.theme.palette.getAccent200(),\n arrowIconTint: this.themeService.theme.palette.getAccent900(),\n textFont: fontHelper(this.themeService.theme.typography.subtitle1),\n textColor: this.themeService.theme.palette.getAccent600(),\n optionBackground: this.themeService.theme.palette.getBackground(),\n optionBorder: \"none\",\n optionBorderRadius: \"0\",\n hoverTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n hoverTextColor: this.themeService.theme.palette.getAccent900(),\n hoverTextBackground: this.themeService.theme.palette.getAccent100(),\n buttonTextFont: fontHelper(this.themeService.theme.typography.title2),\n buttonTextColor: this.themeService.theme.palette.getAccent(\"dark\"),\n buttonBackground: this.themeService.theme.palette.getPrimary(),\n closeIconTint: this.themeService.theme.palette.getPrimary(),\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n borderRadius: \"8px\",\n height: \"200px\",\n width: \"280px\",\n });\n this.groupScopeStyle = { ...defaultStyle, ...this.groupScopeStyle };\n }\n membersStyle = () => {\n return {\n padding: this.groupMembersStyle.padding,\n };\n };\n // styles\n backButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint:\n this.groupMembersStyle.backButtonIconTint ||\n this.themeService.theme.palette.getPrimary(),\n };\n };\n closeButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint:\n this.groupMembersStyle.closeButtonIconTint ||\n this.themeService.theme.palette.getPrimary(),\n };\n };\n wrapperStyle = () => {\n return {\n height: this.groupMembersStyle.height,\n width: this.groupMembersStyle.width,\n background:\n this.groupMembersStyle.background ||\n this.themeService.theme.palette.getBackground(),\n border: this.groupMembersStyle.border,\n borderRadius: this.groupMembersStyle.borderRadius,\n };\n };\n getScopeStyle = () => {\n return {\n textFont: this.groupScopeStyle.textFont,\n textColor: this.groupScopeStyle.textColor,\n };\n };\n}\n","<div class=\"cc-group-members\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-group-members__back\">\n <cometchat-button [iconURL]=\"backButtonIconURL\" [buttonStyle]=\"backButtonStyle()\" *ngIf=\"showBackButton\"\n (cc-button-clicked)=\"backClicked()\">\n\n </cometchat-button>\n </div>\n <div class=\"cc-group-members__wrapper\" [ngStyle]=\"membersStyle()\">\n <div class=\"cc-group-members__menus\">\n <ng-container *ngTemplateOutlet=\"menu\">\n </ng-container>\n </div>\n <cometchat-list [listItemView]=\"listItemView ? listItemView : listItem\" [onScrolledToBottom]=\"onScrolledToBottom\"\n [onSearch]=\"onSearch\" [list]=\"groupMembers\" [searchText]=\"searchKeyword\"\n [searchPlaceholderText]=\"searchPlaceholder\" [searchIconURL]=\"searchIconURL\" [hideSearch]=\"hideSearch\"\n [title]=\"title\" [emptyStateText]=\"emptyStateText\" [loadingIconURL]=\"loadingIconURL\"\n [titleAlignment]=\"titleAlignment\" [loadingStateView]=\"loadingStateView\" [emptyStateView]=\"emptyStateView\"\n [errorStateText]=\"errorStateText\" [errorStateView]=\"errorStateView\" [listStyle]=\"listStyle\" [state]=\"state\">\n </cometchat-list>\n <ng-template #listItem let-groupMember>\n <cometchat-list-item [title]=\"groupMember?.name\" [avatarURL]=\"groupMember?.avatar\"\n [avatarName]=\"groupMember?.name\" [listItemStyle]=\"listItemStyle\" [avatarStyle]=\"avatarStyle\"\n [statusIndicatorStyle]=\"getStatusIndicatorStyle(groupMember)\" [statusIndicatorColor]=\"getStatusIndicatorColor(groupMember)\"\n [hideSeparator]=\"hideSeparator\" (cc-listitem-clicked)=\"onClick(groupMember)\"\n [userPresencePlacement]=\"userPresencePlacement\">\n <div slot=\"subtitleView\" *ngIf=\"subtitleView\" class=\"cc-group-members__subtitle-view\">\n <ng-container *ngTemplateOutlet=\"subtitleView\">\n </ng-container>\n </div>\n <div slot=\"menuView\" class=\"cc-group-members__options\" *ngIf=\" !tailView && options\">\n <cometchat-menu-list [data]=\"options(groupMember)\" [menuListStyle]=\"menuListStyle\"\n (cc-menu-clicked)=\"handleMenuAction($event, groupMember)\"></cometchat-menu-list>\n </div>\n <div slot=\"tailView\" class=\"cc-group-members__tail-view\">\n\n <div *ngIf=\"tailView\">\n <ng-container *ngTemplateOutlet=\"tailView;context:{ $implicit: groupMember }\">\n </ng-container>\n\n </div>\n <div *ngIf=\"selectionMode != selectionmodeEnum.none\">\n <div *ngIf=\"selectionMode == selectionmodeEnum.single\" class=\"cc-group-members__selection--single\">\n <cometchat-radio-button (cc-radio-button-changed)=\"onMemberSelected(groupMember,$event)\">\n </cometchat-radio-button>\n </div>\n <div *ngIf=\"selectionMode == selectionmodeEnum.multiple\" class=\"cc-group-members__selection--multiple\">\n <cometchat-checkbox [checkboxStyle]=\"checkboxStyle\" (cc-checkbox-changed)=\"onMemberSelected(groupMember,$event)\"></cometchat-checkbox>\n </div>\n </div>\n <div *ngIf=\"!tailView\">\n <div class=\"cc-group-members__scopechange\" slot=\"tailView\">\n\n <cometchat-menu-list [moreIconURL]=\"moreIconURL\" *ngIf=\"isArray(getOptions(groupMember))\"\n [topMenuSize]=\"0\" [data]=\"getOptions(groupMember)\"\n (cc-menu-clicked)=\"handleMenuAction($event, groupMember)\" [menuListStyle]=\"menuListStyle\">\n </cometchat-menu-list>\n <cometchat-label *ngIf=\" isString(getOptions(groupMember))\" [text]=\"getOptions(groupMember)\"\n [labelStyle]=\"getScopeStyle()\">\n\n </cometchat-label>\n\n </div>\n </div>\n </div>\n </cometchat-list-item>\n\n </ng-template>\n </div>\n <div class=\"cc-group-members__close\" *ngIf=\"closeButtonIconURL\">\n <cometchat-button [iconURL]=\"closeButtonIconURL\" [buttonStyle]=\"closeButtonStyle()\"\n (cc-button-clicked)=\"closeClicked()\">\n\n </cometchat-button>\n </div>\n</div>\n<cometchat-backdrop *ngIf=\"changeScope && memberScope.length > 0\" [backdropStyle]=\"backdropStyle\">\n <cometchat-change-scope [changeScopeStyle]=\"groupScopeStyle\" [options]=\"memberScope\" [arrowIconURL]=\"dropdownIconURL\"\n (cc-changescope-close-clicked)=\"changeScope = false;\" (cc-changescope-changed)=\"changeMemberScope($event)\">\n\n </cometchat-change-scope>\n</cometchat-backdrop>","import { ChangeDetectorRef, Component, Input, OnInit, SimpleChanges } from '@angular/core';\nimport { AvatarStyle, ListItemStyle } from '@cometchat/uikit-elements';\nimport { UserMemberListType, UserPresencePlacement } from '@cometchat/uikit-resources';\nimport { CometChatThemeService } from '../CometChatTheme.service';\n\n\n\n@Component({\n selector: 'cometchat-user-member-wrapper',\n templateUrl: './cometchat-user-member-wrapper.component.html',\n styleUrls: ['./cometchat-user-member-wrapper.component.scss']\n})\n\n\nexport class CometChatUserMemberWrapperComponent {\n @Input() userMemberListType!: UserMemberListType;\n @Input() onItemClick!: (userMember: CometChat.User | CometChat.GroupMember) => void;\n @Input() listItemView: any;\n @Input() avatarStyle!: AvatarStyle;\n @Input() statusIndicatorStyle: any;\n @Input() searchKeyword!: string;\n @Input() group!: CometChat.Group;\n @Input() subtitleView?: any;\n @Input() usersRequestBuilder!: CometChat.UsersRequestBuilder;\n @Input() disableUsersPresence!: boolean;\n @Input() userPresencePlacement!: UserPresencePlacement;\n @Input() hideSeperator!: boolean;\n @Input() loadingStateView: any;\n @Input() onEmpty?: () => void;\n @Input() onError?: (error: CometChat.CometChatException) => void;\n @Input() groupMemberRequestBuilder!: CometChat.GroupMembersRequestBuilder;\n @Input() loadingIconUrl! : string;\n @Input() disableLoadingState!: boolean;\n public userMemberListTypeEnum = UserMemberListType;\n\n constructor(\n private themeService: CometChatThemeService\n ) { }\n\n\n public listItemStyle = new ListItemStyle({\n height: 'fit-content'\n })\n\n getUsersStyle = () => {\n return{\n border: '1px solid ' + this.themeService.theme.palette.getAccent300(),\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: '12px 12px 12px 12px'\n };\n };\n\n getGroupMemebersStyle = () => {\n return {\n border: '1px solid ' + this.themeService.theme.palette.getAccent300(),\n padding: \"0px\",\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: '12px 12px 12px 12px',\n };\n };\n\n}\n","<div class=\"cc__wrapper\">\n <cometchat-users *ngIf=\"userMemberListType == userMemberListTypeEnum.users\" [title]=\"''\" [hideSearch]=true\n [hideSeparator]=hideSeperator [showSectionHeader]=false [onItemClick]=\"onItemClick\" [avatarStyle]=\"avatarStyle\"\n [statusIndicatorStyle]=\"statusIndicatorStyle\" [searchKeyword]=\"searchKeyword\" [listItemView]=\"listItemView\"\n [usersRequestBuilder]=\"usersRequestBuilder\" [subtitleView]=\"subtitleView\" [loadingStateView]=\"loadingStateView\"\n [onEmpty]=\"onEmpty\" [loadingIconURL]=\"loadingIconUrl\" [userPresencePlacement]=\"userPresencePlacement\"\n [disableLoadingState]=\"disableLoadingState\" [onError]=\"onError\" [listItemStyle]=\"listItemStyle\" [usersStyle]=\"getUsersStyle()\">\n\n</cometchat-users>\n\n<cometchat-group-members *ngIf=\"userMemberListType == userMemberListTypeEnum.groupmembers\" [group]=\"group\" [title]=\"''\"\n [hideSearch]=true [showBackButton]=hideSeperator [hideSeparator]=false\n [groupMemberRequestBuilder]=\"groupMemberRequestBuilder\" [onItemClick]=\"onItemClick\" [avatarStyle]=\"avatarStyle\"\n [statusIndicatorStyle]=\"statusIndicatorStyle\" [listItemView]=\"listItemView\" [subtitleView]=\"subtitleView\"\n [options]=null [tailView]=emptyTailView [closeButtonIconURL]=undefined [searchKeyword]=\"searchKeyword\"\n [onEmpty]=\"onEmpty\" [userPresencePlacement]=\"userPresencePlacement\"\n [disableLoadingState]=\"disableLoadingState\" [onError]=\"onError\" [listItemStyle]=\"listItemStyle\" [groupMembersStyle]=\"getGroupMemebersStyle()\">\n</cometchat-group-members>\n\n<ng-template #emptyTailView></ng-template>\n</div>","import \"@cometchat/uikit-shared\";\nimport \"@cometchat/uikit-elements\";\n\nimport {\n AIOptionsStyle,\n CometChatMentionsFormatter,\n CometChatSoundManager,\n CometChatTextFormatter,\n CometChatUIKitUtility,\n ComposerId,\n CreatePollStyle,\n MessageComposerStyle,\n SmartRepliesStyle,\n StickersConfiguration,\n StickersConstants,\n StickersStyle,\n UserMemberWrapperConfiguration,\n UserMentionStyle,\n} from \"@cometchat/uikit-shared\";\nimport {\n ActionSheetStyle,\n BackdropStyle,\n EmojiKeyboardStyle,\n MediaRecorderStyle,\n PopoverStyle,\n PreviewStyle,\n processSubtitleContent\n} from \"@cometchat/uikit-elements\";\nimport {\n ActivePopover,\n AuxiliaryButtonAlignment,\n CometChatActionsView,\n CometChatMessageComposerAction,\n CometChatMessageEvents,\n CometChatUIEvents,\n CometChatUIKitConstants,\n IMentionsCountWarning,\n IMessages,\n MentionsTargetElement,\n MessageStatus,\n Placement,\n PreviewMessageMode,\n States,\n UserMemberListType,\n fontHelper,\n localize,\n} from \"@cometchat/uikit-resources\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from \"@angular/core\";\n\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatException } from \"../../Shared/Utils/ComeChatException\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { Subscription } from \"rxjs\";\nimport { shouldShowCustomMimeTypes } from \"../../Shared/Utils/UtilityFunctions\";\n\n/**\n *\n * CometChatMessageComposer is used to send message to user or group.\n *\n * @version 1.0.0\n * @author CometChatTeam\n * @copyright © 2022 CometChat Inc.\n *\n */\n@Component({\n selector: \"cometchat-message-composer\",\n templateUrl: \"./cometchat-message-composer.component.html\",\n styleUrls: [\"./cometchat-message-composer.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatMessageComposerComponent implements OnInit, OnChanges {\n @ViewChild(\"inputElement\", { static: false }) inputElementRef!: ElementRef;\n @ViewChild(\"inputRef\", { static: false }) inputRef!: ElementRef;\n @ViewChild(\"emojiButtonRef\", { static: false }) emojiButtonRef!: ElementRef;\n @ViewChild(\"actionSheetRef\", { static: false }) actionSheetRef!: ElementRef;\n @ViewChild(\"stickerButtonRef\", { static: false })\n stickerButtonRef!: ElementRef;\n @ViewChild(\"mediaRecordedRef\", { static: false })\n mediaRecordedRef!: ElementRef;\n @ViewChild(\"aiButtonRef\", { static: false }) aiButtonRef!: ElementRef;\n @ViewChild(\"userMemberWrapperRef\", { static: false })\n userMemberWrapperRef!: ElementRef;\n\n @Input() user!: CometChat.User;\n @Input() group!: CometChat.Group;\n @Input() disableSoundForMessages: boolean = false;\n /**\n * @deprecated\n *\n * This property is deprecated as of version 4.3.19 due to newer property 'customSoundForMessages'. It will be removed in subsequent versions.\n */\n @Input() customSoundForMessage: string = \"\";\n @Input() customSoundForMessages: string = \"\";\n @Input() disableTypingEvents: boolean = false;\n @Input() text: string = \"\";\n @Input() placeholderText: string = localize(\"ENTER_YOUR_MESSAGE_HERE\");\n\n @Input() headerView!: TemplateRef<any>;\n @Input() onTextChange!: (text: string) => void;\n @Input() attachmentIconURL: string = \"assets/Plus.svg\";\n @Input() attachmentOptions:\n | ((\n item: CometChat.User | CometChat.Group,\n composerId: ComposerId\n ) => CometChatMessageComposerAction[])\n | undefined;\n @Input() secondaryButtonView!: TemplateRef<any>;\n @Input() auxilaryButtonView!: TemplateRef<any>;\n @Input() auxiliaryButtonsAlignment: AuxiliaryButtonAlignment =\n AuxiliaryButtonAlignment.right;\n @Input() sendButtonView!: TemplateRef<any>;\n @Input() parentMessageId: number = 0;\n @Input() hideLiveReaction: boolean = true;\n @Input() LiveReactionIconURL: string = \"assets/heart-reaction.png\";\n @Input() backButtonIconURL: string = \"assets/backbutton.svg\";\n @Input() mentionsWarningText?: string;\n @Input() mentionsWarningStyle?: any;\n public InfoSimpleIcon = \"assets/InfoSimpleIcon.svg\";\n\n @Input() messageComposerStyle: MessageComposerStyle = {\n height: \"100%\",\n width: \"100%\",\n borderRadius: \"12px\",\n maxInputHeight: \"100px\",\n };\n @Input() onSendButtonClick:\n | ((message: CometChat.BaseMessage, previewMessageMode?: PreviewMessageMode) => void)\n | undefined;\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n @Input() backdropStyle: BackdropStyle = {\n height: \"100%\",\n width: \"100%\",\n background: \"rgba(0, 0, 0, 0.5)\",\n position: \"fixed\",\n };\n\n @Input() actionSheetStyle: ActionSheetStyle = {\n layoutModeIconTint: \"rgba(20, 20, 20, 0.04)\",\n borderRadius: \"inherit\",\n background: \"rgb(255,255,255)\",\n border: \"none\",\n width: \"100%\",\n height: \"100%\",\n titleFont: \"500 15px Inter, sans-serif\",\n titleColor: \"#141414\",\n listItemBackground: \"\",\n ActionSheetSeparatorTint: \"1px solid RGBA(20, 20, 20, 0.08)\",\n listItemIconBackground:\"\",\n listItemIconTint:\"\"\n };\n\n @Input() aiActionSheetStyle: any = {\n layoutModeIconTint: \"rgba(20, 20, 20, 0.04)\",\n borderRadius: \"inherit\",\n background: \"rgb(255,255,255)\",\n border: \"none\",\n width: \"100%\",\n height: \"100%\",\n titleFont: \"500 15px Inter, sans-serif\",\n titleColor: \"#141414\",\n listItemBackground: \"transparent\",\n ActionSheetSeparatorTint: \"1px solid RGBA(20, 20, 20, 0.08)\",\n };\n\n @Input() hideVoiceRecording: boolean = false;\n @Input() mediaRecorderStyle: MediaRecorderStyle = {};\n @Input() aiOptionsStyle: AIOptionsStyle = {};\n @Input() aiIconURL: string = \"assets/ai-bot.svg\";\n @Input() voiceRecordingIconURL: string = \"assets/mic.svg\";\n @Input() voiceRecordingCloseIconURL: string = \"assets/close2x.svg\";\n @Input() voiceRecordingStartIconURL: string = \"assets/mic.svg\";\n @Input() voiceRecordingStopIconURL: string = \"assets/stop.svg\";\n @Input() voiceRecordingSubmitIconURL: string = \"assets/Send.svg\";\n @Input() hideLayoutMode: boolean = false;\n @Input() emojiIconURL: string = \"assets/Stipop.svg\";\n @Output() childEvent: EventEmitter<void> = new EventEmitter<void>();\n @Input() userMemberWrapperConfiguration: UserMemberWrapperConfiguration = new UserMemberWrapperConfiguration({});\n public userMemberListType!: UserMemberListType;\n @Input() disableMentions?: boolean;\n @Input() textFormatters?: Array<CometChatTextFormatter> = [];\n @Input() sendButtonIconURL: string = \"assets/Send.svg\";\n\n public composerId!: ComposerId;\n mentionsFormatterInstanceId: string = \"composer_\" + Date.now();\n public composerActions: CometChatMessageComposerAction[] = [];\n public states: typeof States = States;\n public mentionsSearchTerm: string = \"\";\n public showListForMentions: boolean = false;\n public mentionsSearchCount: number = 1;\n public lastEmptySearchTerm?: string = \"\";\n\n public smartReplyState: States = States.loading;\n public showMentionsCountWarning: boolean = false;\n public groupMembersRequestBuilder!: CometChat.GroupMembersRequestBuilder;\n public usersRequestBuilder!: CometChat.UsersRequestBuilder;\n ccShowMentionsCountWarning!: Subscription;\n initialText:string = \"\";\n loadingStateText: string = localize(\"GENERATING_REPLIES\");\n errorStateText: string = localize(\"SOMETHING_WRONG\");\n emptyStateText: string = localize(\"NO_MESSAGES_FOUND\");\n showCreatePolls: boolean = false;\n showStickerKeyboard: boolean = false;\n showActionSheetItem: boolean = false;\n showActionSheetItemAI: boolean = false;\n showSmartReply: boolean = false;\n showAiFeatures: boolean = false;\n repliesArray: string[] = [];\n aiBotList: CometChat.User[] = [];\n currentAskAIBot: any = \"\";\n isAiMoreThanOne: boolean = false;\n\n showPreview: boolean = false;\n aiFeaturesCloseCallback: (() => void) | null = null;\n editPreviewObject!: CometChat.TextMessage;\n ccMessageEdit!: Subscription;\n ccComposeMessage!: Subscription;\n public textFormatterList: Array<CometChatTextFormatter> = this.textFormatters\n ? [...this.textFormatters]\n : [];\n public mentionsTextFormatterInstance!: CometChatMentionsFormatter;\n mentionedUsers: Array<CometChat.User | CometChat.GroupMember> = [];\n public enableStickerKeyboard: boolean = false;\n public toggleMediaRecorded: boolean = false;\n public showAiBotList: boolean = false;\n mentionsTypeSetByUser: boolean = false;\n public stickerConfiguration: {\n id?: string;\n configuration?: StickersConfiguration;\n } = {};\n closeButtonIconURL: string = \"assets/plus-rotated.svg\";\n\n buttons: Buttons[] = [];\n aiActionButtons: Buttons[] = [];\n\n smartReplyStyle: SmartRepliesStyle = {\n width: \"100%\",\n height: \"fit-content\",\n border: \"none\",\n };\n sendButtonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n buttonIconTint: \"rgba(20, 20, 20, 0.58)\",\n background: \"transparent\",\n };\n liveReactionStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n buttonIconTint: \"red\",\n background: \"transparent\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n };\n localize: typeof localize = localize;\n emojiButtonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n buttonIconTint: \"grey\",\n background: \"transparent\",\n };\n stickerButtonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n buttonIconTint: \"grey\",\n background: \"transparent\",\n };\n mediaRecorderButtonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n buttonIconTint: \"grey\",\n background: \"transparent\",\n };\n\n emojiKeyboardStyle: EmojiKeyboardStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n textFont: this.messageComposerStyle?.emojiKeyboardTextFont,\n textColor: this.messageComposerStyle?.emojiKeyboardTextColor,\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: \"12px\",\n activeIconTint: this.themeService.theme.palette.getPrimary(),\n iconTint: this.themeService.theme.palette.getAccent600()\n };\n\n stickerKeyboardStyle: StickersStyle = {};\n textInputStyle: any = {};\n previewStyle: PreviewStyle = {\n height: \"100%\",\n width: \"100%\",\n };\n createPollStyle: CreatePollStyle = {};\n storeTypingInterval: any;\n emojiPopover: PopoverStyle = {\n width: \"315px\",\n height: \"320px\",\n border: \"none\",\n background: \"transparent\",\n borderRadius: \"8px\",\n boxShadow: \"0px 0px 8px rgba(20, 20, 20, 0.2)\",\n };\n stickerPopover: PopoverStyle = {\n width: \"300px\",\n height: \"320px\",\n border: \"none\",\n background: \"transparent\",\n borderRadius: \"8px\",\n boxShadow: \"0px 0px 8px rgba(20, 20, 20, 0.2)\",\n };\n aiPopover: PopoverStyle = {\n width: \"280px\",\n height: \"280px\",\n\n border: \"none\",\n background: \"transparent\",\n borderRadius: \"8px\",\n boxShadow: \"0px 0px 8px rgba(20, 20, 20, 0.2)\",\n };\n mediaRecordedPopover: PopoverStyle = {\n width: \"250px\",\n height: \"100px\",\n borderRadius: \"8px\",\n boxShadow: \"0px 0px 8px rgba(20, 20, 20, 0.2)\",\n };\n popoverStyle: PopoverStyle = {\n width: \"275px\",\n height: \"280px\",\n border: \"none\",\n background: \"transparent\",\n borderRadius: \"8px\",\n boxShadow: \"0px 0px 8px rgba(20, 20, 20, 0.2)\",\n };\n emojiButtonIconURL: string = \"assets/Stipop.svg\";\n stickerButtonIconURL: string = \"assets/Stickers.svg\";\n\n actions!: (CometChatMessageComposerAction | CometChatActionsView)[];\n messageText: string = \"\";\n attachmentButtonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n buttonIconTint: \"grey\",\n background: \"transparent\",\n };\n auxilaryPlacement: Placement = Placement.top;\n messageSending: boolean = false;\n messageToBeEdited!: CometChat.TextMessage | null;\n public editPreviewText: string | null = \"\";\n showSendButton: boolean = false;\n showEmojiKeyboard: boolean = false;\n isAiEnabled: boolean = false;\n smartReplies: string[] = [];\n loggedInUser!: CometChat.User | null;\n mentionStyleLocal: UserMentionStyle = new UserMentionStyle({});\n ccActivePopover!:Subscription;\n\n\n sendMessageOnEnter = (event: any) => {\n this.showMentionsCountWarning = false;\n this.showListForMentions = false;\n this.sendTextMessage(event.detail.value);\n this.clearComposer();\n this.showSendButton = false;\n this.disableSendButton()\n };\n disableSendButton() {\n this.sendButtonStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n buttonIconTint: this.themeService.theme.palette.getAccent200(),\n background: \"transparent\",\n };\n this.ref.detectChanges();\n }\n messageInputChanged = (event: any) => {\n const text = event?.detail?.value?.trim();\n this.sendButtonStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n buttonIconTint: text\n ? this.messageComposerStyle?.sendIconTint\n : this.themeService.theme.palette.getAccent200(),\n background: \"transparent\",\n };\n if (!text) {\n this.showSendButton = false;\n }\n else {\n this.showSendButton = true;\n }\n if (this.onTextChange) {\n this.onTextChange(text);\n }\n this.messageText = text;\n if (text) {\n this.startTyping();\n } else {\n this.endTyping();\n }\n };\n appendEmoji = (event: any) => {\n if (this.text === event?.detail.id) {\n this.text = \"\" + \"\";\n this.ref.detectChanges();\n }\n this.text = event?.detail.id;\n this.ref.detectChanges();\n };\n sendReaction() {\n let receiverId: string = this.user\n ? this.user?.getUid()!\n : this.group?.getGuid()!;\n let receiverType = this.user\n ? CometChatUIKitConstants.MessageReceiverType.user\n : CometChatUIKitConstants.MessageReceiverType.group;\n let data = {\n type: \"live_reaction\",\n reaction: \"heart\",\n };\n let transientMessage = new CometChat.TransientMessage(\n receiverId,\n receiverType,\n data\n );\n CometChat.sendTransientMessage(transientMessage);\n CometChatMessageEvents.ccLiveReaction.next(\"heart\");\n return;\n }\n\n openCreatePolls = () => {\n this.showCreatePolls = true;\n if (this.showActionSheetItem) {\n this.actionSheetRef.nativeElement.click();\n this.showActionSheetItem = !this.showActionSheetItem;\n }\n this.ref.detectChanges();\n };\n closeCreatePolls = () => {\n this.showCreatePolls = false;\n\n this.ref.detectChanges();\n };\n sendRecordedMedia = (event: any) => {\n let file = event?.detail?.file;\n if (file) {\n this.sendRecordedAudio(file);\n }\n this.closeMediaRecorder();\n this.ref.detectChanges();\n };\n closeMediaRecorder(event?: any) {\n if (this.toggleMediaRecorded) {\n this.mediaRecordedRef.nativeElement.click();\n this.toggleMediaRecorded = !this.toggleMediaRecorded;\n this.ref.detectChanges();\n }\n }\n getFormattedDate(): string {\n const currentDate = new Date();\n\n const year = currentDate.getFullYear().toString();\n const month = this.padZero(currentDate.getMonth() + 1);\n const day = this.padZero(currentDate.getDate());\n const hours = this.padZero(currentDate.getHours());\n const minutes = this.padZero(currentDate.getMinutes());\n const seconds = this.padZero(currentDate.getSeconds());\n\n return `${year}${month}${day}${hours}${minutes}${seconds}`;\n }\n\n padZero(num: number): string {\n return num.toString().padStart(2, \"0\");\n }\n\n sendRecordedAudio = (file: Blob) => {\n try {\n const uploadedFile = file;\n const reader: any = new FileReader();\n reader.addEventListener(\n \"load\",\n () => {\n const newFile = new File(\n [reader.result],\n `audio-recording-${this.getFormattedDate()}.wav`,\n uploadedFile\n );\n this.sendMediaMessage(\n newFile,\n CometChatUIKitConstants.MessageTypes.audio\n );\n },\n false\n );\n reader.readAsArrayBuffer(uploadedFile);\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n return true;\n };\n addAttachmentCallback(): void {\n this.composerActions?.forEach((element: CometChatMessageComposerAction) => {\n switch (element.id) {\n case CometChatUIKitConstants.MessageTypes.audio:\n if (!element.onClick) {\n element.onClick = this.openAudioPicker;\n }\n break;\n case CometChatUIKitConstants.MessageTypes.video:\n if (!element.onClick) {\n element.onClick = this.openvideoPicker;\n }\n break;\n case CometChatUIKitConstants.MessageTypes.file:\n if (!element.onClick) {\n element.onClick = this.openFilePicker;\n }\n break;\n case CometChatUIKitConstants.MessageTypes.image:\n if (!element.onClick) {\n element.onClick = this.openImagePicker;\n }\n break;\n case \"extension_poll\":\n if (!element.onClick) {\n element.onClick = this.openCreatePolls;\n }\n break;\n }\n });\n }\n closeComposerPopover(){\n if(this.showStickerKeyboard){\n this.stickerButtonRef?.nativeElement?.click();\n this.showStickerKeyboard = false;\n }\n if(this.showAiFeatures){\n this.aiButtonRef.nativeElement.click();\n this.showAiFeatures = false;\n }\n this.closeMediaRecorder();\n this.closePopovers();\n this.ref.detectChanges()\n\n }\n subscribeToEvents() {\n this.ccActivePopover = CometChatUIEvents.ccActivePopover.subscribe((data:ActivePopover)=>{\n if(data == ActivePopover.messageList){\n this.closeComposerPopover();\n }\n })\n this.ccMessageEdit = CometChatMessageEvents.ccMessageEdited.subscribe(\n (object: IMessages) => {\n let parentId = object?.message?.getParentMessageId()\n if ((this.parentMessageId && parentId && parentId == this.parentMessageId) || (!this.parentMessageId && !parentId)) {\n if (object?.status == MessageStatus.inprogress) {\n this.messageToBeEdited = object.message as CometChat.TextMessage;\n if (this.isPartOfCurrentChatForUIEvent(object?.message)) {\n this.openEditPreview();\n }\n }\n if((object?.status === MessageStatus.success && object.message instanceof CometChat.TextMessage) || object?.status == MessageStatus.cancelled) {\n this.closePreview();\n }\n }\n }\n );\n this.ccComposeMessage = CometChatUIEvents.ccComposeMessage.subscribe(\n (text: string) => {\n this.text = text;\n this.ref.detectChanges();\n }\n );\n this.ccShowMentionsCountWarning =\n CometChatUIEvents.ccShowMentionsCountWarning.subscribe(\n (data: IMentionsCountWarning) => {\n if (data.id == this.mentionsFormatterInstanceId) {\n if (data.showWarning) {\n this.showMentionsCountWarning = true;\n return;\n }\n this.showMentionsCountWarning = false;\n }\n }\n );\n }\n openEditPreview() {\n let messageTextWithMentionTags = this.checkForMentions(\n this.messageToBeEdited!\n );\n this.clearComposer()\n this.inputRef.nativeElement.text = \"\";\n this.text = processSubtitleContent(this.messageToBeEdited!.getText());\n this.editPreviewText = messageTextWithMentionTags;\n this.showPreview = true;\n this.ref.detectChanges();\n }\n\n /*\n* isPartOfCurrentChatForUIEvent: To check if the message belongs for this list and is not part of thread even for current list\nit only runs for UI event because it assumes logged in user is always sender\n* @param: message: CometChat.BaseMessage\n*/\n isPartOfCurrentChatForUIEvent =\n (message: CometChat.BaseMessage) => {\n if (this.parentMessageId) {\n if (message.getParentMessageId() === this.parentMessageId) {\n return true;\n }\n else {\n return false;\n }\n } else {\n if (message.getParentMessageId()) {\n return false\n }\n if (this.user) {\n if (message.getReceiverType() === CometChatUIKitConstants.MessageReceiverType.user &&\n message?.getReceiverId() === this.user.getUid()) {\n return true;\n }\n } else if (this.group) {\n if (message.getReceiverType() === CometChatUIKitConstants.MessageReceiverType.group &&\n message?.getReceiverId() === this.group.getGuid()) {\n return true\n }\n }\n return false;\n }\n }\n\n /**\n * Adds @ for every mention the message by matching uid\n *\n * @param {string} message\n * @returns {void}\n */\n checkForMentions(message: CometChat.TextMessage) {\n const regex = /<@uid:(.*?)>/g;\n let messageText = message.getText();\n let messageTextTmp = messageText;\n let match = regex.exec(messageText);\n let mentionedUsers = message.getMentionedUsers();\n let cometChatUsersGroupMembers = [];\n while (match !== null) {\n let user;\n for (let i = 0; i < mentionedUsers.length; i++) {\n if (match[1] == mentionedUsers[i].getUid()) {\n user = mentionedUsers[i];\n }\n }\n if (user) {\n messageTextTmp = messageTextTmp.replace(match[0], \"@\" + user.getName());\n cometChatUsersGroupMembers.push(user);\n }\n match = regex.exec(messageText);\n }\n this.mentionsTextFormatterInstance.setCometChatUserGroupMembers(\n cometChatUsersGroupMembers\n );\n this.mentionsTextFormatterInstance.setLoggedInUser(this.loggedInUser!);\n return messageTextTmp;\n }\n\n unsubscribeToEvents() {\n this.ccMessageEdit?.unsubscribe();\n this.ccShowMentionsCountWarning?.unsubscribe();\n }\n closeModals() {\n if (this.showActionSheetItem) {\n this.actionSheetRef?.nativeElement?.click();\n this.showActionSheetItem = false;\n }\n if (this.showEmojiKeyboard) {\n this.emojiButtonRef?.nativeElement?.click();\n this.showEmojiKeyboard = false;\n }\n if (this.showStickerKeyboard) {\n this.stickerButtonRef?.nativeElement?.click();\n this.showStickerKeyboard = false;\n }\n if (this.toggleMediaRecorded) {\n this.mediaRecordedRef?.nativeElement?.click();\n this.toggleMediaRecorded = false;\n }\n if (this.showAiFeatures) {\n this.aiButtonRef?.nativeElement?.click();\n this.showAiFeatures = false;\n this.showAiBotList = false;\n }\n }\n constructor(\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) { }\n\n callConversationSummaryMethod() {\n this.showAiFeatures = false;\n this.aiButtonRef.nativeElement.click();\n\n CometChatUIEvents.ccShowPanel.next({\n child: { showConversationSummaryView: true },\n });\n }\n clearComposer(){\n this.text = \"\";\n this.messageText = \"\";\n this.inputRef?.nativeElement?.emptyInputField();\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"user\"] || changes[\"group\"]) {\n this.userOrGroupChanged(changes);\n if (this.initialText !== this.text) {\n this.clearComposer();\n }\n this.text = this.initialText || \"\";\n }\n if (changes[\"text\"]?.currentValue) {\n this.initialText = changes[\"text\"].currentValue;\n this.text = this.initialText;\n }\n }\n \n userOrGroupChanged(changes: SimpleChanges): void {\n if (this.showPreview) {\n this.closePreview()\n }\n if (!this.disableMentions) {\n this.showListForMentions = false;\n if (changes[\"group\"] && this.group) {\n if (\n this.userMemberWrapperConfiguration?.userMemberListType == undefined\n ) {\n this.userMemberListType = UserMemberListType.groupmembers;\n }\n this.groupMembersRequestBuilder = this.userMemberWrapperConfiguration\n .groupMemberRequestBuilder\n ? this.userMemberWrapperConfiguration.groupMemberRequestBuilder\n : new CometChat.GroupMembersRequestBuilder(\n this.group.getGuid()\n ).setLimit(15);\n }\n if (changes[\"user\"] && this.user) {\n if (\n this.userMemberWrapperConfiguration?.userMemberListType == undefined\n ) {\n this.userMemberListType = UserMemberListType.users;\n }\n this.usersRequestBuilder = this.userMemberWrapperConfiguration\n .usersRequestBuilder\n ? this.userMemberWrapperConfiguration.usersRequestBuilder\n : new CometChat.UsersRequestBuilder().setLimit(15);\n }\n }\n this.showAiBotList = false;\n this.showSmartReply = false;\n this.closeModals();\n this.messageText = this.text;\n if (this.inputRef && this.inputRef.nativeElement) {\n setTimeout(()=>{\n this.inputRef?.nativeElement?.emptyInputField();\n this.inputRef?.nativeElement?.pasteHtmlAtCaret(this.text);\n },0)\n }\n this.showSendButton = false;\n this.composerId = this.getComposerId();\n if (this.attachmentOptions) {\n this.composerActions = this.attachmentOptions(\n this.user || this.group,\n this.composerId\n );\n this.addAttachmentCallback();\n } else {\n this.composerActions =\n ChatConfigurator.getDataSource()?.getAttachmentOptions(\n this.themeService.theme,\n this.user,\n this.group,\n this.composerId\n );\n this.addAttachmentCallback();\n }\n for (let i = 0; i < this.textFormatterList.length; i++) {\n this.textFormatterList[i].setComposerConfig(this.user, this.group, this.composerId);\n }\n }\n\n ngOnDestroy(): void {\n this.unsubscribeToEvents();\n this.mentionsTextFormatterInstance.cleanup();\n }\n\n customSendMethod(message: String) {\n this.showSendButton = false;\n this.sendTextMessage(message);\n this.disableSendButton();\n this.ref.detectChanges();\n }\n /**\n * @param {String=\"\"} textMsg\n */\n sendTextMessage(textMsg: String = \"\"): boolean {\n this.endTyping();\n try {\n // Dont Send Blank text messages -- i.e --- messages that only contain spaces\n if (\n this.messageText?.trim()?.length == 0 &&\n textMsg?.trim()?.length == 0\n ) {\n return false;\n }\n // wait for the previous message to be sent before sending the current message\n if (this.messageSending) {\n return false;\n }\n this.messageSending = true;\n // If its an Edit and Send Message Operation , use Edit Message Function\n if (this.messageToBeEdited) {\n this.editMessage();\n this.ref.detectChanges();\n return false;\n }\n let { receiverId, receiverType } = this.getReceiverDetails();\n let messageInput;\n if (textMsg !== null) {\n messageInput = textMsg.trim();\n } else {\n messageInput = this.messageText.trim();\n }\n let textMessage: CometChat.TextMessage = new CometChat.TextMessage(\n receiverId,\n messageInput,\n receiverType\n );\n if (this.parentMessageId) {\n textMessage.setParentMessageId(this.parentMessageId);\n }\n\n if (this.mentionedUsers.length) {\n let userObjects = [];\n for (let i = 0; i < this.mentionedUsers.length; i++) {\n userObjects.push(\n this.mentionedUsers[i] instanceof CometChat.GroupMember\n ? (this.mentionedUsers[i] as CometChat.User)\n : this.mentionedUsers[i]\n );\n }\n textMessage.setMentionedUsers(userObjects);\n this.mentionedUsers = [];\n }\n\n textMessage.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n textMessage.setMuid(CometChatUIKitUtility.ID());\n if (this.loggedInUser) {\n textMessage.setSender(this.loggedInUser)\n }\n this.showMentionsCountWarning = false;\n\n // play audio after action generation\n if (!this.disableSoundForMessages) {\n this.playAudio();\n }\n //clearing Message Input Box\n this.clearComposer()\n this.messageSending = false;\n for (let i = 0; i < this.textFormatterList.length; i++) {\n textMessage = (this.textFormatterList[i].formatMessageForSending(textMessage) as CometChat.TextMessage);\n }\n // End Typing Indicator Function\n this.closePopovers();\n if (!this.onSendButtonClick) {\n CometChatMessageEvents.ccMessageSent.next({\n message: textMessage,\n status: MessageStatus.inprogress,\n });\n CometChat.sendMessage(textMessage)\n .then((message: CometChat.TextMessage | CometChat.BaseMessage) => {\n let messageObject: CometChat.BaseMessage = message;\n CometChatMessageEvents.ccMessageSent.next({\n message: messageObject,\n status: MessageStatus.success,\n });\n // Change the send button to reaction button\n setTimeout(() => {\n this.showSendButton = false;\n this.ref.detectChanges();\n }, 500);\n this.mentionsTextFormatterInstance.resetCometChatUserGroupMembers();\n })\n .catch((error: CometChat.CometChatException) => {\n textMessage.setMetadata({\n error: true,\n });\n CometChatMessageEvents.ccMessageSent.next({\n message: textMessage,\n status: MessageStatus.error,\n });\n });\n } else {\n this.onSendButtonClick(textMessage, PreviewMessageMode.none);\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n return true;\n }\n\n onAiBackButtonClick() {\n this.showActionSheetItemAI = true;\n this.ref.detectChanges();\n }\n\n editMessage() {\n try {\n const messageToBeEdited: any = this.messageToBeEdited;\n let { receiverId, receiverType } = this.getReceiverDetails();\n let messageText = this.messageText.trim();\n let mentionedUsers = [];\n if (messageToBeEdited.getMentionedUsers()) {\n mentionedUsers = messageToBeEdited.getMentionedUsers();\n messageText =\n this.mentionsTextFormatterInstance.getOriginalText(messageText);\n this.mentionsTextFormatterInstance.setCometChatUserGroupMembers(\n mentionedUsers\n );\n messageText =\n this.mentionsTextFormatterInstance.getOriginalText(messageText);\n }\n let textMessage: CometChat.TextMessage = new CometChat.TextMessage(\n receiverId,\n messageText,\n receiverType\n );\n if (mentionedUsers.length) {\n textMessage.setMentionedUsers(mentionedUsers);\n }\n textMessage.setId(messageToBeEdited.id);\n this.closePreview();\n this.endTyping();\n this.showMentionsCountWarning = false;\n for (let i = 0; i < this.textFormatterList.length; i++) {\n textMessage = (this.textFormatterList[i].formatMessageForSending(textMessage) as CometChat.TextMessage);\n }\n if (!this.onSendButtonClick) {\n CometChat.editMessage(textMessage)\n .then((message) => {\n this.messageSending = false;\n CometChatMessageEvents.ccMessageEdited.next({\n message: message,\n status: MessageStatus.success,\n });\n this.mentionsTextFormatterInstance.resetCometChatUserGroupMembers();\n })\n .catch((error) => {\n this.messageSending = false;\n if (this.onError) {\n this.onError(error);\n }\n });\n }\n else {\n this.onSendButtonClick(textMessage, PreviewMessageMode.edit)\n this.mentionsTextFormatterInstance.resetCometChatUserGroupMembers();\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n getReceiverDetails() {\n let receiverId!: string;\n let receiverType!: string;\n let isBlocked = false;\n if (this.user && this.user.getUid()) {\n receiverId = this.user.getUid();\n receiverType = CometChatUIKitConstants.MessageReceiverType.user;\n isBlocked = this.user.getBlockedByMe() || this.user.getHasBlockedMe();\n } else if (this.group && this.group.getGuid()) {\n receiverId = this.group.getGuid();\n receiverType = CometChatUIKitConstants.MessageReceiverType.group;\n }\n return { receiverId: receiverId, receiverType: receiverType, isBlocked };\n }\n playAudio() {\n if (!this.disableSoundForMessages) {\n if (this.customSoundForMessage || this.customSoundForMessages) {\n CometChatSoundManager.play(\n CometChatSoundManager.Sound.outgoingMessage,\n this.customSoundForMessage || this.customSoundForMessages\n );\n } else {\n CometChatSoundManager.play(CometChatSoundManager.Sound.outgoingMessage);\n }\n }\n }\n /**\n * @param {} timer=null\n * @param {string=\"\"} metadata\n */\n startTyping(timer = null, metadata: string = \"\"): void {\n if (!this.disableTypingEvents) {\n try {\n let typingInterval = timer || 5000;\n let { receiverId, receiverType, isBlocked } = this.getReceiverDetails();\n if (isBlocked) {\n return;\n }\n let typingMetadata = metadata || undefined;\n let typingNotification = new CometChat.TypingIndicator(\n receiverId,\n receiverType,\n typingMetadata\n );\n CometChat.startTyping(typingNotification);\n this.storeTypingInterval = setTimeout(() => {\n this.endTyping();\n }, typingInterval);\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n }\n\n handleActions = (event: any) => {\n let action: CometChatMessageComposerAction = event?.detail?.action;\n this.showAiFeatures = false;\n if (action.onClick) {\n action.onClick();\n }\n if(this.showActionSheetItem){\n this.showActionSheetItem = false;\n this.actionSheetRef.nativeElement.click()\n }\n };\n endTyping(metadata = null) {\n if (!this.disableTypingEvents) {\n try {\n let { receiverId, receiverType, isBlocked } = this.getReceiverDetails();\n if (isBlocked) {\n return;\n }\n let typingMetadata = metadata || undefined;\n let typingNotification = new CometChat.TypingIndicator(\n receiverId,\n receiverType,\n typingMetadata\n );\n CometChat.endTyping(typingNotification);\n clearTimeout(this.storeTypingInterval);\n this.storeTypingInterval = null;\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n }\n /**\n * @param {File | CometChat.MediaMessage} messageInput\n * @param {string} messageType\n */\n sendMediaMessage(messageInput: File, messageType: string): boolean {\n try {\n if (this.messageSending) {\n return false;\n }\n this.messageSending = true;\n const { receiverId, receiverType } = this.getReceiverDetails();\n let mediaMessage: CometChat.MediaMessage = new CometChat.MediaMessage(\n receiverId,\n messageInput,\n messageType,\n receiverType\n );\n\n if (this.parentMessageId) {\n mediaMessage.setParentMessageId(this.parentMessageId);\n }\n mediaMessage.setType(messageType);\n mediaMessage.setMetadata({\n [\"file\"]: messageInput,\n });\n mediaMessage.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n mediaMessage.setMuid(CometChatUIKitUtility.ID());\n if (this.loggedInUser) {\n mediaMessage.setSender(this.loggedInUser)\n }\n\n if (!this.disableSoundForMessages) {\n this.playAudio();\n }\n this.messageSending = false;\n this.closePopovers();\n if (!this.onSendButtonClick) {\n CometChatMessageEvents.ccMessageSent.next({\n message: mediaMessage,\n status: MessageStatus.inprogress,\n });\n CometChat.sendMessage(mediaMessage)\n .then((response: CometChat.BaseMessage) => {\n this.messageSending = false;\n response.setMuid(mediaMessage.getMuid());\n CometChatMessageEvents.ccMessageSent.next({\n message: response,\n status: MessageStatus.success,\n });\n })\n .catch((error) => {\n mediaMessage.setMetadata({\n error: true,\n });\n CometChatMessageEvents.ccMessageSent.next({\n message: mediaMessage,\n status: MessageStatus.error,\n });\n this.messageSending = false;\n });\n } else {\n this.onSendButtonClick(mediaMessage, PreviewMessageMode.none);\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n return true;\n }\n inputChangeHandler = (event: any): void => {\n const files: FileList = event.target.files;\n if (!files || files.length === 0) return;\n Array.from(files).forEach((file: File) => {\n const fileType = file.type;\n if (fileType.startsWith(\"image/\")) {\n this.onImageChange(event);\n } else if (fileType.startsWith(\"video/\")) {\n this.onVideoChange(event);\n } else if (fileType.startsWith(\"audio/\")) {\n this.onAudioChange(event);\n } else {\n this.onFileChange(event);\n }\n });\n if (this.inputElementRef?.nativeElement && this.inputElementRef.nativeElement?.value) {\n this.inputElementRef.nativeElement.value = \"\";\n }\n };\n \n sendSticker = (event: any) => {\n this.stickerButtonRef?.nativeElement?.click();\n this.showStickerKeyboard = false;\n let sticker = event?.detail?.stickerURL;\n let stickerName: string = event?.detail?.stickerName;\n if (this.stickerConfiguration?.configuration?.ccStickerClicked) {\n this.stickerConfiguration?.configuration?.ccStickerClicked(\n {\n name: stickerName,\n url: sticker,\n },\n this.loggedInUser!,\n this.user,\n this.group,\n this.parentMessageId,\n this.onError,\n this.customSoundForMessage || this.customSoundForMessages,\n this.disableSoundForMessages\n );\n }\n };\n /**\n * @param {any} event\n */\n onVideoChange(event: any): boolean {\n try {\n if (!event.target.files[0]) {\n return false;\n }\n const uploadedFile = event.target.files[0];\n const reader: any = new FileReader();\n reader.addEventListener(\n \"load\",\n () => {\n const newFile = new File(\n [reader.result],\n uploadedFile.name,\n uploadedFile\n );\n this.sendMediaMessage(\n newFile,\n CometChatUIKitConstants.MessageTypes.video\n );\n },\n false\n );\n reader.readAsArrayBuffer(uploadedFile);\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n return true;\n }\n /**\n * @param {any} event\n */\n onAudioChange(event: any): boolean {\n try {\n if (!event.target.files[0]) {\n return false;\n }\n const uploadedFile = event.target.files[0];\n const reader: any = new FileReader();\n reader.addEventListener(\n \"load\",\n () => {\n const newFile = new File(\n [reader.result],\n uploadedFile.name,\n uploadedFile\n );\n this.sendMediaMessage(\n newFile,\n CometChatUIKitConstants.MessageTypes.audio\n );\n },\n false\n );\n reader.readAsArrayBuffer(uploadedFile);\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n return true;\n }\n /**\n * @param {any} event\n */\n onImageChange(event: any): boolean {\n try {\n if (!event.target.files[0]) {\n return false;\n }\n const uploadedFile = event.target.files[0];\n const reader: any = new FileReader();\n reader.addEventListener(\n \"load\",\n () => {\n const newFile = new File(\n [reader.result],\n uploadedFile.name,\n uploadedFile\n );\n this.sendMediaMessage(\n newFile,\n CometChatUIKitConstants.MessageTypes.image\n );\n },\n false\n );\n reader.readAsArrayBuffer(uploadedFile);\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n return true;\n }\n /**\n * @param {any} event\n */\n onFileChange(event: any): boolean {\n try {\n if (!event.target.files[\"0\"]) {\n return false;\n }\n const uploadedFile = event.target.files[\"0\"];\n var reader: any = new FileReader();\n reader.addEventListener(\n \"load\",\n () => {\n const newFile = new File(\n [reader.result],\n uploadedFile.name,\n uploadedFile\n );\n this.sendMediaMessage(\n newFile,\n CometChatUIKitConstants.MessageTypes.file\n );\n },\n false\n );\n reader.readAsArrayBuffer(uploadedFile);\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n return true;\n }\n openImagePicker = (): void => {\n this.inputElementRef.nativeElement.type = \"file\";\n this.inputElementRef.nativeElement.accept = \"image/*\";\n if(shouldShowCustomMimeTypes()){\n this.inputElementRef.nativeElement.accept = CometChatUIKitConstants.mimeTypes.image\n }\n this.inputElementRef.nativeElement.click();\n this.closePopovers();\n };\n openFilePicker = (): void => {\n this.inputElementRef.nativeElement.type = \"file\";\n this.inputElementRef.nativeElement.accept = \"*/*\";\n this.inputElementRef.nativeElement.click();\n this.closePopovers();\n };\n openvideoPicker = (): void => {\n this.inputElementRef.nativeElement.type = \"file\";\n this.inputElementRef.nativeElement.accept = \"video/*\";\n if(shouldShowCustomMimeTypes()){\n this.inputElementRef.nativeElement.accept = CometChatUIKitConstants.mimeTypes.video\n }\n this.inputElementRef.nativeElement.click();\n this.closePopovers();\n };\n openAudioPicker = (): void => {\n this.inputElementRef.nativeElement.type = \"file\";\n this.inputElementRef.nativeElement.accept = \"audio/*\";\n if(shouldShowCustomMimeTypes()){\n this.inputElementRef.nativeElement.accept = CometChatUIKitConstants.mimeTypes.audio\n }\n this.inputElementRef.nativeElement.click();\n this.closePopovers();\n };\n handleOutsideClick() {\n this.showActionSheetItem = false;\n this.showStickerKeyboard = false;\n this.showAiFeatures = false;\n this.toggleMediaRecorded = false;\n this.showEmojiKeyboard = false;\n this.ref.detectChanges();\n }\n openActionSheet = (event: any) => {\n this.triggerActivePopoverEvent();\n if (event?.detail?.hasOwnProperty(\"isOpen\")) {\n this.showActionSheetItem = false;\n this.ref.detectChanges();\n return;\n }\n this.showActionSheetItem = !this.showActionSheetItem;\n\n this.closeMediaRecorder();\n if (this.showEmojiKeyboard) {\n this.emojiButtonRef.nativeElement.click();\n this.showEmojiKeyboard = !this.showEmojiKeyboard;\n }\n if (this.showStickerKeyboard) {\n this.stickerButtonRef.nativeElement.click();\n this.showStickerKeyboard = !this.showStickerKeyboard;\n this.ref.detectChanges();\n }\n if (this.showAiFeatures) {\n this.aiButtonRef.nativeElement.click();\n this.showAiFeatures = !this.showAiFeatures;\n this.ref.detectChanges();\n } else {\n return;\n }\n };\n handleAiFeaturesClose = (callback: () => void) => {\n this.aiFeaturesCloseCallback = callback;\n };\n\n closeSmartReply = () => {\n this.showAiFeatures = false;\n this.ref.detectChanges();\n return;\n };\n openAiFeatures = (event: any) => {\n this.triggerActivePopoverEvent();\n if (this.aiFeaturesCloseCallback) {\n this.aiFeaturesCloseCallback();\n }\n if (event?.detail?.hasOwnProperty(\"isOpen\")) {\n this.showAiFeatures = false;\n this.ref.detectChanges();\n return;\n }\n this.showAiFeatures = !this.showAiFeatures;\n this.closeMediaRecorder();\n if (this.showEmojiKeyboard) {\n this.emojiButtonRef.nativeElement.click();\n this.showEmojiKeyboard = !this.showEmojiKeyboard;\n }\n if (this.showStickerKeyboard) {\n this.stickerButtonRef.nativeElement.click();\n this.showStickerKeyboard = !this.showStickerKeyboard;\n this.ref.detectChanges();\n }\n if (this.showActionSheetItem) {\n this.actionSheetRef.nativeElement.click();\n this.showActionSheetItem = !this.showActionSheetItem;\n this.ref.detectChanges();\n } else {\n this.showActionSheetItemAI = true;\n\n return;\n }\n };\n openEmojiKeyboard = (event: any) => {\n this.triggerActivePopoverEvent();\n if (event?.detail?.hasOwnProperty(\"isOpen\")) {\n this.showEmojiKeyboard = false;\n this.ref.detectChanges();\n return;\n }\n this.showEmojiKeyboard = !this.showEmojiKeyboard;\n this.closeMediaRecorder();\n if (this.showActionSheetItem) {\n this.actionSheetRef.nativeElement.click();\n this.showActionSheetItem = !this.showActionSheetItem;\n this.ref.detectChanges();\n }\n if (this.showStickerKeyboard) {\n this.stickerButtonRef.nativeElement.click();\n this.showStickerKeyboard = !this.showStickerKeyboard;\n this.ref.detectChanges();\n }\n if (this.showAiFeatures) {\n this.aiButtonRef.nativeElement.click();\n this.showAiFeatures = !this.showAiFeatures;\n this.ref.detectChanges();\n } else {\n return;\n }\n };\n triggerActivePopoverEvent(){\n CometChatUIEvents.ccActivePopover.next(ActivePopover.composer)\n }\n openMediaRecorded = (event: any) => {\n this.triggerActivePopoverEvent();\n if (event?.detail?.hasOwnProperty(\"isOpen\")) {\n this.toggleMediaRecorded = false;\n this.ref.detectChanges();\n return;\n }\n this.toggleMediaRecorded = !this.toggleMediaRecorded;\n this.ref.detectChanges();\n if (this.showActionSheetItem) {\n this.actionSheetRef.nativeElement.click();\n this.showActionSheetItem = !this.showActionSheetItem;\n this.ref.detectChanges();\n }\n if (this.showEmojiKeyboard) {\n this.emojiButtonRef.nativeElement.click();\n this.showEmojiKeyboard = !this.showEmojiKeyboard;\n this.ref.detectChanges();\n }\n if (this.showStickerKeyboard) {\n this.stickerButtonRef.nativeElement.click();\n this.showStickerKeyboard = !this.showStickerKeyboard;\n this.ref.detectChanges();\n }\n if (this.showAiFeatures) {\n this.aiButtonRef.nativeElement.click();\n this.showAiFeatures = !this.showAiFeatures;\n this.ref.detectChanges();\n } else {\n return;\n }\n };\n openStickerKeyboard = (event: any) => {\n this.triggerActivePopoverEvent();\n if (event?.detail?.hasOwnProperty(\"isOpen\")) {\n this.showStickerKeyboard = false;\n this.ref.detectChanges();\n return;\n }\n this.showStickerKeyboard = !this.showStickerKeyboard;\n this.closeMediaRecorder();\n this.ref.detectChanges();\n if (this.showActionSheetItem) {\n this.actionSheetRef.nativeElement.click();\n this.showActionSheetItem = !this.showActionSheetItem;\n this.ref.detectChanges();\n }\n if (this.showEmojiKeyboard) {\n this.emojiButtonRef.nativeElement.click();\n this.showEmojiKeyboard = !this.showEmojiKeyboard;\n this.ref.detectChanges();\n } else {\n return;\n }\n };\n closePopovers() {\n if (this.showEmojiKeyboard) {\n this.emojiButtonRef.nativeElement.click();\n this.showEmojiKeyboard = !this.showEmojiKeyboard;\n }\n if (this.showActionSheetItem) {\n this.actionSheetRef.nativeElement.click();\n this.showActionSheetItem = !this.showActionSheetItem;\n }\n }\n getComposerId(): ComposerId {\n const user = this.user;\n if (user !== undefined) {\n return {\n user: user?.getUid(),\n group: null,\n parentMessageId: this.parentMessageId,\n };\n }\n const group = this.group;\n if (group !== undefined) {\n return {\n user: null,\n group: group?.getGuid(),\n parentMessageId: this.parentMessageId,\n };\n }\n return { user: null, group: null, parentMessageId: this.parentMessageId };\n }\n ngOnInit(): void {\n this.setTheme();\n this.textFormatterList = this.textFormatters\n ? this.textFormatters\n : [];\n document.addEventListener(\"click\", this.handleClickOutside);\n this.mentionsTextFormatterInstance =\n ChatConfigurator.getDataSource().getMentionsTextFormatter({\n theme: this.themeService.theme,\n });\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n\n this.initializeMentionsFormatter();\n\n this.actions = ChatConfigurator.getDataSource().getAIOptions(\n this.themeService.theme,\n this.getComposerId() as unknown as Map<string, any>,\n this.aiOptionsStyle\n );\n this.aiBotList = [];\n\n\n this.subscribeToEvents();\n this.enableStickerKeyboard = true;\n this.stickerConfiguration =\n ChatConfigurator.getDataSource()?.getAuxiliaryOptions(\n this.composerId,\n this.user,\n this.group\n );\n if (this.stickerConfiguration?.id == StickersConstants.sticker) {\n this.enableStickerKeyboard = true;\n } else {\n this.enableStickerKeyboard = false;\n }\n this.enableAiFeatures();\n }\n\n /**\n * Check for developer provided instance of MentionsTextFormatter\n * If not provided, add default\n * If provided, check if style is provided via configuration, then add style.\n */\n initializeMentionsFormatter = () => {\n if (!this.disableMentions) {\n this.mentionsTextFormatterInstance.setMentionsTextStyle(\n this.getMentionsStyle()\n );\n let foundMentionsFormatter!: CometChatMentionsFormatter;\n if (this.textFormatters!.length) {\n for (let i = 0; i < this.textFormatterList.length; i++) {\n if (\n this.textFormatterList[i] instanceof CometChatMentionsFormatter\n ) {\n foundMentionsFormatter = this.textFormatterList[\n i\n ] as CometChatMentionsFormatter;\n this.mentionsTextFormatterInstance = foundMentionsFormatter;\n break;\n }\n }\n }\n\n if (foundMentionsFormatter) {\n this.mentionsTextFormatterInstance = foundMentionsFormatter;\n }\n\n if (\n !this.mentionsTextFormatterInstance.getKeyUpCallBack() ||\n this.mentionsTextFormatterInstance.getKeyDownCallBack()\n ) {\n this.mentionsTextFormatterInstance.setKeyUpCallBack(\n this.searchMentions\n );\n this.mentionsTextFormatterInstance.setKeyDownCallBack(\n this.searchMentions\n );\n this.mentionsTextFormatterInstance.setId(\n this.mentionsFormatterInstanceId\n );\n }\n\n if (!foundMentionsFormatter) {\n this.textFormatterList.push(this.mentionsTextFormatterInstance);\n }\n }\n };\n\n getMentionsStyle = () => {\n return this.mentionStyleLocal;\n };\n\n getSmartReplies = () => {\n this.showSmartReply = true;\n this.repliesArray = [];\n this.showActionSheetItemAI = false;\n this.showAiBotList = false;\n\n this.smartReplyState = States.loading;\n\n this.ref.detectChanges();\n return new Promise((resolve, reject) => {\n let receiverId: string = this.user\n ? this.user?.getUid()\n : this.group?.getGuid();\n let receiverType: string = this.user\n ? CometChatUIKitConstants.MessageReceiverType.user\n : CometChatUIKitConstants.MessageReceiverType.group;\n CometChat.getSmartReplies(receiverId, receiverType)\n .then((response: any) => {\n let repliesArray: string[] = [];\n Object.keys(response).forEach((reply) => {\n if (response[reply] && response[reply] != \"\") {\n this.repliesArray.push(response[reply]);\n repliesArray.push(response[reply]);\n }\n });\n resolve(repliesArray);\n\n this.smartReplyState = States.loaded;\n\n this.ref.detectChanges();\n })\n .catch((err: CometChat.CometChatException) => {\n this.smartReplyState = States.error;\n this.ref.detectChanges();\n return reject(err);\n });\n });\n };\n\n enableAiFeatures() {\n if (this.actions && this.actions.length > 0) {\n this.isAiEnabled = true;\n\n this.actions.forEach((action) => {\n if (action.id === \"ai-smart-reply\") {\n const newButton = {\n ...action,\n title: action.title!,\n onClick: this.getSmartReplies,\n };\n\n this.buttons.push(newButton);\n this.ref.detectChanges();\n }\n if (action.id === \"ai-conversation-summary\") {\n const newButton = {\n ...action,\n title: action.title!,\n id: action.id,\n onClick: async () => this.callConversationSummaryMethod(),\n };\n this.buttons.push(newButton);\n this.ref.detectChanges();\n }\n if (action.id === \"ai-bots\") {\n const newButton = {\n ...action,\n title: action.title!,\n id: action.id,\n onClick: async () =>\n this.showAiBotMessageListMethod((action as any).onClick()),\n };\n this.buttons.push(newButton);\n this.ref.detectChanges();\n }\n });\n }\n }\n\n showAiBotMessageListMethod = (action: any) => {\n this.aiBotList = action;\n this.showActionSheetItemAI = false;\n this.showAiBotList = true;\n\n this.aiActionButtons.length = 0;\n\n this.aiBotList.forEach((e: any, i: any) => {\n const newButton = {\n id: e.id,\n title: e.title,\n onClick: async () => {\n CometChatUIEvents.ccShowPanel.next({\n child: { bot: e, showBotView: true },\n });\n },\n };\n\n this.aiActionButtons.push(newButton);\n });\n\n this.ref.detectChanges();\n };\n\n sendReply = (event: any) => {\n let reply: string = event?.detail?.reply;\n CometChatUIEvents.ccComposeMessage.next(reply);\n this.repliesArray = [];\n this.showActionSheetItemAI = false;\n this.showAiFeatures = false;\n this.aiButtonRef.nativeElement.click();\n\n this.ref.detectChanges();\n };\n\n composerWrapperStyle() {\n return {\n height: this.messageComposerStyle?.height,\n width: this.messageComposerStyle?.width,\n background: this.messageComposerStyle?.background,\n border: this.messageComposerStyle?.border,\n borderRadius: this.messageComposerStyle?.borderRadius,\n };\n }\n\n private isValidStyleValue(value: any): boolean {\n return value != null && typeof value === 'string' && value.trim() !== '';\n }\n\n private getThemeColors() {\n return {\n error: this.themeService.theme.palette.getError(),\n accent600: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n accent400: this.themeService.theme.palette.getAccent400()\n };\n }\n \n setTheme() {\n this.emojiPopover.boxShadow = `0px 0px 32px ${this.themeService.theme.palette.getAccent50()}`;\n this.stickerPopover.boxShadow = `0px 0px 32px ${this.themeService.theme.palette.getAccent50()}`;\n this.mediaRecordedPopover.boxShadow = `0px 0px 32px ${this.themeService.theme.palette.getAccent50()}`;\n this.aiPopover.background = this.themeService.theme.palette.getBackground();\n this.aiPopover.boxShadow = `0px 0px 32px ${this.themeService.theme.palette.getAccent50()}`;\n this.setComposerStyle();\n this.actionSheetStyle = {\n layoutModeIconTint:\n this.actionSheetStyle.layoutModeIconTint ||\n this.themeService.theme.palette.getAccent(),\n borderRadius: this.actionSheetStyle?.borderRadius || \"inherit\",\n background: this.actionSheetStyle.background || this.themeService.theme.palette.getBackground(),\n border:this.actionSheetStyle.border || \"none\",\n width:this.actionSheetStyle.width || \"100%\",\n height:this.actionSheetStyle.height || \"100%\",\n titleFont:\n this.actionSheetStyle.titleFont ||\n fontHelper(this.themeService.theme.typography.title2),\n titleColor:\n this.actionSheetStyle.titleColor ||\n this.themeService.theme.palette.getAccent(),\n ActionSheetSeparatorTint:\n this.actionSheetStyle.ActionSheetSeparatorTint ||\n this.themeService.theme.palette.getAccent400(),\n listItemBackground: this.actionSheetStyle.listItemBackground || this.themeService.theme.palette.getBackground(), \n listItemIconTint: this.actionSheetStyle.listItemIconTint || this.themeService.theme.palette.getAccent700(), \n listItemIconBackground: this.actionSheetStyle.listItemIconBackground || 'transparent',\n \n };\n this.popoverStyle.background = this.actionSheetStyle.background || this.themeService.theme.palette.getBackground();\n this.aiActionSheetStyle = {\n layoutModeIconTint:\n this.aiActionSheetStyle.layoutModeIconTint ||\n this.themeService.theme.palette.getAccent(),\n borderRadius: \"inherit\",\n background: this.themeService.theme.palette.getBackground(),\n border: \"none\",\n width: \"100%\",\n height: \"100%\",\n titleFont:\n this.aiActionSheetStyle.titleFont ||\n fontHelper(this.themeService.theme.typography.title2),\n titleColor:\n this.aiActionSheetStyle.titleColor ||\n this.themeService.theme.palette.getAccent(),\n ActionSheetSeparatorTint:\n this.aiActionSheetStyle.ActionSheetSeparatorTint ||\n `1px solid ${this.themeService.theme.palette.getAccent400()}`,\n };\n\n this.textInputStyle = {\n height: \"100%\",\n width: \"100%\",\n maxHeight: this.messageComposerStyle?.maxInputHeight || \"100px\",\n border: this.messageComposerStyle?.inputBorder,\n borderRadius: this.messageComposerStyle?.inputBorderRadius,\n background: this.messageComposerStyle?.inputBackground,\n textFont: this.messageComposerStyle?.textFont,\n textColor: this.messageComposerStyle?.textColor,\n dividerColor: this.messageComposerStyle?.dividerTint,\n };\n this.disableSendButton()\n this.previewStyle = {\n height: \"100%\",\n width: \"100%\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n background: this.themeService.theme.palette.getBackground(),\n previewTitleFont:\n this.messageComposerStyle?.previewTitleFont ||\n fontHelper(this.themeService.theme.typography.subtitle1),\n previewTitleColor:\n this.messageComposerStyle?.previewTitleColor ||\n this.themeService.theme.palette.getAccent400(),\n previewSubtitleColor:\n this.messageComposerStyle?.previewSubtitleColor ||\n this.themeService.theme.palette.getAccent400(),\n previewSubtitleFont:\n this.messageComposerStyle?.previewSubtitleFont ||\n fontHelper(this.themeService.theme.typography.subtitle2),\n closeButtonIconTint:\n this.messageComposerStyle?.closePreviewTint ||\n this.themeService.theme.palette.getAccent600(),\n borderRadius: '12px'\n };\n let buttonStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n };\n const themeColors = this.getThemeColors();\n const width = this.isValidStyleValue(this.mediaRecorderStyle?.width) &&\n !this.mediaRecorderStyle?.width?.includes(\"%\")\n ? this.mediaRecorderStyle.width\n : \"250px\";\n const height = this.isValidStyleValue(this.mediaRecorderStyle?.height) &&\n !this.mediaRecorderStyle?.height?.includes(\"%\")\n ? this.mediaRecorderStyle.height\n : \"100px\";\n let defaultMediaRecorderStyle = new MediaRecorderStyle({\n startIconTint: this.isValidStyleValue(this.mediaRecorderStyle?.startIconTint)\n ? this.mediaRecorderStyle.startIconTint\n : themeColors.error,\n submitIconTint: this.isValidStyleValue(this.mediaRecorderStyle?.submitIconTint)\n ? this.mediaRecorderStyle.submitIconTint\n : themeColors.accent600,\n stopIconTint: this.isValidStyleValue(this.mediaRecorderStyle?.stopIconTint)\n ? this.mediaRecorderStyle.stopIconTint\n : themeColors.error,\n closeIconTint: this.isValidStyleValue(this.mediaRecorderStyle?.closeIconTint)\n ? this.mediaRecorderStyle.closeIconTint\n : themeColors.accent600,\n height: height,\n width: width,\n background: this.isValidStyleValue(this.mediaRecorderStyle?.background)\n ? this.mediaRecorderStyle.background\n : themeColors.background,\n timerTextFont: this.isValidStyleValue(this.mediaRecorderStyle?.timerTextFont)\n ? this.mediaRecorderStyle.timerTextFont\n : fontHelper(this.themeService.theme.typography.subtitle2),\n timerTextColor: this.isValidStyleValue(this.mediaRecorderStyle?.timerTextColor)\n ? this.mediaRecorderStyle.timerTextColor\n : themeColors.accent400,\n });\n this.mediaRecorderStyle = defaultMediaRecorderStyle;\n this.mediaRecordedPopover.width = width;\n this.mediaRecordedPopover.height = height;\n this.mediaRecordedPopover.background =\n this.themeService.theme.palette.getBackground();\n this.mediaRecorderStyle.border = `1px solid ${this.themeService.theme.palette.getAccent100()}`;\n this.emojiPopover.boxShadow = `0px 0px 8px ${this.themeService.theme.palette.getAccent50()}`;\n this.stickerPopover.boxShadow = `0px 0px 8px ${this.themeService.theme.palette.getAccent50()}`;\n this.mediaRecordedPopover.boxShadow = `0px 0px 8px ${this.themeService.theme.palette.getAccent50()}`;\n this.emojiButtonStyle = {\n buttonIconTint:\n this.messageComposerStyle?.emojiIconTint ||\n this.themeService.theme.palette.getAccent600(),\n ...buttonStyle,\n };\n this.stickerButtonStyle = {\n buttonIconTint: this.themeService.theme.palette.getAccent600(),\n ...buttonStyle,\n };\n this.mediaRecorderButtonStyle = {\n buttonIconTint: this.messageComposerStyle?.voiceRecordingIconTint ||\n \n this.themeService.theme.palette.getAccent600(),\n ...buttonStyle,\n };\n this.emojiKeyboardStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n textFont: this.messageComposerStyle?.emojiKeyboardTextFont,\n textColor: this.messageComposerStyle?.emojiKeyboardTextColor,\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: \"12px\",\n activeIconTint: this.themeService.theme.palette.getPrimary(),\n iconTint: this.themeService.theme.palette.getAccent600()\n };\n\n this.stickerKeyboardStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: \"12px\",\n categoryBackground: this.themeService.theme.palette.getBackground(),\n };\n this.attachmentButtonStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n buttonIconTint:\n this.messageComposerStyle?.attachIcontint ||\n this.themeService.theme.palette.getAccent600(),\n background: \"transparent\",\n };\n this.createPollStyle = {\n placeholderTextFont: fontHelper(\n this.themeService.theme.typography.subtitle1\n ),\n placeholderTextColor: this.themeService.theme.palette.getAccent600(),\n deleteIconTint: this.themeService.theme.palette.getAccent600(),\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n closeIconTint: this.themeService.theme.palette.getPrimary(),\n questionInputBackground: this.themeService.theme.palette.getAccent100(),\n optionInputBackground: this.themeService.theme.palette.getAccent100(),\n answerHelpTextFont: fontHelper(\n this.themeService.theme.typography.caption1\n ),\n answerHelpTextColor: this.themeService.theme.palette.getAccent400(),\n addAnswerIconTint: this.themeService.theme.palette.getPrimary(),\n createPollButtonTextFont: fontHelper(\n this.themeService.theme.typography.text2\n ),\n createPollButtonTextColor:\n this.themeService.theme.palette.getAccent(\"dark\"),\n createPollButtonBackground: this.themeService.theme.palette.getPrimary(),\n addAnswerTextFont: fontHelper(this.themeService.theme.typography.text2),\n addAnswerTextColor: this.themeService.theme.palette.getPrimary(),\n errorTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n errorTextColor: this.themeService.theme.palette.getError(),\n optionPlaceholderTextFont: fontHelper(\n this.themeService.theme.typography.subtitle1\n ),\n optionPlaceholderTextColor:\n this.themeService.theme.palette.getAccent600(),\n questionInputTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n questionInputTextColor: this.themeService.theme.palette.getAccent600(),\n optionInputTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n optionInputTextColor: this.themeService.theme.palette.getAccent600(),\n width: \"360px\",\n height: \"620px\",\n border: \"\",\n borderRadius: \"8px\",\n background: this.themeService.theme.palette.getAccent900(),\n };\n }\n setComposerStyle() {\n let defaultStyle: MessageComposerStyle = new MessageComposerStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `none`,\n height: \"100%\",\n width: \"100%\",\n borderRadius: \"0\",\n liveReactionIconTint: \"red\",\n attachIcontint: this.themeService.theme.palette.getAccent500(),\n sendIconTint: this.themeService.theme.palette.getPrimary(),\n emojiIconTint: this.themeService.theme.palette.getAccent500(),\n inputBackground: this.themeService.theme.palette.getAccent100(),\n inputBorder: \"none\",\n inputBorderRadius: \"12px\",\n dividerTint: this.themeService.theme.palette.getAccent200(),\n textFont: fontHelper(this.themeService.theme.typography.subtitle1),\n textColor: this.themeService.theme.palette.getAccent(),\n\n emojiKeyboardTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n emojiKeyboardTextColor: this.themeService.theme.palette.getAccent400(),\n previewTitleFont: fontHelper(\n this.themeService.theme.typography.subtitle1\n ),\n previewTitleColor: this.themeService.theme.palette.getAccent(),\n previewSubtitleFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n previewSubtitleColor: this.themeService.theme.palette.getAccent600(),\n closePreviewTint: this.themeService.theme.palette.getAccent500(),\n maxInputHeight: \"100px\",\n });\n this.messageComposerStyle = {\n ...defaultStyle,\n ...this.messageComposerStyle,\n };\n if (!this.hideLiveReaction) {\n this.liveReactionStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n buttonIconTint: this.messageComposerStyle?.liveReactionIconTint,\n background: \"transparent\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }\n }\n }\n onPreviewClosed() {\n if (this.messageToBeEdited) {\n CometChatMessageEvents.ccMessageEdited.next({ message: this.messageToBeEdited, status: MessageStatus.cancelled })\n }\n this.closePreview();\n }\n closePreview() {\n this.showSendButton = false;\n this.showListForMentions = false;\n this.showMentionsCountWarning = false;\n this.showPreview = false;\n this.editPreviewText = \"\";\n this.messageToBeEdited = null;\n this.clearComposer()\n this.disableSendButton();\n this.ref.detectChanges();\n }\n backButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.themeService.theme.palette.getPrimary(),\n };\n };\n\n /**\n * Accepts search term from mentionsTextFormatter and opens the mentions select list\n *\n * @param {string} searchTerm\n * @returns {void}\n */\n searchMentions = (searchTerm: string) => {\n if (!(searchTerm && searchTerm.length)) {\n this.mentionsSearchTerm = \"\";\n this.showListForMentions = false;\n this.mentionsSearchCount = 1;\n this.ref.detectChanges();\n return;\n }\n\n if (\n !this.lastEmptySearchTerm ||\n !searchTerm\n .split(\"@\")[1]\n .toLowerCase()\n .startsWith(this.lastEmptySearchTerm.toLowerCase())\n ) {\n this.mentionsSearchTerm =\n searchTerm.split(\"@\")[1] && searchTerm.split(\"@\")[1].length\n ? searchTerm.split(\"@\")[1]\n : \"\";\n this.showListForMentions = true;\n this.mentionsSearchCount++;\n this.lastEmptySearchTerm = undefined;\n this.ref.detectChanges();\n }\n };\n\n /**\n * Called when clicking a user from the mentions list.\n * Add the user to mentions text formatter instance and then call rerender to style the mention\n * within message input.\n *\n * @param {CometChat.User} user\n */\n defaultMentionsItemClickHandler = (\n user: CometChat.User | CometChat.GroupMember\n ) => {\n let cometChatUsers = [user];\n this.mentionsTextFormatterInstance.setCometChatUserGroupMembers(\n cometChatUsers\n );\n this.mentionsTextFormatterInstance.setLoggedInUser(this.loggedInUser!);\n this.mentionedUsers = [\n ...this.mentionsTextFormatterInstance.getCometChatUserGroupMembers(),\n ];\n this.mentionsTextFormatterInstance.reRender();\n this.showListForMentions = false;\n this.mentionsSearchTerm = \"\";\n this.ref.detectChanges();\n };\n\n /**\n * Close mentions list if search returns empty list\n */\n defaultOnEmptyForMentions = () => {\n this.lastEmptySearchTerm = this.mentionsSearchTerm;\n this.showListForMentions = false;\n this.mentionsSearchTerm = \"\";\n this.ref.detectChanges();\n };\n\n getMentionInfoIconStyle = () => {\n return {\n height: \"fit-content\",\n width: \"fit-content\",\n buttonTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n buttonTextColor: this.themeService.theme.palette.getAccent600(),\n borderRadius: \"8px\",\n border: \"none\",\n buttonIconTint: this.themeService.theme.palette.getAccent600(),\n padding: \"8px\",\n iconHeight: \"20px\",\n iconWidth: \"20px\",\n iconBackground: \"transparent\",\n gap: \"5px\",\n };\n };\n\n handleClickOutside = (event: any) => {\n if (this.userMemberWrapperRef) {\n const userMemberWrapperRect =\n this.userMemberWrapperRef?.nativeElement?.getBoundingClientRect();\n const isOutsideClick =\n event?.clientX <= userMemberWrapperRect?.left ||\n event?.clientX >= userMemberWrapperRect?.right ||\n event?.clientY >= userMemberWrapperRect?.top ||\n event?.clientY <= userMemberWrapperRect?.bottom;\n if (isOutsideClick) {\n this.showListForMentions = false;\n this.mentionsSearchTerm = \"\";\n this.ref.detectChanges();\n }\n }\n };\n}\n\nexport interface Buttons {\n title: string;\n id: string;\n onClick: () => Promise<unknown>;\n}\n","<div class=\"cc-message-composer__wrapper\" [ngStyle]=\"composerWrapperStyle()\">\n <div class=\"cc-messagecomposer__mentions\" *ngIf=\"showListForMentions\"\n #userMemberWrapperRef>\n <cometchat-user-member-wrapper [userMemberListType]=\"userMemberListType\"\n [onItemClick]=\"userMemberWrapperConfiguration.onItemClick || defaultMentionsItemClickHandler\"\n [usersRequestBuilder]=\"usersRequestBuilder\"\n [searchKeyword]=\"mentionsSearchTerm\"\n [subtitleView]=\"userMemberWrapperConfiguration.subtitleView\"\n [disableUsersPresence]=\"userMemberWrapperConfiguration.disableUsersPresence\"\n [avatarStyle]=\"userMemberWrapperConfiguration.avatarStyle\"\n [listItemView]=\"userMemberWrapperConfiguration.listItemView\"\n [statusIndicatorStyle]=\"userMemberWrapperConfiguration.statusIndicatorStyle\"\n [userPresencePlacement]=\"userMemberWrapperConfiguration.userPresencePlacement\"\n [hideSeperator]=\"userMemberWrapperConfiguration.hideSeparator\"\n [loadingStateView]=\"userMemberWrapperConfiguration.loadingStateView\"\n [onEmpty]=\"defaultOnEmptyForMentions\"\n [loadingIconUrl]=\"userMemberWrapperConfiguration.loadingIconURL\"\n [group]=\"group\" [groupMemberRequestBuilder]=\"groupMembersRequestBuilder\"\n [disableLoadingState]=\"true\"\n [onError]=\"defaultOnEmptyForMentions\"></cometchat-user-member-wrapper>\n\n <div *ngIf=\"showMentionsCountWarning\"\n class=\"cc-messagecomposer__mentions-limit-exceeded\">\n <cometchat-icon-button\n [text]=\"mentionsWarningText || localize('MENTIONS_LIMIT_WARNING_MESSAGE')\"\n [iconURL]=\"InfoSimpleIcon\"\n [buttonStyle]=\"getMentionInfoIconStyle()\"></cometchat-icon-button>\n </div>\n\n </div>\n <div class=\"cc-message-composer__header-view\"\n *ngIf=\"headerView; else messagePreview\">\n <ng-container\n *ngTemplateOutlet=\"headerView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #messagePreview>\n <div class=\"cc-message-composer__header-view\" *ngIf=\"showPreview\">\n <cometchat-preview [previewStyle]=\"previewStyle\"\n [previewSubtitle]=\"editPreviewText\"\n (cc-preview-close-clicked)=\"onPreviewClosed()\"> </cometchat-preview>\n </div>\n </ng-template>\n <div class=\"cc-message-composer__input\">\n\n <cometchat-text-input (cc-text-input-entered)=\"sendMessageOnEnter($event)\"\n #inputRef [text]=\"text\"\n (cc-text-input-changed)=\"messageInputChanged($event)\"\n [textInputStyle]=\"textInputStyle\" [placeholderText]=\"placeholderText\"\n [auxiliaryButtonAlignment]=\"auxiliaryButtonsAlignment\"\n [textFormatters]=\"textFormatters\">\n\n <div data-slot=\"secondaryView\">\n <div *ngIf=\"secondaryButtonView;else secondaryButton\">\n <ng-container\n *ngTemplateOutlet=\"secondaryButtonView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #secondaryButton>\n <div class=\"cc-message-composer__attachbutton\">\n <cometchat-popover\n (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [placement]=\"auxilaryPlacement\" [popoverStyle]=\"popoverStyle\">\n <cometchat-action-sheet slot=\"content\"\n [title]=\"localize('ADD_TO_CHAT')\" [actions]=\"composerActions\"\n [actionSheetStyle]=\"actionSheetStyle\"\n (cc-actionsheet-clicked)=\"handleActions($event)\"\n [hideLayoutMode]=\"hideLayoutMode\"\n >\n </cometchat-action-sheet>\n <cometchat-button #actionSheetRef slot=\"children\"\n (cc-button-clicked)=\"openActionSheet($event)\"\n [iconURL]=\"!showActionSheetItem || (showEmojiKeyboard && !showActionSheetItem) ? attachmentIconURL : closeButtonIconURL\"\n [buttonStyle]=\"attachmentButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n </ng-template>\n </div>\n\n <div class=\"cc-message-composer__auxiliary\" data-slot=\"auxilaryView\">\n <div class=\"cc-message-composer__custom-auxiliary-view\"\n *ngIf=\"auxilaryButtonView\">\n <ng-container\n *ngTemplateOutlet=\"auxilaryButtonView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <!-- AI Cards -->\n <div class=\"cc-message-composer__stickerkeyboard\"\n *ngIf=\"!auxilaryButtonView\">\n <cometchat-popover (cc-popover-click)=\"openStickerKeyboard($event)\"\n [popoverStyle]=\"aiPopover\" [placement]=\"auxilaryPlacement\">\n <cometchat-ai-card [state]=\"smartReplyState\"\n *ngIf=\"showSmartReply && !showActionSheetItemAI && !showAiBotList\"\n slot=\"content\" [loadingStateText]=\"loadingStateText\"\n [emptyStateText]=\"emptyStateText\"\n [errorStateText]=\"errorStateText\">\n <div slot=\"loadedView\" class=\"smart-replies-wrapper\">\n\n <div class=\"cc-message-composer__smartreply-header\">\n <div class=\"cc-message-composer__back-button\">\n <cometchat-button\n *ngIf=\"repliesArray && repliesArray.length > 0 \"\n [iconURL]=\"backButtonIconURL\"\n (cc-button-clicked)=\"onAiBackButtonClick()\"\n [buttonStyle]=\"backButtonStyle()\">\n </cometchat-button>\n </div>\n <div class=\"cc-message-composer__smartreply-header-view\">\n <p>{{ localize(\"SUGGEST_A_REPLY\") }}</p>\n </div>\n </div>\n\n <div class=\"cc-message-composer__smartreply-content\">\n <smart-replies\n *ngIf=\"repliesArray && repliesArray.length > 0 \"\n [smartReplyStyle]=\"smartReplyStyle\" [replies]=\"repliesArray\"\n [closeIconURL]=\"''\" (cc-reply-clicked)=\"sendReply($event)\">\n </smart-replies>\n </div>\n\n\n\n\n\n </div>\n </cometchat-ai-card>\n\n <div *ngIf=\"showAiBotList && !showActionSheetItemAI\"\n slot=\"content\">\n <div class=\"cc-message-composer__aibotlist\">\n <cometchat-button *ngIf=\" aiBotList && aiBotList.length> 1 \"\n [iconURL]=\"backButtonIconURL\"\n (cc-button-clicked)=\"onAiBackButtonClick()\"\n [buttonStyle]=\"backButtonStyle()\">\n </cometchat-button>\n <p>{{ localize(\"COMETCHAT_ASK_AI_BOT\") }}</p>\n </div>\n <cometchat-action-sheet\n *ngIf=\"showAiBotList && !showActionSheetItemAI\" slot=\"content\"\n [actions]=\"aiActionButtons\" [title]=\"localize('AI')\"\n [actionSheetStyle]=\"aiActionSheetStyle\" [hideLayoutMode]=\"true\"\n (cc-actionsheet-clicked)=\"handleActions($event)\">\n </cometchat-action-sheet>\n </div>\n\n <cometchat-action-sheet *ngIf=\"showActionSheetItemAI\" slot=\"content\"\n [actions]=\"buttons\" [title]=\"localize('AI')\"\n [actionSheetStyle]=\"aiActionSheetStyle\" [hideLayoutMode]=\"true\"\n (cc-actionsheet-clicked)=\"handleActions($event)\">\n </cometchat-action-sheet>\n\n <cometchat-button *ngIf=\"isAiEnabled\" [hoverText]=\"localize('AI')\"\n slot=\"children\" #aiButtonRef\n (cc-button-clicked)=\"openAiFeatures($event)\"\n [iconURL]=\"!showAiFeatures ? aiIconURL : closeButtonIconURL\"\n [buttonStyle]=\"stickerButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n\n <div class=\"cc-message-composer__stickerkeyboard\"\n *ngIf=\"enableStickerKeyboard && !auxilaryButtonView\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [popoverStyle]=\"stickerPopover\" [placement]=\"auxilaryPlacement\">\n <stickers-keyboard slot=\"content\"\n [stickerStyle]=\"stickerKeyboardStyle\"\n (cc-sticker-clicked)=\"sendSticker($event)\">\n </stickers-keyboard>\n <cometchat-button [hoverText]=\"localize('STICKER')\" slot=\"children\"\n #stickerButtonRef\n (cc-button-clicked)=\"openStickerKeyboard($event)\"\n [iconURL]=\" !showStickerKeyboard ? stickerButtonIconURL : closeButtonIconURL\"\n [buttonStyle]=\"stickerButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n <div class=\"cc-message-composer__emojikeyboard\"\n *ngIf=\"!auxilaryButtonView\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [placement]=\"auxilaryPlacement\" [popoverStyle]=\"emojiPopover\">\n <cometchat-emoji-keyboard slot=\"content\"\n [emojiKeyboardStyle]=\"emojiKeyboardStyle\"\n (cc-emoji-clicked)=\"appendEmoji($event)\">\n </cometchat-emoji-keyboard>\n <cometchat-button #emojiButtonRef [hoverText]=\"localize('EMOJI')\"\n slot=\"children\" (cc-button-clicked)=\"openEmojiKeyboard($event)\"\n [iconURL]=\" !showEmojiKeyboard || (!showEmojiKeyboard && showActionSheetItem) ? emojiIconURL : closeButtonIconURL\"\n [buttonStyle]=\"emojiButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n <div class=\"cc-message-composer__mediarecorder\"\n *ngIf=\"!hideVoiceRecording\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [popoverStyle]=\"mediaRecordedPopover\"\n [closeOnOutsideClick]=\"false\"\n [placement]=\"auxilaryPlacement\">\n\n <cometchat-media-recorder *ngIf=\"toggleMediaRecorded\"\n [autoRecording]=\"true\" startIconText=\"\" stopIconText=\"\"\n submitButtonIconText=\"\"\n [submitButtonIconURL]=\"voiceRecordingSubmitIconURL\"\n [startIconURL]=\"voiceRecordingStartIconURL\"\n [stopIconURL]=\"voiceRecordingStopIconURL\"\n [closeIconURL]=\"voiceRecordingCloseIconURL\"\n (cc-media-recorder-submitted)=\"sendRecordedMedia($event)\"\n (cc-media-recorder-closed)=\"closeMediaRecorder($event)\"\n slot=\"content\"\n [mediaPlayerStyle]=\"mediaRecorderStyle\"></cometchat-media-recorder>\n <cometchat-icon-button [hoverText]=\"localize('VOICE_RECORDING')\"\n slot=\"children\" #mediaRecordedRef\n (cc-button-clicked)=\"openMediaRecorded($event)\"\n [iconURL]=\" !toggleMediaRecorded ? voiceRecordingIconURL : closeButtonIconURL\"\n [buttonStyle]=\"mediaRecorderButtonStyle\"></cometchat-icon-button>\n </cometchat-popover>\n </div>\n </div>\n <div data-slot=\"primaryView\">\n <div *ngIf=\"sendButtonView;else sendButton\">\n <ng-container\n *ngTemplateOutlet=\"sendButtonView;context:{ item: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #sendButton>\n <div class=\"cc-message-composer__sendbutton\"\n *ngIf=\"showSendButton || hideLiveReaction\">\n <cometchat-button [iconURL]=\"sendButtonIconURL\"\n [buttonStyle]=\"sendButtonStyle\"\n [hoverText]=\"localize('SEND_MESSAGE')\"\n [disabled]=\"!showSendButton\"\n (cc-button-clicked)=\"customSendMethod(messageText)\">\n </cometchat-button>\n </div>\n <div class=\"cc-message-composer__livereaction\"\n *ngIf=\"!hideLiveReaction && !showSendButton\">\n <cometchat-button [iconURL]=\"LiveReactionIconURL\"\n [hoverText]=\"localize('LIVE_REACTION')\"\n [buttonStyle]=\"liveReactionStyle\"\n (cc-button-clicked)=\"sendReaction()\"></cometchat-button>\n </div>\n </ng-template>\n </div>\n </cometchat-text-input>\n </div>\n</div>\n\n<input class=\"cc-message-composer__mediainput\" #inputElement\n (change)=\"inputChangeHandler($event)\" />\n<cometchat-backdrop *ngIf=\"showCreatePolls\" [backdropStyle]=\"backdropStyle\">\n <create-poll [user]=\"user\" [group]=\"group\"\n (cc-close-clicked)=\"closeCreatePolls()\"\n [createPollStyle]=\"createPollStyle\"></create-poll>\n</cometchat-backdrop>\n","import { AvatarStyle, BaseStyle, DateStyle, ListItemStyle } from '@cometchat/uikit-elements'\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from \"@angular/core\";\nimport { CardMessage, CometChatMessageEvents, CometChatMessageTemplate, CometChatUIKitConstants, CustomInteractiveMessage, FormMessage, IMessages, MessageStatus, SchedulerMessage, fontHelper, localize } from \"@cometchat/uikit-resources\";\nimport { MessageComposerConfiguration, MessageComposerStyle, MessageListConfiguration, UserMemberWrapperConfiguration, ThreadedMessagesStyle } from \"@cometchat/uikit-shared\";\n\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatException } from \"../../Shared/Utils/ComeChatException\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { Subscription } from \"rxjs\";\n\n/**\n*\n* CometChatThreadedMessagesComponent is a wrapper component for messageList, messageBubble, messageComposer component.\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-threaded-messages\",\n templateUrl: \"./cometchat-threaded-messages.component.html\",\n styleUrls: [\"./cometchat-threaded-messages.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatThreadedMessagesComponent implements OnInit, OnChanges {\n\n @Input() onClose!: (() => void) | null;\n @Input() onError!: ((error: CometChat.CometChatException) => void) | null;\n\n @Input() parentMessage!: any;\n @Input() title: string = localize(\"THREAD\");\n @Input() closeIconURL: string = \"assets/close2x.svg\";\n @Input() bubbleView!: TemplateRef<any>;\n @Input() messageActionView!: TemplateRef<any>;\n @Input() messageListConfiguration: MessageListConfiguration = new MessageListConfiguration({});\n @Input() userMemberWrapperConfiguration: UserMemberWrapperConfiguration = new UserMemberWrapperConfiguration({});\n @Input() messageComposerConfiguration: MessageComposerConfiguration = new MessageComposerConfiguration({});\n @Input() threadedMessagesStyle: ThreadedMessagesStyle = {\n width: \"100%\",\n height: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: \"none\",\n border: \"none\",\n titleColor: this.themeService.theme.palette.getAccent(),\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n closeIconTint: this.themeService.theme.palette.getPrimary()\n };\n @Input() hideMessageComposer: boolean = false;\n @Input() messageComposerView!: TemplateRef<any>;\n @Input() messageListView!: TemplateRef<any>;\n @Input() disableSoundForMessages: boolean = false;\n user!: CometChat.User;\n group!: CometChat.Group;\n loggedInUser!: CometChat.User | null;\n public limit: number = 30;\n requestBuilder!: CometChat.MessagesRequestBuilder;\n public composerStyles: MessageComposerStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n borderRadius: \"12px\",\n background: this.themeService.theme.palette.getAccent900(),\n inputBackground: this.themeService.theme.palette.getSecondary(), // done\n textFont: fontHelper(this.themeService.theme.typography.subtitle1), // done\n textColor: this.themeService.theme.palette.getAccent(), // done\n }\n avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"28px\",\n height: \"28px\",\n border: \"none\",\n backgroundColor: \"white\",\n nameTextColor: \"rgb(20,20,20)\",\n backgroundSize: \"cover\",\n nameTextFont: \"500 16px Inter\",\n\n outerViewBorderSpacing: \"\",\n }\n statusIndicatorStyle: BaseStyle = {\n borderRadius: \"16px\",\n width: \"10px\",\n height: \"10px\",\n border: \"none\",\n }\n listItemStyle: ListItemStyle = {\n background: \"white\",\n titleColor: \"black\",\n titleFont: \"500 16px Inter\",\n width: \"\",\n height: \"100%\",\n border: \"none\",\n borderRadius: \"2px\",\n separatorColor: \"\",\n activeBackground: \"transparent\",\n hoverBackground: \"transparent\"\n }\n actionButtonStyle: any = {\n height: \"100%\",\n width: \"100%\",\n border: \"none\",\n borderTop: \"1px solid #e1e1e1\",\n borderBottom: \"1px solid #e1e1e1\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonTextFont: \"500 15px Inter\",\n buttonTextColor: \"black\",\n padding: \"8px\"\n }\n\n\n buttonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: \"#7dbfff\"\n }\n titleStyle: any = {\n textFont: \"700 22px Inter\",\n textColor: \"black\",\n background: \"transparent\",\n }\n ccMessageSent!: Subscription;\n ccMessageEdited!: Subscription;\n ccMessageDeleted!: Subscription;\n ccMessageRead!: Subscription;\n onMessagesDelivered!: Subscription;\n onMessagesRead!: Subscription;\n onMessageDeleted!: Subscription;\n onMessagesDeliveredToAll!: Subscription;\n onMessagesReadByAll!: Subscription;\n onMessageEdited!: Subscription;\n onTextMessageReceived!: Subscription;\n onCustomMessageReceived!: Subscription;\n onFormMessageReceived!: Subscription;\n onSchedulerMessageReceived!: Subscription;\n onCardMessageReceived!: Subscription;\n onCustomInteractiveMessageReceived!: Subscription;\n onMediaMessageReceived!: Subscription;\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) { }\n ngOnInit() {\n this.requestBuilder = new CometChat.MessagesRequestBuilder()\n .setCategories(ChatConfigurator.getDataSource().getAllMessageCategories())\n .setTypes(ChatConfigurator.getDataSource().getAllMessageTypes())\n .hideReplies(true)\n .setLimit(this.limit)\n .setParentMessageId(this.parentMessage!.getId())\n this.addMessageEventListeners()\n CometChat.getLoggedinUser().then((user) => {\n this.loggedInUser = user;\n if (this.parentMessage?.getSender().getUid() === this.loggedInUser?.getUid()) {\n if (this.parentMessage?.getReceiverType() === CometChat.RECEIVER_TYPE.USER) {\n this.user = this.parentMessage!.getReceiver() as CometChat.User;\n } else {\n this.group = this.parentMessage!.getReceiver() as CometChat.Group;\n }\n this.ref.detectChanges();\n } else if (this.parentMessage?.getReceiverType() === CometChat.RECEIVER_TYPE.USER) {\n this.user = this.parentMessage?.getSender();\n this.ref.detectChanges();\n }\n else if (this.parentMessage?.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP) {\n this.group = this.parentMessage?.getReceiver();\n this.ref.detectChanges()\n }\n\n }).catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n this.setTheme();\n this.subscribeToEvents()\n }\n ngOnChanges(change: SimpleChanges) {\n }\n ngOnDestroy(): void {\n this.unsubscribeToEvents()\n try {\n //Removing Message Listeners\n this.onMessagesDelivered?.unsubscribe();\n this.onMessagesRead?.unsubscribe();\n this.onMessageDeleted?.unsubscribe();\n this.onMessageEdited?.unsubscribe();\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n updateMessage(message: CometChat.BaseMessage) {\n if (this.parentMessage?.getId() == message.getId()) {\n this.parentMessage = message;\n this.ref.detectChanges()\n }\n }\n updateReceipt(messageReceipt: CometChat.MessageReceipt) {\n if (Number(messageReceipt?.getMessageId()) == this.parentMessage?.getId()) {\n if (messageReceipt.getReadAt()) {\n this.parentMessage.setReadAt(messageReceipt.getReadAt());\n }\n else if (messageReceipt.getDeliveredAt()) {\n this.parentMessage.setDeliveredAt(messageReceipt.getDeliveredAt());\n\n }\n this.ref.detectChanges()\n }\n\n }\n addMessageEventListeners() {\n try {\n this.onMessagesDelivered = CometChatMessageEvents.onMessagesDelivered.subscribe((messageReceipt: CometChat.MessageReceipt) => {\n if (messageReceipt.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {\n this.updateReceipt(messageReceipt);\n }\n })\n this.onMessagesRead = CometChatMessageEvents.onMessagesRead.subscribe((messageReceipt: CometChat.MessageReceipt) => {\n if (messageReceipt.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {\n this.updateReceipt(messageReceipt);\n }\n\n })\n this.onMessagesReadByAll = CometChatMessageEvents.onMessagesReadByAll.subscribe((messageReceipt: CometChat.MessageReceipt) => {\n this.updateReceipt(messageReceipt);\n\n })\n this.onMessagesDeliveredToAll = CometChatMessageEvents.onMessagesDeliveredToAll.subscribe((messageReceipt: CometChat.MessageReceipt) => {\n this.updateReceipt(messageReceipt);\n\n })\n this.onMessageDeleted = CometChatMessageEvents.onMessageDeleted.subscribe((deletedMessage: CometChat.BaseMessage) => {\n this.updateMessage(deletedMessage);\n })\n this.onMessageEdited = CometChatMessageEvents.onMessageEdited.subscribe((editedMessage: CometChat.BaseMessage) => {\n this.updateMessage(editedMessage);\n })\n this.onTextMessageReceived =\n CometChatMessageEvents.onTextMessageReceived.subscribe(\n (message: CometChat.TextMessage) => {\n if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {\n this.ref.detectChanges();\n }\n }\n );\n this.onMediaMessageReceived =\n CometChatMessageEvents.onMediaMessageReceived.subscribe(\n (message: CometChat.MediaMessage) => {\n if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {\n\n this.ref.detectChanges();\n }\n }\n );\n this.onCustomMessageReceived =\n CometChatMessageEvents.onCustomMessageReceived.subscribe(\n (message: CometChat.CustomMessage) => {\n if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {\n\n this.ref.detectChanges();\n }\n }\n );\n this.onFormMessageReceived =\n CometChatMessageEvents.onFormMessageReceived.subscribe(\n (message: FormMessage) => {\n if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {\n\n this.ref.detectChanges();\n }\n }\n );\n this.onSchedulerMessageReceived =\n CometChatMessageEvents.onSchedulerMessageReceived.subscribe(\n (message: SchedulerMessage) => {\n if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {\n\n this.ref.detectChanges();\n }\n }\n );\n this.onCardMessageReceived =\n CometChatMessageEvents.onCardMessageReceived.subscribe(\n (message: CardMessage) => {\n if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {\n\n this.ref.detectChanges();\n }\n }\n );\n this.onCustomInteractiveMessageReceived =\n CometChatMessageEvents.onCustomInteractiveMessageReceived.subscribe(\n (message: CustomInteractiveMessage) => {\n if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {\n\n this.ref.detectChanges();\n }\n }\n );\n\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n getThreadCount() {\n const replyCount = this.parentMessage?.getReplyCount() || 0;\n const suffix = replyCount === 1 ? localize(\"REPLY\") : localize(\"REPLIES\");\n return `${replyCount} ${suffix}`;\n }\n subscribeToEvents() {\n this.ccMessageSent = CometChatMessageEvents.ccMessageSent.subscribe(({ status, message }: IMessages) => {\n if (status === MessageStatus.success && message?.getParentMessageId() === this.parentMessage?.getId()) {\n this.ref.detectChanges();\n }\n })\n this.ccMessageEdited = CometChatMessageEvents.ccMessageEdited.subscribe(({ status, message }: IMessages) => {\n if (status === MessageStatus.success && message?.getId() === this.parentMessage?.getId()) {\n this.ref.detectChanges()\n }\n })\n this.ccMessageDeleted = CometChatMessageEvents.ccMessageDeleted.subscribe((message: CometChat.BaseMessage) => {\n if (message?.getId() === this.parentMessage?.getId()) {\n this.ref.detectChanges()\n }\n })\n this.ccMessageRead = CometChatMessageEvents.ccMessageRead.subscribe((message: CometChat.BaseMessage) => {\n if (message?.getId() === this.parentMessage?.getId()) {\n this.ref.detectChanges()\n }\n })\n }\n\n unsubscribeToEvents() {\n this.ccMessageDeleted?.unsubscribe()\n this.ccMessageEdited?.unsubscribe()\n this.ccMessageRead?.unsubscribe()\n this.ccMessageSent?.unsubscribe();\n this.onCardMessageReceived?.unsubscribe();\n this.onFormMessageReceived?.unsubscribe();\n this.onSchedulerMessageReceived?.unsubscribe();\n this.onTextMessageReceived?.unsubscribe();\n this.onCustomInteractiveMessageReceived?.unsubscribe();\n this.onCustomMessageReceived?.unsubscribe();\n this.onMediaMessageReceived?.unsubscribe();\n this.onMessagesReadByAll?.unsubscribe();\n this.onMessagesDeliveredToAll?.unsubscribe();\n }\n closeView() {\n if (this.onClose) {\n this.onClose()\n }\n }\n\n setThreadedMessagesStyle() {\n let defaultStyle: ThreadedMessagesStyle = new ThreadedMessagesStyle({\n width: \"100%\",\n height: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: \"none\",\n border: \"none\",\n titleColor: this.themeService.theme.palette.getAccent(),\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n closeIconTint: this.themeService.theme.palette.getPrimary()\n })\n this.threadedMessagesStyle = {\n ...defaultStyle,\n ...this.threadedMessagesStyle\n }\n }\n setTheme() {\n this.setThreadedMessagesStyle()\n this.buttonStyle.buttonIconTint = this.threadedMessagesStyle.closeIconTint || this.themeService.theme.palette.getPrimary();\n this.actionButtonStyle.background = this.themeService.theme.palette.getBackground();\n this.actionButtonStyle.buttonTextFont = fontHelper(this.themeService.theme.typography.subtitle1);\n this.actionButtonStyle.buttonTextColor = this.themeService.theme.palette.getAccent600();\n this.titleStyle = {\n textFont: this.threadedMessagesStyle.titleFont || fontHelper(this.themeService.theme.typography.title1),\n textColor: this.threadedMessagesStyle.titleColor || this.themeService.theme.palette.getAccent(),\n background: \"transparent\"\n };\n this.ref.detectChanges()\n }\n wrapperStyle() {\n return {\n background: this.threadedMessagesStyle.background || this.themeService.theme.palette.getBackground(),\n height: this.threadedMessagesStyle.height,\n width: this.threadedMessagesStyle.width,\n border: this.threadedMessagesStyle.border,\n borderRadius: this.threadedMessagesStyle.borderRadius\n }\n }\n}\n","<div class=\"cc-threaded-messages__wrapper\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-threaded-messages__header\">\n <div class=\"cc-threaded-messages__title\">\n <cometchat-label [text]=\"title\"\n [labelStyle]=\"titleStyle\"></cometchat-label>\n </div>\n <div class=\"cc-threaded-messages__close\">\n <cometchat-button [iconURL]=\"closeIconURL\" [buttonStyle]=\"buttonStyle\"\n (cc-button-clicked)=\"closeView()\"></cometchat-button>\n </div>\n </div>\n <div class=\"cc-threaded-messages__bubble-view\">\n <ng-container\n *ngTemplateOutlet=\"bubbleView; context:{ $implicit: parentMessage }\">\n </ng-container>\n </div>\n <div class=\"cc-threaded-messages__action-view\">\n <ng-container\n *ngTemplateOutlet=\"messageActionView; context:{ $implicit: parentMessage }\">\n </ng-container>\n <cometchat-button *ngIf=\"!messageActionView\" [text]=\"getThreadCount()\"\n [buttonStyle]=\"actionButtonStyle\"></cometchat-button>\n </div>\n <div class=\"cc-threaded-messages__list\" *ngIf=\"!messageListView\">\n <cometchat-message-list #messageListRef\n [disableReactions]=\"messageListConfiguration?.disableReactions!\"\n [emojiKeyboardStyle]=\"messageListConfiguration?.emojiKeyboardStyle!\"\n [reactionsConfiguration]=\"messageListConfiguration?.reactionsConfiguration!\"\n [threadIndicatorIcon]=\"messageListConfiguration?.threadIndicatorIcon!\"\n [parentMessageId]=\"parentMessage?.getId()\"\n [emptyStateView]=\"messageListConfiguration.emptyStateView\"\n [loadingStateView]=\"messageListConfiguration.loadingStateView\"\n [user]=\"user\" [group]=\"group\"\n [errorStateView]=\"messageListConfiguration.errorStateView\"\n [disableReceipt]=\"messageListConfiguration.disableReceipt\"\n [hideReceipt]=\"messageListConfiguration.hideReceipt\"\n [readIcon]=\"messageListConfiguration.readIcon\"\n [deliveredIcon]=\"messageListConfiguration.deliveredIcon\"\n [sentIcon]=\"messageListConfiguration.sentIcon\"\n [waitIcon]=\"messageListConfiguration.waitIcon\"\n [loadingIconURL]=\"messageListConfiguration.loadingIconURL\"\n [errorIcon]=\"messageListConfiguration.errorIcon\"\n [alignment]=\"messageListConfiguration.alignment\"\n [showAvatar]=\"messageListConfiguration.showAvatar\"\n [datePattern]=\"messageListConfiguration.datePattern\"\n [timestampAlignment]=\"messageListConfiguration.timestampAlignment\"\n [DateSeparatorPattern]=\"messageListConfiguration.DateSeparatorPattern\"\n [templates]=\"messageListConfiguration.templates\"\n [scrollToBottomOnNewMessages]=\"messageListConfiguration.scrollToBottomOnNewMessages\"\n [messagesRequestBuilder]=\"messageListConfiguration.messagesRequestBuilder || requestBuilder\"\n [thresholdValue]=\"messageListConfiguration.thresholdValue\"\n [onThreadRepliesClick]=\"messageListConfiguration.onThreadRepliesClick\"\n [headerView]=\"messageListConfiguration.headerView\"\n [footerView]=\"messageListConfiguration.footerView\"\n [avatarStyle]=\"messageListConfiguration.avatarStyle\"\n [messageInformationConfiguration]=\"messageListConfiguration.messageInformationConfiguration\"\n [dateSeparatorStyle]=\"messageListConfiguration.dateSeparatorStyle\"\n [messageListStyle]=\"messageListConfiguration.messageListStyle\"\n [onError]=\"messageListConfiguration.onError\"\n [hideError]=\"messageListConfiguration.hideError\"\n [hideDateSeparator]=\"messageListConfiguration.hideDateSeparator\"\n [disableSoundForMessages]=\"disableSoundForMessages\"\n [disableMentions]=\"messageListConfiguration.disableMentions\"\n [textFormatters]=\"messageListConfiguration?.textFormatters\">\n </cometchat-message-list>\n </div>\n <ng-container *ngIf=\"messageListView\">\n <ng-container\n *ngTemplateOutlet=\"messageListView;context:{ user: user, group: group,parentMessage:parentMessage }\">\n </ng-container>\n </ng-container>\n <div class=\"cc-threaded-messages__composer\"\n *ngIf=\"!hideMessageComposer && !messageComposerView\">\n <cometchat-message-composer #messageComposerRef\n [parentMessageId]=\"parentMessage?.getId()\" [user]=\"user\" [group]=\"group\"\n [text]=\"messageComposerConfiguration.text\"\n [headerView]=\"messageComposerConfiguration.headerView\"\n [onTextChange]=\"messageComposerConfiguration.onTextChange\"\n [attachmentIconURL]=\"messageComposerConfiguration.attachmentIconURL\"\n [attachmentOptions]=\"messageComposerConfiguration.attachmentOptions\"\n [secondaryButtonView]=\"messageComposerConfiguration.secondaryButtonView\"\n [auxilaryButtonView]=\"messageComposerConfiguration.auxilaryButtonView\"\n [auxiliaryButtonsAlignment]=\"messageComposerConfiguration.auxiliaryButtonsAlignment\"\n [sendButtonView]=\"messageComposerConfiguration.sendButtonView\"\n [hideLiveReaction]=\"messageComposerConfiguration.hideLiveReaction\"\n [LiveReactionIconURL]=\"messageComposerConfiguration.LiveReactionIconURL\"\n [messageComposerStyle]=\"messageComposerConfiguration.messageComposerStyle\"\n [onSendButtonClick]=\"messageComposerConfiguration.onSendButtonClick\"\n [sendButtonIconURL]=\"messageComposerConfiguration.sendButtonIconURL\"\n [onError]=\"messageComposerConfiguration.onError\"\n [actionSheetStyle]=\"messageComposerConfiguration.actionSheetStyle\"\n [userMemberWrapperConfiguration]=\"messageComposerConfiguration.userMemberWrapperConfiguration\"\n [textFormatters]=\"messageComposerConfiguration?.textFormatters\"\n [disableMentions]=\"messageComposerConfiguration.disableMentions\"\n [mentionsWarningText]=\"messageComposerConfiguration?.mentionsWarningText\"\n [mentionsWarningStyle]=\"messageComposerConfiguration?.mentionsWarningStyle\"\n [emojiIconURL]=\"messageComposerConfiguration.emojiIconURL\"\n [AIIconURL]=\"messageComposerConfiguration.AIIconURL\"\n [hideVoiceRecording]=\"messageComposerConfiguration.hideVoiceRecording\"\n [hideLayoutMode]=\"messageComposerConfiguration.hideLayoutMode\"\n [AIOptionsStyle]=\"messageComposerConfiguration.AIOptionsStyle\"\n [backdropStyle]=\"messageComposerConfiguration.backdropStyle\"\n [mediaRecorderStyle]=\"messageComposerConfiguration.mediaRecorderStyle\"\n [voiceRecordingCloseIconURL]=\"messageComposerConfiguration.voiceRecordingCloseIconURL\"\n [voiceRecordingStartIconURL]=\"messageComposerConfiguration.voiceRecordingStartIconURL\"\n [voiceRecordingStopIconURL]=\"messageComposerConfiguration.voiceRecordingStopIconURL\"\n [voiceRecordingSubmitIconURL]=\"messageComposerConfiguration.voiceRecordingSubmitIconURL\"\n [disableSoundForMessages]=\"disableSoundForMessages\"\n >\n </cometchat-message-composer>\n </div>\n <ng-container *ngIf=\"!hideMessageComposer && messageComposerView\">\n <ng-container\n *ngTemplateOutlet=\"messageComposerView;context:{ user: user, group: group,parentMessage:parentMessage }\">\n </ng-container>\n </ng-container>\n\n</div>\n","import { Component, OnInit, Input, ChangeDetectorRef, ChangeDetectionStrategy, TemplateRef } from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport {AvatarStyle, BaseStyle, ListItemStyle} from '@cometchat/uikit-elements'\nimport { CometChatOption, localize, TitleAlignment, SelectionMode, CometChatGroupEvents, CometChatUIKitConstants, fontHelper } from \"@cometchat/uikit-resources\";\nimport { TransferOwnershipStyle, GroupMembersStyle } from \"@cometchat/uikit-shared\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\n\n/**\n*\n* CometChatTransferOwnershipComponent is used to render users list to transfer wonership\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-transfer-ownership\",\n templateUrl: \"./cometchat-transfer-ownership.component.html\",\n styleUrls: [\"./cometchat-transfer-ownership.component.scss\"],\n changeDetection:ChangeDetectionStrategy.OnPush\n})\nexport class CometChatTransferOwnershipComponent implements OnInit {\n @Input() groupMemberRequestBuilder!: CometChat.GroupMembersRequestBuilder;\n @Input() searchRequestBuilder!: CometChat.GroupMembersRequestBuilder;\n @Input() subtitleView!: TemplateRef<any>;\n @Input() listItemView!: TemplateRef<any>;\n @Input() disableUsersPresence: boolean = false;\n @Input() options!: ((member:CometChat.GroupMember)=>CometChatOption[]) | null;\n @Input() closeButtonIconURL: string = \"assets/close2x.svg\"\n @Input() hideSeparator: boolean = false;\n @Input() searchPlaceholder: string = localize(\"SEARCH\");\n @Input() searchIconURL: string = \"assets/search.svg\";\n @Input() hideSearch: boolean = true;\n @Input() title: string = localize(\"TRANSFER_OWNERSHIP\");\n @Input() onError:((error:CometChat.CometChatException)=>void) | null = (error:CometChat.CometChatException)=>{\n console.log(error)\n }\n @Input() onClose!:()=>void;\n @Input() onTransferOwnership!:(member:CometChat.GroupMember)=>void;\n @Input() group!: CometChat.Group;\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() errorStateView!: TemplateRef<any>;\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() emptyStateText: string = localize(\"NO_GROUPS_FOUND\")\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() statusIndicatorStyle: any = {\n height: \"10px\",\n width: \"10px\",\n borderRadius: \"16px\",\n border:\"\"\n };\n @Input() transferOwnershipStyle:TransferOwnershipStyle = {\n width: \"360px\",\n height: \"650px\",\n\n borderRadius: \"8px\",\n }\n @Input() transferButtonText:string = localize(\"TRANSFER_OWNERSHIP\")\n @Input() cancelButtonText:string = localize(\"CANCEL\")\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"32px\",\n height: \"32px\",\n\n };\n @Input() groupMembersStyle: GroupMembersStyle = {\n width: \"100%\",\n height: \"100%\",\n background: \"\",\n border: \"\",\n borderRadius: \"8px\",\n\n padding:\"0\"\n };\n @Input() listItemStyle: ListItemStyle = {\n height: \"100%\",\n width: \"100%\",\n background: \"\",\n\n separatorColor: \"rgb(222 222 222 / 46%)\"\n };\n\n @Input() titleAlignment: TitleAlignment = TitleAlignment.center;\n public selectionMode: SelectionMode = SelectionMode.none;\n public showBackButton: boolean = false;\n public selectedMember!: CometChat.GroupMember | null;\n public loggedInUser!: CometChat.User | null;\n public selectedUser!:CometChat.User;\n constructor(private ref: ChangeDetectorRef,private themeService:CometChatThemeService) {\n }\n public transferButtonStyle:any = {\n height:\"100%\",\n width:\"100%\",\n background:\"rgb(51, 153, 255)\",\n padding:\"8px\",\n buttonTextColor:\"white\",\n buttonTextFont:\"600 15px Inter, sans-serif\",\n display:\"flex\",\n justifyContent:\"center\",\n alignItems:\"center\",\n border:\"none\",\n borderRadius:\"8px\"\n}\n public cancelButtonStyle:any = {\n height:\"100%\",\n width:\"100%\",\n background:\"white\",\n padding:\"8px\",\n buttonTextColor:\"black\",\n buttonTextFont:\"600 15px Inter, sans-serif\",\n display:\"flex\",\n justifyContent:\"center\",\n alignItems:\"center\",\n border:\"1px solid #e0e0e0\",\n borderRadius:\"8px\"\n}\n ngOnInit(): void {\n CometChat.getLoggedinUser().then((user: CometChat.User | null) => {\n this.loggedInUser = user\n }).catch((error:CometChat.CometChatException)=>{\n if(this.onError){\n this.onError(error)\n }\n })\n this.setThemeStyle()\n }\n onOwnerSelected = (member:CometChat.GroupMember)=>{\n this.selectedMember = member\n }\n onTransferClick = ()=>{\nCometChat.getUser(this.selectedMember?.getUid()).then((user:CometChat.User)=>{\nthis.selectedUser = user\n})\n.catch((error:CometChat.CometChatException)=>{\n if(this.onError){\n this.onError(error)\n }\n})\n if(this.onTransferOwnership){\n this.onTransferOwnership(this.selectedMember!)\n this.selectedMember = null\n }\n else{\nif(this.selectedMember){\n CometChat.transferGroupOwnership(this.group.getGuid(),this.selectedMember!.getUid()).then((response:string)=>{\n this.group.setOwner(this.selectedMember!.getUid())\n CometChatGroupEvents.ccOwnershipChanged.next(\n {\n group:this.group,\n newOwner:this.selectedMember!\n }\n )\n this.selectedMember = null\n })\n .catch((error:CometChat.CometChatException)=>{\n if(this.onError){\n this.onError(error)\n }\n })\n}\n }\n }\n closeClicked =()=>{\n if(this.onClose){\n this.onClose()\n }\n }\n setThemeStyle() {\n this.setGroupMembersStyle()\n this.setListItemStyle();\n this.setAvatarStyle();\n this.setownershipStyle();\n this.setStatusStyle();\n this.transferButtonStyle.buttonTextFont = this.transferOwnershipStyle.transferButtonTextFont || fontHelper(this.themeService.theme.typography.subtitle1);\n this.transferButtonStyle.buttonTextColor = this.transferOwnershipStyle.transferButtonTextColor || this.themeService.theme.palette.getAccent900();\n this.transferButtonStyle.background = this.themeService.theme.palette.getPrimary();\n this.cancelButtonStyle.background = this.themeService.theme.palette.getSecondary();\n this.cancelButtonStyle.buttonTextFont = this.transferOwnershipStyle.cancelButtonTextFont || fontHelper(this.themeService.theme.typography.subtitle1);\n this.cancelButtonStyle.buttonTextColor = this.transferOwnershipStyle.cancelButtonTextColor || this.themeService.theme.palette.getAccent();\n this.ref.detectChanges();\n }\n setListItemStyle(){\n let defaultStyle:ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: \"transparent\",\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor:this.themeService.theme.palette.getAccent200(),\n hoverBackground:\"transparent\"\n })\n this.listItemStyle = {...defaultStyle,...this.listItemStyle}\n }\n setGroupMembersStyle(){\n let defaultStyle:GroupMembersStyle = new GroupMembersStyle({\n background:this.themeService.theme.palette.getBackground(),\n border:`1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleTextFont:fontHelper(this.themeService.theme.typography.title1),\n titleTextColor:this.themeService.theme.palette.getAccent(),\n emptyStateTextFont:fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor:this.themeService.theme.palette.getAccent600(),\n errorStateTextFont:fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor:this.themeService.theme.palette.getAccent600(),\n loadingIconTint:this.themeService.theme.palette.getAccent600(),\n onlineStatusColor:this.themeService.theme.palette.getSuccess(),\n separatorColor:this.themeService.theme.palette.getAccent400(),\n width: \"100%\",\n height: \"100%\",\n borderRadius: \"none\",\n searchIconTint:this.themeService.theme.palette.getAccent600(),\n searchPlaceholderTextColor:this.themeService.theme.palette.getAccent600(),\n searchBackground:this.themeService.theme.palette.getAccent100(),\n searchPlaceholderTextFont:fontHelper(this.themeService.theme.typography.text3),\n searchTextColor:this.themeService.theme.palette.getAccent600(),\n searchTextFont:fontHelper(this.themeService.theme.typography.text3),\n searchBorderRadius:\"8px\",\n closeButtonIconTint:this.themeService.theme.palette.getPrimary(),\n backButtonIconTint:this.themeService.theme.palette.getPrimary(),\n padding:\"0 100px\",\n\n })\n this.groupMembersStyle = {...defaultStyle,...this.groupMembersStyle}\n\n this.ref.detectChanges();\n }\n setAvatarStyle(){\n let defaultStyle:AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"28px\",\n height: \"28px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n \n outerViewBorderSpacing: \"\",\n })\n this.avatarStyle = {...defaultStyle,...this.avatarStyle}\n }\n setStatusStyle(){\n let defaultStyle:BaseStyle = {\n height: \"10px\",\n width:\"10px\",\n border:\"none\",\n borderRadius:\"24px\",\n\n }\n this.statusIndicatorStyle = {...defaultStyle,...this.statusIndicatorStyle}\n }\n setownershipStyle(){\n let defaultStyle:TransferOwnershipStyle = new TransferOwnershipStyle({\n background:this.themeService.theme.palette.getBackground(),\n border:`1px solid ${this.themeService.theme.palette.getAccent50()}`,\n MemberScopeTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n MemberScopeTextColor:this.themeService.theme.palette.getAccent600(),\n transferButtonTextFont :fontHelper(this.themeService.theme.typography.title2),\n transferButtonTextColor :this.themeService.theme.palette.getAccent(\"dark\"),\n cancelButtonTextFont :fontHelper(this.themeService.theme.typography.title2),\n cancelButtonTextColor :this.themeService.theme.palette.getAccent(\"light\"),\n width: \"360px\",\n height: \"650px\",\n borderRadius: \"8px\",\n })\n this.transferOwnershipStyle = {...defaultStyle,...this.transferOwnershipStyle}\n }\n membersStyle = () => {\n return {\n height: this.groupMembersStyle.height,\n width: this.groupMembersStyle.width,\n background: this.groupMembersStyle.background,\n border: this.groupMembersStyle.border,\n borderRadius: this.groupMembersStyle.borderRadius\n }\n }\n wrapperStyle = () => {\n return {\n height: this.transferOwnershipStyle.height || \"650px\",\n width: this.transferOwnershipStyle.width || \"360px\",\n background: this.transferOwnershipStyle.background,\n border: this.transferOwnershipStyle.border,\n borderRadius: this.transferOwnershipStyle.borderRadius\n }\n }\n getScopeStyle = () => {\n return {\n textFont: this.transferOwnershipStyle.MemberScopeTextFont,\n textColor: this.transferOwnershipStyle.MemberScopeTextColor\n }\n }\n}\n","\n<div class=\"cc-transfer-ownership\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-transfer-ownership__members\">\n <cometchat-group-members [listItemView]=\"listItemView\" [searchRequestBuilder]=\"searchRequestBuilder\"\n [errorStateText]=\"errorStateText\" [errorStateView]=\"errorStateView\" [loadingStateView]=\"loadingStateView\"\n [hideSeparator]=\"hideSeparator\" [emptyStateText]=\"emptyStateText\"\n [groupMemberRequestBuilder]=\"groupMemberRequestBuilder\" [hideSearch]=\"false\"\n [closeButtonIconURL]=\"closeButtonIconURL\" [listItemStyle]=\"listItemStyle\" [emptyStateView]=\"emptyStateView\"\n [searchPlaceholder]=\"searchPlaceholder\" [statusIndicatorStyle]=\"statusIndicatorStyle\"\n [avatarStyle]=\"avatarStyle\" [groupMembersStyle]=\"groupMembersStyle\" [onError]=\"onError\"\n [subtitleView]=\"subtitleView\" [disableUsersPresence]=\"disableUsersPresence\" [onClose]=\"closeClicked\"\n [tailView]=\"tailView\" [selectionMode]=\"selectionMode\"\n [titleAlignment]=\"titleAlignment\" [group]=\"group\" [showBackButton]=\"showBackButton\" [title]=\"title\" [options]=\"options\">\n </cometchat-group-members>\n </div>\n <div class=\"cc-transfer-ownership-buttons\">\n <cometchat-button class=\"cc-transfer-ownership__buttons--confirm\" [text]=\"transferButtonText\"\n [buttonStyle]=\"transferButtonStyle\" (cc-button-clicked)=\"onTransferClick()\" [disabled]=\"selectedMember ? false : true\"></cometchat-button>\n <cometchat-button class=\"cc-transfer-ownership__buttons--cancel\" [text]=\"cancelButtonText\"\n [buttonStyle]=\"cancelButtonStyle\" (cc-button-clicked)=\"closeClicked()\"></cometchat-button>\n </div>\n </div>\n<!-- view for member scope -->\n<ng-template #tailView let-groupMember>\n <div class=\"cc-transfer-ownership-tailview\">\n <cometchat-label [text]=\"groupMember?.scope\" [labelStyle]=\"getScopeStyle()\">\n </cometchat-label>\n <cometchat-radio-button (cc-radio-button-changed)=\"onOwnerSelected(groupMember)\" *ngIf=\"groupMember && groupMember.getUid() != group?.getOwner()\"></cometchat-radio-button>\n </div>\n </ng-template>","import {\n Component,\n Input,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n TemplateRef,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport '@cometchat/uikit-elements'\nimport { AvatarStyle, BackdropStyle, ConfirmDialogStyle, ListItemStyle, } from '@cometchat/uikit-elements'\nimport { AddMembersConfiguration, BannedMembersConfiguration, CometChatUIKitUtility, DetailsStyle, DetailsUtils, GroupMembersConfiguration, TransferOwnershipConfiguration, BaseStyle, } from \"@cometchat/uikit-shared\";\nimport { fontHelper, localize, CometChatGroupEvents, CometChatUIKitConstants, IGroupMemberAdded, IGroupMemberKickedBanned, CometChatUserEvents, IGroupMemberJoined, IOwnershipChanged, CometChatDetailsOption, CometChatDetailsTemplate, SelectionMode, IGroupMemberScopeChanged } from '@cometchat/uikit-resources'\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { CometChatException } from \"../../Shared/Utils/ComeChatException\";\nimport { MessageUtils } from \"../../Shared/Utils/MessageUtils\";\n/**\n*\n* CometChatDetailsComponent renders details of user or group.\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-details\",\n templateUrl: \"./cometchat-details.component.html\",\n styleUrls: [\"./cometchat-details.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatDetailsComponent implements OnInit, OnChanges {\n @Input() group!: CometChat.Group;\n @Input() user!: CometChat.User;\n @Input() title: string = localize(\"DETAILS\");\n @Input() closeButtonIconURL: string = \"assets/close2x.svg\";\n @Input() hideProfile: boolean = false;\n @Input() subtitleView!: TemplateRef<any>;\n @Input() customProfileView!: TemplateRef<any>;\n @Input() data?: CometChatDetailsTemplate[];\n @Input() disableUsersPresence: boolean = false;\n @Input() privateGroupIcon: string = \"assets/Private.svg\";\n /**\n * @deprecated\n *\n * This property is deprecated as of version 4.3.7 due to newer property 'passwordGroupIcon'. It will be removed in subsequent versions.\n */\n @Input() protectedGroupIcon: string = \"assets/Locked.svg\";\n @Input() passwordGroupIcon: string | undefined = undefined;\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n @Input() onClose!: () => void;\n @Input() leaveGroupConfirmButtonText: string = localize(\"LEAVE_GROUP\");\n @Input() leaveGroupCancelButtonText: string = localize(\"CANCEL\");\n @Input() leaveGroupDialogMessage: string = localize(\"LEAVE_CONFIRM\");\n @Input() leaveGroupDialogStyle: ConfirmDialogStyle = {\n confirmButtonBackground: \"RGB(51, 153, 255)\",\n cancelButtonBackground: \"RGBA(20, 20, 20, 0.06)\",\n confirmButtonTextColor: \"white\",\n confirmButtonTextFont: \"600 15px Inter\",\n cancelButtonTextColor: \"black\",\n cancelButtonTextFont: \"600 15px Inter\",\n titleFont: \"\",\n titleColor: \"\",\n messageTextFont: \"400 13px Inter\",\n messageTextColor: \"RGBA(20, 20, 20, 0.58)\",\n background: \"white\",\n border: \"1px solid #F2F2F2\",\n height: \"180px\",\n width: \"360px\"\n }\n @Input() deleteGroupConfirmButtonText: string = localize(\"DELETE\");\n @Input() deleteGroupDialogMessage: string = localize(\"DELETE_CONFIRM\");\n @Input() deleteGroupCancelButtonText: string = localize(\"CANCEL\");\n @Input() deleteGroupDialogStyle: ConfirmDialogStyle = {\n height: \"180px\",\n width: \"360px\"\n }\n @Input() transferOwnershipConfirmButtonText: string = localize(\"TRANSFER_OWNERSHIP\");\n @Input() transferOwnershipDialogMessage: string = localize(\"TRANSFER_CONFIRM\");\n @Input() transferOwnershipCancelButtonText: string = localize(\"CANCEL\");\n @Input() transferOwnershipDialogStyle: ConfirmDialogStyle = {\n height: \"180px\",\n width: \"360px\"\n }\n\n @Input() addMembersConfiguration: AddMembersConfiguration = new AddMembersConfiguration({});\n @Input() bannedMembersConfiguration: BannedMembersConfiguration = new BannedMembersConfiguration({});\n @Input() groupMembersConfiguration: GroupMembersConfiguration = new GroupMembersConfiguration({});\n @Input() transferOwnershipConfiguration: TransferOwnershipConfiguration = new TransferOwnershipConfiguration({});\n\n\n backiconurl = \"assets/backbutton.svg\"\n @Input() statusIndicatorStyle: any = {\n height: \"10px\",\n width: \"10px\",\n borderRadius: \"16px\",\n border: \"\"\n };\n @Input() backdropStyle: BackdropStyle = {\n height: \"100%\",\n width: \"100%\",\n background: \"rgba(0, 0, 0, 0.5)\",\n position: \"fixed\"\n }\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"28px\",\n height: \"28px\",\n border: \"none\",\n\n };\n @Input() detailsStyle: DetailsStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"\",\n borderRadius: \"\"\n };\n @Input() listItemStyle: ListItemStyle = {\n height: \"100%\",\n width: \"100%\",\n background: \"\",\n activeBackground: \"transparent\",\n borderRadius: \"grey\",\n titleFont: \"600 15px Inter\",\n titleColor: \"black\",\n border: \"\",\n hoverBackground: \"transparent\",\n separatorColor: \"rgb(222 222 222 / 46%)\"\n };\n\n\n showTransferDialog: boolean = false;\n defaultTemplate: CometChatDetailsTemplate[] = []\n public loggedInUser: CometChat.User | null = null;\n public openViewMembersPage: boolean = false;\n public openBannedMembersPage: boolean = false;\n public openAddMembersPage: boolean = false;\n public confirmLeaveGroupModal: boolean = false;\n public openTransferOwnershipModal: boolean = false\n selectionmodeEnum: SelectionMode = SelectionMode.multiple;\n ccGroupMemberAdded!: Subscription;\n ccGroupMemberJoined!: Subscription;\n ccGroupMemberKicked!: Subscription;\n ccGroupMemberBanned!: Subscription;\n ccOwnershipChanged!: Subscription;\n public statusColor: any = {\n private: \"\",\n password: \"#F7A500\",\n public: \"\"\n }\n closeButtonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.detailsStyle.closeButtonIconTint || this.themeService.theme.palette.getPrimary()\n }\n buttonStyle: any = {\n height: \"100%\",\n width: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonTextColor: this.themeService.theme.palette.getPrimary() || \"rgba(51, 153, 255)\",\n buttonTextFont: \"500 16px Inter\"\n }\n dividerStyle: any = {\n background: \"rgb(222 222 222 / 46%)\",\n height: \"1px\",\n width: \"100%\"\n }\n\n deleteGroupModal: boolean = false;\n getTitleStyle() {\n return {\n textFont: this.detailsStyle.titleTextFont || fontHelper(this.themeService.theme.typography.title1),\n textColor: this.detailsStyle.titleTextColor || this.themeService.theme.palette.getAccent()\n }\n }\n getCustomOptionView(option: CometChatDetailsOption) {\n return option?.customView\n }\n public subtitleText: string = \"\";\n public userListenerId = \"userlist_\" + new Date().getTime();\n public membersListenerId: string = \"memberlist_\" + new Date().getTime();\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) { }\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"user\"] || changes[\"group\"]) {\n if (this.loggedInUser) {\n this.getTemplate()\n }\n else {\n CometChat.getLoggedinUser().then((user: CometChat.User | null) => {\n this.loggedInUser = user as CometChat.User\n this.getTemplate()\n }).catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n }\n }\n }\n getTemplate() {\n if (this.data) {\n this.defaultTemplate = this.data\n this.ref.detectChanges();\n }\n else {\n this.defaultTemplate = DetailsUtils.getDefaultDetailsTemplate(this.loggedInUser, this.user, this.group, this.themeService.theme)\n this.ref.detectChanges();\n }\n }\n\n removeListener() {\n CometChat.removeUserListener(this.userListenerId)\n CometChat.removeGroupListener(this.membersListenerId)\n }\n ngOnDestroy() {\n this.removeListener();\n this.defaultTemplate = [];\n this.onCloseDetails()\n this.unsubscribeToEvents()\n }\n\n ngOnInit(): void {\n this.setThemeStyle()\n this.subscribeToEvents()\n this.statusColor.online = this.detailsStyle.onlineStatusColor || this.themeService.theme.palette.getSuccess()\n this.attachListeners()\n this.updateSubtitle()\n }\n\n subscribeToEvents() {\n this.ccGroupMemberAdded = CometChatGroupEvents.ccGroupMemberAdded.subscribe((item: IGroupMemberAdded) => {\n this.group = item?.userAddedIn!;\n this.group = item?.userAddedIn!\n this.updateSubtitle();\n this.ref.detectChanges()\n })\n this.ccGroupMemberJoined = CometChatGroupEvents.ccGroupMemberJoined.subscribe((item: IGroupMemberJoined) => {\n this.group = item?.joinedGroup;\n this.updateSubtitle()\n this.ref.detectChanges()\n });\n this.ccGroupMemberKicked = CometChatGroupEvents.ccGroupMemberKicked.subscribe((item: IGroupMemberKickedBanned) => {\n this.group = item?.kickedFrom!;\n this.updateSubtitle()\n this.ref.detectChanges()\n });\n this.ccGroupMemberBanned = CometChatGroupEvents.ccGroupMemberBanned.subscribe((item: IGroupMemberKickedBanned) => {\n this.group = item?.kickedFrom!;\n this.updateSubtitle()\n this.ref.detectChanges()\n });\n this.ccOwnershipChanged = CometChatGroupEvents.ccOwnershipChanged.subscribe((item: IOwnershipChanged) => {\n this.group = item?.group!;\n this.updateSubtitle();\n this.confirmLeaveGroupModal = false;\n this.openTransferOwnershipModal = false;\n this.ref.detectChanges();\n });\n }\n unsubscribeToEvents() {\n this.ccGroupMemberAdded?.unsubscribe();\n this.ccGroupMemberJoined?.unsubscribe();\n this.ccGroupMemberKicked?.unsubscribe();\n this.ccGroupMemberBanned?.unsubscribe();\n this.ccOwnershipChanged?.unsubscribe();\n }\n checkStatusType = () => {\n if (this.user) {\n let userStatusVisibility = !this.disableUsersPresence && !new MessageUtils().getUserStatusVisibility(this.user)\n return userStatusVisibility ? this.statusColor[this.user?.getStatus()] : null;\n }\n else if (this.group) {\n return this.statusColor[this.group?.getType()]\n }\n else return null;\n }\n updateSubtitle() {\n const count = this.group?.getMembersCount();\n const membersText = localize(count > 1 ? \"MEMBERS\" : \"MEMBER\");\n if (this.user) {\n let userStatusVisibility = !this.disableUsersPresence && !this.user.getBlockedByMe() && !this.user.getHasBlockedMe();\n if (!userStatusVisibility) {\n this.subtitleText = \"\";\n } else {\n const status = this.user.getStatus();\n this.subtitleText = status ? localize(status.toUpperCase()) : localize( \"OFFLINE\");\n }\n }\n else if (this.group) {\n this.subtitleText = `${count} ${membersText}`;\n }\n this.ref.detectChanges();\n }\n getButtonStyle(option: CometChatDetailsOption) {\n return {\n height: \"100%\",\n width: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n buttonTextFont: option?.titleFont,\n buttonTextColor: option?.titleColor,\n background: option?.backgroundColor || \"transparent\"\n }\n }\n checkGroupType(): string {\n let image: string = \"\";\n if (this.group) {\n switch (this.group?.getType()) {\n case CometChatUIKitConstants.GroupTypes.password:\n image = this.passwordGroupIcon || this.protectedGroupIcon;\n break;\n case CometChatUIKitConstants.GroupTypes.private:\n image = this.privateGroupIcon;\n break;\n default:\n image = \"\"\n break;\n }\n }\n return image\n }\n updateUserStatus(user: CometChat.User) {\n if (this.user && this.user.getUid() && this.user.getUid() === user.getUid()) {\n this.user.setStatus(user.getStatus());\n this.updateSubtitle()\n }\n // this.ref.detectChanges();\n }\n attachListeners() {\n try {\n if (!this.disableUsersPresence) {\n CometChat.addUserListener(\n this.userListenerId,\n new CometChat.UserListener({\n onUserOnline: (onlineUser: CometChat.User) => {\n /* when someuser/friend comes online, user will be received here */\n this.updateUserStatus(onlineUser);\n },\n onUserOffline: (offlineUser: CometChat.User) => {\n /* when someuser/friend went offline, user will be received here */\n this.updateUserStatus(offlineUser);\n },\n })\n );\n }\n CometChat.addGroupListener(\n this.membersListenerId,\n new CometChat.GroupListener({\n onGroupMemberScopeChanged: (\n message: CometChat.Action,\n changedUser: CometChat.GroupMember,\n newScope: CometChat.GroupMemberScope,\n oldScope: CometChat.GroupMemberScope,\n changedGroup: CometChat.Group\n ) => {\n if (changedUser.getUid() == this.loggedInUser?.getUid()) {\n changedGroup.setScope(newScope);\n this.group = changedGroup;\n this.getTemplate();\n }\n },\n })\n );\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error))\n }\n }\n }\n getSectionHeaderStyle(template: CometChatDetailsTemplate) {\n return {\n textFont: template.titleFont,\n textColor: template.titleColor\n }\n }\n onOptionClick(option: CometChatDetailsOption) {\n const { onClick, id } = option;\n if (onClick) {\n onClick(this.user ?? this.group);\n return;\n }\n switch (id) {\n case CometChatUIKitConstants.UserOptions.viewProfile:\n if (this.user?.getLink()) {\n window.location.href = this.user.getLink();\n }\n break;\n case CometChatUIKitConstants.UserOptions.block:\n this.blockUser();\n break;\n case CometChatUIKitConstants.UserOptions.unblock:\n this.unBlockUser();\n break;\n case CometChatUIKitConstants.GroupOptions.viewMembers:\n this.viewMembers();\n break;\n case CometChatUIKitConstants.GroupOptions.addMembers:\n this.addMembers();\n break;\n case CometChatUIKitConstants.GroupOptions.bannedMembers:\n this.bannedMembers();\n break;\n case CometChatUIKitConstants.GroupOptions.leave:\n this.leaveGroup();\n break;\n case CometChatUIKitConstants.GroupOptions.delete:\n this.showDeleteDialog();\n break;\n default:\n break;\n }\n }\n onTransferClick() {\n if (this.group.getOwner() == this.loggedInUser?.getUid()) {\n this.openTransferOwnershipModal = true;\n this.confirmLeaveGroupModal = false;\n this.showTransferDialog = false;\n }\n }\n onLeaveClick() {\n CometChat.leaveGroup(this.group.getGuid())\n .then((response: any) => {\n this.group.setMembersCount(this.group.getMembersCount() - 1)\n this.group.setHasJoined(false)\n this.updateSubtitle()\n this.ref.detectChanges();\n this.openTransferOwnershipModal = false;\n this.confirmLeaveGroupModal = false;\n this.onCloseDetails()\n CometChatGroupEvents.ccGroupLeft.next({\n userLeft: this.loggedInUser!,\n leftGroup: this.group,\n message: this.createUserLeftAction(this.loggedInUser!, CometChatUIKitConstants.groupMemberAction.LEFT)\n\n })\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) { this.onError(error) }\n });\n }\n createActionMessage(actionOn: CometChat.GroupMember, action: string) {\n let actionMessage: CometChat.Action = new CometChat.Action(this.group.getGuid(), CometChatUIKitConstants.MessageTypes.groupMember, CometChatUIKitConstants.MessageReceiverType.group, CometChatUIKitConstants.MessageCategory.action as any)\n actionMessage.setAction(action)\n actionMessage.setActionBy(this.loggedInUser!)\n actionMessage.setActionFor(this.group)\n actionMessage.setActionOn(actionOn)\n actionMessage.setReceiver(this.group)\n actionMessage.setSender(this.loggedInUser!)\n actionMessage.setConversationId(\"group_\" + this.group.getGuid())\n actionMessage.setMuid(CometChatUIKitUtility.ID())\n actionMessage.setMessage(`${this.loggedInUser?.getName()} ${action} ${actionOn.getName()}`)\n actionMessage.setSentAt(CometChatUIKitUtility.getUnixTimestamp())\n actionMessage.setNewScope(actionOn.getScope())\n actionMessage.setReceiverType(CometChatUIKitConstants.MessageReceiverType.group);\n\n return actionMessage\n }\n createUserLeftAction(actionOn: CometChat.User, action: string) {\n let actionMessage: CometChat.Action = new CometChat.Action(this.group.getGuid(), CometChatUIKitConstants.MessageTypes.groupMember, CometChatUIKitConstants.MessageReceiverType.group, CometChatUIKitConstants.MessageCategory.action as any)\n actionMessage.setAction(action)\n actionMessage.setActionBy(this.loggedInUser!)\n actionMessage.setActionFor(this.group)\n actionMessage.setActionOn(actionOn)\n actionMessage.setReceiver(this.group)\n actionMessage.setSender(this.loggedInUser!)\n actionMessage.setConversationId(\"group_\" + this.group.getGuid())\n actionMessage.setMuid(CometChatUIKitUtility.ID())\n actionMessage.setSentAt(CometChatUIKitUtility.getUnixTimestamp());\n actionMessage.setReceiverType(CometChatUIKitConstants.MessageReceiverType.group);\n let message: string = CometChatUIKitConstants.groupMemberAction.LEFT ? `${this.loggedInUser?.getName()} ${action}` : `${this.loggedInUser?.getName()} ${action} ${actionOn.getName()}`\n actionMessage.setMessage(message)\n return actionMessage\n }\n\n onCancelClick() {\n this.confirmLeaveGroupModal = false;\n this.deleteGroupModal = false;\n this.showTransferDialog = false;\n }\n blockUser() {\n // block user\n if (this.user && !this.user.getBlockedByMe()) {\n CometChat.blockUsers([this.user.getUid()]).then(() => {\n this.user.setBlockedByMe(true)\n CometChatUserEvents.ccUserBlocked.next(this.user)\n this.updateSubtitle();\n this.getTemplate();\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n\n }\n }\n unBlockUser() {\n // unblock user\n if (this.user && this.user.getBlockedByMe()) {\n CometChat.unblockUsers([this.user.getUid()]).then(() => {\n this.user.setBlockedByMe(false)\n CometChatUserEvents.ccUserUnblocked.next(this.user)\n this.getTemplate();\n this.updateSubtitle();\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n\n }\n }\n viewMembers = () => {\n this.openViewMembersPage = !this.openViewMembersPage;\n this.openBannedMembersPage = false;\n this.openAddMembersPage = false;\n this.ref.detectChanges();\n\n }\n addMembers = () => {\n this.openAddMembersPage = !this.openAddMembersPage;\n this.openBannedMembersPage = false;\n this.openViewMembersPage = false;\n this.ref.detectChanges();\n }\n bannedMembers = () => {\n this.openAddMembersPage = false;\n this.openViewMembersPage = false;\n this.openBannedMembersPage = !this.openBannedMembersPage;\n this.ref.detectChanges();\n\n }\n \n onBackForAddMembers = () => {\n this.addMembers();\n if(this.addMembersConfiguration?.onBack) {\n this.addMembersConfiguration?.onBack()\n }\n }\n\n leaveGroup() {\n if (this.group.getOwner() == this.loggedInUser?.getUid()) {\n this.showTransferDialog = true;\n this.confirmLeaveGroupModal = false;\n }\n else {\n this.showTransferDialog = false;\n }\n this.confirmLeaveGroupModal = true\n this.ref.detectChanges()\n }\n showDeleteDialog() {\n this.deleteGroupModal = true;\n }\n deleteGroup() {\n this.deleteGroupModal = false;\n CometChat.deleteGroup(this.group?.getGuid()).then(() => {\n this.deleteGroupModal = false;\n CometChatGroupEvents.ccGroupDeleted.next(this.group)\n this.onCloseDetails()\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n }\n openTransferOwnership = () => {\n this.openTransferOwnershipModal = !this.openTransferOwnershipModal;\n this.confirmLeaveGroupModal = false;\n }\n onCloseDetails = () => {\n if (this.onClose) {\n this.onClose()\n }\n }\n subtitleStyle = () => {\n let hideUserStatus = this.user ? new MessageUtils().getUserStatusVisibility(this.user) : true\n\n if (!this.disableUsersPresence && !hideUserStatus) {\n\n return {\n textFont: this.detailsStyle.subtitleTextFont,\n textColor: this.themeService.theme.palette.getPrimary()\n }\n }\n else {\n return {\n textFont: this.detailsStyle.subtitleTextFont,\n textColor: this.detailsStyle.subtitleTextColor\n }\n }\n }\n /**\n * @param {CometChat.Group} group\n */\n getGroupIcon = (group: CometChat.Group) => {\n let status;\n if (group) {\n switch (group.getType()) {\n case CometChatUIKitConstants.GroupTypes.password:\n status = this.passwordGroupIcon || this.protectedGroupIcon;\n break;\n case CometChatUIKitConstants.GroupTypes.private:\n status = this.privateGroupIcon;\n break;\n default:\n status = null\n break;\n }\n }\n return status\n }\n /**\n* @param {CometChat.Group} group\n*/\n getStatusIndicatorColor(group: CometChat.Group) {\n return this.statusColor[(group?.getType() as string)];\n }\n getTemplateOptions = (template: CometChatDetailsTemplate) => {\n if (template.options) {\n return template.options(this.loggedInUser, this.group, template.id as string, this.user);\n }\n else return []\n }\n setThemeStyle() {\n this.setDetailsStyle()\n this.setAvatarStyle()\n this.setStatusStyle()\n this.setListItemStyle();\n this.setConfirmDialogStyle();\n this.statusColor.private = this.detailsStyle.privateGroupIconBackground;\n this.statusColor.online = this.detailsStyle.onlineStatusColor;\n this.statusColor.password = this.detailsStyle.passwordGroupIconBackground\n }\n setConfirmDialogStyle() {\n let defaultStyle: ConfirmDialogStyle = new ConfirmDialogStyle({\n confirmButtonBackground: this.themeService.theme.palette.getPrimary(),\n cancelButtonBackground: this.themeService.theme.palette.getSecondary(),\n confirmButtonTextColor: this.themeService.theme.palette.getAccent900(\"light\"),\n confirmButtonTextFont: fontHelper(this.themeService.theme.typography.text2),\n cancelButtonTextColor: this.themeService.theme.palette.getAccent900(\"dark\"),\n cancelButtonTextFont: fontHelper(this.themeService.theme.typography.text2),\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n messageTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n messageTextColor: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n height: \"100%\",\n width: \"350px\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n borderRadius: \"8px\"\n })\n let defaultDeleteDialogStyle: ConfirmDialogStyle = new ConfirmDialogStyle({\n confirmButtonBackground: this.themeService.theme.palette.getError(),\n cancelButtonBackground: this.themeService.theme.palette.getSecondary(),\n confirmButtonTextColor: this.themeService.theme.palette.getAccent900(\"light\"),\n confirmButtonTextFont: fontHelper(this.themeService.theme.typography.text2),\n cancelButtonTextColor: this.themeService.theme.palette.getAccent900(\"dark\"),\n cancelButtonTextFont: fontHelper(this.themeService.theme.typography.text2),\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n messageTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n messageTextColor: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n height: \"100%\",\n width: \"350px\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n borderRadius: \"8px\"\n })\n this.leaveGroupDialogStyle = { ...defaultStyle, ...this.leaveGroupDialogStyle }\n this.transferOwnershipDialogStyle = { ...defaultStyle, ...this.transferOwnershipDialogStyle }\n this.deleteGroupDialogStyle = { ...defaultDeleteDialogStyle, ...this.deleteGroupDialogStyle }\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: \"transparent\",\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n hoverBackground: \"transparent\"\n })\n this.listItemStyle = { ...defaultStyle, ...this.listItemStyle }\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"36px\",\n height: \"36px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n })\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle }\n }\n setStatusStyle() {\n let defaultStyle: BaseStyle = {\n height: \"12px\",\n width: \"12px\",\n border: \"none\",\n borderRadius: \"24px\",\n\n }\n this.statusIndicatorStyle = { ...defaultStyle, ...this.statusIndicatorStyle }\n }\n setDetailsStyle() {\n let defaultStyle: DetailsStyle = new DetailsStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n onlineStatusColor: this.themeService.theme.palette.getSuccess(),\n privateGroupIconBackground: this.themeService.theme.palette.getSuccess(),\n passwordGroupIconBackground: \"RGB(247, 165, 0)\",\n closeButtonIconTint: this.themeService.theme.palette.getPrimary(),\n width: \"100%\",\n height: \"100%\",\n borderRadius: \"\",\n subtitleTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n subtitleTextColor: this.themeService.theme.palette.getAccent600(),\n padding: \"0 100px\"\n })\n this.detailsStyle = { ...defaultStyle, ...this.detailsStyle }\n }\n wrapperStyle = () => {\n return {\n width: this.detailsStyle.width,\n height: this.detailsStyle.height,\n border: this.detailsStyle.border,\n borderRadius: this.detailsStyle.borderRadius,\n background: this.detailsStyle.background,\n }\n }\n marginStyle = () => {\n return {\n padding: this.detailsStyle?.padding\n }\n }\n}\n","<div class=\"cc-details__wrapper\" *ngIf=\"user || group\"\n [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-details__header\">\n <cometchat-label [text]=\"title\"\n [labelStyle]=\"getTitleStyle()\"></cometchat-label>\n <cometchat-button [iconURL]=\"closeButtonIconURL\"\n class=\"cc-details__close-button\" [buttonStyle]=\"closeButtonStyle\"\n (cc-button-clicked)=\"onCloseDetails()\"></cometchat-button>\n </div>\n <div class=\"cc-details\" [ngStyle]=\"marginStyle()\">\n <div class=\"cc-details__profile\" *ngIf=\"!hideProfile\">\n <cometchat-list-item *ngIf=\"!customProfileView;else listitem\"\n [avatarName]=\"user?.getName() ?? this.group?.getName()\"\n [avatarURL]=\"this.user?.getAvatar() ?? this.group?.getIcon()\"\n [listItemStyle]=\"listItemStyle\"\n [statusIndicatorColor]=\"checkStatusType()\"\n [statusIndicatorIcon]=\"checkGroupType()\"\n [title]=\"this.user?.getName() ?? this.group?.getName()\"\n [hideSeparator]=\"false\" [statusIndicatorStyle]=\"statusIndicatorStyle\"\n [avatarStyle]=\"avatarStyle\">\n <div slot=\"subtitleView\">\n <div *ngIf=\"!subtitleView; else subtitle\">\n <cometchat-label [text]=\"subtitleText\"\n [labelStyle]=\"subtitleStyle()\">\n </cometchat-label>\n </div>\n <ng-template #subtitle>\n <ng-container\n *ngTemplateOutlet=\"subtitleView;context:{ $implicit: user ?? group }\">\n </ng-container>\n </ng-template>\n </div>\n </cometchat-list-item>\n </div>\n <div class=\"cc-details__section-list\"\n *ngIf=\"defaultTemplate && defaultTemplate.length > 0\">\n <div class=\"cc-details__section\" *ngFor=\"let item of defaultTemplate\">\n <div class=\"cc-details__section-separator\" *ngIf=\"item.title\">\n <cometchat-label [text]=\"item.title\"\n [labelStyle]=\"getSectionHeaderStyle(item)\"></cometchat-label>\n </div>\n <div class=\"cc-details__options-wrapper\"\n *ngIf=\"getTemplateOptions(item)\">\n <div class=\"cc-details__options\"\n *ngFor=\"let option of getTemplateOptions(item)\">\n <div class=\"cc-details__option\"\n *ngIf=\"!getCustomOptionView(option);else customView\"\n (click)=\"onOptionClick(option)\">\n <div class=\"cc-details__option-title\">\n <cometchat-button [text]=\"option.title\"\n [buttonStyle]=\"getButtonStyle(option)\"></cometchat-button>\n <div class=\"cc-details__option-tail\" *ngIf=\"option?.tail\">\n <ng-container *ngTemplateOutlet=\"option?.tail\"></ng-container>\n </div>\n </div>\n <cometchat-divider\n [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n </div>\n <ng-template #customView>\n <ng-container *ngTemplateOutlet=\"getCustomOptionView(option)\">\n </ng-container>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ng-template #listitem>\n <ng-container *ngTemplateOutlet=\"customProfileView\">\n </ng-container>\n</ng-template>\n<div class=\"cc-details__view\" *ngIf=\"openAddMembersPage\">\n <cometchat-add-members\n [titleAlignment]=\"addMembersConfiguration?.titleAlignment!\"\n [listItemStyle]=\"addMembersConfiguration?.listItemStyle!\"\n [addMembersStyle]=\"addMembersConfiguration?.addMembersStyle!\"\n [avatarStyle]=\"addMembersConfiguration?.avatarStyle!\"\n [statusIndicatorStyle]=\"addMembersConfiguration?.statusIndicatorStyle!\"\n [loadingStateView]=\"addMembersConfiguration?.loadingStateView!\"\n [loadingIconURL]=\"addMembersConfiguration?.loadingIconURL!\"\n [errorStateView]=\"addMembersConfiguration?.errorStateView\"\n [emptyStateView]=\"addMembersConfiguration?.emptyStateView\"\n [onSelect]=\"addMembersConfiguration?.onSelect!\"\n [onError]=\"addMembersConfiguration?.onError!\"\n [hideError]=\"addMembersConfiguration?.hideError!\"\n [hideSearch]=\"addMembersConfiguration?.hideSearch!\"\n [searchIconURL]=\"addMembersConfiguration?.searchIconURL!\"\n [selectionMode]=\"addMembersConfiguration?.selectionMode!\"\n [hideSeparator]=\"addMembersConfiguration?.hideSeparator!\"\n [showBackButton]=\"addMembersConfiguration?.showBackButton!\"\n [showSectionHeader]=\"addMembersConfiguration?.showSectionHeader!\"\n [onAddMembersButtonClick]=\"addMembersConfiguration?.onAddMembersButtonClick!\"\n [usersConfiguration]=\"addMembersConfiguration?.usersConfiguration\"\n [backButtonIconURL]=\"addMembersConfiguration?.backButtonIconURL!\"\n [sectionHeaderField]=\"addMembersConfiguration?.sectionHeaderField!\"\n [closeButtonIconURL]=\"addMembersConfiguration?.closeButtonIconURL!\"\n [options]=\"addMembersConfiguration?.options!\"\n [menu]=\"addMembersConfiguration?.menu\"\n [disableUsersPresence]=\"addMembersConfiguration?.disableUsersPresence!\"\n [subtitleView]=\"addMembersConfiguration?.subtitleView\" [group]=\"group\"\n [selectionMode]=\"selectionmodeEnum\"\n [onClose]=\"addMembersConfiguration?.onClose || onCloseDetails\"\n [onBack]=\"onBackForAddMembers\"\n [usersRequestBuilder]=\"addMembersConfiguration?.usersRequestBuilder!\"\n [searchRequestBuilder]=\"addMembersConfiguration?.usersRequestBuilder!\"\n [listItemView]=\"addMembersConfiguration?.listItemView\"\n [showSelectedMembersPreview]=\"addMembersConfiguration!.showSelectedMembersPreview\"\n [selectedMemberPreviewStyle]=\"addMembersConfiguration!.selectedMemberPreviewStyle\"\n >\n </cometchat-add-members>\n</div>\n<div class=\"cc-details__view\" *ngIf=\"openBannedMembersPage\">\n <cometchat-banned-members\n [listItemView]=\"bannedMembersConfiguration?.listItemView\"\n [bannedMembersRequestBuilder]=\"bannedMembersConfiguration?.bannedMembersRequestBuilder!\"\n [searchRequestBuilder]=\"bannedMembersConfiguration?.searchRequestBuilder!\"\n [titleAlignment]=\"bannedMembersConfiguration.titleAlignment\"\n [listItemStyle]=\"bannedMembersConfiguration.listItemStyle\"\n [bannedMembersStyle]=\"bannedMembersConfiguration.bannedMembersStyle\"\n [avatarStyle]=\"bannedMembersConfiguration.avatarStyle\"\n [statusIndicatorStyle]=\"bannedMembersConfiguration.statusIndicatorStyle\"\n [loadingStateView]=\"bannedMembersConfiguration.loadingStateView\"\n [loadingIconURL]=\"bannedMembersConfiguration.loadingIconURL\"\n [errorStateView]=\"bannedMembersConfiguration.errorStateView\"\n [emptyStateView]=\"bannedMembersConfiguration.emptyStateView\"\n [onSelect]=\"bannedMembersConfiguration.onSelect\"\n [onError]=\"bannedMembersConfiguration.onError\"\n [hideError]=\"bannedMembersConfiguration.hideError\"\n [hideSearch]=\"bannedMembersConfiguration.hideSearch\"\n [searchIconURL]=\"bannedMembersConfiguration.searchIconURL\"\n [selectionMode]=\"bannedMembersConfiguration.selectionMode\"\n [hideSeparator]=\"bannedMembersConfiguration.hideSeparator\"\n [showBackButton]=\"bannedMembersConfiguration.showBackButton\"\n [backButtonIconURL]=\"bannedMembersConfiguration.backButtonIconURL\"\n [closeButtonIconURL]=\"bannedMembersConfiguration.closeButtonIconURL\"\n [options]=\"bannedMembersConfiguration.options\"\n [menu]=\"bannedMembersConfiguration.menu\"\n [disableUsersPresence]=\"bannedMembersConfiguration.disableUsersPresence\"\n [subtitleView]=\"bannedMembersConfiguration.subtitleView\" [group]=\"group\"\n [onClose]=\"onCloseDetails\"\n [onBack]=\"bannedMembersConfiguration.onBack || bannedMembers\">\n </cometchat-banned-members>\n</div>\n<div class=\"cc-details__view\" *ngIf=\"openViewMembersPage\">\n <cometchat-group-members\n [listItemView]=\"groupMembersConfiguration?.listItemView!\"\n [groupMembersRequestBuilder]=\"groupMembersConfiguration?.groupMembersRequestBuilder!\"\n [searchRequestBuilder]=\"groupMembersConfiguration?.searchRequestBuilder!\"\n [titleAlignment]=\"groupMembersConfiguration.titleAlignment\"\n [listItemStyle]=\"groupMembersConfiguration.listItemStyle\"\n [groupMembersStyle]=\"groupMembersConfiguration.groupMembersStyle\"\n [avatarStyle]=\"groupMembersConfiguration.avatarStyle\"\n [statusIndicatorStyle]=\"groupMembersConfiguration.statusIndicatorStyle\"\n [loadingStateView]=\"groupMembersConfiguration.loadingStateView\"\n [loadingIconURL]=\"groupMembersConfiguration.loadingIconURL\"\n [errorStateView]=\"groupMembersConfiguration.errorStateView\"\n [emptyStateView]=\"groupMembersConfiguration.emptyStateView\"\n [onSelect]=\"groupMembersConfiguration.onSelect\"\n [onError]=\"groupMembersConfiguration.onError\"\n [hideError]=\"groupMembersConfiguration.hideError\"\n [hideSearch]=\"groupMembersConfiguration.hideSearch\"\n [searchIconURL]=\"groupMembersConfiguration.searchIconURL\"\n [selectionMode]=\"groupMembersConfiguration.selectionMode\"\n [backdropStyle]=\"groupMembersConfiguration.backdropStyle\"\n [hideSeparator]=\"groupMembersConfiguration.hideSeparator\"\n [showBackButton]=\"groupMembersConfiguration.showBackButton\"\n [backButtonIconURL]=\"groupMembersConfiguration.backButtonIconURL\"\n [closeButtonIconURL]=\"groupMembersConfiguration.closeButtonIconURL\"\n [options]=\"groupMembersConfiguration.options\"\n [menu]=\"groupMembersConfiguration.menu\"\n [disableUsersPresence]=\"groupMembersConfiguration.disableUsersPresence\"\n [subtitleView]=\"groupMembersConfiguration.subtitleView\"\n [groupScopeStyle]=\"groupMembersConfiguration.groupScopeStyle\"\n [group]=\"group\"\n [onClose]=\" groupMembersConfiguration.onClose || onCloseDetails\"\n [onBack]=\"groupMembersConfiguration.onBack || viewMembers\">\n </cometchat-group-members>\n</div>\n\n<cometchat-backdrop [backdropStyle]=\"backdropStyle\"\n *ngIf=\"confirmLeaveGroupModal\">\n <cometchat-confirm-dialog [title]=\"''\" [messageText]=\"leaveGroupDialogMessage\"\n [cancelButtonText]=\"leaveGroupCancelButtonText\"\n [confirmButtonText]=\"leaveGroupConfirmButtonText\"\n (cc-confirm-clicked)=\"onLeaveClick()\" (cc-cancel-clicked)=\"onCancelClick()\"\n [confirmDialogStyle]=\"leaveGroupDialogStyle\">\n </cometchat-confirm-dialog>\n</cometchat-backdrop>\n<cometchat-backdrop [backdropStyle]=\"backdropStyle\" *ngIf=\"showTransferDialog\">\n <cometchat-confirm-dialog [title]=\"''\"\n [messageText]=\"transferOwnershipDialogMessage\"\n [cancelButtonText]=\"transferOwnershipCancelButtonText\"\n [confirmButtonText]=\"transferOwnershipConfirmButtonText\"\n (cc-confirm-clicked)=\"onTransferClick()\"\n (cc-cancel-clicked)=\"onCancelClick()\"\n [confirmDialogStyle]=\"transferOwnershipDialogStyle\">\n </cometchat-confirm-dialog>\n</cometchat-backdrop>\n<cometchat-backdrop [backdropStyle]=\"backdropStyle\"\n *ngIf=\"openTransferOwnershipModal\">\n <cometchat-transfer-ownership\n [groupMembersRequestBuilder]=\"transferOwnershipConfiguration?.groupMembersRequestBuilder\"\n [transferOwnershipStyle]=\"transferOwnershipConfiguration.transferOwnershipStyle\"\n [onTransferOwnership]=\"transferOwnershipConfiguration.onTransferOwnership\"\n [titleAlignment]=\"transferOwnershipConfiguration.titleAlignment\"\n [listItemStyle]=\"transferOwnershipConfiguration.listItemStyle\"\n [avatarStyle]=\"transferOwnershipConfiguration.avatarStyle\"\n [statusIndicatorStyle]=\"transferOwnershipConfiguration.statusIndicatorStyle\"\n [loadingStateView]=\"transferOwnershipConfiguration.loadingStateView\"\n [loadingIconURL]=\"transferOwnershipConfiguration.loadingIconURL\"\n [errorStateView]=\"transferOwnershipConfiguration.errorStateView\"\n [emptyStateView]=\"transferOwnershipConfiguration.emptyStateView\"\n [onError]=\"transferOwnershipConfiguration.onError\"\n [hideSearch]=\"transferOwnershipConfiguration.hideSearch\"\n [searchIconURL]=\"transferOwnershipConfiguration.searchIconURL\"\n [hideSeparator]=\"transferOwnershipConfiguration.hideSeparator\"\n [closeButtonIconURL]=\"transferOwnershipConfiguration.closeButtonIconURL\"\n [options]=\"transferOwnershipConfiguration.options\"\n [disableUsersPresence]=\"transferOwnershipConfiguration.disableUsersPresence\"\n [subtitleView]=\"transferOwnershipConfiguration.subtitleView\" [group]=\"group\"\n [onClose]=\"transferOwnershipConfiguration.onClose || openTransferOwnership\">\n </cometchat-transfer-ownership>\n</cometchat-backdrop>\n<cometchat-backdrop [backdropStyle]=\"backdropStyle\" *ngIf=\"deleteGroupModal\">\n <cometchat-confirm-dialog [title]=\"''\"\n [messageText]=\"deleteGroupDialogMessage\"\n [cancelButtonText]=\"deleteGroupCancelButtonText\"\n [confirmButtonText]=\"deleteGroupConfirmButtonText\"\n (cc-confirm-clicked)=\"deleteGroup()\" (cc-cancel-clicked)=\"onCancelClick()\"\n [confirmDialogStyle]=\"deleteGroupDialogStyle\">\n </cometchat-confirm-dialog>\n</cometchat-backdrop>\n","import {\n AvatarStyle,\n BaseStyle,\n DateStyle,\n ListItemStyle,\n MenuListStyle,\n} from \"@cometchat/uikit-elements\";\nimport {\n CallButtonsStyle,\n DetailsConfiguration,\n MessageComposerConfiguration,\n MessageComposerStyle,\n MessageHeaderConfiguration,\n MessageHeaderStyle,\n MessageListConfiguration,\n MessagesStyle,\n ThreadedMessagesConfiguration,\n} from \"@cometchat/uikit-shared\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from \"@angular/core\";\nimport {\n CometChatGroupEvents,\n CometChatMessageEvents,\n CometChatUIEvents,\n CometChatUIKitConstants,\n CometChatUserEvents,\n IGroupLeft,\n fontHelper,\n} from \"@cometchat/uikit-resources\";\n\nimport { ChatConfigurator } from \"../../Shared/Framework/ChatConfigurator\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatException } from \"../../Shared/Utils/ComeChatException\";\nimport { CometChatMessageComposerComponent } from \"../../CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component\";\nimport { CometChatMessageListComponent } from \"../../CometChatMessageList/cometchat-message-list/cometchat-message-list.component\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { Subscription } from \"rxjs\";\n\n/**\n *\n * CometChatMessages is a wrapper component for messageList, messageHeader, messageComposer and liveReaction component.\n *\n * @version 1.0.0\n * @author CometChatTeam\n * @copyright © 2022 CometChat Inc.\n *\n */\n@Component({\n selector: \"cometchat-messages\",\n templateUrl: \"./cometchat-messages.component.html\",\n styleUrls: [\"./cometchat-messages.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatMessagesComponent implements OnInit, OnChanges {\n @ViewChild(\"messageComposerRef\", { static: false })\n messageComposerRef!: CometChatMessageComposerComponent;\n @ViewChild(\"messageListRef\", { static: false })\n messageListRef!: CometChatMessageListComponent;\n @Input() user!: CometChat.User;\n @Input() group!: CometChat.Group;\n @Input() currentAskAIBot!: CometChat.User;\n @Input() hideMessageComposer: boolean = false;\n @Input() disableTyping!: boolean;\n @Input() messageHeaderConfiguration: MessageHeaderConfiguration =\n new MessageHeaderConfiguration({});\n @Input() messageListConfiguration: MessageListConfiguration =\n new MessageListConfiguration({});\n @Input() messageComposerConfiguration: MessageComposerConfiguration =\n new MessageComposerConfiguration({});\n @Input() threadedMessageConfiguration: ThreadedMessagesConfiguration =\n new ThreadedMessagesConfiguration({});\n @Input() detailsConfiguration: DetailsConfiguration =\n new DetailsConfiguration({});\n @Input() customSoundForIncomingMessages!: string;\n @Input() customSoundForOutgoingMessages!: string;\n @Input() disableSoundForMessages!: boolean;\n @Input() messagesStyle: MessagesStyle = {\n width: \"100%\",\n height: \"100%\",\n background: \"white\",\n borderRadius: \"none\",\n };\n @Input() messageHeaderView!: TemplateRef<any>;\n @Input() messageComposerView!: TemplateRef<any>;\n @Input() messageListView!: TemplateRef<any>;\n @Input() hideMessageHeader: boolean = false;\n @Input() hideDetails: boolean = false;\n @Input() auxiliaryMenu!: TemplateRef<any>;\n conversationSummaryClicked: EventEmitter<void> = new EventEmitter<void>();\n\n loggedInUser!: CometChat.User | null;\n callButtonsStyle: CallButtonsStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonPadding: \"0\",\n buttonBackground: \"transparent\",\n buttonBorder: \"0 4px\",\n buttonBorderRadius: \"8px\",\n };\n public messageToBeEdited: CometChat.BaseMessage | null = null;\n public liveReaction: boolean = false;\n public reactionName: string = \"assets/heart-reaction.png\";\n public messageToReact: CometChat.BaseMessage | null = null;\n public composerStyles: MessageComposerStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n borderRadius: \"12px\",\n background: this.themeService.theme.palette.getAccent900(),\n inputBackground: this.themeService.theme.palette.getSecondary(), // done\n textFont: fontHelper(this.themeService.theme.typography.subtitle1), // done\n textColor: this.themeService.theme.palette.getAccent(), // done\n };\n public liveReactionTimeout: any = 0;\n public openThreadedMessages: boolean = false;\n public showAiBotChat: boolean = false;\n /*\n messageHeaderConfiguration\n */\n subtitleView!: TemplateRef<any>;\n disableUsersPresence: boolean = false;\n /**\n * @deprecated\n *\n * This property is deprecated as of version 4.3.7 due to newer property 'passwordGroupIcon'. It will be removed in subsequent versions.\n */\n protectedGroupIcon: string = \"assets/Locked.svg\";\n passwordGroupIcon: string | undefined = undefined;\n privateGroupIcon: string = \"assets/Private.svg\";\n menu!: TemplateRef<any>;\n headerStyle: MessageHeaderStyle = new MessageHeaderStyle({});\n backButtonIconURL: string = \"assets/backbutton.svg\";\n hideBackIcon: boolean = true;\n listItemView!: TemplateRef<any>;\n onError!: (error: CometChat.CometChatException) => void;\n onBack!: () => void;\n avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"28px\",\n height: \"28px\",\n border: \"none\",\n backgroundColor: \"white\",\n nameTextColor: \"rgb(20,20,20)\",\n backgroundSize: \"cover\",\n nameTextFont: \"500 16px Inter\",\n\n outerViewBorderSpacing: \"\",\n };\n statusIndicatorStyle: BaseStyle = {\n borderRadius: \"16px\",\n width: \"10px\",\n height: \"10px\",\n border: \"none\",\n };\n messageHeaderStyle: MessageHeaderStyle = {\n width: \"100%\",\n height: \"100%\",\n background: \"transparent\",\n border: \"none\",\n borderRadius: \"0\",\n backButtonIconTint: \"#3399FF\",\n onlineStatusColor: \"#00f300\",\n subtitleTextColor: \"grey\",\n subtitleTextFont: \"400 14px Inter\",\n typingIndicatorTextColor: \"#3399FF\",\n typingIndicatorTextFont: \"400 13px Inter\",\n };\n listItemStyle: ListItemStyle = {\n background: \"white\",\n titleColor: \"black\",\n titleFont: \"500 16px Inter\",\n width: \"\",\n height: \"100%\",\n border: \"none\",\n borderRadius: \"2px\",\n separatorColor: \"\",\n activeBackground: \"transparent\",\n hoverBackground: \"transparent\",\n };\n\n infoIconStyle: string = \"assets/Info.svg\";\n detailsButtonStyle: any = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.themeService.theme.palette.getPrimary(),\n padding: \"0 8px\",\n };\n enableCalling: boolean = false;\n liveReactionStyle: BaseStyle = {\n height: \"20px\",\n width: \"25px\",\n background: \"red\"\n }\n //\n public ccLiveReaction!: Subscription;\n public ccGroupDeleted!: Subscription;\n public ccGroupLeft!: Subscription;\n public ccUserBlocked!: Subscription;\n public ccUserUnBlocked!: Subscription;\n public ccShowPanel!: Subscription;\n threadMessageObject!: CometChat.BaseMessage | null;\n parentBubbleView!: TemplateRef<any>;\n openDetails: boolean = false;\n constructor(\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService,\n private elementRef: ElementRef\n ) { }\n ngOnInit() {\n this.subscribeToEvents();\n this.setMessagesStyle();\n this.liveReactionStyle = {\n height: \"20px\",\n width: \"25px\",\n background: this.messageComposerConfiguration?.messageComposerStyle?.liveReactionIconTint || \"red\"\n }\n CometChat.getLoggedinUser()\n .then((user) => {\n this.loggedInUser = user;\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n if (ChatConfigurator.names.includes(\"calling\")) {\n this.enableCalling = true;\n }\n }\n\n subscribeToEvents() {\n this.ccLiveReaction = CometChatMessageEvents.ccLiveReaction.subscribe(\n (reactionName: any) => {\n if (reactionName && reactionName == \"heart\") {\n let iconURL: string =\n this.messageComposerConfiguration.LiveReactionIconURL ??\n \"assets/heart-reaction.png\";\n this.liveReactionStart(iconURL);\n this.ref.detectChanges();\n }\n }\n );\n this.ccGroupDeleted = CometChatGroupEvents.ccGroupDeleted.subscribe(\n (group: CometChat.Group) => {\n if (this.group && this.group.getGuid() == group.getGuid()) {\n this.openDetails = false;\n this.openThreadedMessages = false;\n this.group = group;\n this.ref.detectChanges();\n }\n }\n );\n this.ccGroupLeft = CometChatGroupEvents.ccGroupLeft.subscribe(\n (item: IGroupLeft) => {\n if (this.group && this.group.getGuid() == item.leftGroup.getGuid()) {\n if (this.loggedInUser?.getUid() == item?.userLeft.getUid()) {\n this.openDetails = false;\n this.openThreadedMessages = false;\n }\n this.group = item.leftGroup;\n this.ref.detectChanges();\n }\n }\n );\n this.ccUserBlocked = CometChatUserEvents.ccUserBlocked.subscribe(\n (user: CometChat.User) => {\n if (this.user && user.getUid() == this.user.getUid()) {\n this.user = user;\n this.ref.detectChanges();\n }\n }\n );\n this.ccUserUnBlocked = CometChatUserEvents.ccUserUnblocked.subscribe(\n (user: CometChat.User) => {\n if (this.user && user.getUid() == this.user.getUid()) {\n this.user = user;\n this.ref.detectChanges();\n }\n }\n );\n\n this.ccShowPanel = CometChatUIEvents.ccShowPanel.subscribe((e: any) => {\n this.currentAskAIBot = e.child?.bot;\n if (e.child?.showBotView) {\n this.showAiBotChat = true;\n } else {\n this.showAiBotChat = false;\n }\n\n this.ref.detectChanges();\n });\n }\n setDetailsTemplate() {\n if (this.detailsConfiguration.data) {\n return this.detailsConfiguration.data(this.user, this.group)\n }\n return;\n }\n unsubscribeToEvents() {\n this.ccLiveReaction?.unsubscribe();\n this.ccGroupDeleted?.unsubscribe();\n this.ccGroupLeft?.unsubscribe();\n this.ccUserBlocked?.unsubscribe();\n this.ccUserUnBlocked?.unsubscribe();\n this.ccShowPanel?.unsubscribe();\n }\n setMessagesStyle() {\n let defaultStyle: MessagesStyle = new MessagesStyle({\n width: \"100%\",\n height: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: \"none\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n });\n this.messagesStyle = {\n ...defaultStyle,\n ...this.messagesStyle,\n };\n this.detailsConfiguration.detailsStyle.border =\n this.detailsConfiguration.detailsStyle.border ?? \"none\";\n this.detailsConfiguration.addMembersConfiguration.addMembersStyle.border =\n this.detailsConfiguration.addMembersConfiguration.addMembersStyle\n .border ?? \"none\";\n this.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.border =\n this.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle\n .border ?? \"none\";\n this.detailsConfiguration.groupMembersConfiguration.groupMembersStyle.border =\n this.detailsConfiguration.groupMembersConfiguration.groupMembersStyle\n .border ?? \"none\";\n }\n getAuxilaryView() {\n if (this.messageHeaderConfiguration.menu) {\n return this.messageHeaderConfiguration.menu;\n } else if (this.auxiliaryMenu) {\n return this.auxiliaryMenu;\n } else {\n return null;\n }\n }\n openThreadView = (\n message: CometChat.BaseMessage,\n bubble: TemplateRef<any>\n ) => {\n this.threadMessageObject = message;\n this.parentBubbleView = bubble;\n this.openThreadedMessages = true;\n this.ref.detectChanges();\n };\n openDetailsPage = () => {\n this.openDetails = true;\n this.ref.detectChanges();\n };\n closeDetailsPage = () => {\n this.openDetails = false;\n this.ref.detectChanges();\n };\n closeThreadView = () => {\n if(this.threadedMessageConfiguration.onClose){\n this.threadedMessageConfiguration.onClose()\n }\n this.threadMessageObject = null;\n this.openThreadedMessages = false;\n this.ref.detectChanges();\n };\n /**\n * @param {string} reactionName\n */\n liveReactionStart = (reactionName: string) => {\n if (this.liveReaction) {\n this.reactionName = \"\";\n this.liveReaction = false;\n this.ref.detectChanges();\n }\n this.reactionName = reactionName;\n this.liveReaction = true;\n this.ref.detectChanges();\n setTimeout(() => {\n this.reactionName = \"\";\n this.liveReaction = false;\n this.ref.detectChanges();\n }, 1500);\n this.ref.detectChanges();\n };\n\n ngOnChanges(change: SimpleChanges) {\n try {\n if (\n change[CometChatUIKitConstants.MessageReceiverType.user] ||\n change[CometChatUIKitConstants.MessageReceiverType.group]\n ) {\n this.openThreadedMessages = false;\n this.openDetails = false;\n if (this.user) {\n if (Object.keys(this.user).length === 1) {\n CometChat.getUser(this.user).then((user: CometChat.User) => {\n this.user = user;\n });\n }\n } else if (this.group) {\n if (Object.keys(this.group).length === 1) {\n CometChat.getGroup(this.group).then((group: CometChat.Group) => {\n this.group = group;\n });\n }\n }\n }\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n }\n ngOnDestroy() {\n this.ccLiveReaction.unsubscribe();\n this.openThreadedMessages = false;\n this.openDetails = false;\n }\n chatListStyle() {\n return {\n background:\n this.messagesStyle.background ||\n this.themeService.theme.palette.getBackground(),\n height: this.messagesStyle.height,\n width: this.messagesStyle.width,\n border: this.messagesStyle.border,\n borderRadius: this.messagesStyle.borderRadius,\n };\n }\n /**\n * public methods\n * messageListRef methods\n * This metthod will append message in message list\n * @param {CometChat.BaseMessage} message\n */\n addMessage(message: CometChat.BaseMessage) {\n this.messageListRef.addMessage(message);\n }\n /**\n * This method will update the message in messageList\n * @param {CometChat.BaseMessage} message\n */\n updateMessage(message: CometChat.BaseMessage, muid: boolean = false) {\n this.messageListRef.updateMessage(message, muid);\n }\n /**\n * This method will remove the message from messageList\n * @param {CometChat.BaseMessage} message\n */\n removeMessage(message: CometChat.BaseMessage) {\n this.messageListRef.removeMessage(message);\n }\n /**\n * This method will delete and remove the message from messageList\n * @param {CometChat.BaseMessage} message\n */\n deleteMessage(message: CometChat.BaseMessage) {\n this.messageListRef.deleteMessage(message);\n }\n /**\n * this method will send a text message\n * @param {string} text\n */\n sendTextMessage(text: string) {\n this.messageComposerRef.sendTextMessage(text);\n }\n /**\n * this method will open preview of the message\n * @param {CometChat.BaseMessage} message\n * @param {string} mode\n */\n previewMessage(message: CometChat.TextMessage, mode: string = \"\") {\n this.messageComposerRef.messageToBeEdited = message;\n this.messageComposerRef.openEditPreview();\n }\n}\n","<div class=\"cc-messages__wrapper\">\n <cometchat-backdrop *ngIf=\"showAiBotChat\">\n <aiassist-bot-message-list [user]=\"user\" [group]=\"group\"\n [currentAskAIBot]=\"currentAskAIBot\"></aiassist-bot-message-list>\n </cometchat-backdrop>\n <div class=\"cc-messages\" [ngStyle]=\"chatListStyle()\" *ngIf=\"user || group\">\n <div class=\"cc-messages__header\" *ngIf=\"!hideMessageHeader\">\n <div *ngIf=\"messageHeaderView; else customHeaderView\"\n class=\"cc-messages__header-customview\">\n <ng-container\n *ngTemplateOutlet=\"messageHeaderView;context:{ user: user, group: group }\">\n </ng-container>\n </div>\n <ng-template #customHeaderView>\n <cometchat-message-header [user]=\"user\" [group]=\"group\"\n [subtitleView]=\"messageHeaderConfiguration.subtitleView\"\n [disableUsersPresence]=\"messageHeaderConfiguration.disableUsersPresence\"\n [protectedGroupIcon]=\"messageHeaderConfiguration.protectedGroupIcon\"\n [passwordGroupIcon]=\"messageHeaderConfiguration.passwordGroupIcon\"\n [privateGroupIcon]=\"messageHeaderConfiguration.privateGroupIcon\"\n [menu]=\"headerMenu\"\n [messageHeaderStyle]=\"messageHeaderConfiguration.messageHeaderStyle\"\n [backButtonIconURL]=\"messageHeaderConfiguration.backButtonIconURL\"\n [hideBackButton]=\"messageHeaderConfiguration.hideBackButton\"\n [onError]=\"messageHeaderConfiguration.onError\"\n [onBack]=\"messageHeaderConfiguration.onBack\"\n [listItemStyle]=\"messageHeaderConfiguration.listItemStyle\"\n [statusIndicatorStyle]=\"messageHeaderConfiguration.statusIndicatorStyle\"\n [avatarStyle]=\"messageHeaderConfiguration.avatarStyle\">\n </cometchat-message-header>\n </ng-template>\n </div>\n <div class=\"cc-messages__list\" *ngIf=\"!messageListView\">\n <cometchat-message-list #messageListRef\n [disableReactions]=\"messageListConfiguration?.disableReactions!\"\n [emojiKeyboardStyle]=\"messageListConfiguration?.emojiKeyboardStyle!\"\n [threadIndicatorIcon]=\"messageListConfiguration?.threadIndicatorIcon!\"\n [reactionsConfiguration]=\"messageListConfiguration?.reactionsConfiguration!\"\n [messageInformationConfiguration]=\"\n messageListConfiguration.messageInformationConfiguration\"\n [disableSoundForMessages]=\"disableSoundForMessages\"\n [customSoundForMessages]=\"customSoundForIncomingMessages\"\n [emptyStateView]=\"messageListConfiguration.emptyStateView\"\n [loadingIconURL]=\"messageListConfiguration?.loadingIconURL!\"\n [loadingStateView]=\"messageListConfiguration.loadingStateView\"\n [user]=\"user\" [group]=\"group\"\n [newMessageIndicatorStyle]=\"messageListConfiguration.newMessageIndicatorStyle\"\n [newMessageIndicatorIconUrl]=\"messageListConfiguration.newMessageIndicatorIconUrl\"\n [errorStateView]=\"messageListConfiguration.errorStateView\"\n [disableReceipt]=\"messageListConfiguration.disableReceipt\"\n [hideReceipt]=\"messageListConfiguration.hideReceipt\"\n [readIcon]=\"messageListConfiguration.readIcon\"\n [deliveredIcon]=\"messageListConfiguration.deliveredIcon\"\n [sentIcon]=\"messageListConfiguration.sentIcon\"\n [waitIcon]=\"messageListConfiguration.waitIcon\"\n [errorIcon]=\"messageListConfiguration.errorIcon\"\n [alignment]=\"messageListConfiguration.alignment\"\n [showAvatar]=\"messageListConfiguration.showAvatar\"\n [datePattern]=\"messageListConfiguration.datePattern\"\n [timestampAlignment]=\"messageListConfiguration.timestampAlignment\"\n [DateSeparatorPattern]=\"messageListConfiguration.DateSeparatorPattern\"\n [templates]=\"messageListConfiguration.templates\"\n [messagesRequestBuilder]=\"messageListConfiguration.messagesRequestBuilder\"\n [thresholdValue]=\"messageListConfiguration.thresholdValue\"\n [onThreadRepliesClick]=\"messageListConfiguration.onThreadRepliesClick || openThreadView\"\n [headerView]=\"messageListConfiguration.headerView\"\n [footerView]=\"messageListConfiguration.footerView\"\n [avatarStyle]=\"messageListConfiguration.avatarStyle\"\n [scrollToBottomOnNewMessages]=\"messageListConfiguration.scrollToBottomOnNewMessages\"\n [backdropStyle]=\"messageListConfiguration.backdropStyle\"\n [dateSeparatorStyle]=\"messageListConfiguration.dateSeparatorStyle\"\n [messageListStyle]=\"messageListConfiguration.messageListStyle\"\n [onError]=\"messageListConfiguration.onError\"\n [hideError]=\"messageListConfiguration.hideError\"\n [disableMentions]=\"messageListConfiguration.disableMentions\"\n [textFormatters]=\"messageListConfiguration?.textFormatters\">\n </cometchat-message-list>\n </div>\n <ng-container *ngIf=\"messageListView\">\n <ng-container\n *ngTemplateOutlet=\"messageListView;context:{ user: user, group: group }\">\n </ng-container>\n </ng-container>\n\n <div class=\"cc-messages__composer\"\n *ngIf=\"!messageComposerView && !hideMessageComposer\">\n <cometchat-message-composer #messageComposerRef\n [hideVoiceRecording]=\"messageComposerConfiguration.hideVoiceRecording\"\n [disableSoundForMessages]=\"disableSoundForMessages\"\n [voiceRecordingStopIconURL]=\"messageComposerConfiguration.voiceRecordingStopIconURL\"\n [voiceRecordingStartIconURL]=\"messageComposerConfiguration.voiceRecordingStartIconURL\"\n [voiceRecordingCloseIconURL]=\"messageComposerConfiguration.voiceRecordingCloseIconURL\"\n [voiceRecordingSubmitIconURL]=\"messageComposerConfiguration.voiceRecordingSubmitIconURL\"\n [mediaRecorderStyle]=\"messageComposerConfiguration.mediaRecorderStyle\"\n [customSoundForMessages]=\"customSoundForOutgoingMessages\" [user]=\"user\"\n [group]=\"group\" [text]=\"messageComposerConfiguration.text\"\n [headerView]=\"messageComposerConfiguration.headerView\"\n [onTextChange]=\"messageComposerConfiguration.onTextChange\"\n [attachmentIconURL]=\"messageComposerConfiguration.attachmentIconURL\"\n [attachmentOptions]=\"messageComposerConfiguration.attachmentOptions\"\n [secondaryButtonView]=\"messageComposerConfiguration.secondaryButtonView\"\n [auxilaryButtonView]=\"messageComposerConfiguration.auxilaryButtonView\"\n [auxiliaryButtonsAlignment]=\"messageComposerConfiguration.auxiliaryButtonsAlignment\"\n [sendButtonView]=\"messageComposerConfiguration.sendButtonView\"\n [hideLiveReaction]=\"messageComposerConfiguration.hideLiveReaction\"\n [LiveReactionIconURL]=\"messageComposerConfiguration.LiveReactionIconURL\"\n [messageComposerStyle]=\"messageComposerConfiguration.messageComposerStyle\"\n [onSendButtonClick]=\"messageComposerConfiguration.onSendButtonClick\"\n [onSendButtonClick]=\"messageComposerConfiguration.onSendButtonClick\"\n [onError]=\"messageComposerConfiguration.onError\"\n [actionSheetStyle]=\"messageComposerConfiguration.actionSheetStyle\"\n [aiOptionsStyle]=\"messageComposerConfiguration.AIOptionsStyle\"\n [aiIconURL]=\"messageComposerConfiguration.AIIconURL\"\n [userMemberWrapperConfiguration]=\"messageComposerConfiguration.userMemberWrapperConfiguration\"\n [textFormatters]=\"messageComposerConfiguration?.textFormatters\"\n [disableMentions]=\"messageComposerConfiguration.disableMentions\"\n [mentionsWarningText]=\"messageComposerConfiguration?.mentionsWarningText\"\n [mentionsWarningStyle]=\"messageComposerConfiguration?.mentionsWarningStyle\"\n [voiceRecordingIconURL]=\"messageComposerConfiguration.voiceRecordingIconURL\"\n [emojiIconURL]=\"messageComposerConfiguration.emojiIconURL\"\n [sendButtonIconURL]=\"messageComposerConfiguration.sendButtonIconURL\"\n >\n </cometchat-message-composer>\n </div>\n <div *ngIf=\"messageComposerView && !hideMessageComposer\"\n class=\"cc-messages__composer--customview\">\n <ng-container\n *ngTemplateOutlet=\"messageComposerView;context:{ user: user, group: group }\">\n </ng-container>\n </div>\n </div>\n <div class=\"cc-messages__livereaction\">\n <cometchat-live-reaction *ngIf=\"liveReaction\"\n [reactionIconURL]=\"reactionName\"\n [liveReactionStyle]=\"liveReactionStyle\"></cometchat-live-reaction>\n </div>\n <div *ngIf=\"openThreadedMessages\" class=\"cc-messages__threadedmessages\">\n <cometchat-threaded-messages [onClose]=\"closeThreadView\"\n [threadedMessagesStyle]=\"threadedMessageConfiguration.threadedMessagesStyle\"\n [messageActionView]=\"threadedMessageConfiguration.messageActionView\"\n [closeIconURL]=\"threadedMessageConfiguration.closeIconURL\"\n [onError]=\"threadedMessageConfiguration.onError\"\n [bubbleView]=\"threadedMessageConfiguration.bubbleView || parentBubbleView\"\n [parentMessage]=\"threadMessageObject\" [user]=\"user\" [group]=\"group\"\n [messageListConfiguration]=\"threadedMessageConfiguration.messageListConfiguration\"\n [messageComposerView]=\"threadedMessageConfiguration.messageComposerView\"\n [messageListView]=\"threadedMessageConfiguration.messageListView\"\n [hideMessageComposer]=\"threadedMessageConfiguration.hideMessageComposer\"\n [messageComposerConfiguration]=\"threadedMessageConfiguration.messageComposerConfiguration\"\n [disableSoundForMessages]=\"threadedMessageConfiguration.disableSoundForMessages\"\n ></cometchat-threaded-messages>\n </div>\n\n <div *ngIf=\"openDetails\" class=\"cc-messages__details\">\n <cometchat-details\n [protectedGroupIcon]=\"detailsConfiguration.protectedGroupIcon\"\n [passwordGroupIcon]=\"detailsConfiguration.passwordGroupIcon\"\n [privateGroupIcon]=\"detailsConfiguration.privateGroupIcon\"\n [backdropStyle]=\"detailsConfiguration.backdropStyle\"\n [disableUsersPresence]=\"detailsConfiguration?.disableUsersPresence!\"\n [transferOwnershipConfiguration]=\"detailsConfiguration.transferOwnershipConfiguration\"\n [groupMembersConfiguration]=\"detailsConfiguration.groupMembersConfiguration\"\n [bannedMembersConfiguration]=\"detailsConfiguration.bannedMembersConfiguration\"\n [addMembersConfiguration]=\"detailsConfiguration.addMembersConfiguration\"\n [onClose]=\"detailsConfiguration.onClose || closeDetailsPage\"\n [listItemStyle]=\"detailsConfiguration.listItemStyle\"\n [detailsStyle]=\"detailsConfiguration.detailsStyle\"\n [avatarStyle]=\"detailsConfiguration.avatarStyle\"\n [statusIndicatorStyle]=\"detailsConfiguration.statusIndicatorStyle\"\n [leaveDialogStyle]=\"detailsConfiguration.leaveDialogStyle\"\n [data]=\"setDetailsTemplate()\"\n [customProfileView]=\"detailsConfiguration.customProfileView\"\n [subtitleView]=\"detailsConfiguration.subtitleView\"\n [hideProfile]=\"detailsConfiguration.hideProfile\"\n [onError]=\"detailsConfiguration.onError\"\n [closeButtonIconURL]=\"detailsConfiguration.closeButtonIconURL\"\n [user]=\"user\" [group]=\"group\"></cometchat-details>\n </div>\n</div>\n<ng-template #headerMenu>\n <div class=\"cc-messages__headermenu\">\n <div class=\"cc-messages__auxiliarymenu\"\n *ngIf=\"getAuxilaryView(); else elseBlock\">\n <ng-container\n *ngTemplateOutlet=\"getAuxilaryView();context:{ user: user, group: group }\">\n </ng-container>\n </div>\n <ng-template #elseBlock>\n <cometchat-call-buttons *ngIf=\"enableCalling\" voiceCallIconText=\"\"\n videoCallIconText=\"\" [user]=\"user\" [group]=\"group\"\n [callButtonsStyle]=\"callButtonsStyle\">\n </cometchat-call-buttons>\n </ng-template>\n <cometchat-button *ngIf=\"!hideDetails\" [iconURL]=\"infoIconStyle\"\n [buttonStyle]=\"detailsButtonStyle\"\n (cc-button-clicked)=\"openDetailsPage()\"></cometchat-button>\n </div>\n</ng-template>\n","import { Component, OnInit, Input, TemplateRef, ViewChild, ChangeDetectorRef, ChangeDetectionStrategy, ContentChild } from '@angular/core';\nimport { CometChatTabItem, TabAlignment } from '@cometchat/uikit-resources';\nimport { BaseStyle } from '@cometchat/uikit-shared';\nimport '@cometchat/uikit-elements'\n\n@Component({\n selector: 'cometchat-tabs',\n templateUrl: './cometchat-tabs.component.html',\n styleUrls: ['./cometchat-tabs.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatTabsComponent implements OnInit {\n @Input() tabAlignment:TabAlignment = TabAlignment.top;\n @Input() disableDragging:boolean = true\n @Input() tabsStyle:BaseStyle = {height:\"100%\",width:\"100%\"}\n @Input() tabs:CometChatTabItem[] = [];\n @Input() keepAlive:boolean = false;\n public activeTab!:CometChatTabItem;\n public previousTab!:CometChatTabItem\n public childView!:TemplateRef<any> | null;\n constructor(private ref:ChangeDetectorRef){}\n openViewOnCLick = (tabItem:CometChatTabItem)=>{\n if(tabItem && tabItem.childView){\n this.childView = tabItem.childView;\n this.activeTab = tabItem\n this.ref.detectChanges()\n }\n\n\n }\n\n\n\n\n ngOnInit(): void {\n\n }\n\n ngOnChanges(){\n let index = this.tabs.findIndex((item: CometChatTabItem) => item.isActive === true)\n if(this.tabs.length > 0){\n this.openViewOnCLick(this.tabs[ index && index >= 0 ? index : 0])\n }\n }\n getButtonStyle(tab: CometChatTabItem) {\n const { style = {} } = tab || {};\n const { id } = this.activeTab || {};\n const active = id === tab?.id;\n var textStyle = tab.iconURL ? {} : {\n display:\"flex\",\n justifyContent:\"center\",\n alignItems:\"center\",\n padding:\"7px\"\n }\n return {\n background: active ? style.activeBackground : style.background,\n buttonTextFont: active ? style.activeTitleTextFont : style.titleTextFont,\n buttonTextColor: active ? style.activeTitleTextColor : style.titleTextColor,\n buttonIconTint: active ? style.activeIconTint : style.iconTint,\n height: style.height,\n width: style.width,\n border: style.border,\n borderRadius: style.borderRadius,\n gap: \"0\",\n padding: \"0\",\n cursor:\"pointer\",\n ...textStyle\n };\n }\n showTabs(tab:CometChatTabItem){\nreturn {\n display: tab.id == this.activeTab.id ? \"block\" : \"none\"\n}\n }\n getTabsStyle() {\n const alignment = (() => {\n switch (this.tabAlignment) {\n case TabAlignment.top:\n return {\n top: \"0\",\n left: \"0\",\n };\n default:\n return {\n bottom: \"0\",\n left: \"0\",\n };\n }\n })();\n return {\n background:this.tabsStyle.background,\n border:this.tabsStyle.border,\n borderRadius:this.tabsStyle.borderRadius,\n ...alignment,\n position: this.disableDragging ? \"initial\" : \"absolute\"\n };\n }\n getWrapperStyle(){\n return (() => {\n switch (this.tabAlignment) {\n case TabAlignment.top:\n return {\n display:\"flex\",\n justifyContent:\"flex-start\",\n flexDirection:\"column\"\n };\n default:\n return {\n display:\"flex\",\n justifyContent:\"flex-start\",\n flexDirection:\"column-reverse\"\n };\n }\n })();\n }\n getTabsPlacement(){\n return {\n display:\"flex\",\n flexDirection: \"row\"\n }\n }\n}\n"," <div class=\"cc-tabs-wrapper\" [ngStyle]=\"getWrapperStyle()\">\n <div class=\"cc-tabs\" [ngStyle]=\"getTabsStyle()\">\n <cometchat-draggable [draggableStyle]=\"tabsStyle\" *ngIf=\"!disableDragging; else fixedTabs\">\n <ng-container *ngTemplateOutlet=\"tabsContainer\">\n </ng-container>\n </cometchat-draggable>\n <ng-template #fixedTabs>\n <ng-container *ngTemplateOutlet=\"tabsContainer\">\n </ng-container>\n </ng-template>\n </div>\n <div class=\"cc-child-view\" *ngIf=\"!keepAlive; else aliveTabs\">\n\n\n <ng-container [ngTemplateOutlet]=\"childView\" >\n\n </ng-container>\n </div>\n\n\n</div>\n<ng-template #previousChild>\n <ng-container [ngTemplateOutlet]=\"previousTab.childView\" >\n\n </ng-container>\n</ng-template>\n<ng-template #tabsContainer>\n <div class=\"cc__tab-item\" [ngStyle]=\"getTabsPlacement()\">\n <cometchat-icon-button [alignment]=\"'column'\" *ngFor=\"let tab of tabs\" [iconURL]=\"tab.iconURL\" [text]=\"tab.title\" [buttonStyle]=\"getButtonStyle(tab)\" (cc-button-clicked)=\"openViewOnCLick(tab)\"></cometchat-icon-button>\n </div>\n\n</ng-template>\n\n<ng-template #aliveTabs>\n <div class=\"cc-child-view\" >\n <div [ngStyle]=\"showTabs(tab)\" class=\"cc-child-container\" *ngFor=\"let tab of tabs\">\n <ng-container [ngTemplateOutlet]=\"tab.childView\" >\n\n </ng-container>\n </div>\n\n </div>\n</ng-template>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';\nimport { CometChat } from '@cometchat/chat-sdk-javascript';\nimport { GroupsStyle, ListStyle, BaseStyle } from \"@cometchat/uikit-shared\";\nimport { AvatarStyle, CheckboxStyle, ListItemStyle } from '@cometchat/uikit-elements'\nimport { Subscription } from 'rxjs';\nimport { CometChatThemeService } from '../../CometChatTheme.service';\nimport { CometChatOption, localize, CometChatGroupEvents, IGroupMemberAdded, IGroupMemberKickedBanned, States, TitleAlignment, SelectionMode, IGroupMemberJoined, IOwnershipChanged, IGroupLeft, CometChatUIKitConstants, fontHelper } from '@cometchat/uikit-resources';\nimport { CometChatException } from '../../Shared/Utils/ComeChatException';\n/**\n*\n* CometChatGroups is a wrapper component which consists of CometChatListBaseComponent and CometChatGroupListComponent.\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-groups\",\n templateUrl: \"./cometchat-groups.component.html\",\n styleUrls: [\"./cometchat-groups.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CometChatGroupsComponent implements OnInit, OnChanges {\n @Input() groupsRequestBuilder!: CometChat.GroupsRequestBuilder;\n @Input() searchRequestBuilder!: CometChat.GroupsRequestBuilder;\n @Input() subtitleView!: TemplateRef<any>;\n @Input() listItemView!: TemplateRef<any>;\n @Input() menu!: TemplateRef<any>;\n @Input() options!: ((member: CometChat.Group) => CometChatOption[]) | null;\n @Input() activeGroup!: CometChat.Group | null;\n @Input() hideSeparator: boolean = false;\n @Input() selectionMode: SelectionMode = SelectionMode.none;\n @Input() searchPlaceholder: string = localize(\"SEARCH\");\n @Input() hideError: boolean = false;\n @Input() searchIconURL: string = \"assets/search.svg\";\n @Input() hideSearch: boolean = false;\n @Input() title: string = localize(\"GROUPS\");\n @Input() onError: (error: CometChat.CometChatException) => void = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n @Input() onSelect!: (group: CometChat.Group, selected: boolean) => void;\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() errorStateView!: TemplateRef<any>;\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() privateGroupIcon: string = \"assets/Private.svg\";\n /**\n * @deprecated\n * \n * This property is deprecated as of version 4.3.7 due to newer property 'passwordGroupIcon'. It will be removed in subsequent versions.\n */\n @Input() protectedGroupIcon: string = \"assets/Locked.svg\";\n @Input() passwordGroupIcon: string | undefined = undefined;\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() emptyStateText: string = localize(\"NO_GROUPS_FOUND\")\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() titleAlignment: TitleAlignment = TitleAlignment.left;\n selectionmodeEnum: typeof SelectionMode = SelectionMode;\n public state: States = States.loading;\n @Input() statusIndicatorStyle: any = {\n height: \"12px\",\n width: \"12px\",\n borderRadius: \"16px\"\n };\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"32px\",\n height: \"32px\",\n };\n @Input() groupsStyle: GroupsStyle = {\n width: \"100%\",\n height: \"100%\",\n separatorColor: \"rgb(222 222 222 / 46%)\"\n };\n @Input() listItemStyle: ListItemStyle = {};\n @Input() onItemClick!: (group: CometChat.Group) => void;\n groupsRequest: any\n listStyle: ListStyle = {}\n public limit: number = 30;\n searchKeyword: string = \"\";\n public timeout: any;\n public groupsList: CometChat.Group[] = [];\n public groupsListenerId: string = \"groupsList_\" + new Date().getTime();\n public loggedInUser: CometChat.User | null = null;\n public statusColor: any = {\n private: \"\",\n password: \"#F7A500\",\n public: \"\"\n }\n requestBuilder!: CometChat.GroupsRequest;\n firstReload: boolean = false;\n public connectionListenerId = \"connection_\" + new Date().getTime();\n onScrolledToBottom: any = null\n ccGroupMemberAdded!: Subscription;\n ccGroupLeft!: Subscription;\n ccGroupMemberJoined!: Subscription;\n ccGroupMemberKicked!: Subscription;\n ccGroupMemberBanned!: Subscription;\n ccOwnershipChanged!: Subscription;\n ccGroupDeleted!: Subscription;\n ccGroupCreated!: Subscription;\n checkboxStyle: CheckboxStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"4px\",\n checkedBackgroundColor: \"#2196F3\",\n uncheckedBackgroundColor: \"#ccc\"\n }\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) { this.state = States.loading }\n ngOnChanges(changes: SimpleChanges): void {\n }\n ngOnInit(): void {\n this.firstReload = true;\n this.onScrolledToBottom = this.fetchNextGroupList\n this.setThemeStyle();\n this.subscribeToEvents()\n CometChat.getLoggedinUser().then((user: CometChat.User | null) => {\n this.setRequestBuilder();\n this.fetchNextGroupList()\n this.loggedInUser = user;\n }).catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n this.state = States.loading\n this.attachListeners();\n }\n onGroupSelected(group: CometChat.Group, event: any) {\n let selected: boolean = event?.detail?.checked;\n if (this.onSelect) {\n this.onSelect(group, selected)\n }\n }\n // subscribe to global events\n subscribeToEvents() {\n this.ccGroupDeleted = CometChatGroupEvents.ccGroupDeleted.subscribe((group: CometChat.Group) => {\n this.removeGroup(group)\n if (this.activeGroup && group.getGuid() == this.activeGroup.getGuid()) {\n this.activeGroup = null;\n this.ref.detectChanges()\n }\n })\n this.ccGroupCreated = CometChatGroupEvents.ccGroupCreated.subscribe((group: CometChat.Group) => {\n this.addGroup(group)\n if (!this.activeGroup) {\n this.activeGroup = group\n }\n })\n this.ccGroupMemberAdded = CometChatGroupEvents.ccGroupMemberAdded.subscribe((item: IGroupMemberAdded) => {\n if (this.activeGroup && this.activeGroup.getGuid() == item?.userAddedIn!.getGuid()) {\n this.activeGroup == item?.userAddedIn;\n this.ref.detectChanges()\n }\n this.updateGroup(item?.userAddedIn!)\n })\n this.ccGroupMemberBanned = CometChatGroupEvents.ccGroupMemberBanned.subscribe((item: IGroupMemberKickedBanned) => {\n if (this.activeGroup && this.activeGroup.getGuid() == item?.kickedFrom!.getGuid()) {\n this.activeGroup == item?.kickedFrom;\n this.ref.detectChanges()\n }\n this.updateGroup(item?.kickedFrom!)\n })\n this.ccGroupMemberJoined = CometChatGroupEvents.ccGroupMemberJoined.subscribe((item: IGroupMemberJoined) => {\n if (this.activeGroup && this.activeGroup.getGuid() == item?.joinedGroup!.getGuid()) {\n this.activeGroup == item?.joinedGroup;\n this.ref.detectChanges()\n }\n this.updateGroup(item?.joinedGroup!)\n })\n this.ccGroupMemberKicked = CometChatGroupEvents.ccGroupMemberKicked.subscribe((item: IGroupMemberKickedBanned) => {\n if (this.activeGroup && this.activeGroup.getGuid() == item?.kickedFrom!.getGuid()) {\n this.activeGroup == item?.kickedFrom;\n this.ref.detectChanges()\n }\n this.updateGroup(item?.kickedFrom!)\n })\n this.ccOwnershipChanged = CometChatGroupEvents.ccOwnershipChanged.subscribe((item: IOwnershipChanged) => {\n if (this.activeGroup && this.activeGroup.getGuid() == item?.group!.getGuid()) {\n this.activeGroup == item?.group;\n this.ref.detectChanges();\n }\n this.updateGroup(item?.group!)\n })\n this.ccGroupLeft = CometChatGroupEvents.ccGroupLeft.subscribe((item: IGroupLeft) => {\n if (item.leftGroup.getType() == CometChatUIKitConstants.GroupTypes.private) {\n this.removeGroup(item.leftGroup)\n }\n else {\n this.updateGroup(item.leftGroup)\n }\n })\n }\n // unsubscribe to subscribed events.\n unsubscribeToEvents() {\n this.ccGroupMemberAdded?.unsubscribe();\n this.ccGroupMemberBanned?.unsubscribe();\n this.ccGroupMemberJoined?.unsubscribe();\n this.ccGroupMemberKicked?.unsubscribe();\n this.ccOwnershipChanged?.unsubscribe();\n this.ccGroupLeft?.unsubscribe();\n }\n ngOnDestroy() {\n this.unsubscribeToEvents()\n this.groupsRequest = null;\n this.ref.detach();\n this.removeListener();\n }\n /**\n * @param {CometChat.Group} group\n */\n updateGroup(group: CometChat.Group) {\n let groupsList = [...this.groupsList];\n //search for group\n let groupKey = groupsList.findIndex((g, k) => g.getGuid() === group.getGuid());\n if (groupKey > -1) {\n groupsList.splice(groupKey, 1, group);\n this.groupsList = groupsList;\n this.ref.detectChanges();\n }\n }\n /**\n * @param {CometChat.Group} group\n */\n getGroupIcon = (group: CometChat.Group) => {\n let status;\n if (group) {\n switch (group.getType()) {\n case CometChatUIKitConstants.GroupTypes.password:\n status = this.passwordGroupIcon || this.protectedGroupIcon;\n break;\n case CometChatUIKitConstants.GroupTypes.private:\n status = this.privateGroupIcon;\n break;\n default:\n status = null\n break;\n }\n }\n return status\n }\n fetchNewUsers() {\n this.setRequestBuilder()\n let state = this.firstReload ? States.loading : States.loaded;\n this.fetchNextGroupList(state)\n }\n attachConnectionListeners() {\n CometChat.addConnectionListener(\n this.connectionListenerId,\n new CometChat.ConnectionListener({\n onConnected: () => {\n console.log(\"ConnectionListener =>connected\");\n this.fetchNewUsers()\n },\n inConnecting: () => {\n console.log(\"ConnectionListener => In connecting\");\n },\n onDisconnected: () => {\n console.log(\"ConnectionListener => On Disconnected\");\n }\n })\n );\n }\n\n findGroupIndex = (groupToFind: CometChat.Group) => {\n let groupIndex = this.groupsList.findIndex((g, k) => g.getGuid() === groupToFind.getGuid());\n return groupIndex;\n }\n attachListeners() {\n CometChat.addGroupListener(\n this.groupsListenerId,\n new CometChat.GroupListener({\n onGroupMemberScopeChanged: (\n message: CometChat.Action,\n changedUser: CometChat.User,\n newScope: CometChat.GroupMemberScope,\n oldScope: CometChat.GroupMemberScope,\n changedGroup: CometChat.Group\n ) => { \n const groupIndex = this.findGroupIndex(changedGroup);\n if(groupIndex > -1) {\n let groupsList = [...this.groupsList];\n const groupFound = groupsList[groupIndex];\n if (changedUser.getUid() == this.loggedInUser?.getUid()) {\n groupFound.setScope(newScope)\n this.ref.detectChanges();\n }\n groupsList.splice(groupIndex, 1, groupFound);\n this.groupsList = groupsList;\n }\n },\n onGroupMemberKicked: (message: CometChat.Action, kickedUser: CometChat.User, kickedBy: CometChat.User, kickedFrom: CometChat.Group) => {\n const groupIndex = this.findGroupIndex(kickedFrom);\n if (groupIndex > -1) {\n let groupsList = [...this.groupsList];\n let groupFound = groupsList[groupIndex];\n if (kickedUser.getUid() === this.loggedInUser?.getUid()) {\n groupFound.setHasJoined(false);\n }\n groupFound.setMembersCount(kickedFrom.getMembersCount());\n groupsList.splice(groupIndex, 1, groupFound);\n this.groupsList = groupsList;\n this.ref.detectChanges();\n }\n },\n onGroupMemberBanned: (message: CometChat.Action, bannedUser: CometChat.User, bannedBy: CometChat.User, bannedFrom: CometChat.Group) => {\n const groupIndex = this.findGroupIndex(bannedFrom);\n if (groupIndex > -1) {\n let groupsList = [...this.groupsList];\n let groupFound = groupsList[groupIndex];\n \n if (bannedUser.getUid() === this.loggedInUser?.getUid()) {\n this.removeGroup(bannedFrom);\n return;\n }\n groupFound.setMembersCount(bannedFrom.getMembersCount());\n \n groupsList.splice(groupIndex, 1, groupFound);\n this.groupsList = groupsList;\n this.ref.detectChanges();\n }\n },\n onGroupMemberUnbanned: (message: CometChat.Action, unbannedUser: CometChat.User, unbannedBy: CometChat.User, unbannedFrom: CometChat.Group) => {\n const groupIndex = this.findGroupIndex(unbannedFrom);\n if (groupIndex > -1) {\n let groupsList = [...this.groupsList];\n let groupFound = groupsList[groupIndex];\n \n if (unbannedUser.getUid() === this.loggedInUser?.getUid()) {\n groupFound.setHasJoined(false); \n }\n \n groupsList.splice(groupIndex, 1, groupFound);\n this.groupsList = groupsList;\n } else {\n this.addGroup(unbannedFrom);\n }\n this.ref.detectChanges();\n },\n onMemberAddedToGroup: (message: CometChat.Action, userAdded: CometChat.User, userAddedBy: CometChat.User, userAddedIn: CometChat.Group) => {\n if(this.searchKeyword) return;\n const groupIndex = this.findGroupIndex(userAddedIn);\n if (groupIndex > -1) {\n let groupsList = [...this.groupsList];\n let groupFound = groupsList[groupIndex];\n \n if (userAdded.getUid() === this.loggedInUser?.getUid()) {\n groupFound.setHasJoined(true);\n }\n groupFound.setMembersCount(userAddedIn.getMembersCount());\n groupsList.splice(groupIndex, 1, groupFound);\n this.groupsList = groupsList;\n }else {\n userAddedIn.setHasJoined(true);\n this.addGroup(userAddedIn);\n }\n this.ref.detectChanges();\n },\n onGroupMemberLeft: (message: CometChat.Action, leavingUser: CometChat.User, group: CometChat.Group) => {\n const groupIndex = this.findGroupIndex(group);\n if (groupIndex > -1) {\n let groupsList = [...this.groupsList];\n let groupFound = groupsList[groupIndex];\n \n if (leavingUser.getUid() === this.loggedInUser?.getUid()) {\n groupFound.setHasJoined(false); \n }\n groupFound.setMembersCount(group.getMembersCount());\n \n groupsList.splice(groupIndex, 1, groupFound);\n this.groupsList = groupsList;\n this.ref.detectChanges();\n }\n },\n onGroupMemberJoined: (message: CometChat.Action, joinedUser: CometChat.User, joinedGroup: CometChat.Group) => {\n const groupIndex = this.findGroupIndex(joinedGroup);\n if (groupIndex > -1) {\n let groupsList = [...this.groupsList];\n let groupFound = groupsList[groupIndex];\n \n if (joinedUser.getUid() === this.loggedInUser?.getUid()) {\n groupFound.setHasJoined(true);\n }\n groupFound.setMembersCount(joinedGroup.getMembersCount());\n \n groupsList.splice(groupIndex, 1, groupFound);\n this.groupsList = groupsList;\n this.ref.detectChanges();\n }\n },\n })\n );\n }\n removeListener() {\n CometChat.removeGroupListener(this.groupsListenerId);\n CometChat.removeConnectionListener(this.connectionListenerId)\n }\n fetchNextGroupList = (state: States = States.loading) => {\n this.onScrolledToBottom = null\n this.state = state\n this.ref.detectChanges()\n if (this.requestBuilder && (this.requestBuilder as any)?.pagination && ((this.requestBuilder as any).pagination?.current_page == 0 || (this.requestBuilder as any).pagination?.current_page != (this.requestBuilder as any).pagination.total_pages)) {\n this.onScrolledToBottom = this.fetchNextGroupList\n try {\n this.requestBuilder.fetchNext().then(\n (groupList: CometChat.Group[]) => {\n if ((groupList.length <= 0 && this.groupsList?.length <= 0) || (groupList.length === 0 && this.groupsList?.length <= 0)) {\n this.state = States.empty;\n this.ref.detectChanges();\n } else {\n if (state == States.loaded) {\n this.groupsList = [...groupList]\n }\n else {\n this.groupsList = [...this.groupsList, ...groupList];\n }\n this.state = States.loaded\n this.ref.detectChanges();\n }\n if (this.firstReload) {\n this.attachConnectionListeners()\n this.firstReload = false;\n }\n },\n (error: any) => {\n if (this.onError) {\n this.onError(CometChatException(error))\n }\n this.state = States.error\n this.ref.detectChanges();\n }\n ).catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n if (this.groupsList?.length <= 0) {\n this.state = States.error\n this.ref.detectChanges()\n\n }\n\n })\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error))\n }\n this.state = States.error\n this.ref.detectChanges();\n }\n }\n else {\n this.state = States.loaded;\n this.ref.detectChanges()\n }\n }\n /**\n * @param {CometChat.Group} group\n */\n onClick = (group: CometChat.Group) => {\n if (this.onItemClick) {\n this.onItemClick(group)\n }\n }\n /**\n * @param {CometChat.Group} group\n */\n getStatusIndicatorColor(group: CometChat.Group) {\n return (this.statusColor as any)[(group?.getType() as string)];\n }\n /**\n * @param {CometChat.Group} group\n */\n getMemberCount = (group: CometChat.Group) => {\n return group.getMembersCount() > 1 ? group.getMembersCount() + \" \" + localize(\"MEMBERS\") : group.getMembersCount() + \" \" + localize(\"MEMBER\")\n }\n /**\n * @param {CometChat.Group} group\n */\n getActiveGroup = (group: CometChat.Group) => {\n if (this.selectionMode == SelectionMode.none || !this.selectionMode) {\n if (group.getGuid() == this.activeGroup?.getGuid()) {\n return true;\n }\n else {\n return false\n }\n }\n else {\n return false\n }\n }\n setRequestBuilder() {\n if (!this.groupsRequestBuilder) {\n this.groupsRequestBuilder = new CometChat.GroupsRequestBuilder()\n .setLimit(this.limit)\n .setSearchKeyword(this.searchKeyword)\n }\n if (this.searchRequestBuilder) {\n this.requestBuilder = this.searchRequestBuilder.build()\n }\n this.requestBuilder = this.groupsRequestBuilder.setSearchKeyword(this.searchKeyword).build()\n }\n /**\n * @param {CometChat.Group} group\n */\n removeGroup(group: CometChat.Group) {\n let groupsList = [...this.groupsList];\n //search for group\n let groupKey = groupsList.findIndex((g, k) => g.getGuid() === group.getGuid());\n if (groupKey > -1) {\n groupsList.splice(groupKey, 1);\n this.groupsList = groupsList;\n this.ref.detectChanges();\n }\n }\n /**\n * addGroup\n * @param group\n */\n addGroup(group: CometChat.Group) {\n this.groupsList.unshift(group);\n this.ref.detectChanges()\n }\n /**\n * @param {string} key\n */\n onSearch = (key: string) => {\n try {\n this.searchKeyword = key;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.setRequestBuilder();\n this.groupsList = [];\n this.ref.detectChanges();\n this.fetchNextGroupList();\n }, 500);\n } catch (error: any) {\n if (this.onError) {\n this.onError(CometChatException(error))\n }\n }\n };\n groupStyle = () => {\n return {\n height: this.groupsStyle.height,\n width: this.groupsStyle.width,\n background: this.groupsStyle.background,\n border: this.groupsStyle.border,\n borderRadius: this.groupsStyle.borderRadius\n }\n }\n setThemeStyle() {\n this.setGroupsStyle()\n this.setListItemStyle()\n this.setAvatarStyle()\n this.setStatusStyle()\n this.statusColor.private = this.groupsStyle.privateGroupIconBackground ?? this.themeService.theme.palette.getSuccess();\n this.statusColor.password = this.groupsStyle.passwordGroupIconBackground ?? \"#F7A500\";\n this.listStyle = {\n titleTextFont: this.groupsStyle.titleTextFont,\n titleTextColor: this.groupsStyle.titleTextColor,\n emptyStateTextFont: this.groupsStyle.emptyStateTextFont,\n emptyStateTextColor: this.groupsStyle.emptyStateTextColor,\n errorStateTextFont: this.groupsStyle.errorStateTextFont,\n errorStateTextColor: this.groupsStyle.errorStateTextColor,\n loadingIconTint: this.groupsStyle.loadingIconTint,\n separatorColor: this.groupsStyle.separatorColor,\n searchIconTint: this.groupsStyle.searchIconTint,\n searchBorder: this.groupsStyle.searchBorder,\n searchBorderRadius: this.groupsStyle.searchBorderRadius,\n searchBackground: this.groupsStyle.searchBackground,\n searchPlaceholderTextFont: this.groupsStyle.searchPlaceholderTextFont,\n searchPlaceholderTextColor: this.groupsStyle.searchPlaceholderTextColor,\n searchTextFont: this.groupsStyle.searchTextFont,\n searchTextColor: this.groupsStyle.searchTextColor,\n }\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: this.themeService.theme.palette.getAccent100(),\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n hoverBackground: this.themeService.theme.palette.getAccent50()\n })\n this.listItemStyle = { ...defaultStyle, ...this.listItemStyle }\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"36px\",\n height: \"36px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n })\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle }\n }\n setStatusStyle() {\n let defaultStyle: BaseStyle = {\n height: \"12px\",\n width: \"12px\",\n border: \"none\",\n borderRadius: \"24px\",\n }\n this.statusIndicatorStyle = { ...defaultStyle, ...this.statusIndicatorStyle }\n }\n setGroupsStyle() {\n let defaultStyle: GroupsStyle = new GroupsStyle({\n subTitleTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n subTitleTextColor: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n separatorColor: this.themeService.theme.palette.getAccent400(),\n privateGroupIconBackground: this.themeService.theme.palette.getSuccess(),\n passwordGroupIconBackground: \"RGB(247, 165, 0)\",\n searchIconTint: this.themeService.theme.palette.getAccent600(),\n searchPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),\n searchBackground: this.themeService.theme.palette.getAccent100(),\n searchPlaceholderTextFont: fontHelper(this.themeService.theme.typography.text3),\n searchTextColor: this.themeService.theme.palette.getAccent600(),\n searchTextFont: fontHelper(this.themeService.theme.typography.text3)\n })\n this.groupsStyle = { ...defaultStyle, ...this.groupsStyle }\n this.checkboxStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"4px\",\n checkedBackgroundColor: this.themeService.theme.palette.getPrimary(),\n uncheckedBackgroundColor: this.themeService.theme.palette.getAccent400()\n }\n }\n subtitleStyle = () => {\n return {\n font: this.groupsStyle.subTitleTextFont,\n color: this.groupsStyle.subTitleTextColor\n }\n }\n}\n","<div class=\"cc-groups\" [ngStyle]=\"groupStyle()\">\n <div class=\"cc-menus\" *ngIf=\"menu\">\n\n <ng-container *ngTemplateOutlet=\"menu\">\n </ng-container>\n\n</div>\n <cometchat-list [listItemView]=\"listItemView ? listItemView : listItem\" [onScrolledToBottom]=\"onScrolledToBottom\" [onSearch]=\"onSearch\"\n [list]=\"groupsList\" [searchText]=\"searchKeyword\" [searchPlaceholderText]=\"searchPlaceholder\"\n [searchIconURL]=\"searchIconURL\" [hideSearch]=\"hideSearch\" [hideError]=\"hideError\" [title]=\"title\"\n [emptyStateText]=\"emptyStateText\" [loadingIconURL]=\"loadingIconURL\"\n [titleAlignment]=\"titleAlignment\" [loadingStateView]=\"loadingStateView\" [emptyStateView]=\"emptyStateView\"\n [errorStateText]=\"errorStateText\" [errorStateView]=\"errorStateView\" [listStyle]=\"listStyle\" [state]=\"state\">\n </cometchat-list>\n <ng-template #listItem let-group>\n <cometchat-list-item [title]=\"group?.name\" [avatarURL]=\"group?.icon\" [avatarName]=\"group?.name\"\n [listItemStyle]=\"listItemStyle\" [avatarStyle]=\"avatarStyle\" [statusIndicatorStyle]=\"statusIndicatorStyle\"\n [statusIndicatorColor]=\"getStatusIndicatorColor(group)\" [statusIndicatorIcon]=\"getGroupIcon(group)\" [hideSeparator]=\"hideSeparator\" (cc-listitem-clicked)=\"onClick(group)\" [isActive]=\"getActiveGroup(group)\">\n <div slot=\"subtitleView\" class=\"cc-groups__subtitle-view\" *ngIf=\"subtitleView;else groupSubtitle\">\n <ng-container *ngTemplateOutlet=\"subtitleView;context:{ $implicit: group }\">\n </ng-container>\n </div>\n <ng-template #groupSubtitle>\n <div slot=\"subtitleView\" [ngStyle]=\"subtitleStyle()\" class=\"cc-groups__subtitle-view\"> {{getMemberCount(group)}} </div>\n </ng-template>\n\n <div slot=\"menuView\" class=\"cc-groups__options\" *ngIf=\"options\">\n <cometchat-menu-list [data]=\"options(group)\">\n\n </cometchat-menu-list>\n </div>\n <div slot=\"tailView\" *ngIf=\"selectionMode != selectionmodeEnum.none\" class=\"cc-groups__tail-view\">\n <ng-container *ngTemplateOutlet=\"tailView\">\n </ng-container>\n </div>\n </cometchat-list-item>\n <ng-template #tailView>\n <div *ngIf=\"selectionMode == selectionmodeEnum.single\">\n <cometchat-radio-button (cc-radio-button-changed)=\"onGroupSelected(group,$event)\"></cometchat-radio-button>\n\n </div>\n <div *ngIf=\"selectionMode == selectionmodeEnum.multiple\">\n <cometchat-checkbox [checkboxStyle]=\"checkboxStyle\" (cc-checkbox-changed)=\"onGroupSelected(group,$event)\"></cometchat-checkbox>\n\n </div>\n </ng-template>\n </ng-template>\n</div>","import { Component, OnInit, Input, ChangeDetectorRef, ChangeDetectionStrategy, TemplateRef, ViewChild, AfterViewInit } from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { BaseStyle, GroupsConfiguration, UsersConfiguration, TabItemStyle, ContactsStyle } from '@cometchat/uikit-shared';\nimport '@cometchat/uikit-elements'\nimport { fontHelper, localize, CometChatTabItem, TabsVisibility, SelectionMode } from '@cometchat/uikit-resources'\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\n/**\n*\n* CometChatContactsComponent is used to render group members to add\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-contacts\",\n templateUrl: \"./cometchat-contacts.component.html\",\n styleUrls: [\"./cometchat-contacts.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatContactsComponent implements OnInit, AfterViewInit {\n @ViewChild(\"usersRef\") usersRef!: TemplateRef<any>;\n @ViewChild(\"groupsRef\") groupsRef!: TemplateRef<any>;\n @Input() title: string = localize(\"NEW_CHAT\");\n @Input() usersTabTitle: string = localize(\"USERS\");\n @Input() groupsTabTitle: string = localize(\"GROUPS\");\n @Input() usersConfiguration: UsersConfiguration = new UsersConfiguration({});\n @Input() groupsConfiguration: GroupsConfiguration = new GroupsConfiguration({});\n @Input() onSubmitButtonClick!: (users?: CometChat.User[], groups?: CometChat.Group[]) => void;\n @Input() closeIconURL: string = \"assets/close2x.svg\"\n @Input() contactsStyle: ContactsStyle = {};\n @Input() selectionMode: SelectionMode = SelectionMode.none;\n @Input() onClose!: () => void;\n @Input() onItemClick!: (user?: CometChat.User, group?: CometChat.Group) => void;\n @Input() tabVisibility: TabsVisibility = TabsVisibility.usersAndGroups\n @Input() selectionLimit: number = 5;\n @Input() tabs: CometChatTabItem[] = []\n @Input() hideSubmitButton: boolean = true;\n @Input() submitButtonText: string = \"Submit\";\n selection: typeof SelectionMode = SelectionMode;\n // public properties\n public usersRequestBuilder: CometChat.UsersRequestBuilder = new CometChat.UsersRequestBuilder().setLimit(30).hideBlockedUsers(true);\n public usersSearchRequestBuilder: CometChat.UsersRequestBuilder = new CometChat.UsersRequestBuilder().setLimit(30).hideBlockedUsers(true);\n public groupsRequestBuilder: CometChat.GroupsRequestBuilder = new CometChat.GroupsRequestBuilder().setLimit(30).joinedOnly(true);\n public groupsSearchRequestBuilder: CometChat.GroupsRequestBuilder = new CometChat.GroupsRequestBuilder().setLimit(30).joinedOnly(true);\n constructor(private ref: ChangeDetectorRef, private themeService: CometChatThemeService) {\n }\n public tabItemStyle: TabItemStyle = {};\n public usersList: CometChat.User[] = [];\n public groupsList: CometChat.Group[] = [];\n public submitButtonStyle: any = {\n height: \"100%\",\n width: \"100%\",\n background: \"rgb(51, 153, 255)\",\n padding: \"8px\",\n buttonTextColor: \"white\",\n buttonTextFont: \"\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n border: \"none\",\n borderRadius: \"8px\"\n }\n public closeButtonStyle: any;\n public wrapperStyle: any;\n public contactsPadding: any;\n public titleStyle: any = {};\n public errorStyle: any = {};\n public isLimitReached: boolean = false;\n public tabsStyle: BaseStyle = {};\n onGroupSelected = (group: CometChat.Group) => {\n var key = this.groupsList.findIndex((m: any) => m?.getGuid() === group.getGuid());\n if (key >= 0) {\n this.groupsList.splice(key, 1);\n } else {\n this.groupsList.push(group);\n }\n this.isLimitReached = this.groupsList.length + this.usersList.length > this.selectionLimit;\n this.ref.detectChanges();\n };\n onUserSelected = (user: CometChat.User) => {\n const key = this.usersList.findIndex((m: any) => m?.getUid() === user.getUid());\n if (key >= 0) {\n this.usersList.splice(key, 1);\n } else {\n this.usersList.push(user);\n }\n this.isLimitReached = this.groupsList.length + this.usersList.length > this.selectionLimit;\n this.ref.detectChanges();\n };\n ngOnInit(): void {\n\n this.setcontactsStyle();\n this.usersList = []\n this.groupsList = []\n }\n ngAfterViewInit() {\n if (this.tabs?.length <= 0) {\n if (this.tabVisibility == TabsVisibility.usersAndGroups) {\n this.tabs = [\n {\n childView: this.usersRef,\n title: this.usersTabTitle,\n id: \"users\",\n style: this.tabItemStyle\n },\n {\n childView: this.groupsRef,\n title: this.groupsTabTitle,\n id: \"groups\",\n style: this.tabItemStyle\n }]\n }\n else {\n if (this.tabVisibility == TabsVisibility.users) {\n this.tabs = [\n {\n childView: this.usersRef,\n title: this.usersTabTitle,\n id: \"users\",\n style: this.tabItemStyle\n }]\n }\n else {\n this.tabs = [\n {\n childView: this.groupsRef,\n title: this.groupsTabTitle,\n id: \"groups\",\n style: this.tabItemStyle\n }]\n }\n }\n this.ref.detectChanges()\n }\n }\n userClicked = (user: CometChat.User) => {\n if (this.onItemClick) {\n this.onItemClick(user)\n }\n }\n groupClicked = (group: CometChat.Group) => {\n if (this.onItemClick) {\n this.onItemClick(undefined, group)\n }\n }\n closeClicked() {\n if (this.onClose) {\n this.onClose()\n }\n }\n submitClicked() {\n if (this.onSubmitButtonClick) {\n this.onSubmitButtonClick(this.usersList, this.groupsList)\n }\n }\n setcontactsStyle() {\n let defaultStyle: ContactsStyle = new ContactsStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `none`,\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n errorStateTextColor: this.themeService.theme.palette.getError(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title2),\n width: \"100%\",\n height: \"100%\",\n borderRadius: \"none\",\n closeIconTint: this.themeService.theme.palette.getPrimary(),\n submitButtonBackground: this.themeService.theme.palette.getPrimary(),\n submitButtonTextColor: this.themeService.theme.palette.getAccent900(\"light\"),\n submitButtonTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n padding: \"0 100px\",\n tabBackground: \"transparent\",\n tabTitleTextFont: fontHelper(this.themeService.theme.typography.text2),\n tabTitleTextColor: this.themeService.theme.palette.getAccent(),\n activeTabTitleTextFont: fontHelper(this.themeService.theme.typography.text2),\n activeTabTitleTextColor: this.themeService.theme.palette.getAccent(\"light\"),\n activeTabBackground: this.themeService.theme.palette.getAccent900(\"light\"),\n activeTabBorder: \"none\",\n tabHeight: \"fit-content\",\n tabWidth: \"100%\"\n })\n this.contactsStyle = { ...defaultStyle, ...this.contactsStyle }\n this.submitButtonStyle.background = this.contactsStyle.submitButtonBackground;\n this.submitButtonStyle.buttonTextFont = this.contactsStyle.submitButtonTextFont;\n this.submitButtonStyle.buttonTextColor = this.contactsStyle.submitButtonTextColor;\n this.tabsStyle = {\n background: this.themeService.theme.palette.getAccent100(),\n borderRadius: \"8px\",\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`\n }\n this.tabItemStyle = new TabItemStyle({\n height: this.contactsStyle.tabHeight,\n width: this.contactsStyle.tabWidth,\n background: this.contactsStyle.tabBackground,\n activeBackground: this.contactsStyle.activeTabBackground,\n titleTextColor: this.contactsStyle.tabTitleTextColor,\n titleTextFont: this.contactsStyle.tabTitleTextFont,\n activeIconTint: this.themeService.theme.palette.getPrimary(),\n activeTitleTextColor: this.contactsStyle.activeTabTitleTextColor,\n activeTitleTextFont: this.contactsStyle.activeTabTitleTextFont,\n borderRadius: \"8px\"\n })\n this.closeButtonStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.contactsStyle.closeIconTint || this.themeService.theme.palette.getPrimary()\n }\n this.wrapperStyle = {\n height: this.contactsStyle.height,\n width: this.contactsStyle.width,\n background: this.contactsStyle.background,\n border: this.contactsStyle.border,\n borderRadius: this.contactsStyle.borderRadius\n }\n this.contactsPadding = {\n padding: this.contactsStyle.padding\n }\n this.titleStyle = {\n textFont: this.contactsStyle.titleTextFont,\n textColor: this.contactsStyle.titleTextColor\n }\n this.errorStyle = {\n textFont: this.contactsStyle.errorStateTextFont,\n textColor: this.contactsStyle.errorStateTextColor\n }\n }\n}\n","<div class=\"cc-contacts\" [ngStyle]=\"wrapperStyle\">\n <div class=\"cc-contacts-title\">\n <cometchat-label [text]=\"title\" [labelStyle]=\"titleStyle\"></cometchat-label>\n </div>\n <div class=\"cc-contacts-error\" *ngIf=\"isLimitReached\">\n <cometchat-label [text]=\"'max limit has reached'\"\n [labelStyle]=\"errorStyle\"></cometchat-label>\n </div>\n <div class=\"cc-contacts__wrapper\" [ngStyle]=\"contactsPadding\">\n <div class=\"cc-tabs\">\n <cometchat-tabs [tabs]=\"tabs\" [tabsStyle]=\"tabsStyle\" [keepAlive]=\"true\">\n <ng-template #usersRef>\n <cometchat-users [onItemClick]=\"usersConfiguration.onItemClick || userClicked\"\n [usersRequestBuilder]=\"usersConfiguration.usersRequestBuilder || usersRequestBuilder\"\n [hideSearch]=\"usersConfiguration.hideSearch\"\n [StatusIndicatorStyle]=\"usersConfiguration.statusIndicatorStyle\"\n [avatarStyle]=\"usersConfiguration.avatarStyle\"\n [searchIconURL]=\"usersConfiguration.searchIconURL\"\n [searchRequestBuilder]=\"usersConfiguration.searchRequestBuilder || usersSearchRequestBuilder\"\n [usersStyle]=\"usersConfiguration.usersStyle\"\n [subtitleView]=\"usersConfiguration.subtitleView\"\n [options]=\"usersConfiguration.options\"\n [emptyStateView]=\"usersConfiguration.emptyStateView\"\n [onSelect]=\"usersConfiguration.onSelect || onUserSelected\"\n [loadingIconURL]=\"usersConfiguration.loadingIconURL\"\n [errorStateView]=\"usersConfiguration.errorStateView\"\n [loadingStateView]=\"usersConfiguration.loadingStateView\"\n [listItemView]=\"usersConfiguration.listItemView\"\n [menu]=\"usersConfiguration.menu\"\n [hideSeparator]=\"usersConfiguration.hideSeparator\"\n [hideError]=\"usersConfiguration.hideError\"\n [selectionMode]=\"selectionMode\" [title]=\"''\"\n [disableUsersPresence]=\"usersConfiguration.disableUsersPresence\"\n ></cometchat-users>\n </ng-template>\n <ng-template #groupsRef>\n <cometchat-groups [onItemClick]=\"groupsConfiguration.onItemClick || groupClicked\"\n [groupsRequestBuilder]=\"groupsConfiguration.groupsRequestBuilder || groupsRequestBuilder\"\n [hideSearch]=\"groupsConfiguration.hideSearch\"\n [StatusIndicatorStyle]=\"groupsConfiguration.statusIndicatorStyle\"\n [avatarStyle]=\"groupsConfiguration.avatarStyle\"\n [searchIconURL]=\"groupsConfiguration.searchIconURL\"\n [searchRequestBuilder]=\"groupsConfiguration.searchRequestBuilder || groupsSearchRequestBuilder\"\n [groupsStyle]=\"groupsConfiguration.groupsStyle\"\n [subtitleView]=\"groupsConfiguration.subtitleView\"\n [options]=\"groupsConfiguration.options\"\n [emptyStateView]=\"groupsConfiguration.emptyStateView\"\n [onSelect]=\"groupsConfiguration.onSelect || onGroupSelected\"\n [loadingIconURL]=\"groupsConfiguration.loadingIconURL\"\n [errorStateView]=\"groupsConfiguration.errorStateView\"\n [loadingStateView]=\"groupsConfiguration.loadingStateView\"\n [listItemView]=\"groupsConfiguration.listItemView\"\n [menu]=\"groupsConfiguration.menu\"\n [hideSeparator]=\"groupsConfiguration.hideSeparator\"\n [hideError]=\"groupsConfiguration.hideError\"\n [selectionMode]=\"selectionMode\" [title]=\"''\"></cometchat-groups>\n </ng-template>\n </cometchat-tabs>\n </div>\n <div class=\"cc-contacts__buttons\" *ngIf=\"selectionMode != selection.none && !hideSubmitButton\">\n <cometchat-button [disabled]=\"isLimitReached\"\n class=\"cc-contacts__buttons--add\" [text]=\"submitButtonText\"\n [buttonStyle]=\"submitButtonStyle\"\n (click)=\"submitClicked()\"></cometchat-button>\n </div>\n </div>\n <div class=\"cc-close-button\">\n <cometchat-button [iconURL]=\"closeIconURL\" [buttonStyle]=\"closeButtonStyle\"\n (cc-button-clicked)=\"closeClicked()\">\n </cometchat-button>\n </div>\n</div>\n","import { Component, OnInit, ViewChild, Input, ChangeDetectionStrategy, OnChanges, SimpleChanges, ChangeDetectorRef, ElementRef } from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { WithMessagesStyle, MessagesConfiguration, ConversationsConfiguration, ContactsConfiguration } from '@cometchat/uikit-shared'\nimport { CometChatTheme, fontHelper, localize, CometChatOption, CometChatGroupEvents, CometChatUIKitConstants, IGroupLeft, IGroupMemberAdded, IGroupMemberKickedBanned, IGroupMemberScopeChanged, IMessages, CometChatUserEvents, CometChatMessageEvents, CometChatConversationEvents, IGroupMemberJoined, IOwnershipChanged, CometChatUIEvents } from '@cometchat/uikit-resources'\n\nimport '@cometchat/uikit-elements'\nimport { Subscription } from \"rxjs\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\n/**\n*\n* CometChatConversationsWithMessagesComponent is a wrapper component for CometChatMessagesComponent and CometChatConversations component to show chats and messages in one screen\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-conversations-with-messages\",\n templateUrl: \"./cometchat-conversations-with-messages.component.html\",\n styleUrls: [\"./cometchat-conversations-with-messages.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatConversationsWithMessagesComponent implements OnInit, OnChanges {\n // taking reference of conversationComponent and MessagesComponent\n @Input() user!: CometChat.User | null;\n @Input() group!: CometChat.Group | null;\n @Input() isMobileView: boolean = false;\n @Input() messageText: string = localize(\"NO_CHATS_SELECTED\");\n @Input() conversationsWithMessagesStyle: WithMessagesStyle = {};\n @Input() messagesConfiguration: MessagesConfiguration = new MessagesConfiguration({});\n @Input() conversationConfiguration: ConversationsConfiguration = new ConversationsConfiguration({});\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n @Input() startNewConversationIconURL: string = \"assets/new-chat.svg\"\n @Input() hideStartNewConversation: boolean = false;\n @Input() StartConversationConfiguration: ContactsConfiguration = new ContactsConfiguration({})\n theme: CometChatTheme = new CometChatTheme({});\n /**\n * Properties for internal use\n */\n public showStartConversation: boolean = false;\n public loggedInUser!: CometChat.User | null;\n public activeConversation!: CometChat.Conversation | null;\n labelStyle: any = {\n background: \"transparent\",\n textFont: \"700 22px Inter\",\n textColor: \"rgba(20, 20, 20, 0.33)\"\n }\n\n public hideSearch: boolean = true;\n startConversationButtonStyle: any = {\n\n }\n /**\n * Events\n */\n ccGroupMemberAdded!: Subscription;\n ccGroupLeft!: Subscription;\n ccOpenChat!: Subscription;\n ccGroupMemberJoined!: Subscription;\n ccGroupMemberKicked!: Subscription;\n ccGroupMemberBanned!: Subscription;\n ccOwnershipChanged!: Subscription;\n ccGroupDeleted!: Subscription;\n sideBarStyle: any = {\n\n }\n public groupListenerId: string = \"withmessages_group_\" + new Date().getTime();\n\n public ccConversationDeleted!: Subscription;\n\n constructor(private elementRef: ElementRef, private ref: ChangeDetectorRef, private themeService: CometChatThemeService) {\n }\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes[\"isMobileView\"]) {\n if (this.isMobileView) {\n this.messagesConfiguration.messageHeaderConfiguration.hideBackButton = false;\n if (!this.messagesConfiguration.detailsConfiguration.detailsStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.detailsStyle.padding = \"0 8px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding = \"0 8px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = \"0 8px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = \"0 8px\"\n }\n this.messagesConfiguration.messageHeaderConfiguration = { ...this.messagesConfiguration.messageHeaderConfiguration }\n this.StartConversationConfiguration.contactsStyle.padding = \"0 8px\";\n this.StartConversationConfiguration = { ...this.StartConversationConfiguration }\n\n this.messagesConfiguration = { ...this.messagesConfiguration }\n }\n else if (!this.isMobileView) {\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.height = \"500px\"\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.width = \"500px\"\n this.messagesConfiguration.messageHeaderConfiguration.hideBackButton = true;\n if (!this.messagesConfiguration.detailsConfiguration.detailsStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.detailsStyle.padding = \"0 100px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding = \"0 100px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = \"0 100px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = \"0 100px\"\n }\n this.StartConversationConfiguration.contactsStyle.padding = \"0 100px\";\n this.StartConversationConfiguration = { ...this.StartConversationConfiguration }\n this.messagesConfiguration.messageHeaderConfiguration = { ...this.messagesConfiguration.messageHeaderConfiguration }\n this.messagesConfiguration = { ...this.messagesConfiguration }\n\n }\n setTimeout(() => {\n this.updateBackdropHeight()\n }, 100);\n }\n if ((changes[\"user\"] && changes[\"user\"]?.currentValue) || (changes[\"group\"] && changes[\"group\"]?.currentValue)) {\n this.setActiveChat();\n }\n }\n triggerStartConversation() {\n this.showStartConversation = true;\n }\n removeChatOnGroupAction(leftUser: CometChat.User, message: CometChat.Action) {\n const isSameUser = this.loggedInUser?.getUid() === leftUser.getUid();\n const actionForGroup = message.getActionFor() instanceof CometChat.Group;\n\n if (isSameUser && this.activeConversation && this.activeConversation.getConversationWith() instanceof CometChat.Group) {\n let group = this.activeConversation.getConversationWith() as CometChat.Group;\n\n if (actionForGroup) {\n let actionOnGroup = message.getActionFor() as CometChat.Group;\n\n if (actionOnGroup.getGuid() === group.getGuid()) {\n this.activeConversation = null;\n this.user = null;\n this.group = null;\n this.ref.detectChanges();\n }\n }\n }\n }\n attachGroupListeners() {\n CometChat.addGroupListener(\n this.groupListenerId,\n new CometChat.GroupListener({\n onGroupMemberKicked: (\n message: any,\n kickedUser: any,\n kickedBy: any,\n kickedFrom: any\n ) => {\n this.removeChatOnGroupAction(kickedUser, message)\n\n },\n onGroupMemberBanned: (\n message: any,\n bannedUser: any,\n bannedBy: any,\n bannedFrom: any\n ) => {\n this.removeChatOnGroupAction(bannedUser, message)\n\n },\n })\n );\n }\n onBack = () => {\n this.user = null\n this.group = null\n this.activeConversation = null\n }\n setWithMessagesStyle() {\n let defaultStyle: WithMessagesStyle = new WithMessagesStyle({\n width: \"100%\",\n height: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: \"none\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n messageTextColor: this.themeService.theme.palette.getAccent600(),\n messageTextFont: fontHelper(this.themeService.theme.typography.title1),\n })\n this.conversationsWithMessagesStyle = {\n ...defaultStyle,\n ...this.conversationsWithMessagesStyle\n }\n this.labelStyle.textFont = this.conversationsWithMessagesStyle.messageTextFont\n this.labelStyle.textColor = this.conversationsWithMessagesStyle.messageTextColor\n this.messagesConfiguration.messagesStyle.border = this.messagesConfiguration.messagesStyle.border ?? \"none\"\n this.conversationConfiguration.conversationsStyle.border = this.conversationConfiguration.conversationsStyle.border ?? \"none\"\n if (!this.conversationConfiguration?.conversationsStyle?.border || this.conversationConfiguration?.conversationsStyle?.border == \"none\") {\n this.sideBarStyle = { borderRight: this.conversationsWithMessagesStyle.border }\n\n }\n }\n onContactClicked = (user?: CometChat.User, group?: CometChat.Group) => {\n this.showStartConversation = false;\n if (user) {\n this.group = null\n this.user = user;\n this.ref.detectChanges();\n }\n if (group) {\n this.user = null\n this.group = group;\n this.ref.detectChanges();\n }\n }\n public onItemClick: ((conversation: CometChat.Conversation) => void) = (conversation: CometChat.Conversation) => {\n this.activeConversation = conversation\n this.showStartConversation = false;\n if (conversation.getConversationType() && conversation.getConversationType() == CometChatUIKitConstants.MessageReceiverType.user) {\n this.group = null\n this.user = conversation.getConversationWith() as CometChat.User;\n this.ref.detectChanges()\n }\n else if (conversation.getConversationType() && conversation.getConversationType() == CometChatUIKitConstants.MessageReceiverType.group) {\n this.user = null\n this.group = conversation.getConversationWith() as CometChat.Group\n this.ref.detectChanges()\n }\n };\n ngAfterViewInit() {\n this.updateBackdropHeight()\n }\n updateBackdropHeight() {\n let divHeight = this.elementRef.nativeElement.offsetHeight;\n let divWidth = this.elementRef.nativeElement.offsetWidth;\n if (divHeight === 0 || divWidth === 0) {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n divHeight = rect.height;\n divWidth = rect.width;\n }\n let backdropStyle = {\n height: divHeight + \"px\",\n width: divWidth + \"px\",\n background: \"rgba(0, 0, 0, 0.5)\",\n position: \"fixed\"\n }\n if (this.isMobileView) {\n this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.height = (divHeight - 30) + \"px\";\n this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.width = divWidth + \"px\";\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.height = divHeight + \"px\";\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.width = divWidth + \"px\";\n }\n else {\n this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.height = \"650px\";\n this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.width = \"360px\";\n }\n this.messagesConfiguration.messageListConfiguration.backdropStyle = this.messagesConfiguration.messageListConfiguration.backdropStyle || backdropStyle;\n this.conversationConfiguration.backdropStyle = this.conversationConfiguration.backdropStyle || backdropStyle;\n this.messagesConfiguration.detailsConfiguration.backdropStyle = this.messagesConfiguration.detailsConfiguration.backdropStyle || backdropStyle;\n this.messagesConfiguration.messageComposerConfiguration.backdropStyle = this.messagesConfiguration.messageComposerConfiguration.backdropStyle || backdropStyle;\n this.messagesConfiguration.detailsConfiguration.backdropStyle =this.messagesConfiguration.detailsConfiguration.backdropStyle || backdropStyle;\n this.messagesConfiguration.detailsConfiguration.groupMembersConfiguration.backdropStyle = this.messagesConfiguration.detailsConfiguration.groupMembersConfiguration.backdropStyle || backdropStyle;\n\n this.ref.detectChanges()\n }\n setActiveChat() {\n let type: string = this.user ? CometChatUIKitConstants.MessageReceiverType.user : CometChatUIKitConstants.MessageReceiverType.group\n this.activeConversation = null\n let conversationWith: string = this.user?.getUid()! || this.group?.getGuid()!\n CometChat.getConversation(conversationWith, type).then((conversation: CometChat.Conversation) => {\n this.activeConversation = conversation\n this.ref.detectChanges()\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n }\n closeStartConversation = () => {\n if (this.StartConversationConfiguration.onClose) {\n this.StartConversationConfiguration.onClose()\n }\n this.showStartConversation = false;\n }\n ngOnInit() {\n this.StartConversationConfiguration.usersConfiguration.usersStyle.border = \"none\"\n this.StartConversationConfiguration.groupsConfiguration.groupsStyle.border = \"none\"\n\n this.startConversationButtonStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: '0',\n background: \"transparent\",\n buttonIconTint: this.themeService.theme.palette.getPrimary()\n }\n this.StartConversationConfiguration = { ...this.StartConversationConfiguration }\n this.setWithMessagesStyle()\n if (!this.messagesConfiguration.messageHeaderConfiguration.onBack) {\n this.messagesConfiguration.messageHeaderConfiguration.onBack = this.onBack\n }\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n this.attachGroupListeners();\n this.subscribeToEvents();\n\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n });\n\n }\n ngOnDestroy() {\n this.unsubscribeToEvents();\n CometChat.removeGroupListener(this.groupListenerId);\n }\n // subscribe to global events\n subscribeToEvents() {\n this.ccConversationDeleted = CometChatConversationEvents.ccConversationDeleted.subscribe((conversation: CometChat.Conversation) => {\n this.removeActiveChatList(conversation) //to make m messages section empty after deleting conversation from conversationlist\n })\n this.ccGroupDeleted = CometChatGroupEvents.ccGroupDeleted.subscribe((group: CometChat.Group) => {\n if (this.group && group.getGuid() == this.group.getGuid()) {\n this.group = null;\n this.activeConversation = null;\n this.ref.detectChanges()\n }\n })\n this.ccGroupMemberAdded = CometChatGroupEvents.ccGroupMemberAdded.subscribe((item: IGroupMemberAdded) => {\n if (this.group && this.group.getGuid() == item?.userAddedIn!.getGuid()) {\n this.group = item?.userAddedIn;\n this.ref.detectChanges()\n }\n })\n this.ccGroupMemberBanned = CometChatGroupEvents.ccGroupMemberBanned.subscribe((item: IGroupMemberKickedBanned) => {\n if (this.group && this.group.getGuid() == item?.kickedFrom!.getGuid()) {\n this.group = item?.kickedFrom;\n this.ref.detectChanges()\n }\n })\n this.ccGroupMemberJoined = CometChatGroupEvents.ccGroupMemberJoined.subscribe((item: IGroupMemberJoined) => {\n if (this.group && this.group.getGuid() == item?.joinedGroup!.getGuid()) {\n this.group = item?.joinedGroup;\n this.ref.detectChanges()\n }\n })\n this.ccGroupMemberKicked = CometChatGroupEvents.ccGroupMemberKicked.subscribe((item: IGroupMemberKickedBanned) => {\n if (this.group && this.group.getGuid() == item?.kickedFrom!.getGuid()) {\n this.group = item?.kickedFrom;\n this.ref.detectChanges()\n }\n })\n this.ccOwnershipChanged = CometChatGroupEvents.ccOwnershipChanged.subscribe((item: IOwnershipChanged) => {\n if (this.group && this.group.getGuid() == item?.group!.getGuid()) {\n this.group = item?.group;\n this.activeConversation?.setConversationWith(this.group)\n this.ref.detectChanges();\n }\n })\n this.ccGroupLeft = CometChatGroupEvents.ccGroupLeft.subscribe((item: IGroupLeft) => {\n if (this.group && this.group.getGuid() == item?.leftGroup!.getGuid() && this.loggedInUser?.getUid() == item?.userLeft?.getUid()) {\n this.group = null;\n this.activeConversation = null;\n this.ref.detectChanges()\n }\n })\n // open chat and mark as active conversation\n this.ccOpenChat = CometChatUIEvents.ccOpenChat.subscribe((item) => {\n this.user = item.user ? item.user : null;\n this.group = item.group ? item.group : null;\n this.setActiveChat()\n })\n }\n // unsubscribe to subscribed events.\n unsubscribeToEvents() {\n this.ccConversationDeleted?.unsubscribe();\n this.ccGroupDeleted?.unsubscribe();\n this.ccGroupMemberAdded?.unsubscribe();\n this.ccGroupMemberBanned?.unsubscribe();\n this.ccGroupMemberJoined?.unsubscribe();\n this.ccGroupMemberKicked?.unsubscribe();\n this.ccOwnershipChanged?.unsubscribe();\n this.ccGroupLeft?.unsubscribe();\n this.ccOpenChat?.unsubscribe();\n }\n /**\n * remove active chat screen after deleting the conversation.\n * @param {CometChat.Conversation} conversation\n */\n removeActiveChatList(conversation: CometChat.Conversation) {\n const conversationType = conversation.getConversationType();\n const conversationWith = conversation.getConversationWith();\n if (conversationType === CometChatUIKitConstants.MessageReceiverType.user && this.user && this.user.getUid() === (conversationWith as CometChat.User).getUid()) {\n this.user = null;\n this.ref.detectChanges();\n } else if (conversationType === CometChatUIKitConstants.MessageReceiverType.group && this.group && this.group.getGuid() === (conversationWith as CometChat.Group).getGuid()) {\n this.group = null;\n this.ref.detectChanges();\n } else {\n return;\n }\n }\n emptyMessageStyle = () => {\n return {\n background: this.conversationsWithMessagesStyle.background || this.themeService.theme.palette.getBackground(),\n height: this.conversationsWithMessagesStyle.height,\n width: `calc(${this.conversationsWithMessagesStyle.width} - 280px)`,\n border: \"none\",\n borderRadius: this.conversationsWithMessagesStyle.borderRadius,\n }\n }\n chatsWrapperStyles = () => {\n return {\n height: this.conversationsWithMessagesStyle.height,\n width: this.conversationsWithMessagesStyle.width,\n border: this.conversationsWithMessagesStyle.border,\n borderRadius: this.conversationsWithMessagesStyle.borderRadius,\n background: this.conversationsWithMessagesStyle.background || this.themeService.theme.palette.getBackground(),\n position: 'relative'\n }\n }\n contactsWrapperStyles = () => {\n return {\n background: this.StartConversationConfiguration.contactsStyle.background || this.themeService.theme.palette.getBackground(),\n }\n }\n}\n","<div class=\"cc-with-messages__wrapper\" [ngStyle]=\"chatsWrapperStyles()\">\n <div class=\"cc-with-messages__sidebar\" [ngClass]=\"{mobile : isMobileView}\"\n [ngStyle]=\"sideBarStyle\">\n <cometchat-conversations #conversationRef\n [activeConversation]=\"activeConversation\"\n [onItemClick]=\"conversationConfiguration.onItemClick || onItemClick\"\n [conversationsStyle]=\"conversationConfiguration.conversationsStyle\"\n [statusIndicatorStyle]=\"conversationConfiguration?.statusIndicatorStyle\"\n [avatarStyle]=\"conversationConfiguration?.avatarStyle!\"\n [subtitleView]=\"conversationConfiguration.subtitleView\"\n [options]=\"conversationConfiguration.options\"\n [disableUsersPresence]=\"conversationConfiguration.disableUsersPresence\"\n [disableReceipt]=\"conversationConfiguration.disableReceipt\"\n [hideReceipt]=\"conversationConfiguration.hideReceipt\"\n [disableTyping]=\"conversationConfiguration.disableTyping\"\n [deliveredIcon]=\"conversationConfiguration.deliveredIcon\"\n [readIcon]=\"conversationConfiguration.readIcon\"\n [waitIcon]=\"conversationConfiguration.waitIcon\"\n [errorIcon]=\"conversationConfiguration.errorIcon\"\n [datePattern]=\"conversationConfiguration.datePattern\"\n [receiptStyle]=\"conversationConfiguration.receiptStyle\"\n [sentIcon]=\"conversationConfiguration.sentIcon\"\n [privateGroupIcon]=\"conversationConfiguration.privateGroupIcon\"\n [protectedGroupIcon]=\"conversationConfiguration.protectedGroupIcon\"\n [passwordGroupIcon]=\"conversationConfiguration.passwordGroupIcon\"\n [customSoundForMessages]=\"conversationConfiguration.customSoundForMessages\"\n [conversationsRequestBuilder]=\"conversationConfiguration.conversationsRequestBuilder\"\n [emptyStateView]=\"conversationConfiguration.emptyStateView\"\n [onSelect]=\"conversationConfiguration.onSelect\"\n [loadingIconURL]=\"conversationConfiguration.loadingIconURL\"\n [errorStateView]=\"conversationConfiguration.errorStateView\"\n [loadingStateView]=\"conversationConfiguration.loadingStateView\"\n [titleAlignment]=\"conversationConfiguration.titleAlignment\"\n [listItemView]=\"conversationConfiguration.listItemView\"\n [menu]=\"conversationConfiguration.menu || startConversationButton\"\n [hideSeparator]=\"conversationConfiguration.hideSeparator\"\n [hideError]=\"conversationConfiguration.hideError\"\n [selectionMode]=\"conversationConfiguration.selectionMode\"\n [disableSoundForMessages]=\"conversationConfiguration.disableSoundForMessages\"\n [deleteConversationDialogStyle]=\"conversationConfiguration.deleteConversationDialogStyle\"\n [badgeStyle]=\"conversationConfiguration.badgeStyle\"\n [dateStyle]=\"conversationConfiguration.dateStyle\"\n [listItemStyle]=\"conversationConfiguration.listItemStyle\"\n [backdropStyle]=\"conversationConfiguration.backdropStyle\"\n [textFormatters]=\"conversationConfiguration?.textFormatters\"\n [disableMentions]=\"conversationConfiguration.disableMentions\"></cometchat-conversations>\n </div>\n <div class=\"cc-with-messages__main\" [ngClass]=\"{mobile : isMobileView}\"\n *ngIf=\"!showStartConversation && (user || group)\">\n <!--Message List Screen-->\n <cometchat-messages #messagesRef [user]=\"user!\" [group]=\"group!\"\n [messageHeaderConfiguration]=\"messagesConfiguration.messageHeaderConfiguration\"\n [messageListConfiguration]=\"messagesConfiguration.messageListConfiguration\"\n [messageComposerConfiguration]=\"messagesConfiguration.messageComposerConfiguration\"\n [messagesStyle]=\"messagesConfiguration.messagesStyle\"\n [customSoundForIncomingMessages]=\"messagesConfiguration.customSoundForIncomingMessages\"\n [customSoundForOutgoingMessages]=\"messagesConfiguration.customSoundForOutgoingMessages\"\n [detailsConfiguration]=\"messagesConfiguration.detailsConfiguration\"\n [disableSoundForMessages]=\"messagesConfiguration.disableSoundForMessages\"\n [disableTyping]=\"messagesConfiguration.disableTyping\"\n [hideMessageComposer]=\"messagesConfiguration.hideMessageComposer\"\n [hideMessageHeader]=\"messagesConfiguration.hideMessageHeader\"\n [messageComposerView]=\"messagesConfiguration.messageComposerView\"\n [messageHeaderView]=\"messagesConfiguration.messageHeaderView\"\n [messageListView]=\"messagesConfiguration.messageListView\"\n [hideDetails]=\"messagesConfiguration.hideDetails!\"\n [threadedMessageConfiguration]=\"messagesConfiguration.threadedMessageConfiguration\">\n </cometchat-messages>\n <!--Message List Screen ENDS-->\n </div>\n <div class=\"cc-with-messages__start-conversation\"\n [ngStyle]=\"contactsWrapperStyles()\"\n [ngClass]=\"{mobile : isMobileView}\" *ngIf=\"showStartConversation\">\n\n <cometchat-contacts [onItemClick]=\"onContactClicked\"\n [usersConfiguration]=\"StartConversationConfiguration?.usersConfiguration!\"\n [groupsConfiguration]=\"StartConversationConfiguration?.groupsConfiguration!\"\n [closeIconURL]=\"StartConversationConfiguration?.closeIconURL!\"\n [contactsStyle]=\"StartConversationConfiguration?.contactsStyle!\"\n [selectionMode]=\"StartConversationConfiguration?.selectionMode!\"\n [onClose]=\"closeStartConversation\"\n [tabVisibility]=\"StartConversationConfiguration?.tabVisibility!\"\n [selectionLimit]=\"StartConversationConfiguration?.selectionLimit!\"\n [tabs]=\"StartConversationConfiguration?.tabs!\"\n [onSubmitButtonClick]=\"StartConversationConfiguration?.onSubmitButtonClick!\"\n [hideSubmitButton]=\"StartConversationConfiguration?.hideSubmitButton!\"></cometchat-contacts>\n </div>\n <div class=\"cc-decorator__message--empty\"\n *ngIf=\"!user && !group && !showStartConversation\"\n [ngStyle]=\"emptyMessageStyle()\">\n <cometchat-label [text]=\"messageText\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n </div>\n <ng-template #startConversationButton>\n <cometchat-button *ngIf=\"!hideStartNewConversation\"\n [iconURL]=\"startNewConversationIconURL\"\n [buttonStyle]=\"startConversationButtonStyle\"\n (cc-button-clicked)=\"triggerStartConversation()\"></cometchat-button>\n\n </ng-template>\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatMessageBubbleComponent } from \"./cometchat-message-bubble/cometchat-message-bubble.component\";\n@NgModule({\n declarations: [CometChatMessageBubbleComponent],\n imports: [\n CommonModule,\n ],\n exports: [CometChatMessageBubbleComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatMessageBubble {}","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CometChatTabsComponent } from './cometchat-tabs/cometchat-tabs.component';\n\n@NgModule({\n declarations: [CometChatTabsComponent],\n imports: [\n CommonModule,\n ],\n exports: [CometChatTabsComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatTabs { }\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatGroupsComponent } from \"./cometchat-groups/cometchat-groups.component\";\nimport { CometChatList } from \"../CometChatList/cometchat-list.module\";\nimport \"@cometchat/uikit-elements\";\n@NgModule({\n declarations: [CometChatGroupsComponent],\n imports: [\n CommonModule,\nCometChatList,\n ],\n exports: [CometChatGroupsComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatGroups {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatContactsComponent } from \"./cometchat-contacts/cometchat-contacts.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CometChatUsers } from \"../CometChatUsers/cometchat-users.module\";\nimport { CometChatTabs } from \"../Shared/Views/CometChatTabs/cometchat-tabs.module\";\nimport { CometChatGroups } from \"../CometChatGroups/cometchat-groups.module\";\n@NgModule({\n declarations: [CometChatContactsComponent],\n imports: [CommonModule,FormsModule,CometChatUsers,CometChatTabs,CometChatGroups],\n exports: [CometChatContactsComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatContacts {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatMessageInformationComponent } from \"./cometchat-message-information/cometchat-message-information.component\";\n\nimport '@cometchat/uikit-elements'\nimport { CometChatList } from \"../CometChatList/cometchat-list.module\";\n@NgModule({\n declarations: [CometChatMessageInformationComponent],\n imports: [\n CommonModule,\n CometChatList\n\n ],\n exports: [CometChatMessageInformationComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatMessageInformation {}","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatMessageListComponent } from \"./cometchat-message-list/cometchat-message-list.component\";\nimport { DatePipe } from \"@angular/common\";\n\nimport \"@cometchat/uikit-elements\";\nimport { CometChatMessageBubble } from \"../CometChatMessageBubble/cometchat-message-bubble.module\";\nimport { CometChatOngoingCall } from \"../Calls/CometChatOngoingCall/cometchat-ongoing-call.module\";\nimport { CometChatContacts } from \"../CometChatContacts/cometchat-contacts.module\";\nimport { CometChatMessageInformation } from \"../CometChatMessageInformation/cometchat-message-information.module\";\n@NgModule({\n declarations: [CometChatMessageListComponent],\n imports: [\n CommonModule,\n CometChatMessageBubble,\n CometChatOngoingCall,\n CometChatContacts,\n CometChatMessageInformation,\n ],\n exports: [CometChatMessageListComponent],\n providers: [DatePipe],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CometChatMessageList {}\n","import { CometChatMessageBubble } from \"./../../../CometChatMessageBubble/cometchat-message-bubble.module\";\nimport { CometChatList } from \"./../../../CometChatList/cometchat-list.module\";\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { AIAssistBotMessageListComponent } from \"./aiassist-bot-message-list/aiassist-bot-message-list.component\";\nimport { FormsModule } from \"@angular/forms\";\n\n@NgModule({\n declarations: [AIAssistBotMessageListComponent],\n imports: [CommonModule, CometChatList, CometChatMessageBubble, FormsModule],\n exports: [AIAssistBotMessageListComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class AIAssistBotMessageList {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatGroupMembersComponent } from \"./cometchat-group-members/cometchat-group-members.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CometChatMessageHeader } from \"../CometChatMessageHeader/cometchat-message-header.module\";\nimport { CometChatUsers } from \"../CometChatUsers/cometchat-users.module\";\nimport '@cometchat/uikit-elements'\nimport { CometChatList } from \"../CometChatList/cometchat-list.module\";\n@NgModule({\n declarations: [CometChatGroupMembersComponent],\n imports: [CommonModule,FormsModule,CometChatMessageHeader,CometChatUsers,CometChatList],\n exports: [CometChatGroupMembersComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatGroupMembers {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport \"@cometchat/uikit-elements\";\nimport { CometChatUsers } from \"../CometChatUsers/cometchat-users.module\";\nimport { CometChatUserMemberWrapperComponent } from \"./cometchat-user-member-wrapper.component\"\nimport { CometChatGroupMembers } from \"../CometChatGroupMembers/cometchat-group-members.module\";\n@NgModule({\n declarations: [CometChatUserMemberWrapperComponent],\n imports: [CommonModule, CometChatUsers, CometChatGroupMembers],\n exports: [CometChatUserMemberWrapperComponent],\n})\nexport class CometChatUserMemberWrapper {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatMessageComposerComponent } from \"./cometchat-message-composer/cometchat-message-composer.component\";\nimport \"@cometchat/uikit-elements\";\nimport { AIAssistBotMessageList } from \"../Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module\";\nimport { CometChatUserMemberWrapper } from \"../CometChatUserMemberWrapper/cometchat-user-member-wrapper.module\";\n@NgModule({\n declarations: [CometChatMessageComposerComponent],\n imports: [CommonModule, AIAssistBotMessageList, CometChatUserMemberWrapper],\n exports: [CometChatMessageComposerComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CometChatMessageComposer {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatThreadedMessagesComponent } from \"./cometchat-threaded-messages/cometchat-threaded-messages.component\";\nimport { CometChatMessageHeader } from \"../CometChatMessageHeader/cometchat-message-header.module\";\nimport { CometChatMessageList } from \"../CometChatMessageList/cometchat-message-list.module\";\nimport { CometChatMessageComposer } from \"../CometChatMessageComposer/cometchat-message-composer.module\";\nimport '@cometchat/uikit-elements'\n\n@NgModule({\n declarations: [CometChatThreadedMessagesComponent],\n imports: [\n CommonModule,\n CometChatMessageHeader,\n CometChatMessageList,\n CometChatMessageComposer,\n ],\n exports: [CometChatThreadedMessagesComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatThreadedMessages {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatTransferOwnershipComponent } from \"./cometchat-transfer-ownership/cometchat-transfer-ownership.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CometChatGroupMembers } from \"../CometChatGroupMembers/cometchat-group-members.module\";\n@NgModule({\n declarations: [CometChatTransferOwnershipComponent],\n imports: [CommonModule,FormsModule,CometChatGroupMembers],\n exports: [CometChatTransferOwnershipComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatTransferOwnership {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatDetailsComponent } from \"./cometchat-details/cometchat-details.component\";\nimport { CometChatAddMembers } from \"../CometChatAddMembers/cometchat-add-members.module\";\nimport { CometChatBannedMembers } from \"../CometChatBannedMembers/cometchat-banned-members.module\";\nimport { CometChatGroupMembers } from \"../CometChatGroupMembers/cometchat-group-members.module\";\nimport { CometChatTransferOwnership } from \"../CometChatTransferOwnership/cometchat-transfer-ownership.module\";\n\n@NgModule({\n declarations: [CometChatDetailsComponent],\n imports: [\n CommonModule,CometChatAddMembers,CometChatBannedMembers,CometChatGroupMembers,CometChatTransferOwnership\n ],\n exports: [CometChatDetailsComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatDetails {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatMessagesComponent } from \"./cometchat-messages/cometchat-messages.component\";\nimport { CometChatMessageHeader } from \"../CometChatMessageHeader/cometchat-message-header.module\";\nimport { CometChatMessageList } from \"../CometChatMessageList/cometchat-message-list.module\";\nimport { CometChatMessageComposer } from \"../CometChatMessageComposer/cometchat-message-composer.module\";\nimport \"@cometchat/uikit-elements\";\nimport { CometChatThreadedMessages } from \"../CometChatThreadedMessages/cometchat-threaded-messages.module\";\nimport { CometChatDetails } from \"../CometChatDetails/cometchat-details.module\";\nimport { CometChatCallButtons } from \"../Calls/CometChatCallButtons/cometchat-call-buttons.module\";\nimport { AIAssistBotMessageList } from \"../Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module\";\n\n@NgModule({\n declarations: [CometChatMessagesComponent],\n imports: [\n CommonModule,\n CometChatMessageHeader,\n CometChatMessageList,\n CometChatMessageComposer,\n CometChatThreadedMessages,\n CometChatDetails,\n CometChatCallButtons,\n AIAssistBotMessageList,\n ],\n exports: [CometChatMessagesComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CometChatMessages {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatConversationsWithMessagesComponent } from \"./cometchat-conversations-with-messages/cometchat-conversations-with-messages.component\";\nimport { CometChatConversations } from \"../CometChatConversations/cometchat-conversations.module\";\nimport { CometChatMessages } from \"../CometChatMessages/cometchat-messages.module\";\nimport { CometChatContacts } from \"../CometChatContacts/cometchat-contacts.module\";\n\n@NgModule({\n declarations: [CometChatConversationsWithMessagesComponent],\n imports: [\n CommonModule,\n CometChatConversations,\n CometChatMessages,\n CometChatContacts\n ],\n exports: [CometChatConversationsWithMessagesComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatConversationsWithMessages {}\n","import { Component, OnInit, ViewChild, Input, ChangeDetectionStrategy, OnChanges, SimpleChanges, ChangeDetectorRef, ElementRef } from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatMessagesComponent } from \"../../CometChatMessages/cometchat-messages/cometchat-messages.component\";\nimport { CometChatConversationsComponent } from \"../../CometChatConversations/cometchat-conversations/cometchat-conversations.component\";\nimport { WithMessagesStyle, MessagesConfiguration, GroupsConfiguration, CreateGroupConfiguration, JoinGroupConfiguration, MessageHeaderStyle } from '@cometchat/uikit-shared'\nimport '@cometchat/uikit-elements'\nimport { Subscription } from \"rxjs\";\nimport { BackdropStyle, CreateGroupStyle, JoinGroupStyle, ListItemStyle } from \"@cometchat/uikit-elements\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { localize, CometChatTheme, CometChatUIKitConstants, fontHelper, CometChatGroupEvents, IGroupMemberAdded, IGroupMemberKickedBanned, IGroupMemberJoined, IOwnershipChanged, IGroupLeft, CometChatUIEvents } from \"@cometchat/uikit-resources\";\n/**\n*\n* CometChatGroupsWithMessagesComponent is a wrapper component for CometChatMessagesComponent and CometChatConversations component to show chats and messages in one screen\n*\n* @version 1.0.0\n* @author CometChatTeam\n* @copyright © 2022 CometChat Inc.\n*\n*/\n@Component({\n selector: \"cometchat-groups-with-messages\",\n templateUrl: \"./cometchat-groups-with-messages.component.html\",\n styleUrls: [\"./cometchat-groups-with-messages.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatGroupsWithMessagesComponent implements OnInit, OnChanges {\n // taking reference of conversationComponent and MessagesComponent\n @ViewChild(\"groupRef\", { static: false }) groupRef!: CometChatConversationsComponent;\n @ViewChild(\"messagesRef\", { static: false }) messageListRef!: CometChatMessagesComponent;\n @Input() group!: CometChat.Group | null;\n @Input() isMobileView: boolean = false;\n @Input() hideCreateGroup: boolean = false;\n @Input() messageText: string = localize(\"NO_GROUPS_SELECTED\");\n @Input() groupsWithMessagesStyle: WithMessagesStyle = {\n width: \"100%\",\n height: \"100%\",\n borderRadius: \"none\",\n };\n @Input() messagesConfiguration: MessagesConfiguration = new MessagesConfiguration({});\n @Input() createGroupConfiguration: CreateGroupConfiguration = new CreateGroupConfiguration({});\n @Input() joinGroupConfiguration: JoinGroupConfiguration = new JoinGroupConfiguration({});\n @Input() groupsConfiguration: GroupsConfiguration = new GroupsConfiguration({});\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (error: CometChat.CometChatException) => {\n console.log(error)\n }\n theme: CometChatTheme = new CometChatTheme({});\n backdropStyle: BackdropStyle = {\n\n }\n createGroupStyle: CreateGroupStyle = {}\n joinGroupStyle: JoinGroupStyle = {}\n messageHeaderStyle: MessageHeaderStyle = {}\n listItemStyle: ListItemStyle = {}\n /**\n * Properties for internal use\n */\n createIconURL: string = \"assets/create-button.svg\"\n public loggedInUser!: CometChat.User | null;\n createGroupButtonStyle: any = {\n\n }\n labelStyle: any = {\n background: \"transparent\",\n textFont: \"700 22px Inter\",\n textColor: \"rgba(20, 20, 20, 0.33)\"\n }\n public openCreateGroupPage: boolean = false;\n public openPasswordModal: boolean = false;\n public protectedGroup!: CometChat.Group | null;\n user!: CometChat.User | null;\n /**\n * Events\n */\n ccGroupMemberAdded!: Subscription;\n ccGroupLeft!: Subscription;\n ccGroupMemberJoined!: Subscription;\n ccGroupMemberKicked!: Subscription;\n ccGroupMemberBanned!: Subscription;\n ccOwnershipChanged!: Subscription;\n ccGroupDeleted!: Subscription;\n ccGroupCreated!: Subscription;\n ccOpenChat!: Subscription;\n sideBarStyle: any = {}\n constructor(private elementRef: ElementRef, private ref: ChangeDetectorRef, private themeService: CometChatThemeService) {\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"isMobileView\"]) {\n if (this.isMobileView) {\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.height = \"100%\"\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.width = \"100%\"\n this.messagesConfiguration.messageHeaderConfiguration.hideBackButton = false;\n if (!this.messagesConfiguration.detailsConfiguration.detailsStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.detailsStyle.padding = \"0 8px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding = \"0 8px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = \"0 8px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = \"0 8px\"\n }\n this.messagesConfiguration.messageHeaderConfiguration = { ...this.messagesConfiguration.messageHeaderConfiguration }\n this.messagesConfiguration = { ...this.messagesConfiguration }\n this.joinGroupConfiguration.messageHeaderConfiguration.hideBackButton = false;\n this.joinGroupConfiguration.messageHeaderConfiguration = { ...this.joinGroupConfiguration.messageHeaderConfiguration }\n this.joinGroupConfiguration = { ...this.joinGroupConfiguration }\n }\n else if (!this.isMobileView) {\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.height = \"500px\"\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.width = \"500px\"\n this.messagesConfiguration.messageHeaderConfiguration.hideBackButton = true;\n if (!this.messagesConfiguration.detailsConfiguration.detailsStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.detailsStyle.padding = \"0 100px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding = \"0 100px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = \"0 100px\"\n }\n if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {\n this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = \"0 100px\"\n }\n this.messagesConfiguration.messageHeaderConfiguration = { ...this.messagesConfiguration.messageHeaderConfiguration }\n this.messagesConfiguration = { ...this.messagesConfiguration }\n this.joinGroupConfiguration.messageHeaderConfiguration.hideBackButton = true;\n this.joinGroupConfiguration.messageHeaderConfiguration = { ...this.joinGroupConfiguration.messageHeaderConfiguration }\n this.joinGroupConfiguration = { ...this.joinGroupConfiguration }\n }\n setTimeout(() => {\n this.updateBackdropHeight()\n }, 100);\n }\n }\n ngAfterViewInit() {\n this.updateBackdropHeight()\n }\n onBack = () => {\n this.group = null\n this.user = null;\n this.ref.detectChanges()\n }\n openCreateGroup() {\n this.openCreateGroupPage = true\n }\n\n closeCreateGroup = () => {\n this.openCreateGroupPage = false\n this.ref.detectChanges()\n }\n closeJoinGroup = () => {\n this.openPasswordModal = false\n }\n onItemClick: ((group: CometChat.Group) => void) = (group: CometChat.Group) => {\n this.openPasswordModal = false;\n if (group.getHasJoined()) {\n this.group = group;\n this.user = null;\n this.ref.detectChanges();\n return;\n }\n if (group.getType() == CometChatUIKitConstants.GroupTypes.password) {\n this.group = null;\n this.protectedGroup = group;\n this.openPasswordModal = true;\n this.ref.detectChanges();\n return;\n }\n CometChat.joinGroup(group).then((groupJoined: CometChat.Group) => {\n CometChatGroupEvents.ccGroupMemberJoined.next({\n joinedGroup: groupJoined,\n joinedUser: this.loggedInUser!\n })\n group.setHasJoined(true)\n this.group = group;\n this.user = null;\n this.ref.detectChanges()\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n })\n };\n\n updateBackdropHeight() {\n let divHeight = this.elementRef.nativeElement.offsetHeight;\n let divWidth = this.elementRef.nativeElement.offsetWidth;\n if (divHeight === 0 || divWidth === 0) {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n divHeight = rect.height;\n divWidth = rect.width;\n }\n let backdropStyle = {\n height: divHeight + \"px\",\n width: divWidth + \"px\",\n background: \"rgba(0, 0, 0, 0.5)\",\n position: \"fixed\"\n }\n if (this.isMobileView) {\n this.createGroupStyle.height = (divHeight - 30) + \"px\";\n this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.height = (divHeight - 30) + \"px\";\n this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.width = divWidth + \"px\";\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.height = divHeight + \"px\";\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.width = divWidth + \"px\";\n }\n else {\n this.createGroupStyle.height = this.createGroupConfiguration.createGroupStyle.height || \"620px\"\n this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.height = \"650px\";\n this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.width = \"360px\";\n }\n this.createGroupStyle = { ...this.createGroupStyle }\n\n this.backdropStyle = this.backdropStyle || backdropStyle\n this.messagesConfiguration.messageListConfiguration.backdropStyle = this.messagesConfiguration.messageListConfiguration.backdropStyle || backdropStyle\n this.messagesConfiguration.detailsConfiguration.backdropStyle = this.messagesConfiguration.detailsConfiguration.backdropStyle || backdropStyle\n this.messagesConfiguration.messageComposerConfiguration.backdropStyle = this.messagesConfiguration.messageComposerConfiguration.backdropStyle || backdropStyle\n this.messagesConfiguration.detailsConfiguration.groupMembersConfiguration.backdropStyle = this.messagesConfiguration.detailsConfiguration.groupMembersConfiguration.backdropStyle || backdropStyle\n this.ref.detectChanges()\n }\n ngOnInit() {\n this.createGroupButtonStyle = {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: '0',\n background: \"transparent\",\n buttonIconTint: this.themeService.theme.palette.getPrimary()\n }\n this.setWithMessagesStyle()\n this.setCreateGroupStyles()\n this.setListItemStyle()\n this.setJoinGroupStyles()\n if (!this.messagesConfiguration.messageHeaderConfiguration.onBack) {\n this.messagesConfiguration.messageHeaderConfiguration.onBack = this.onBack\n }\n this.subscribeToEvents();\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error)\n }\n });\n\n }\n setWithMessagesStyle() {\n let defaultStyle: WithMessagesStyle = new WithMessagesStyle({\n width: \"100%\",\n height: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: \"none\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n messageTextColor: this.themeService.theme.palette.getAccent600(),\n messageTextFont: fontHelper(this.themeService.theme.typography.title1),\n })\n this.groupsWithMessagesStyle = {\n ...defaultStyle,\n ...this.groupsWithMessagesStyle\n }\n this.labelStyle.textFont = this.groupsWithMessagesStyle.messageTextFont\n this.labelStyle.textColor = this.groupsWithMessagesStyle.messageTextColor\n this.messagesConfiguration.messagesStyle.border = this.messagesConfiguration.messagesStyle.border ?? \"none\"\n this.groupsConfiguration.groupsStyle.border = this.groupsConfiguration.groupsStyle.border ?? \"none\"\n if (!this.groupsConfiguration?.groupsStyle?.border || this.groupsConfiguration?.groupsStyle?.border == \"none\") {\n this.sideBarStyle = { borderRight: this.groupsWithMessagesStyle.border }\n }\n }\n setCreateGroupStyles = () => {\n let defaultStyle: CreateGroupStyle = new CreateGroupStyle({\n boxShadow: `0px 0px 8px ${this.themeService.theme.palette.getAccent50()}`,\n groupTypeTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n groupTypeBorder: `1px solid ${this.themeService.theme.palette.getAccent600()}`,\n groupTypeBorderRadius: \"0\",\n groupTypeTextColor: this.themeService.theme.palette.getAccent(),\n groupTypeTextBackground: \"transparent\",\n groupTypeBackground: this.themeService.theme.palette.getAccent100(),\n groupTypeBoxShadow: \"\",\n activeGroupTypeTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n activeGroupTypeTextColor: this.themeService.theme.palette.getAccent(),\n activeGroupTypeBackground: this.themeService.theme.palette.getAccent900(),\n activeGroupTypeBoxShadow: `${this.themeService.theme.palette.getAccent200()} 0 3px 8px 0`,\n activeGroupTypeBorderRadius: \"8px\",\n activeGroupTypeBorder: \"none\",\n groupTypeTextBoxShadow: \"none\",\n groupTypeTextBorderRadius: \"0\",\n closeIconTint: this.themeService.theme.palette.getPrimary(),\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n errorTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n errorTextBackground: this.themeService.theme.palette.getError(),\n errorTextBorderRadius: \"8px\",\n errorTextBorder: \"none\",\n errorTextColor: this.themeService.theme.palette.getError(),\n nameInputPlaceholderTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n nameInputPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),\n nameInputBackground: this.themeService.theme.palette.getAccent100(),\n nameInputTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n nameInputTextColor: this.themeService.theme.palette.getAccent(),\n nameInputBorder: \"none\",\n nameInputBorderRadius: \"8px\",\n nameInputBoxShadow: `${this.themeService.theme.palette.getAccent100()} 0 0 0 1px`,\n passwordInputPlaceholderTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n passwordInputPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),\n passwordInputBackground: this.themeService.theme.palette.getAccent100(),\n passwordInputBorder: \"none\",\n passwordInputBorderRadius: \"8px\",\n passwordInputBoxShadow: `${this.themeService.theme.palette.getAccent100()} 0 0 0 1px`,\n passwordInputTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n passwordInputTextColor: this.themeService.theme.palette.getAccent(),\n createGroupButtonTextFont: fontHelper(this.themeService.theme.typography.text2),\n createGroupButtonTextColor: this.themeService.theme.palette.getAccent900(\"light\"),\n createGroupButtonBackground: this.themeService.theme.palette.getPrimary(),\n createGroupButtonBorderRadius: \"8px\",\n createGroupButtonBorder: \"none\",\n height: \"620px\",\n width: \"360px\",\n borderRadius: \"8px\",\n background: this.themeService.theme.palette.getBackground()\n })\n this.createGroupStyle = { ...defaultStyle, ...this.createGroupConfiguration.createGroupStyle }\n\n }\n setJoinGroupStyles = () => {\n let defaultStyle: JoinGroupStyle = new JoinGroupStyle({\n boxShadow: `0px 0px 8px ${this.themeService.theme.palette.getAccent50()}`,\n titleTextFont: fontHelper(this.themeService.theme.typography.title1),\n titleTextColor: this.themeService.theme.palette.getAccent(),\n passwordInputPlaceholderTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n passwordInputPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),\n passwordInputBackground: this.themeService.theme.palette.getAccent100(),\n passwordInputBorder: \"none\",\n passwordInputBorderRadius: \"8px\",\n passwordInputBoxShadow: `${this.themeService.theme.palette.getAccent100()} 0 0 0 1px`,\n passwordInputTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n passwordInputTextColor: this.themeService.theme.palette.getAccent(),\n height: \"100%\",\n width: \"100%\",\n joinButtonTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n joinButtonTextColor: this.themeService.theme.palette.getAccent(\"dark\"),\n joinButtonBackground: this.themeService.theme.palette.getPrimary(),\n joinButtonBorderRadius: \"8px\",\n joinButtonBorder: \"none\",\n background: this.themeService.theme.palette.getBackground()\n })\n this.joinGroupStyle = { ...defaultStyle, ...this.joinGroupConfiguration.joinGroupStyle }\n\n }\n setHeadersStyle() {\n let defaultStyle: MessageHeaderStyle = new MessageHeaderStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `none`,\n onlineStatusColor: this.themeService.theme.palette.getSuccess(),\n privateGroupIconBackground: this.themeService.theme.palette.getSuccess(),\n passwordGroupIconBackground: \"RGB(247, 165, 0)\",\n backButtonIconTint: this.themeService.theme.palette.getPrimary(),\n subtitleTextColor: this.themeService.theme.palette.getAccent600(),\n subtitleTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n typingIndicatorTextColor: this.themeService.theme.palette.getPrimary(),\n typingIndicatorTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n })\n this.messageHeaderStyle = { ...defaultStyle, ...this.joinGroupConfiguration.messageHeaderConfiguration.messageHeaderStyle }\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: \"transparent\",\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: \"\",\n hoverBackground: \"transparent\"\n })\n this.listItemStyle = { ...defaultStyle, ...this.joinGroupConfiguration.messageHeaderConfiguration.listItemStyle }\n }\n ngOnDestroy() {\n this.unsubscribeToEvents();\n }\n onGroupJoined = (event: any) => {\n let group: CometChat.Group = event?.detail?.response\n this.openPasswordModal = false;\n this.protectedGroup = null;\n if (group) {\n this.group = group\n this.user = null;\n }\n\n }\n updatedCreatedGroup(event: any) {\n let group: CometChat.Group = event?.detail?.group\n if (group) {\n this.group = group;\n this.user = null;\n this.openCreateGroupPage = false\n this.ref.detectChanges();\n CometChatGroupEvents.ccGroupCreated.next(group)\n }\n\n }\n // subscribe to global events\n subscribeToEvents() {\n this.ccGroupDeleted = CometChatGroupEvents.ccGroupDeleted.subscribe((group: CometChat.Group) => {\n if (this.group && group.getGuid() == this.group.getGuid()) {\n this.group = null;\n this.ref.detectChanges()\n }\n })\n this.ccGroupCreated = CometChatGroupEvents.ccGroupCreated.subscribe((group: CometChat.Group) => {\n if (group) {\n this.group = group;\n this.user = null;\n this.openCreateGroupPage = false\n this.ref.detectChanges();\n }\n })\n this.ccGroupMemberAdded = CometChatGroupEvents.ccGroupMemberAdded.subscribe((item: IGroupMemberAdded) => {\n if (this.group && this.group.getGuid() == item?.userAddedIn!.getGuid()) {\n this.group = item?.userAddedIn;\n this.ref.detectChanges()\n }\n })\n this.ccGroupMemberBanned = CometChatGroupEvents.ccGroupMemberBanned.subscribe((item: IGroupMemberKickedBanned) => {\n if (this.group && this.group.getGuid() == item?.kickedFrom!.getGuid()) {\n this.group = item?.kickedFrom;\n this.ref.detectChanges()\n }\n })\n this.ccGroupMemberJoined = CometChatGroupEvents.ccGroupMemberJoined.subscribe((item: IGroupMemberJoined) => {\n if (this.protectedGroup && this.protectedGroup.getGuid() == item?.joinedGroup!.getGuid()) {\n this.openPasswordModal = false;\n this.protectedGroup = null;\n this.group = item?.joinedGroup;\n this.ref.detectChanges()\n }\n })\n this.ccGroupMemberKicked = CometChatGroupEvents.ccGroupMemberKicked.subscribe((item: IGroupMemberKickedBanned) => {\n if (this.group && this.group.getGuid() == item?.kickedFrom!.getGuid()) {\n this.group = item?.kickedFrom;\n this.ref.detectChanges()\n }\n })\n this.ccOwnershipChanged = CometChatGroupEvents.ccOwnershipChanged.subscribe((item: IOwnershipChanged) => {\n if (this.group && this.group.getGuid() == item?.group!.getGuid()) {\n this.group = item?.group;\n this.ref.detectChanges();\n }\n })\n this.ccGroupLeft = CometChatGroupEvents.ccGroupLeft.subscribe((item: IGroupLeft) => {\n if (this.group && this.group.getGuid() == item?.leftGroup!.getGuid() && this.loggedInUser?.getUid() == item?.userLeft?.getUid()) {\n this.group = item?.leftGroup;\n this.ref.detectChanges()\n }\n })\n // open chat and mark as active conversation\n this.ccOpenChat = CometChatUIEvents.ccOpenChat.subscribe((item) => {\n this.user = item.user ? item.user : null;\n this.group = item.group ? item.group : null;\n this.ref.detectChanges()\n })\n\n }\n // unsubscribe to subscribed events.\n unsubscribeToEvents() {\n this.ccGroupDeleted?.unsubscribe();\n this.ccGroupMemberAdded?.unsubscribe();\n this.ccGroupMemberBanned?.unsubscribe();\n this.ccGroupMemberJoined?.unsubscribe();\n this.ccGroupMemberKicked?.unsubscribe();\n this.ccOwnershipChanged?.unsubscribe();\n this.ccGroupLeft?.unsubscribe();\n this.ccOpenChat?.unsubscribe();\n }\n emptyMessageStyle = () => {\n return {\n background: this.groupsWithMessagesStyle.background || this.themeService.theme.palette.getBackground(),\n height: this.groupsWithMessagesStyle.height,\n width: `calc(${this.groupsWithMessagesStyle.width} - 280px)`,\n border: \"none\",\n borderRadius: this.groupsWithMessagesStyle.borderRadius,\n }\n }\n groupsWrapperStyles = () => {\n return {\n height: this.groupsWithMessagesStyle.height,\n width: this.groupsWithMessagesStyle.width,\n border: this.groupsWithMessagesStyle.border,\n borderRadius: this.groupsWithMessagesStyle.borderRadius,\n background: this.groupsWithMessagesStyle.background || this.themeService.theme.palette.getBackground(),\n position: 'relative'\n }\n }\n}\n","<div class=\"cc-with-messages__wrapper\" [ngStyle]=\"groupsWrapperStyles()\">\n <div class=\"cc-with-messages__sidebar\" [ngClass]=\"{mobile : isMobileView}\"\n [ngStyle]=\"sideBarStyle\">\n <cometchat-groups #groupRef [activeGroup]=\"group\"\n [hideSearch]=\"groupsConfiguration.hideSearch\"\n [searchIconURL]=\"groupsConfiguration.searchIconURL\"\n [searchRequestBuilder]=\"groupsConfiguration.searchRequestBuilder\"\n [onItemClick]=\"groupsConfiguration.onItemClick || onItemClick\"\n [groupsStyle]=\"groupsConfiguration.groupsStyle\"\n [subtitleView]=\"groupsConfiguration.subtitleView\"\n [options]=\"groupsConfiguration.options\"\n [privateGroupIcon]=\"groupsConfiguration.privateGroupIcon\"\n [protectedGroupIcon]=\"groupsConfiguration.protectedGroupIcon\"\n [passwordGroupIcon]=\"groupsConfiguration.passwordGroupIcon\"\n [groupsRequestBuilder]=\"groupsConfiguration.groupsRequestBuilder\"\n [emptyStateView]=\"groupsConfiguration.emptyStateView\"\n [onSelect]=\"groupsConfiguration.onSelect\"\n [loadingIconURL]=\"groupsConfiguration.loadingIconURL\"\n [errorStateView]=\"groupsConfiguration.errorStateView\"\n [loadingStateView]=\"groupsConfiguration.loadingStateView\"\n [titleAlignment]=\"groupsConfiguration.titleAlignment\"\n [listItemView]=\"groupsConfiguration.listItemView\"\n [menu]=\"groupsConfiguration.menu || createGroupButton\"\n [hideSeparator]=\"groupsConfiguration.hideSeparator\"\n [hideError]=\"groupsConfiguration.hideError\"\n [selectionMode]=\"groupsConfiguration.selectionMode\"\n [listItemStyle]=\"groupsConfiguration.listItemStyle\"></cometchat-groups>\n </div>\n <div class=\"cc-with-messages__main\" [ngClass]=\"{mobile : isMobileView}\"\n *ngIf=\"(group || user) && !openPasswordModal\">\n <!--Message List Screen-->\n <cometchat-messages #messagesRef [group]=\"group!\"\n [messageHeaderConfiguration]=\"messagesConfiguration.messageHeaderConfiguration\"\n [messageListConfiguration]=\"messagesConfiguration.messageListConfiguration\"\n [messageComposerConfiguration]=\"messagesConfiguration.messageComposerConfiguration\"\n [messagesStyle]=\"messagesConfiguration.messagesStyle\"\n [customSoundForIncomingMessages]=\"messagesConfiguration.customSoundForIncomingMessages\"\n [customSoundForOutgoingMessages]=\"messagesConfiguration.customSoundForOutgoingMessages\"\n [detailsConfiguration]=\"messagesConfiguration.detailsConfiguration\"\n [disableSoundForMessages]=\"messagesConfiguration.disableSoundForMessages\"\n [disableTyping]=\"messagesConfiguration.disableTyping\"\n [hideMessageComposer]=\"messagesConfiguration.hideMessageComposer\"\n [hideMessageHeader]=\"messagesConfiguration.hideMessageHeader\"\n [messageComposerView]=\"messagesConfiguration.messageComposerView\"\n [messageHeaderView]=\"messagesConfiguration.messageHeaderView\"\n [messageListView]=\"messagesConfiguration.messageListView\" [user]=\"user!\"\n [threadedMessageConfiguration]=\"messagesConfiguration.threadedMessageConfiguration\"\n [hideDetails]=\"messagesConfiguration.hideDetails!\">\n </cometchat-messages>\n <!--Message List Screen ENDS-->\n </div>\n <div class=\"cc-decorator__message--empty\"\n *ngIf=\"!user && !group && !openPasswordModal\"\n [ngStyle]=\"emptyMessageStyle()\">\n <cometchat-label [text]=\"messageText\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n </div>\n <div class=\"cc-with-messages__joingroup\"\n *ngIf=\"openPasswordModal && !group && !user\" [ngStyle]=\"emptyMessageStyle()\"\n [ngClass]=\"{mobile : isMobileView}\">\n <cometchat-join-group [group]=\"protectedGroup!\"\n [joinGroupStyle]=\"joinGroupStyle\"\n (cc-joingroup-joined)=\"onGroupJoined($event)\"\n [errorCallback]=\"joinGroupConfiguration.onError\"\n [joinClick]=\"joinGroupConfiguration.joinClick\">\n <cometchat-message-header slot=\"headerView\" [group]=\"protectedGroup!\"\n [subtitleView]=\"joinGroupConfiguration.messageHeaderConfiguration.subtitleView\"\n [disableUsersPresence]=\"joinGroupConfiguration.messageHeaderConfiguration.disableUsersPresence\"\n [protectedGroupIcon]=\"joinGroupConfiguration.messageHeaderConfiguration.protectedGroupIcon\"\n [passwordGroupIcon]=\"joinGroupConfiguration.messageHeaderConfiguration.passwordGroupIcon\"\n [privateGroupIcon]=\"joinGroupConfiguration.messageHeaderConfiguration.privateGroupIcon\"\n [menu]=\"joinGroupConfiguration.messageHeaderConfiguration.menu\"\n [messageHeaderStyle]=\"messageHeaderStyle\"\n [backButtonIconURL]=\"joinGroupConfiguration.messageHeaderConfiguration.backButtonIconURL\"\n [hideBackButton]=\"joinGroupConfiguration.messageHeaderConfiguration.hideBackButton\"\n [onError]=\"joinGroupConfiguration.messageHeaderConfiguration.onError\"\n [onBack]=\"joinGroupConfiguration.messageHeaderConfiguration.onBack || closeJoinGroup\"\n [listItemStyle]=\"listItemStyle\"\n [statusIndicatorStyle]=\"joinGroupConfiguration.messageHeaderConfiguration.statusIndicatorStyle\"\n [avatarStyle]=\"joinGroupConfiguration.messageHeaderConfiguration.avatarStyle\">\n </cometchat-message-header>\n </cometchat-join-group>\n </div>\n</div>\n<ng-template #createGroupButton>\n <cometchat-button *ngIf=\"!hideCreateGroup\" [iconURL]=\"createIconURL\"\n [buttonStyle]=\"createGroupButtonStyle\"\n (cc-button-clicked)=\"openCreateGroup()\"></cometchat-button>\n\n</ng-template>\n<cometchat-backdrop *ngIf=\"openCreateGroupPage\" [backdropStyle]=\"backdropStyle\">\n <cometchat-create-group [createGroupStyle]=\"createGroupStyle\"\n [hideCloseButton]=\"createGroupConfiguration.hideCloseButton\"\n [closeButtonIconURL]=\"createGroupConfiguration.closeButtonIconURL\"\n [createClick]=\"createGroupConfiguration.createClick\"\n [closeCallback]=\"closeCreateGroup\">\n\n </cometchat-create-group>\n</cometchat-backdrop>\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatGroupsWithMessagesComponent } from \"./cometchat-groups-with-messages/cometchat-groups-with-messages.component\";\nimport { CometChatMessages } from \"../CometChatMessages/cometchat-messages.module\";\nimport { CometChatGroups } from \"../CometChatGroups/cometchat-groups.module\";\nimport { CometChatMessageHeader } from \"../CometChatMessageHeader/cometchat-message-header.module\";\n\n@NgModule({\n declarations: [CometChatGroupsWithMessagesComponent],\n imports: [\n CommonModule,\n CometChatGroups,\n CometChatMessages,\n CometChatMessageHeader\n ],\n exports: [CometChatGroupsWithMessagesComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatGroupsWithMessages {}\n","import { Component, OnInit, ViewChild, Input, ChangeDetectionStrategy, OnChanges, SimpleChanges, ChangeDetectorRef, ElementRef } from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatMessagesComponent } from \"../../CometChatMessages/cometchat-messages/cometchat-messages.component\";\nimport { CometChatConversationsComponent } from \"../../CometChatConversations/cometchat-conversations/cometchat-conversations.component\";\nimport '@cometchat/uikit-elements'\nimport { Subscription } from \"rxjs\";\nimport { CometChatThemeService } from \"../../CometChatTheme.service\";\nimport { localize, CometChatTheme, fontHelper, CometChatUserEvents } from \"@cometchat/uikit-resources\";\nimport { WithMessagesStyle, MessagesConfiguration, UsersConfiguration } from \"@cometchat/uikit-shared\";\n /**\n *\n * CometChatUsersWithMessagesComponent is a wrapper component for CometChatMessagesComponent and CometChatConversations component to show chats and messages in one screen\n *\n * @version 1.0.0\n * @author CometChatTeam\n * @copyright © 2022 CometChat Inc.\n *\n */\n@Component({\n selector: \"cometchat-users-with-messages\",\n templateUrl: \"./cometchat-users-with-messages.component.html\",\n styleUrls: [\"./cometchat-users-with-messages.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatUsersWithMessagesComponent implements OnInit, OnChanges {\n // taking reference of conversationComponent and MessagesComponent\n @ViewChild(\"usersRef\", { static: false }) userRef!: CometChatConversationsComponent;\n @ViewChild(\"messagesRef\", { static: false }) messageListRef!: CometChatMessagesComponent;\n @Input() user!: CometChat.User | null;\n @Input() isMobileView: boolean = false;\n @Input() messageText: string = localize(\"NO_USERS_SELECTED\");\n @Input() usersWithMessagesStyle: WithMessagesStyle = {\n width: \"100%\",\n height: \"100%\",\n borderRadius: \"none\",\n \n };\n @Input() messagesConfiguration: MessagesConfiguration = new MessagesConfiguration({});\n @Input() usersConfiguration: UsersConfiguration = new UsersConfiguration({});\n @Input() onError:((error:CometChat.CometChatException)=>void ) | null= (error:CometChat.CometChatException)=>{\n console.log(error)\n }\n theme: CometChatTheme = new CometChatTheme({});\n /**\n * Properties for internal use\n */\n public loggedInUser!: CometChat.User | null;\n labelStyle:any = {\n background:\"transparent\",\n textFont:\"700 22px Inter\",\n textColor:\"rgba(20, 20, 20, 0.33)\"\n }\n /**\n * Events\n */\n ccUserBlocked!:Subscription;\n ccUserUnBlocked!:Subscription;\n sideBarStyle:any = {}\n constructor(private elementRef: ElementRef,private ref: ChangeDetectorRef,private themeService:CometChatThemeService) {\n }\n ngAfterViewInit() {\n this.updateBackdropHeight()\n }\n updateBackdropHeight(){\n let divHeight = this.elementRef.nativeElement.offsetHeight;\n let divWidth = this.elementRef.nativeElement.offsetWidth;\n if (divHeight === 0 || divWidth === 0) {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n divHeight = rect.height;\n divWidth = rect.width;\n }\n let backdropStyle = {\n height:divHeight + \"px\",\n width:divWidth + \"px\",\n background:\"rgba(0, 0, 0, 0.5)\",\n position:\"fixed\"\n }\n this.messagesConfiguration.messageListConfiguration.backdropStyle = backdropStyle\n this.messagesConfiguration.detailsConfiguration.backdropStyle = backdropStyle\n this.messagesConfiguration.messageComposerConfiguration.backdropStyle = backdropStyle\n this.messagesConfiguration.detailsConfiguration.groupMembersConfiguration.backdropStyle = backdropStyle\n this.ref.detectChanges()\n }\n ngOnChanges(changes: SimpleChanges): void {\n if(changes[\"isMobileView\"]){\n if (this.isMobileView) {\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.height = \"100%\"\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.width = \"100%\"\n this.messagesConfiguration.detailsConfiguration.detailsStyle.padding = \"0 8px\"\n this.messagesConfiguration.messageHeaderConfiguration.hideBackButton = false;\n this.messagesConfiguration.messageHeaderConfiguration = {...this.messagesConfiguration.messageHeaderConfiguration}\n this.messagesConfiguration = { ...this.messagesConfiguration }\n\n }\n else if (!this.isMobileView) {\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.height = \"500px\"\n this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.width = \"500px\"\n this.messagesConfiguration.detailsConfiguration.detailsStyle.padding = \"0 100px\"\n this.messagesConfiguration.messageHeaderConfiguration.hideBackButton = true;\n this.messagesConfiguration.messageHeaderConfiguration = {...this.messagesConfiguration.messageHeaderConfiguration}\n this.messagesConfiguration = { ...this.messagesConfiguration }\n }\n setTimeout(() => {\n this.updateBackdropHeight()\n }, 100);\n }\n }\n onBack = ()=>{\n this.user = null\n }\n onItemClick: ((user:CometChat.User)=>void) = (user:CometChat.User)=>{\n this.user = user;\n this.ref.detectChanges();\n\n };\n ngOnInit() {\n this.setWithMessagesStyle()\n if(!this.messagesConfiguration.messageHeaderConfiguration.onBack){\n this.messagesConfiguration.messageHeaderConfiguration.onBack = this.onBack\n }\n this.subscribeToEvents();\n CometChat.getLoggedinUser()\n .then((user:CometChat.User | null) => {\n this.loggedInUser = user;\n })\n .catch((error:CometChat.CometChatException) => {\n if(this.onError){\n this.onError(error)\n }\n });\n\n }\n setWithMessagesStyle(){\n let defaultStyle:WithMessagesStyle = new WithMessagesStyle({\n width: \"100%\",\n height: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: \"none\",\n border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,\n messageTextColor: this.themeService.theme.palette.getAccent600(),\n messageTextFont: fontHelper(this.themeService.theme.typography.title1),\n })\n this.usersWithMessagesStyle = {\n ...defaultStyle,\n ...this.usersWithMessagesStyle\n }\n this.labelStyle.textFont = this.usersWithMessagesStyle.messageTextFont\n this.labelStyle.textColor = this.usersWithMessagesStyle.messageTextColor;\n this.messagesConfiguration.messagesStyle.border = this.messagesConfiguration.messagesStyle.border ?? \"none\"\n this.usersConfiguration.usersStyle.border = this.usersConfiguration.usersStyle.border ?? \"none\"\n if(!this.usersConfiguration?.usersStyle?.border || this.usersConfiguration?.usersStyle?.border == \"none\"){\n this.sideBarStyle = {borderRight:this.usersWithMessagesStyle.border}\n \n }\n }\n ngOnDestroy() {\n this.unsubscribeToEvents();\n }\n\n // subscribe to global events\n subscribeToEvents() {\n this.ccUserBlocked = CometChatUserEvents.ccUserBlocked.subscribe((user:CometChat.User) => {\n if(this.user && user.getUid() == this.user.getUid()){\n this.user = user;\n this.ref.detectChanges()\n }\n })\n this.ccUserUnBlocked = CometChatUserEvents.ccUserUnblocked.subscribe((user:CometChat.User) => {\n if(this.user && user.getUid() == this.user.getUid()){\n this.user = user;\n this.ref.detectChanges()\n }\n })\n\n }\n // unsubscribe to subscribed events.\n unsubscribeToEvents() {\n this.ccUserBlocked?.unsubscribe();\n this.ccUserUnBlocked?.unsubscribe();\n }\n emptyMessageStyle = ()=>{\n return {\n background: this.usersWithMessagesStyle.background || this.themeService.theme.palette.getBackground(),\n height:this.usersWithMessagesStyle.height,\n width:`calc(${this.usersWithMessagesStyle.width} - 280px)`,\n border:\"none\",\n borderRadius:this.usersWithMessagesStyle.borderRadius,\n }\n }\n usersWrapperStyles = () => {\n return {\n height: this.usersWithMessagesStyle.height,\n width: this.usersWithMessagesStyle.width,\n border: this.usersWithMessagesStyle.border,\n borderRadius: this.usersWithMessagesStyle.borderRadius,\n background: this.usersWithMessagesStyle.background || this.themeService.theme.palette.getBackground(),\n position: 'relative'\n }\n }\n}\n","<div class=\"cc-with-messages__wrapper\" [ngStyle]=\"usersWrapperStyles()\">\n <div class=\"cc-with-messages__sidebar\" [ngClass]=\"{mobile : isMobileView}\" [ngStyle]=\"sideBarStyle\">\n <cometchat-users\n #usersRef\n [activeUser]=\"user\"\n [hideSearch]=\"usersConfiguration.hideSearch\"\n [searchIconURL]=\"usersConfiguration.searchIconURL\"\n [searchRequestBuilder]=\"usersConfiguration.searchRequestBuilder\"\n [onItemClick]=\"usersConfiguration.onItemClick || onItemClick\"\n [usersStyle]=\"usersConfiguration.usersStyle\"\n [subtitleView]=\"usersConfiguration.subtitleView\"\n [options]=\"usersConfiguration.options\"\n [usersRequestBuilder]=\"usersConfiguration.usersRequestBuilder\"\n [emptyStateView]=\"usersConfiguration.emptyStateView\"\n [onSelect]=\"usersConfiguration.onSelect\"\n [loadingIconURL]=\"usersConfiguration.loadingIconURL\"\n [errorStateView]=\"usersConfiguration.errorStateView\"\n [loadingStateView]=\"usersConfiguration.loadingStateView\"\n [titleAlignment]=\"usersConfiguration.titleAlignment\"\n [showSectionHeader]=\"usersConfiguration.showSectionHeader\"\n [listItemView]=\"usersConfiguration.listItemView\"\n [menu]=\"usersConfiguration.menu\"\n [hideSeparator]=\"usersConfiguration.hideSeparator\"\n [hideError]=\"usersConfiguration.hideError\"\n [selectionMode]=\"usersConfiguration.selectionMode\"\n [listItemStyle]=\"usersConfiguration.listItemStyle\"\n [statusIndicatorStyle]=\"usersConfiguration.statusIndicatorStyle\"\n ></cometchat-users>\n </div>\n <div class=\"cc-with-messages__main\" [ngClass]=\"{mobile : isMobileView}\" *ngIf=\"user\">\n <!--Message List Screen-->\n <cometchat-messages\n #messagesRef\n [user]=\"user!\"\n [messageHeaderConfiguration]=\"messagesConfiguration.messageHeaderConfiguration\"\n [messageListConfiguration]=\"messagesConfiguration.messageListConfiguration\"\n [messageComposerConfiguration]=\"messagesConfiguration.messageComposerConfiguration\"\n [messagesStyle]=\"messagesConfiguration.messagesStyle\"\n [customSoundForIncomingMessages]=\"messagesConfiguration.customSoundForIncomingMessages\"\n [customSoundForOutgoingMessages]=\"messagesConfiguration.customSoundForOutgoingMessages\"\n [detailsConfiguration]=\"messagesConfiguration.detailsConfiguration\"\n [disableSoundForMessages]=\"messagesConfiguration.disableSoundForMessages\"\n [disableTyping]=\"messagesConfiguration.disableTyping\"\n [hideMessageComposer]=\"messagesConfiguration.hideMessageComposer\"\n [hideMessageHeader]=\"messagesConfiguration.hideMessageHeader\"\n [messageComposerView]=\"messagesConfiguration.messageComposerView\"\n [messageHeaderView]=\"messagesConfiguration.messageHeaderView\"\n [messageListView]=\"messagesConfiguration.messageListView\"\n [hideDetails]=\"messagesConfiguration.hideDetails!\"\n [threadedMessageConfiguration]=\"messagesConfiguration.threadedMessageConfiguration\"\n >\n </cometchat-messages>\n <!--Message List Screen ENDS-->\n </div>\n <div class=\"cc-decorator__message--empty\" *ngIf=\"!user\" [ngStyle]=\"emptyMessageStyle()\">\n <cometchat-label [text]=\"messageText\" [labelStyle]=\"labelStyle\"></cometchat-label>\n </div>\n</div>","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatUsersWithMessagesComponent } from \"./cometchat-users-with-messages/cometchat-users-with-messages.component\";\nimport { CometChatMessages } from \"../CometChatMessages/cometchat-messages.module\";\nimport { CometChatUsers } from \"../CometChatUsers/cometchat-users.module\";\n\n@NgModule({\n declarations: [CometChatUsersWithMessagesComponent],\n imports: [\n CommonModule,\n CometChatUsers,\n CometChatMessages,\n ],\n exports: [CometChatUsersWithMessagesComponent],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CometChatUsersWithMessages {}\n","import { CometChatUIKitConstants, localize } from \"@cometchat/uikit-resources\";\n\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\n\nexport class CallLogUtils {\n static isSentByMe(call: any, loggedInUser: CometChat.User) {\n const senderUid: string = call.getInitiator()?.getUid();\n return !senderUid || senderUid === loggedInUser?.getUid();\n }\n\n static isMissedCall(call: any, loggedInUser: CometChat.User) {\n const callStatus = call.getStatus();\n const sentByMe = this.isSentByMe(call, loggedInUser);\n\n // If the user sent the call and it was unanswered, it's not counted as missed\n if (sentByMe && callStatus === CometChatUIKitConstants.calls.unanswered) {\n return false;\n }\n\n // The following statuses are considered missed for the receiver\n const missedStatuses = [\n CometChatUIKitConstants.calls.unanswered,\n CometChatUIKitConstants.calls.cancelled,\n ];\n\n // If the user didn't send the call and the status matches one of the missed statuses, it's a missed call\n return !sentByMe && missedStatuses.includes(callStatus);\n }\n\n static getCallStatusWithType(\n call: any,\n loggedInUser: CometChat.User,\n includeType: boolean = false\n ): string {\n \n if (!call || !loggedInUser) {\n return \"\";\n }\n\n let callMessageText = \"\";\n const callStatus = call.getStatus();\n const sentByMe = this.isSentByMe(call, loggedInUser);\n const missedCall = this.isMissedCall(call, loggedInUser);\n\n\n const callTypeKey = \"_\"\n\n if (missedCall) {\n callMessageText = `MISSED${callTypeKey}CALL`;\n } else {\n switch (callStatus) {\n case CometChatUIKitConstants.calls.initiated:\n callMessageText = sentByMe\n ? `OUTGOING${callTypeKey}CALL`\n : `INCOMING${callTypeKey}CALL`;\n break;\n case CometChatUIKitConstants.calls.ongoing:\n callMessageText = sentByMe\n ? `ONGOING${callTypeKey}CALL`\n : `ONGOING${callTypeKey}CALL`;\n break;\n case CometChatUIKitConstants.calls.ended:\n callMessageText = sentByMe\n ? `OUTGOING${callTypeKey}CALL`\n : `INCOMING${callTypeKey}CALL`;\n break;\n case CometChatUIKitConstants.calls.unanswered:\n callMessageText = sentByMe\n ? `UNANSWERED${callTypeKey}CALL`\n : `MISSED${callTypeKey}CALL`;\n break;\n case CometChatUIKitConstants.calls.cancelled:\n callMessageText = sentByMe\n ? `CANCELLED${callTypeKey}CALL`\n : `MISSED${callTypeKey}CALL`;\n break;\n case CometChatUIKitConstants.calls.rejected:\n callMessageText = sentByMe\n ? `REJECTED${callTypeKey}CALL`\n : `MISSED${callTypeKey}CALL`;\n break;\n case CometChatUIKitConstants.calls.busy:\n callMessageText = sentByMe\n ? `UNANSWERED${callTypeKey}CALL`\n : `MISSED${callTypeKey}CALL`;\n break;\n default:\n callMessageText = `INCOMING${callTypeKey}CALL`;\n }\n }\n\n return localize(callMessageText);\n \n }\n\n static convertMinutesToHoursMinutesSeconds(minutes: number): string {\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = Math.floor(minutes % 60);\n const seconds = Math.floor((minutes - Math.floor(minutes)) * 60);\n\n let hoursString = \"\";\n let minutesString = \"\";\n let secondsString = \"\";\n\n if (hours > 0) {\n hoursString = `${hours}h`;\n }\n\n if (remainingMinutes > 0) {\n minutesString = `${remainingMinutes}m`;\n }\n\n if (seconds >= 0) {\n secondsString = `${seconds}s`;\n }\n\n return `${hoursString} ${minutesString} ${secondsString}`;\n }\n\n static convertSecondsToHoursMinutesSeconds(seconds: number): string {\n const hours = Math.floor(seconds / 3600);\n const remainingMinutes = Math.floor((seconds % 3600) / 60);\n const remainingSeconds = Math.floor((seconds % 3600) % 60);\n\n let hoursString = \"\";\n let minutesString = \"\";\n let secondsString = \"\";\n\n if (hours > 0) {\n hoursString = `${hours}h`;\n }\n\n if (remainingMinutes > 0) {\n minutesString = `${remainingMinutes}m`;\n }\n\n if (remainingSeconds >= 0) {\n secondsString = `${remainingSeconds}s`;\n }\n\n return `${hoursString} ${minutesString} ${secondsString}`;\n }\n\n static isDateDifferent(\n firstDate: number | undefined,\n secondDate: number | undefined\n ) {\n let firstDateObj: Date, secondDateObj: Date;\n firstDateObj = new Date(firstDate! * 1000);\n secondDateObj = new Date(secondDate! * 1000);\n return (\n firstDateObj.getDate() !== secondDateObj.getDate() ||\n firstDateObj.getMonth() !== secondDateObj.getMonth() ||\n firstDateObj.getFullYear() !== secondDateObj.getFullYear()\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n} from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\n\nimport {\n ListStyle,\n OutgoingCallConfiguration,\n CometChatSoundManager,\n OutgoingCallStyle,\n CometChatUIKitCalls,\n CallScreenConfiguration,\n CallLogsStyle,\n StorageUtils,\n} from \"@cometchat/uikit-shared\";\nimport {\n AvatarStyle,\n BackdropStyle,\n CallscreenStyle,\n DateStyle,\n ListItemStyle,\n} from \"@cometchat/uikit-elements\";\nimport { CometChatThemeService } from \"../../../CometChatTheme.service\";\nimport {\n localize,\n CometChatUIKitConstants,\n fontHelper,\n DatePatterns,\n CometChatCallEvents,\n TitleAlignment,\n States,\n} from \"@cometchat/uikit-resources\";\nimport { CallLogUtils } from \"../../../Shared/Utils/CallLogUtils\";\n\n@Component({\n selector: \"cometchat-call-logs\",\n templateUrl: \"./cometchat-call-logs.component.html\",\n styleUrls: [\"./cometchat-call-logs.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometchatCallLogsComponent implements OnInit {\n @Input() title: string = localize(\"CALLS\");\n @Input() titleAlignment: TitleAlignment = TitleAlignment.left;\n @Input() listItemView!: any;\n @Input() subtitleView!: any;\n @Input() tailView!: any;\n @Input() menu!: TemplateRef<any>;\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() errorStateView!: TemplateRef<any>;\n @Input() emptyStateText: string = localize(\"NO_CALLS_FOUND\");\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() loadingStateView!: TemplateRef<any>;\n\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() infoIconUrl: string = \"assets/InfoIcon.svg\";\n @Input() missedAudioCallIconUrl: string = \"assets/missedAudioCallIconUrl.svg\";\n @Input() missedVideoCallIconUrl: string = \"assets/missedVideoCallIconUrl.svg\";\n @Input() outgoingAudioCallIconUrl: string =\n \"assets/outgoingAudioCallIconUrl.svg\";\n @Input() outgoingVideoCallIconUrl: string =\n \"assets/outgoingVideoCallIconUrl.svg\";\n @Input() incomingAudioCallIconUrl: string =\n \"assets/incomingAudioCallIconUrl.svg\";\n @Input() incomingVideoCallIconUrl: string =\n \"assets/incomingVideoCallIconUrl.svg\";\n\n @Input() callLogRequestBuilder!: any;\n @Input() cometchatCallObject!: CometChat.Call | null;\n @Input() onItemClick!: (call: any) => void;\n @Input() onInfoClick!: (call: any) => void;\n @Input() onError: (error: CometChat.CometChatException) => void = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n\n @Input() activeCall!: any;\n @Input() datePattern: DatePatterns = DatePatterns.time;\n @Input() DateSeparatorPattern: DatePatterns = DatePatterns.DayDate;\n\n @Input() callLogsStyle: CallLogsStyle = {\n width: \"100%\",\n height: \"100%\",\n };\n\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"32px\",\n height: \"32px\",\n };\n @Input() hideSeparator: boolean = false;\n\n @Input() dateSeparatorStyle: DateStyle = {\n height: \"\",\n width: \"\",\n };\n\n @Input() outgoingCallConfiguration: OutgoingCallConfiguration =\n new OutgoingCallConfiguration({});\n\n @Input() hideError: boolean = false;\n\n @Input() showSectionHeader: boolean = true;\n @Input() showMoreInfo: boolean = false;\n @Input() sectionHeaderField: any = \"initiatedAt\";\n\n @Input() backdropStyle: BackdropStyle = {};\n\n @Input() dateStyle: DateStyle = {};\n\n @Input() listItemStyle: ListItemStyle = {};\n @Input() ongoingCallConfiguration: CallScreenConfiguration =\n new CallScreenConfiguration({});\n\n public selectedOrActiveCallLogObject!: any;\n callsRequest!: any;\n public state: States = States.loading;\n listStyle: ListStyle = {};\n\n sessionId: string = \"\";\n public callLogsListenerId: string = \"calllogscalling\" + new Date().getTime();\n\n ongoingCallStyle: CallscreenStyle = {};\n\n showOngoingCall: boolean = false;\n\n public limit: number = 30;\n public callsList: any = [];\n public callsListenerId: string = \"callsList_\" + new Date().getTime();\n public loggedInUser: CometChat.User | null = null;\n public authToken: string = \"\";\n showOutgoingCallscreen: boolean = false;\n onScrolledToBottom: any = null;\n\n outgoingCallStyle: OutgoingCallStyle = {\n width: \"360px\",\n height: \"581px\",\n titleTextFont: \"700 22px Inter\",\n titleTextColor: \"RGB(20, 20, 20)\",\n subtitleTextFont: \"400 15px Inter\",\n subtitleTextColor: \"RGBA(20, 20, 20, 0.58)\",\n borderRadius: \"8px\",\n };\n\n constructor(\n private elementRef: ElementRef,\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) {\n this.state = States.loading;\n }\n\n ngOnInit(): void {\n this.setThemeStyle();\n this.attachListeners();\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n this.authToken = this.loggedInUser!.getAuthToken();\n this.callsRequest = this.getRequestBuilder();\n this.fetchNextCallLogsList();\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n }\n\n attachListeners() {\n CometChat.addCallListener(\n this.callLogsListenerId,\n new CometChat.CallListener({\n onIncomingCallReceived: (call: CometChat.Call) => {\n this.cometchatCallObject = call;\n this.ref.detectChanges();\n },\n onIncomingCallCancelled: (call: CometChat.Call) => {\n this.cometchatCallObject = null;\n\n this.ref.detectChanges();\n },\n onOutgoingCallRejected: (call: CometChat.Call) => {\n if (this.cometchatCallObject && this.cometchatCallObject.getSessionId() == call.getSessionId()) {\n this.cometchatCallObject = null;\n this.showOutgoingCallscreen = false;\n this.ref.detectChanges();\n }\n\n },\n onOutgoingCallAccepted: (call: CometChat.Call) => {\n if (this.cometchatCallObject && this.cometchatCallObject.getSessionId() == call.getSessionId()) {\n this.cometchatCallObject = call;\n this.openOngoingCallScreen(call);\n }\n\n },\n onCallEndedMessageReceived: (call: CometChat.Call) => {\n this.cometchatCallObject = null;\n this.ref.detectChanges();\n },\n })\n );\n }\n\n ngOnDestroy() {\n this.callsRequest = null;\n this.removeListener();\n\n this.ref.detach();\n }\n\n removeListener() {\n CometChat.removeCallListener(this.callLogsListenerId);\n }\n\n fetchNextCallLogsList = () => {\n this.onScrolledToBottom = null;\n this.state = States.loading;\n this.ref.detectChanges();\n this.callsRequest!.fetchNext()\n .then((callList: any) => {\n if (callList?.length > 0) {\n this.onScrolledToBottom = this.fetchNextCallLogsList;\n this.ref.detectChanges();\n }\n if (callList.length <= 0 && this.callsList?.length <= 0) {\n this.state = States.empty;\n this.ref.detectChanges();\n } else {\n this.state = States.loaded;\n\n this.callsList = [...this.callsList, ...callList];\n\n if (this.callsList.length < 1) {\n this.state = States.empty;\n this.ref.detectChanges();\n }\n this.ref.detectChanges();\n }\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n\n this.state = States.error;\n this.ref.detectChanges();\n }\n\n this.state = States.error;\n this.ref.detectChanges();\n });\n };\n\n getSubtitle(call: any): any {\n return CallLogUtils.getCallStatusWithType(call, this.loggedInUser!);\n }\n handleInfoClick = (call: any) => {\n this.selectedOrActiveCallLogObject = call;\n this.ref.detectChanges();\n\n if (this.onInfoClick) {\n this.onInfoClick(call);\n }\n };\n\n getActiveCall = (call: any) => {\n if (\n call.getSessionID() !== undefined &&\n call.getSessionID() === this.selectedOrActiveCallLogObject?.getSessionID()\n ) {\n return true;\n } else {\n return false;\n }\n };\n\n getSectionHeader = (call: any, index: any) => {\n if (this.callsList && this.callsList.length > 0 && index === 0) {\n return this.callsList[0][\"initiatedAt\"];\n }\n\n if (\n this.callsList &&\n this.callsList.length > 0 &&\n index > 0 &&\n CallLogUtils.isDateDifferent(\n this.callsList[index - 1][\"initiatedAt\"],\n this.callsList[index][\"initiatedAt\"]\n )\n ) {\n return call.getInitiatedAt();\n }\n };\n\n onListItemClickCall = (call: any) => {\n let receiverID = call.getReceiver().uid;\n let callType = call?.type;\n let receiverType = call?.receiverType;\n\n if (this.loggedInUser?.getUid() === call?.getInitiator()?.getUid()) {\n receiverID = call.getReceiver()?.uid;\n } else {\n receiverID = call.getInitiator()?.uid;\n }\n\n let localCallObj = new CometChat.Call(receiverID, callType, receiverType);\n\n if (receiverType == CometChat.RECEIVER_TYPE.USER) {\n CometChat.initiateCall(localCallObj)\n .then((outGoingCall) => {\n this.cometchatCallObject = outGoingCall;\n this.showOutgoingCallscreen = true;\n\n this.ref.detectChanges();\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n }\n };\n\n cancelOutgoingCall = () => {\n CometChatSoundManager.pause();\n CometChat.rejectCall(\n this.cometchatCallObject!.getSessionId(),\n CometChatUIKitConstants.calls.cancelled\n )\n .then((call) => {\n this.showOutgoingCallscreen = false;\n CometChatCallEvents.ccCallRejected.next(call);\n this.cometchatCallObject = null;\n this.ref.detectChanges();\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n this.showOutgoingCallscreen = false;\n this.ref.detectChanges();\n };\n\n getCallerName(call: any) {\n if (this.loggedInUser?.getUid() === call?.getInitiator()?.getUid()) {\n return call?.getReceiver()?.getName();\n }\n return call.getInitiator()?.getName();\n }\n getAvatarUrl(call: any) {\n if (this.loggedInUser?.getUid() === call?.getInitiator()?.getUid()) {\n return call?.receiver?.avatar || call?.receiver?.icon;\n }\n return call.initiator?.avatar || call?.initiator?.icon;\n }\n getRequestBuilder() {\n if (this.callLogRequestBuilder) {\n return this.callLogRequestBuilder?.build();\n } else {\n return new CometChatUIKitCalls.CallLogRequestBuilder()\n .setLimit(this.limit)\n .setCallCategory(\"call\")\n .setAuthToken(this.authToken)\n .build();\n }\n }\n\n getCallTypeIcon(call: any) {\n const missedCall = CallLogUtils.isMissedCall(call, this.loggedInUser!);\n const callType = call.getType();\n let icon;\n if (missedCall) {\n if (callType === CometChat.CALL_TYPE.AUDIO) {\n icon = this.missedAudioCallIconUrl;\n } else {\n icon = this.missedVideoCallIconUrl;\n }\n } else if (call.getInitiator().getUid() === this.loggedInUser!.getUid()) {\n if (callType === CometChat.CALL_TYPE.AUDIO) {\n icon = this.outgoingAudioCallIconUrl;\n } else {\n icon = this.outgoingVideoCallIconUrl;\n }\n } else {\n if (callType === CometChat.CALL_TYPE.AUDIO) {\n icon = this.incomingAudioCallIconUrl;\n } else {\n icon = this.incomingVideoCallIconUrl;\n }\n }\n return icon;\n }\n\n callLogStyle = () => {\n return {\n height: this.callLogsStyle.height,\n width: this.callLogsStyle.width,\n background: this.callLogsStyle.background,\n border: this.callLogsStyle.border,\n borderRadius: this.callLogsStyle.borderRadius,\n };\n };\n\n setThemeStyle() {\n this.setAvatarStyle();\n this.setDateStyle();\n this.setCallLogsStyle();\n this.listStyle = {\n titleTextFont: this.callLogsStyle.titleFont,\n titleTextColor: this.callLogsStyle.titleColor,\n emptyStateTextFont: this.callLogsStyle.emptyStateTextFont,\n emptyStateTextColor: this.callLogsStyle.emptyStateTextColor,\n errorStateTextFont: this.callLogsStyle.errorStateTextFont,\n errorStateTextColor: this.callLogsStyle.errorStateTextColor,\n loadingIconTint: this.callLogsStyle.loadingIconTint,\n separatorColor: this.callLogsStyle.dateSeparatorTextColor,\n\n sectionHeaderTextColor:\n this.callLogsStyle.dateSeparatorTextColor || \"rgba(20, 20, 20, 0.46)\",\n sectionHeaderTextFont: this.callLogsStyle.dateSeparatorTextFont,\n };\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"36px\",\n height: \"36px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n });\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };\n }\n setDateStyle() {\n let defaultStyle: DateStyle = new DateStyle({\n textFont: fontHelper(this.themeService.theme.typography.caption2),\n textColor: this.themeService.theme.palette.getAccent600(),\n background: \"transparent\",\n });\n this.dateStyle = { ...defaultStyle, ...this.dateStyle };\n }\n\n getListItemStyle(call: CometChat.Call) {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: this.themeService.theme.palette.getAccent100(),\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n // titleColor: this.isMissedCall(call, this.loggedInUser!)\n titleColor: CallLogUtils.isMissedCall(call, this.loggedInUser!)\n ? this.themeService.theme.palette.getError()\n : this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n padding: \"10px\",\n hoverBackground: this.themeService.theme.palette.getAccent50(),\n });\n return { ...defaultStyle, ...this.listItemStyle };\n }\n\n setCallLogsStyle() {\n let defaultStyle: CallLogsStyle = new CallLogsStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n dateSeparatorTextColor: this.themeService.theme.palette.getAccent600(),\n dateTextColor: this.themeService.theme.palette.getAccent600(),\n dateTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n missedCallIconTint: this.themeService.theme.palette.getAccent600(),\n borderRadius: \"\",\n infoIconTint: this.themeService.theme.palette.getPrimary(),\n outgoingCallIconTint: this.themeService.theme.palette.getAccent600(),\n incomingCallIconTint: this.themeService.theme.palette.getAccent600(),\n callStatusTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n callStatusTextColor: this.themeService.theme.palette.getAccent600(),\n\n dateSeparatorTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n });\n\n this.callLogsStyle = { ...defaultStyle, ...this.callLogsStyle };\n }\n subtitleStyle = () => {\n return {\n font: this.callLogsStyle.callStatusTextFont,\n color: this.callLogsStyle.callStatusTextColor,\n };\n };\n\n infoButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.callLogsStyle.infoIconTint,\n };\n };\n\n getCallBuilder(): typeof CometChatUIKitCalls.CallSettings | undefined {\n let audioOnlyCall: boolean =\n this.activeCall?.getType() == CometChatUIKitConstants.MessageTypes.audio\n ? true\n : false;\n const callSettings = new CometChatUIKitCalls.CallSettingsBuilder()\n .enableDefaultLayout(true)\n .setIsAudioOnlyCall(audioOnlyCall)\n .setCallListener(\n new CometChatUIKitCalls.OngoingCallListener({\n onCallEnded: () => {\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, null);\n\n if (\n this.cometchatCallObject?.getReceiverType() ==\n CometChatUIKitConstants.MessageReceiverType.user\n ) {\n CometChatUIKitCalls.endSession();\n CometChat.clearActiveCall();\n this.closeCallScreen();\n }\n },\n onCallEndButtonPressed: () => {\n StorageUtils.setItem(CometChatUIKitConstants.calls.activecall, null);\n\n if (\n this.cometchatCallObject?.getReceiverType() ==\n CometChatUIKitConstants.MessageReceiverType.user\n ) {\n CometChat.endCall(this.sessionId)\n .then((call: CometChat.Call) => {\n CometChatUIKitCalls.endSession();\n CometChatCallEvents.ccCallEnded.next(call);\n this.closeCallScreen();\n })\n .catch((err: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(err);\n }\n });\n } else {\n this.closeCallScreen();\n }\n },\n onError: (error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n },\n })\n )\n .build();\n return callSettings;\n }\n\n closeCallScreen() {\n this.cometchatCallObject = null;\n this.showOngoingCall = false;\n this.sessionId = \"\";\n this.showOutgoingCallscreen = false;\n this.cometchatCallObject = null;\n this.ref.detectChanges();\n }\n\n openOngoingCallScreen(call: CometChat.Call) {\n this.showOutgoingCallscreen = false;\n this.cometchatCallObject = call;\n this.sessionId = call.getSessionId();\n this.showOngoingCall = true;\n this.ref.detectChanges();\n }\n\n setOngoingCallStyle = () => {\n let defaultStyle = new CallscreenStyle({\n maxHeight: \"100%\",\n maxWidth: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"#1c2226\",\n minHeight: \"400px\",\n minWidth: \"400px\",\n minimizeIconTint: this.themeService.theme.palette.getAccent900(),\n maximizeIconTint: this.themeService.theme.palette.getAccent900(),\n });\n this.ongoingCallStyle = { ...defaultStyle, ...this.ongoingCallStyle };\n };\n\n getDirectionIconStyle(call: any) {\n let tint;\n const missedCall = CallLogUtils.isMissedCall(call, this.loggedInUser!);\n if (missedCall) {\n tint =\n this.callLogsStyle.missedCallIconTint ||\n this.themeService.theme.palette.getAccent600();\n } else if (call.getInitiator().getUid() === this.loggedInUser?.getUid()) {\n tint =\n this.callLogsStyle.outgoingCallIconTint ||\n this.themeService.theme.palette.getAccent600();\n } else {\n tint =\n this.callLogsStyle.incomingCallIconTint ||\n this.themeService.theme.palette.getAccent600();\n }\n\n return {\n height: \"18px\",\n width: \"18px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n iconTint: tint,\n };\n }\n}\n","<div class=\"cc-call-logs\" [ngStyle]=\"callLogStyle()\">\n <div class=\"cc-menus\" *ngIf=\"menu\">\n <ng-container *ngTemplateOutlet=\"menu\">\n </ng-container>\n </div>\n <cometchat-list [hideSearch]=\"true\" [listItemView]=\"listItemView ? listItemView : listItem\"\n [onScrolledToBottom]=\"onScrolledToBottom\" [list]=\"callsList\" [hideError]=\"hideError\" [title]=\"title\"\n [emptyStateText]=\"emptyStateText\" [loadingIconURL]=\"loadingIconURL\" [titleAlignment]=\"titleAlignment\"\n [loadingStateView]=\"loadingStateView\" [emptyStateView]=\"emptyStateView\" [sectionHeaderField]=\"sectionHeaderField\"\n [showSectionHeader]=\"showSectionHeader\" [errorStateView]=\"errorStateView\" [errorStateText]=\"errorStateText\"\n [listStyle]=\"listStyle\" [state]=\"state\" [getSectionHeader]=\"getSectionHeader!\">\n </cometchat-list>\n\n <ng-template #listItem let-call>\n\n <cometchat-list-item [title]=\"getCallerName(call)\" [avatarURL]=\"getAvatarUrl(call)\"\n [avatarName]=\"getCallerName(call)\" [listItemStyle]=\"getListItemStyle(call)\" [avatarStyle]=\"avatarStyle\"\n [hideSeparator]=\"hideSeparator\" (cc-listitem-clicked)=\"onListItemClickCall(call)\"\n [isActive]=\"getActiveCall(call)\">\n <div slot=\"subtitleView\" class=\"cc-call-logs__subtitle-view\" *ngIf=\"subtitleView;else groupSubtitle\">\n <ng-container *ngTemplateOutlet=\"subtitleView\">\n </ng-container>\n </div>\n <ng-template #groupSubtitle>\n <div slot=\"subtitleView\" [ngStyle]=\"subtitleStyle()\" class=\"cc-call-logs__subtitle-view\">\n <div class=\"cc-call__icon\">\n <cometchat-icon [iconStyle]=\"getDirectionIconStyle(call)\" [URL]=\"getCallTypeIcon(call)\"></cometchat-icon>\n </div>\n <div class=\"cc-call__type\">\n {{getSubtitle(call)}}\n </div>\n </div>\n </ng-template>\n <div slot=\"tailView\" class=\"cc-call-logs__tail-view\" *ngIf=\"tailView;else defaultTailView\">\n <ng-container *ngTemplateOutlet=\"tailView\">\n </ng-container>\n </div>\n <ng-template #defaultTailView>\n <div slot=\"tailView\" [ngStyle]=\"subtitleStyle()\" class=\"cc-call-logs__subtitle-view\">\n <div class=\"tail__view\">\n <div class=\"cc-call-logs__date\">\n <cometchat-date [dateStyle]=\"dateStyle\" [timestamp]=\"call?.initiatedAt\"\n [pattern]=\"datePattern\"></cometchat-date>\n <cometchat-button *ngIf=\"showMoreInfo\" [iconURL]=\"infoIconUrl\" class=\"cc-details__close-button\"\n [buttonStyle]=\"infoButtonStyle()\" (cc-button-clicked)=\"handleInfoClick(call)\"></cometchat-button>\n </div>\n </div>\n </div>\n </ng-template>\n\n\n\n </cometchat-list-item>\n\n </ng-template>\n\n\n</div>\n\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\" [maximizeIconURL]=\"ongoingCallConfiguration.maximizeIconURL\"\n [minimizeIconURL]=\"ongoingCallConfiguration.minimizeIconURL\" [sessionID]=\"sessionId\"\n [callSettingsBuilder]=\"getCallBuilder()!\"></cometchat-ongoing-call>\n\n<cometchat-backdrop *ngIf=\"showOutgoingCallscreen\" [backdropStyle]=\"backdropStyle\">\n\n <cometchat-outgoing-call [customSoundForCalls]=\"outgoingCallConfiguration.customSoundForCalls\"\n [onError]=\"outgoingCallConfiguration.onError\"\n [disableSoundForCalls]=\"outgoingCallConfiguration.disableSoundForCalls\"\n [avatarStyle]=\"outgoingCallConfiguration.avatarStyle\" [customView]=\"outgoingCallConfiguration.customView\"\n [declineButtonIconURL]=\"outgoingCallConfiguration.declineButtonIconURL\"\n [onCloseClicked]=\"outgoingCallConfiguration.onCloseClicked || cancelOutgoingCall\"\n [outgoingCallStyle]=\"outgoingCallConfiguration.outgoingCallStyle || outgoingCallStyle\"\n [call]=\"cometchatCallObject!\"></cometchat-outgoing-call>\n</cometchat-backdrop>","import { CometChatOngoingCall } from \"./../CometChatOngoingCall/cometchat-ongoing-call.module\";\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometchatCallLogsComponent } from \"./cometchat-call-logs/cometchat-call-logs.component\";\n\nimport { CometChatList } from \"../../CometChatList/cometchat-list.module\";\nimport \"@cometchat/uikit-elements\";\nimport { CometChatOutgoingCall } from \"../CometChatOutgoingCall/cometchat-outgoing-call.module\";\n@NgModule({\n declarations: [CometchatCallLogsComponent],\n imports: [\n CommonModule,\n CometChatList,\n CometChatOutgoingCall,\n CometChatOngoingCall,\n ],\n exports: [CometchatCallLogsComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CometChatCallLogs {}\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n} from \"@angular/core\";\n\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { ListStyle, BaseStyle } from \"@cometchat/uikit-shared\";\nimport {\n AvatarStyle,\n DateStyle,\n ListItemStyle,\n} from \"@cometchat/uikit-elements\";\nimport { CometChatThemeService } from \"../../../CometChatTheme.service\";\nimport {\n fontHelper,\n DatePatterns,\n States,\n localize,\n} from \"@cometchat/uikit-resources\";\nimport { CallLogParticipantsStyle } from \"@cometchat/uikit-shared\";\nimport { CallLogUtils } from \"../../../Shared/Utils/CallLogUtils\";\n\n@Component({\n selector: \"cometchat-call-log-participants\",\n templateUrl: \"./cometchat-call-log-participants.component.html\",\n styleUrls: [\"./cometchat-call-log-participants.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatCallLogParticipantsComponent implements OnInit {\n @Input() title: string = localize(\"PARTICIPANTS\");\n @Input() call!: any;\n @Input() backIconUrl: string = \"assets/backbutton.svg\";\n @Input() onBackClick!: () => void;\n @Input() datePattern: DatePatterns = DatePatterns.DayDateTime;\n @Input() subtitleView!: any;\n @Input() listItemView!: any;\n @Input() onError: (error: CometChat.CometChatException) => void = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n\n @Input() hideSeparator: boolean = false;\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"32px\",\n height: \"32px\",\n };\n @Input() dateStyle: DateStyle = {};\n @Input() CallLogParticipantsStyle: CallLogParticipantsStyle = {\n width: \"100%\",\n height: \"100%\",\n };\n @Input() listItemStyle: ListItemStyle = {};\n\n public participantsList: any = [];\n public loggedInUser: CometChat.User | null = null;\n public state: States = States.loaded;\n listStyle: ListStyle = {};\n public limit: number = 30;\n\n constructor(\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) {\n this.state = States.loading;\n }\n\n ngOnInit(): void {\n\n this.setThemeStyle();\n \n CometChat.getLoggedInUser()?.then((user: CometChat.User | null) => {\n this.participantsList = this.call?.getParticipants();\n this.ref.detectChanges()\n this.state = States.loaded;\n this.loggedInUser = user;\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n }\n\n getTailView(totalSeconds: any) {\n return CallLogUtils.convertMinutesToHoursMinutesSeconds(totalSeconds);\n }\n callStyle = () => {\n return {\n height: this.CallLogParticipantsStyle.height,\n width: this.CallLogParticipantsStyle.width,\n background: this.CallLogParticipantsStyle.background,\n border: this.CallLogParticipantsStyle.border,\n borderRadius: this.CallLogParticipantsStyle.borderRadius,\n };\n };\n setThemeStyle() {\n this.setAvatarStyle();\n this.setDateStyle();\n this.setCallsStyle();\n this.listStyle = {\n titleTextFont: this.CallLogParticipantsStyle.titleFont,\n titleTextColor: this.CallLogParticipantsStyle.titleColor,\n };\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"36px\",\n height: \"36px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n outerViewBorderSpacing: \"\",\n });\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };\n }\n setDateStyle() {\n let defaultStyle: DateStyle = new DateStyle({\n textFont: fontHelper(this.themeService.theme.typography.caption2),\n textColor: this.themeService.theme.palette.getAccent600(),\n background: \"transparent\",\n });\n this.dateStyle = { ...defaultStyle, ...this.dateStyle };\n }\n\n getListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: this.themeService.theme.palette.getAccent100(),\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent50(),\n hoverBackground: this.themeService.theme.palette.getAccent50(),\n });\n return { ...defaultStyle, ...this.listItemStyle };\n }\n\n setCallsStyle() {\n let defaultStyle: CallLogParticipantsStyle = new CallLogParticipantsStyle({\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n callStatusFont: fontHelper(this.themeService.theme.typography.subtitle2),\n callStatusColor: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n backIconTint: this.themeService.theme.palette.getPrimary(),\n });\n this.CallLogParticipantsStyle = {\n ...defaultStyle,\n ...this.CallLogParticipantsStyle,\n };\n }\n subtitleStyle = () => {\n return {\n font: this.CallLogParticipantsStyle.callStatusFont,\n color: this.CallLogParticipantsStyle.callStatusColor,\n };\n };\n titleStyle = () => {\n return {\n font: this.CallLogParticipantsStyle.titleFont,\n color: this.CallLogParticipantsStyle.titleColor,\n background: \"transparent\",\n };\n };\n\n handleBackClick = () => {\n if (this.onBackClick) {\n this.onBackClick();\n }\n };\n\n backButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint:\n this.CallLogParticipantsStyle.backIconTint ||\n this.themeService.theme.palette.getPrimary(),\n };\n };\n}\n","<div class=\"cc-call-log-participants\">\n\n <div class=\"cc-call-log-participants__header\">\n\n <div *ngIf=\"onBackClick\">\n <cometchat-button [iconURL]=\"backIconUrl\" class=\"cc-details__close-button\" [buttonStyle]=\"backButtonStyle()\"\n (cc-button-clicked)=\"handleBackClick()\"></cometchat-button>\n\n </div>\n <div [ngStyle]=\"titleStyle()\">\n {{title}}\n </div>\n </div>\n\n <cometchat-list [hideSearch]=\"true\" [listItemView]=\"listItemView ? listItemView : listItem\" [list]=\"participantsList\"\n [listStyle]=\"listStyle\">\n </cometchat-list>\n <ng-template #listItem let-participant>\n <cometchat-list-item [title]=\"participant.name\" [avatarURL]=\"participant.avatar\" [avatarName]=\"participant.name\"\n [hideSeparator]=\"hideSeparator\" [listItemStyle]=\"getListItemStyle()\">\n <div slot=\"subtitleView\" class=\"cc-call-log-participants__subtitle-view\" *ngIf=\"subtitleView;else groupSubtitle\">\n <ng-container *ngTemplateOutlet=\"subtitleView\">\n </ng-container>\n </div>\n <ng-template #groupSubtitle>\n <div slot=\"subtitleView\" [ngStyle]=\"subtitleStyle()\" class=\"cc-call-log-participants__subtitle-view\">\n <div class=\"cc-call__type\">\n {{ getTailView(participant.totalDurationInMinutes)! }}\n </div>\n </div>\n </ng-template>\n\n <div slot=\"tailView\" class=\"cc-call-log-participants__tail-view\">\n <cometchat-date [dateStyle]=\"dateStyle\" [timestamp]=\"call?.getInitiatedAt()!\"\n [pattern]=\"datePattern\"></cometchat-date>\n\n\n </div>\n </cometchat-list-item>\n <ng-template #tailView>\n\n </ng-template>\n </ng-template>\n</div>","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatCallLogParticipantsComponent } from \"./cometchat-call-log-participants/cometchat-call-log-participants.component\";\n\nimport { CometChatList } from \"../../CometChatList/cometchat-list.module\";\nimport \"@cometchat/uikit-elements\";\n@NgModule({\n declarations: [CometChatCallLogParticipantsComponent],\n imports: [CommonModule, CometChatList],\n exports: [CometChatCallLogParticipantsComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CometChatCallLogParticipants {}\n","import {\n Component,\n OnInit,\n ChangeDetectorRef,\n Input,\n ChangeDetectionStrategy,\n TemplateRef,\n} from \"@angular/core\";\n\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { ListStyle, BaseStyle } from \"@cometchat/uikit-shared\";\nimport {\n AvatarStyle,\n DateStyle,\n IconStyle,\n ListItemStyle,\n} from \"@cometchat/uikit-elements\";\nimport { CometChatThemeService } from \"../../../CometChatTheme.service\";\nimport {\n CometChatOption,\n localize,\n fontHelper,\n DatePatterns,\n SelectionMode,\n States,\n} from \"@cometchat/uikit-resources\";\nimport {\n CallLogRecordingsStyle,\n CallingDetailsUtils,\n} from \"@cometchat/uikit-shared\";\nimport { CallLogUtils } from \"../../../Shared/Utils/CallLogUtils\";\n@Component({\n selector: \"cometchat-call-log-recordings\",\n templateUrl: \"./cometchat-call-log-recordings.component.html\",\n styleUrls: [\"./cometchat-call-log-recordings.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatCallLogRecordingsComponent implements OnInit {\n @Input() title: string = localize(\"RECORDING\");\n @Input() call!: any;\n @Input() onBackClick!: () => void;\n @Input() backIconURL: string = \"assets/backbutton.svg\";\n @Input() datePattern: DatePatterns = DatePatterns.DayDateTime;\n @Input() subtitleView!: any;\n @Input() listItemView!: any;\n @Input() downloadIconURL: string = \"assets/download.svg\";\n @Input() onDownloadClick!: (item: any) => void;\n\n @Input() hideDownloadButton: boolean = false;\n\n @Input() onError: (error: CometChat.CometChatException) => void = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"32px\",\n height: \"32px\",\n };\n @Input() dateStyle: DateStyle = {};\n @Input() CallLogRecordingsStyle: CallLogRecordingsStyle = {\n width: \"100%\",\n height: \"100%\",\n };\n @Input() listItemStyle: ListItemStyle = {};\n public recordingsList: any = [];\n public loggedInUser: CometChat.User | null = null;\n\n public state: States = States.loading;\n listStyle: ListStyle = {};\n public limit: number = 30;\n @Input() options!: ((member: CometChat.Call) => CometChatOption[]) | null;\n iconStyle: IconStyle = {\n height: \"16px\",\n width: \"16px\",\n iconTint: \"RGBA(20, 20, 20, 0.68)\",\n };\n\n constructor(\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) {\n this.state = States.loading;\n }\n ngOnInit(): void {\n this.setThemeStyle();\n \n CometChat.getLoggedInUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n this.recordingsList = this.call?.getRecordings();\n this.state = States.loaded;\n\n this.ref.detectChanges()\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n }\n\n handleDownloadClick(item: any) {\n if (this.onDownloadClick) {\n this.onDownloadClick(item);\n } else {\n this.download(item?.getRecordingURL());\n }\n }\n\n download = async (url: any) => {\n try {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `Failed to download file (HTTP status: ${response.status})`\n );\n }\n const blob = await response.blob();\n\n // Create a temporary link element\n const link = document.createElement(\"a\");\n link.href = window.URL.createObjectURL(blob);\n link.download = \"file.mp4\"; // Set the desired file name here\n link.style.display = \"none\";\n\n // Append the link to the body and trigger the download\n document.body.appendChild(link);\n link.click();\n\n // Clean up\n document.body.removeChild(link);\n } catch (error) {\n console.error(\"Error downloading file:\", error);\n }\n };\n\n getSubtitle(totalSeconds: number) {\n return CallLogUtils.convertMinutesToHoursMinutesSeconds(totalSeconds);\n }\n\n callStyle = () => {\n return {\n height: this.CallLogRecordingsStyle.height,\n width: this.CallLogRecordingsStyle.width,\n background: this.CallLogRecordingsStyle.background,\n border: this.CallLogRecordingsStyle.border,\n borderRadius: this.CallLogRecordingsStyle.borderRadius,\n };\n };\n setThemeStyle() {\n this.iconStyle.iconTint = this.themeService.theme.palette.getAccent600();\n this.setAvatarStyle();\n this.setDateStyle();\n this.setCallRecordingsStyle();\n this.listStyle = {\n titleTextFont: this.CallLogRecordingsStyle.titleFont,\n titleTextColor: this.CallLogRecordingsStyle.titleColor,\n };\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"36px\",\n height: \"36px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n });\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };\n }\n setDateStyle() {\n let defaultStyle: DateStyle = new DateStyle({\n textFont: fontHelper(this.themeService.theme.typography.caption2),\n textColor: this.themeService.theme.palette.getAccent600(),\n background: \"transparent\",\n });\n this.dateStyle = { ...defaultStyle, ...this.dateStyle };\n }\n\n getListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: this.themeService.theme.palette.getAccent100(),\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n border: \"none\",\n separatorColor:\n \"rgb(222 222 222 / 46%)\" ||\n this.themeService.theme.palette.getAccent200(),\n hoverBackground: this.themeService.theme.palette.getAccent50(),\n padding: \"0\",\n });\n return { ...defaultStyle, ...this.listItemStyle };\n }\n setCallRecordingsStyle() {\n let defaultStyle: CallLogRecordingsStyle = new CallLogRecordingsStyle({\n recordingDurationFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n recordingDurationColor: this.themeService.theme.palette.getAccent600(),\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n\n backIconTint: this.themeService.theme.palette.getPrimary(),\n dateTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n dateTextColor: this.themeService.theme.palette.getAccent600(),\n });\n this.CallLogRecordingsStyle = {\n ...this.CallLogRecordingsStyle,\n ...defaultStyle,\n };\n }\n subtitleStyle = () => {\n return {\n font: this.CallLogRecordingsStyle.recordingDurationFont,\n color: this.CallLogRecordingsStyle.recordingDurationColor,\n };\n };\n\n backButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.CallLogRecordingsStyle?.backIconTint,\n };\n };\n downLoadIconStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.CallLogRecordingsStyle?.backIconTint,\n };\n };\n\n handleBackClick = () => {\n if (this.onBackClick) {\n this.onBackClick();\n this.ref.detectChanges();\n }\n };\n titleStyle = () => {\n return {\n font: this.CallLogRecordingsStyle.titleFont,\n color: this.CallLogRecordingsStyle.titleColor,\n background: \"transparent\",\n };\n };\n}\n","<div class=\"cc-call-log-recordings\" [ngStyle]=\"callStyle()\">\n\n <div class=\"cc-call-log-recordings__header\">\n\n <div *ngIf=\"onBackClick\">\n <cometchat-button [iconURL]=\"backIconURL\" class=\"cc-details__close-button\" [buttonStyle]=\"backButtonStyle()\"\n (cc-button-clicked)=\"handleBackClick()\"></cometchat-button>\n\n </div>\n <div [ngStyle]=\"titleStyle()\">\n {{title}}\n </div>\n </div>\n <cometchat-list [hideSearch]=\"true\" [listItemView]=\"listItem\" [list]=\"recordingsList\"\n [title]=\"''\" [listStyle]=\"listStyle\" [state]=\"state\">\n </cometchat-list>\n\n <ng-template #listItem let-recording>\n <cometchat-list-item [title]=\"recording.rid\" [avatarURL]=\"recording?.avatar\" [listItemStyle]=\"getListItemStyle()\">\n \n <div slot=\"subtitleView\" *ngIf=\"subtitleView;else defaultSubtitleView\">\n <ng-container *ngTemplateOutlet=\"subtitleView\">\n </ng-container>\n </div>\n <ng-template #defaultSubtitleView>\n <div slot=\"subtitleView\" [ngStyle]=\"subtitleStyle()\" class=\"cc-call-log-recordings__subtitle-view\">\n <div class=\"cc-call__type\">\n {{getSubtitle(recording.duration)}}\n\n </div>\n </div>\n </ng-template>\n\n\n <div slot=\"tailView\" class=\"cc-call-log-recordings__tail-view\">\n\n\n <div class=\"tail__view\">\n <div class=\"cc-call-log-recordings__date\">\n <cometchat-date [dateStyle]=\"dateStyle\" [timestamp]=\"recording?.endTime\"\n [pattern]=\"datePattern\"></cometchat-date>\n <cometchat-button *ngIf=\"!hideDownloadButton\" [iconURL]=\"downloadIconURL\" class=\"cc-details__close-button\"\n [buttonStyle]=\"downLoadIconStyle()\"\n (cc-button-clicked)=\"handleDownloadClick(recording)\"></cometchat-button>\n </div>\n </div>\n\n </div>\n </cometchat-list-item>\n\n </ng-template>\n</div>","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatCallLogRecordingsComponent } from \"./cometchat-call-log-recordings/cometchat-call-log-recordings.component\";\n\nimport { CometChatList } from \"../../CometChatList/cometchat-list.module\";\nimport \"@cometchat/uikit-elements\";\n@NgModule({\n declarations: [CometChatCallLogRecordingsComponent],\n imports: [CommonModule, CometChatList],\n exports: [CometChatCallLogRecordingsComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CometChatCallLogRecordings {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n} from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\n\nimport { CometChatUIKitCalls, ListStyle, OutgoingCallStyle } from \"@cometchat/uikit-shared\";\nimport {\n AvatarStyle,\n DateStyle,\n IconStyle,\n ListItemStyle,\n} from \"@cometchat/uikit-elements\";\nimport { Subscription } from \"rxjs\";\nimport { CometChatThemeService } from \"../../../CometChatTheme.service\";\nimport {\n localize,\n CometChatUIKitConstants,\n fontHelper,\n DatePatterns,\n States,\n} from \"@cometchat/uikit-resources\";\nimport { CallLogHistoryStyle } from \"@cometchat/uikit-shared\";\nimport { CometChatException } from \"../../../Shared/Utils/ComeChatException\";\nimport { CallLogUtils } from \"../../../Shared/Utils/CallLogUtils\";\n\n@Component({\n selector: \"cometchat-call-log-history\",\n templateUrl: \"./cometchat-call-log-history.component.html\",\n styleUrls: [\"./cometchat-call-log-history.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatCallLogHistoryComponent implements OnInit {\n @Input() user!: CometChat.User;\n @Input() group!: CometChat.Group;\n @Input() title: string = localize(\"CALL_HISTORY\");\n @Input() emptyStateView!: TemplateRef<any>;\n @Input() errorStateView!: TemplateRef<any>;\n @Input() loadingStateView!: TemplateRef<any>;\n @Input() subtitleView!: TemplateRef<any>;\n @Input() listItemView!: TemplateRef<any>;\n @Input() menu!: TemplateRef<any>;\n\n @Input() emptyStateText: string = localize(\"NO_CALLS_FOUND\");\n @Input() errorStateText: string = localize(\"SOMETHING_WRONG\");\n @Input() loadingIconURL: string = \"assets/Spinner.svg\";\n @Input() backIconUrl: string = \"assets/backbutton.svg\";\n\n @Input() onItemClick!: (call: any) => void; \n @Input() onBackClick!: () => void;\n\n @Input() callLogRequestBuilder!: any;\n\n @Input() DateSeparatorPattern: DatePatterns = DatePatterns.time;\n\n @Input() hideSeparator: boolean = false;\n\n @Input() dateSeparatorStyle: DateStyle = {\n height: \"\",\n width: \"\",\n };\n\n @Input() hideError: boolean = false;\n\n @Input() onError: (error: CometChat.CometChatException) => void = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n @Input() showSectionHeader: boolean = true;\n @Input() sectionHeaderField: any = \"initiatedAt\";\n @Input() datePattern: DatePatterns = DatePatterns.DayDateTime;\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"32px\",\n height: \"32px\",\n };\n @Input() dateStyle: DateStyle = {};\n @Input() CallLogHistoryStyle: CallLogHistoryStyle = {\n width: \"100%\",\n height: \"100%\",\n };\n\n @Input() listItemStyle: ListItemStyle = {};\n\n callsRequest!: any;\n public state: States = States.loading;\n ccOutgoingCall!: Subscription;\n ccCallAccepted!: Subscription;\n ccCallRejected!: Subscription;\n ccCallEnded!: Subscription;\n listStyle: ListStyle = {};\n public limit: number = 30;\n public callHistory: any[] = [];\n public callsListenerId: string = \"callsList_\" + new Date().getTime();\n public loggedInUser: CometChat.User | null = null;\n public authToken: string = \"\";\n showOutgoingCallscreen: boolean = false;\n onScrolledToBottom: any = null;\n\n constructor(\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) {\n this.state = States.loading;\n }\n ngOnInit(): void {\n this.setThemeStyle();\n\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n this.authToken = this.loggedInUser!.getAuthToken();\n this.callsRequest = this.getRequestBuilder?.();\n this.fetchNextCallHistoryList();\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n this.state = States.loading;\n }\n\n handleItemClick(call: any) {\n if (this.onItemClick) {\n this.onItemClick(call);\n }\n }\n\n ngOnDestroy() {\n this.callsRequest = null;\n this.ref.detach();\n }\n\n fetchNextCallHistoryList = () => {\n this.onScrolledToBottom = null;\n this.state = States.loading;\n this.ref.detectChanges();\n try {\n this.callsRequest!.fetchNext()\n .then(\n (callHistory: any) => {\n if (callHistory?.length > 0) {\n this.onScrolledToBottom = this.fetchNextCallHistoryList;\n this.ref.detectChanges();\n }\n if (\n (callHistory.length <= 0 && this.callHistory?.length <= 0) ||\n (callHistory.length === 0 && this.callHistory?.length <= 0)\n ) {\n this.state = States.empty;\n this.ref.detectChanges();\n } else {\n this.state = States.loaded;\n\n this.callHistory = [...this.callHistory, ...callHistory];\n\n this.ref.detectChanges();\n }\n },\n (error: any) => {\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n this.state = States.error;\n this.ref.detectChanges();\n }\n )\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n } catch (error: any) {\n this.state = States.error;\n this.ref.detectChanges();\n if (this.onError) {\n this.onError(CometChatException(error));\n }\n }\n };\n\n getSubtitle(call: any): string {\n return CallLogUtils.getCallStatusWithType(call, this.loggedInUser!);\n }\n\n getRequestBuilder() {\n if (this.callLogRequestBuilder) {\n return this.callLogRequestBuilder?.build();\n } else {\n if (this.user) {\n return new CometChatUIKitCalls.CallLogRequestBuilder()\n .setLimit(this.limit)\n .setCallCategory(\"call\")\n .setAuthToken(this.authToken)\n .setUid(this.user.getUid())\n .build();\n } else if (this.group) {\n return new CometChatUIKitCalls.CallLogRequestBuilder()\n .setLimit(this.limit)\n .setCallCategory(\"call\")\n .setAuthToken(this.authToken)\n .setGuid(this.group.getGuid())\n .build();\n } else {\n return null;\n }\n }\n }\n\n callLogHistoryStyle = () => {\n return {\n height: this.CallLogHistoryStyle.height,\n width: this.CallLogHistoryStyle.width,\n background: this.CallLogHistoryStyle.background,\n border: this.CallLogHistoryStyle.border,\n borderRadius: this.CallLogHistoryStyle.borderRadius,\n };\n };\n\n setThemeStyle() {\n this.setAvatarStyle();\n this.setDateStyle();\n this.setCallLogHistoryStyle();\n this.listStyle = {\n titleTextFont: this.CallLogHistoryStyle.titleFont,\n titleTextColor: this.CallLogHistoryStyle.titleColor,\n emptyStateTextFont: this.CallLogHistoryStyle.emptyStateTextFont,\n emptyStateTextColor: this.CallLogHistoryStyle.emptyStateTextColor,\n errorStateTextFont: this.CallLogHistoryStyle.errorStateTextFont,\n errorStateTextColor: this.CallLogHistoryStyle.errorStateTextColor,\n loadingIconTint: this.CallLogHistoryStyle.loadingIconTint,\n separatorColor: this.CallLogHistoryStyle.dateSeparatorTextColor,\n sectionHeaderTextColor: this.CallLogHistoryStyle.dateSeparatorTextColor,\n sectionHeaderTextFont: this.CallLogHistoryStyle.dateSeparatorTextFont,\n };\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"36px\",\n height: \"36px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n });\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };\n }\n setDateStyle() {\n let defaultStyle: DateStyle = new DateStyle({\n textFont: fontHelper(this.themeService.theme.typography.subtitle2),\n textColor: this.themeService.theme.palette.getAccent600(),\n background: \"transparent\",\n });\n this.dateStyle = { ...defaultStyle, ...this.dateStyle };\n }\n\n getListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n activeBackground: this.themeService.theme.palette.getAccent100(),\n borderRadius: \"0\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n border: \"none\",\n separatorColor:\n \"rgb(222 222 222 / 46%)\" ||\n this.themeService.theme.palette.getAccent200(),\n hoverBackground: this.themeService.theme.palette.getAccent50(),\n padding: \"0\",\n });\n return { ...defaultStyle, ...this.listItemStyle };\n }\n\n setCallLogHistoryStyle() {\n let defaultStyle: CallLogHistoryStyle = new CallLogHistoryStyle({\n background: this.themeService.theme.palette.getBackground(),\n border: `1px solid ${this.themeService.theme.palette.getAccent50()}`,\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n emptyStateTextColor: this.themeService.theme.palette.getAccent600(),\n errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),\n errorStateTextColor: this.themeService.theme.palette.getAccent600(),\n loadingIconTint: this.themeService.theme.palette.getAccent600(),\n backIconTint: this.themeService.theme.palette.getPrimary(),\n dateTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n dateSeparatorTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n dateSeparatorTextColor: this.themeService.theme.palette.getAccent400(),\n callDurationTextFont: fontHelper(\n this.themeService.theme.typography.caption1\n ),\n callDurationTextColor: this.themeService.theme.palette.getAccent500(),\n callStatusTextFont: fontHelper(\n this.themeService.theme.typography.subtitle2\n ),\n callStatusTextColor: this.themeService.theme.palette.getAccent400(),\n dividerColor: this.themeService.theme.palette.getAccent600(),\n });\n\n this.CallLogHistoryStyle = { ...defaultStyle, ...this.CallLogHistoryStyle };\n }\n subtitleStyle = () => {\n return {\n font: this.CallLogHistoryStyle.dateTextColor,\n color: this.CallLogHistoryStyle.dateTextFont,\n };\n };\n tailViewStyle = () => {\n return {\n font: this.CallLogHistoryStyle.callDurationTextFont,\n color: this.CallLogHistoryStyle.callDurationTextColor,\n };\n };\n\n backButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint:\n this.CallLogHistoryStyle.backIconTint ||\n this.themeService.theme.palette.getPrimary(),\n };\n };\n\n \n getSectionHeader = (call: any, index: any) => {\n if (this.callHistory && this.callHistory.length > 0 && index === 0) {\n return this.callHistory[0][\"initiatedAt\"];\n }\n\n if (\n this.callHistory &&\n index > 0 &&\n CallLogUtils.isDateDifferent(\n this.callHistory[index - 1][\"initiatedAt\"],\n this.callHistory[index][\"initiatedAt\"]\n )\n ) {\n return call.initiatedAt;\n }\n };\n\n getTailView(totalSeconds: any) {\n return CallLogUtils.convertMinutesToHoursMinutesSeconds(totalSeconds);\n }\n\n handleBackClick = () => {\n if (this.onBackClick) {\n this.onBackClick();\n this.ref.detectChanges();\n }\n };\n\n titleStyle = () => {\n return {\n font: this.CallLogHistoryStyle.titleFont,\n color: this.CallLogHistoryStyle.titleColor,\n background: \"transparent\",\n };\n };\n}\n","<div class=\"cc-call-log-history\" [ngStyle]=\"callLogHistoryStyle()\">\n <div class=\"cc-call-log-history__header\">\n\n <div *ngIf=\"onBackClick\">\n <cometchat-button [iconURL]=\"backIconUrl\" class=\"cc-details__close-button\" [buttonStyle]=\"backButtonStyle()\"\n (cc-button-clicked)=\"handleBackClick()\"></cometchat-button>\n\n </div>\n <div [ngStyle]=\"titleStyle()\">\n {{title}}\n </div>\n </div>\n <cometchat-list [hideSearch]=\"true\" [listItemView]=\"listItemView ? listItemView : listItem\"\n [onScrolledToBottom]=\"onScrolledToBottom\" [list]=\"callHistory\" [hideError]=\"hideError\" [title]=\"''\"\n [emptyStateText]=\"emptyStateText\" [loadingIconURL]=\"loadingIconURL\" [loadingStateView]=\"loadingStateView\"\n [emptyStateView]=\"emptyStateView\" [errorStateText]=\"emptyStateText\" [sectionHeaderField]=\"sectionHeaderField\"\n [showSectionHeader]=\"showSectionHeader\" [errorStateView]=\"errorStateView\" [listStyle]=\"listStyle\" [state]=\"state\"\n [getSectionHeader]=\"getSectionHeader\">\n </cometchat-list>\n\n <ng-template #listItem let-call>\n\n <cometchat-list-item [listItemStyle]=\"getListItemStyle()\" [title]=\"''\" [hideSeparator]=\"false\"\n (cc-listitem-clicked)=\"handleItemClick(call)\">\n\n\n <div slot=\"subtitleView\">\n <div *ngIf=\"!subtitleView; else subtitle\" style=\"margin-left: 10px;\">\n <cometchat-date [dateStyle]=\"dateStyle\" [timestamp]=\"call?.getInitiatedAt()\"\n [pattern]=\"DateSeparatorPattern\"></cometchat-date>\n <cometchat-label [text]=\"getSubtitle(call)\" [labelStyle]=\"subtitleStyle()\">\n </cometchat-label>\n </div>\n <ng-template #subtitle>\n <ng-container *ngTemplateOutlet=\"subtitleView;context:{ $implicit: user ?? group }\">\n </ng-container>\n </ng-template>\n </div>\n\n <div slot=\"tailView\" class=\"cc-call-log-history__tail-view\">\n \n <div> {{ getTailView(call?.getTotalDurationInMinutes()!) }} </div>\n </div>\n </cometchat-list-item>\n <ng-template #tailView>\n\n </ng-template>\n </ng-template>\n\n\n</div>","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatCallLogHistoryComponent } from \"./cometchat-call-log-history/cometchat-call-log-history.component\";\n\nimport { CometChatList } from \"../../CometChatList/cometchat-list.module\";\nimport \"@cometchat/uikit-elements\";\n@NgModule({\n declarations: [CometChatCallLogHistoryComponent],\n imports: [CommonModule, CometChatList],\n exports: [CometChatCallLogHistoryComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CometChatCallLogHistory {}\n","import { CometChatCallButtons } from \"./../../Calls/CometChatCallButtons/cometchat-call-buttons.module\";\nimport {\n CometChatCallDetailsOption,\n CometChatCallDetailsTemplate,\n CometChatDetailsTemplate,\n CometChatTheme,\n CometChatUIKitConstants,\n DatePatterns,\n fontHelper,\n localize,\n} from \"@cometchat/uikit-resources\";\nimport { DateStyle, ListItemStyle } from \"@cometchat/uikit-elements\";\nimport { DataSource } from \"../Framework/DataSource\";\n\nexport class CallDetailUtils {\n public static getDefaultCallTemplate(\n callLog: any,\n loggedInUser: CometChat.User,\n theme: CometChatTheme\n ): Array<CometChatCallDetailsTemplate> {\n return [\n this.getPrimaryDetailsTemplate(callLog, loggedInUser, theme),\n this.getSecondaryDetailsTemplate(callLog, loggedInUser, theme),\n ];\n }\n\n public static getPrimaryDetailsTemplate(\n callLog: any,\n loggedInUser: CometChat.User,\n theme: CometChatTheme\n ): CometChatCallDetailsTemplate {\n const template: CometChatCallDetailsTemplate =\n new CometChatCallDetailsTemplate({\n id: \"callControls\",\n hideSectionSeparator: true,\n sectionSeparatorColor: \"red\",\n options: (\n user: CometChat.User | null,\n group: CometChat.Group | null\n ) => {\n return this.getPrimaryOptions(\n user ?? undefined,\n group ?? undefined,\n callLog ?? undefined,\n loggedInUser ?? undefined,\n theme ?? undefined\n );\n },\n });\n return template;\n }\n\n private static getPrimaryOptions(\n user?: CometChat.User,\n group?: CometChat.Group,\n callLog?: any,\n loggedInUser?: CometChat.User,\n theme?: CometChatTheme\n ): CometChatCallDetailsOption[] {\n const options: CometChatCallDetailsOption[] = [];\n if (user) {\n options.push(\n new CometChatCallDetailsOption({\n id: \"calls\",\n })\n );\n }\n options.push(\n new CometChatCallDetailsOption({\n id: \"callStatus\",\n title: callLog?.getInitiatedAt()!,\n titleFont: fontHelper(theme!.typography.subtitle1),\n backgroundColor: \"rgba(20, 20, 20, 0.04)\",\n })\n );\n return options;\n }\n\n public static getSecondaryDetailsTemplate(\n callLog: any,\n loggedInUser: CometChat.User,\n theme: CometChatTheme\n ): CometChatCallDetailsTemplate {\n const template: CometChatCallDetailsTemplate =\n new CometChatCallDetailsTemplate({\n id: \"callOptions\",\n hideSectionSeparator: true,\n options: () => {\n return this.getSecondaryOptions(\n callLog ?? undefined,\n theme ?? undefined\n );\n },\n });\n return template;\n }\n\n private static getSecondaryOptions(\n callLog?: any,\n theme?: CometChatTheme\n ): CometChatCallDetailsOption[] {\n const options: CometChatCallDetailsOption[] = [];\n const localizedParticipants = \"Participants\";\n const localizedRecording = \"Recordings\";\n const localizedHistory = \"History\";\n\n options.push(\n new CometChatCallDetailsOption({\n id: \"participants\",\n title: localizedParticipants,\n tail: callLog.participants.length,\n backgroundColor: \"rgba(20, 20, 20, 0.04)\",\n })\n );\n if (callLog?.hasRecording) {\n options.push(\n new CometChatCallDetailsOption({\n id: \"recordings\",\n title: localizedRecording,\n tail: callLog.recordings.length,\n backgroundColor: \"rgba(20, 20, 20, 0.04)\",\n })\n );\n }\n\n options.push(\n new CometChatCallDetailsOption({\n id: \"callHistory\",\n title: localizedHistory,\n backgroundColor: \"rgba(20, 20, 20, 0.04)\",\n })\n );\n\n return options;\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n TemplateRef,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport \"@cometchat/uikit-elements\";\nimport {\n AvatarStyle,\n DateStyle,\n IconStyle,\n LabelStyle,\n ListItemStyle,\n} from \"@cometchat/uikit-elements\";\nimport {\n CallButtonsStyle,\n CallButtonsConfiguration,\n CallLogDetailsStyle,\n CallLogParticipantsConfiguration,\n CallLogHistoryConfiguration,\n CallLogRecordingsConfiguration,\n} from \"@cometchat/uikit-shared\";\nimport {\n fontHelper,\n localize,\n CometChatUIKitConstants,\n CometChatDetailsOption,\n CometChatDetailsTemplate,\n DatePatterns,\n CometChatCallDetailsOption,\n} from \"@cometchat/uikit-resources\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\nimport { CometChatThemeService } from \"../../../CometChatTheme.service\";\nimport { CallDetailUtils } from \"../../../Shared/Utils/CallDetailUtils\"\nimport { CallLogUtils } from \"../../../Shared/Utils/CallLogUtils\";\n\n@Component({\n selector: \"cometchat-call-log-details\",\n templateUrl: \"./cometchat-call-log-details.component.html\",\n styleUrls: [\"./cometchat-call-log-details.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatCallLogDetailsComponent implements OnInit, OnChanges {\n @Input() call!: any;\n @Input() group!: CometChat.Group;\n @Input() user!: CometChat.User;\n @Input() title: string = localize(\"CALL_DETAILS\");\n @Input() onBackClick?: () => void;\n @Input() hideProfile: boolean = false;\n @Input() subtitleView!: TemplateRef<any>;\n @Input() customProfileView!: TemplateRef<any>;\n\n @Input() backIconUrl: string = \"assets/backbutton.svg\";\n @Input() greaterThanIconURL: string = \"assets/greaterThanIcon.svg\";\n\n @Input() callButtonsConfiguration: CallButtonsConfiguration =\n new CallButtonsConfiguration({});\n\n @Input() callLogParticipantsConfiguration: CallLogParticipantsConfiguration =\n new CallLogParticipantsConfiguration({});\n\n @Input() callLogHistoryConfiguration: CallLogHistoryConfiguration =\n new CallLogHistoryConfiguration({});\n\n @Input() callLogRecordingsConfiguration: CallLogRecordingsConfiguration =\n new CallLogRecordingsConfiguration({});\n\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n @Input() datePattern: DatePatterns = DatePatterns.time;\n @Input() datePattern2: DatePatterns = DatePatterns.DayDate;\n\n @Input() data: CometChatDetailsTemplate[] = [];\n\n @Input() avatarStyle: AvatarStyle = {\n borderRadius: \"16px\",\n width: \"28px\",\n height: \"28px\",\n border: \"none\",\n };\n @Input() labelStyle: LabelStyle = {\n textFont: '600 22px sans-serif, Inter',\n textColor: 'rgb(20, 20, 20)'\n };\n @Input() callDetailsStyle: CallLogDetailsStyle = {\n width: \"100%\",\n height: \"100%\",\n };\n\n @Input() listItemStyle: ListItemStyle = {};\n\n @Input() dateStyle: DateStyle = {};\n @Input() callButtonsStyle: CallButtonsStyle = {\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n };\n\n iconStyle: IconStyle = {\n height: \"16px\",\n width: \"16px\",\n iconTint: \"RGBA(20, 20, 20, 0.68)\",\n };\n\n defaultTemplate: CometChatDetailsTemplate[] = [];\n\n public authToken: string = \"\";\n public loggedInUser: CometChat.User | null = null;\n public showCallLogDetailOptionList: Boolean = true;\n public showCometChatMessages: Boolean = true;\n public showParticipantsList: Boolean = false;\n public showCallRecordingList: Boolean = false;\n public showCallHistory: Boolean = false;\n\n\n getTitleStyle() {\n return {\n textFont:\n this.callDetailsStyle.titleFont ||\n fontHelper(this.themeService.theme.typography.title1),\n textColor:\n this.callDetailsStyle.titleColor ||\n this.themeService.theme.palette.getAccent(),\n };\n }\n public userListenerId = \"userlist_\" + new Date().getTime();\n public requestBuilder: any;\n public limit: number = 5;\n\n public onItemClick: (call: any) => void = (call: any) => {\n this.call = call;\n this.showCallLogDetailOptionList = true;\n this.showCallHistory = false;\n this.ref.detectChanges();\n };\n types: string[] = [];\n categories: string[] = [];\n constructor(\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) {}\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"user\"] || changes[\"group\"]) {\n this.showCallLogDetailOptionList = true;\n this.showParticipantsList = false;\n this.showCallRecordingList = false;\n this.showCallHistory = false;\n this.showCometChatMessages = false;\n }\n }\n\n removeListener() {\n CometChat.removeUserListener(this.userListenerId);\n }\n\n ngOnInit(): void {\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n this.authToken = this.loggedInUser!.getAuthToken();\n this.getTemplate();\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n\n this.setThemeStyle();\n }\n\n trackByFnOption(index: number, option: any): string {\n return option.id;\n }\n getTemplate() {\n if (this.data && this.data?.length > 0) {\n this.defaultTemplate = this.data;\n this.ref.detectChanges();\n } else {\n this.defaultTemplate = CallDetailUtils.getDefaultCallTemplate(\n this.call,\n this.loggedInUser!,\n this.themeService.theme\n );\n\n this.ref.detectChanges();\n }\n }\n\n getTemplateOptions = (template: CometChatDetailsTemplate) => {\n if (template.options) {\n return template.options(this.user, this.group, template.id as string);\n } else return [];\n };\n\n getCustomOptionView(option: CometChatDetailsOption) {\n return option?.customView;\n }\n\n getSectionHeaderStyle(template: CometChatDetailsTemplate) {\n return {\n textFont: template.titleFont,\n textColor: template.titleColor,\n };\n }\n\n onOptionClick = (option: CometChatCallDetailsOption) => {\n if (option?.onClick) {\n option.onClick(this.call!);\n } else {\n switch (option.id) {\n case \"participants\":\n this.showCallLogDetailOptionList = false;\n this.showParticipantsList = true;\n this.ref.detectChanges()\n break;\n case \"recordings\":\n this.showCallLogDetailOptionList = false;\n\n this.showCallRecordingList = true;\n this.ref.detectChanges()\n\n break;\n case \"callHistory\":\n this.showCallLogDetailOptionList = false;\n\n this.showCallHistory = true;\n this.ref.detectChanges()\n\n break;\n default:\n break;\n }\n }\n };\n\n getButtonStyle(option: CometChatDetailsOption) {\n return {\n height: \"100%\",\n width: \"100%\",\n border: \"none\",\n borderRadius: \"0\",\n buttonTextFont: option?.titleFont,\n buttonTextColor: option?.titleColor,\n background: option?.backgroundColor || \"transparent\",\n };\n }\n\n\n handlePageOnBackClick = () => {\n this.showCallHistory = false;\n this.showCallRecordingList = false;\n this.showParticipantsList = false;\n this.showCometChatMessages = false;\n this.showCallLogDetailOptionList = true;\n this.ref.detectChanges();\n };\n\n subtitleStyle(template: CometChatDetailsTemplate) {\n return {\n textFont: template.titleFont,\n textColor: template.titleColor,\n };\n }\n showDataSectionStyle(template: CometChatDetailsTemplate) {\n return {\n textFont: template.titleFont,\n textColor: template.titleColor,\n };\n }\n\n setThemeStyle() {\n this.setDetailsStyle();\n this.setAvatarStyle();\n this.setListItemStyle();\n this.setDateStyle();\n }\n setListItemStyle() {\n let defaultStyle: ListItemStyle = new ListItemStyle({\n height: \"45px\",\n width: \"100%\",\n background:\n this.themeService.theme.palette.getAccent50() ||\n this.themeService.theme.palette.getBackground(),\n activeBackground: \"transparent\",\n borderRadius: \"5px\",\n titleFont: fontHelper(this.themeService.theme.typography.title2),\n titleColor: this.themeService.theme.palette.getAccent(),\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n hoverBackground: this.themeService.theme.palette.getAccent100(),\n });\n this.listItemStyle = { ...defaultStyle, ...this.listItemStyle };\n }\n setAvatarStyle() {\n let defaultStyle: AvatarStyle = new AvatarStyle({\n borderRadius: \"24px\",\n width: \"46px\",\n height: \"46px\",\n border: \"none\",\n backgroundColor: this.themeService.theme.palette.getAccent700(),\n nameTextColor: this.themeService.theme.palette.getAccent900(),\n backgroundSize: \"cover\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),\n\n outerViewBorderSpacing: \"\",\n });\n this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };\n }\n\n setDetailsStyle() {\n let defaultStyle: CallLogDetailsStyle = new CallLogDetailsStyle({\n background: this.themeService.theme.palette.getBackground(),\n titleFont: fontHelper(this.themeService.theme.typography.title1),\n titleColor: this.themeService.theme.palette.getAccent(),\n backIconTint: this.themeService.theme.palette.getPrimary(),\n width: \"100%\",\n height: \"100%\",\n borderRadius: \"\",\n nameTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n });\n this.callDetailsStyle = { ...defaultStyle, ...this.callDetailsStyle };\n }\n\n setDateStyle() {\n let defaultStyle: DateStyle = new DateStyle({\n textFont: fontHelper(this.themeService.theme.typography.caption2),\n textColor: this.themeService.theme.palette.getAccent600(),\n background: \"transparent\",\n });\n this.dateStyle = { ...defaultStyle, ...this.dateStyle };\n }\n wrapperStyle = () => {\n return {\n width: this.callDetailsStyle.width,\n height: this.callDetailsStyle.height,\n border: this.callDetailsStyle.border,\n borderRadius: this.callDetailsStyle.borderRadius,\n background: this.callDetailsStyle.background,\n padding: '16px',\n };\n };\n\n profileContainerStyle = () => {\n return {\n height: \"auto\",\n width: \"100%\",\n minHeight: \"150px\",\n padding: \"16px\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n boxSizing: \"border-box\",\n gap: \"8px\",\n }\n }\n\n getTailViewStyle = () => {\n return{\n font: fontHelper(this.themeService?.theme.typography.text3),\n color: this.themeService.theme.palette.getAccent600()\n }\n }\n\n getTailView(totalSeconds: number) {\n return CallLogUtils.convertMinutesToHoursMinutesSeconds(totalSeconds);\n }\n\n getSubtitle(call: any): string {\n return CallLogUtils.getCallStatusWithType(call, this.loggedInUser!);\n }\n\n backButtonStyle = () => {\n return {\n height: \"24px\",\n width: \"24px\",\n border: \"none\",\n borderRadius: \"0\",\n background: \"transparent\",\n buttonIconTint: this.themeService.theme.palette.getPrimary(),\n };\n };\n getListItemStyle(option: CometChatDetailsOption) {\n return {\n height: \"auto\",\n width: \"100%\",\n background:\n option?.backgroundColor ||\n this.themeService.theme.palette.getBackground(),\n borderRadius: \"8px\",\n titleFont:\n option?.titleFont ||\n fontHelper(this.themeService.theme.typography.title2),\n\n border: \"none\",\n separatorColor: this.themeService.theme.palette.getAccent200(),\n hoverBackground: this.themeService.theme.palette.getAccent100(),\n };\n }\n}\n","<div class=\"cc-call-log-details__wrapper\" *ngIf=\"user || group\" [ngStyle]=\"wrapperStyle()\">\n\n <div class=\"cc-call-log-details__header\"\n *ngIf=\"onBackClick && !(showParticipantsList || showCallRecordingList || showCallHistory)\">\n <cometchat-button [iconURL]=\"backIconUrl\" class=\"cc-call-log-details__close-button\" [buttonStyle]=\"backButtonStyle()\"\n (cc-button-clicked)=\"onBackClick()\"></cometchat-button>\n <cometchat-label [text]=\"title\" [labelStyle]=\"getTitleStyle()\"></cometchat-label>\n </div>\n\n <div class=\"cc-call-log-details\">\n <div class=\"cc-call-log-details__profile\"\n *ngIf=\"!hideProfile && showCallLogDetailOptionList && !(showParticipantsList || showCallRecordingList || showCallHistory)\">\n\n\n <div class=\" cc-call-log-details__default-profile\" *ngIf=\"!customProfileView;else listitem\" [ngStyle]=\"profileContainerStyle()\">\n <cometchat-avatar [name]=\"user?.getName() ?? group?.getName()\" [avatarStyle]=\"avatarStyle\"\n [image]=\"user?.getAvatar() ?? group?.getIcon()\">\n </cometchat-avatar>\n\n <cometchat-label [text]=\"user?.getName() ?? this.group?.getName()\" [labelStyle]=\"labelStyle\"></cometchat-label>\n </div>\n </div>\n <div class=\"cc-call-log-details__section-list\"\n *ngIf=\"showCallLogDetailOptionList && defaultTemplate && defaultTemplate.length > 0\">\n <div class=\"cc-call-log-details__section\" *ngFor=\"let item of defaultTemplate\">\n <div class=\"cc-call-log-details__section-separator\" *ngIf=\"item.title\">\n <cometchat-label [text]=\"item.title\"></cometchat-label>\n </div>\n <div class=\"cc-call-log-details__options-wrapper\" *ngIf=\"getTemplateOptions(item)\">\n <div class=\"cc-call-log-details__options\" *ngFor=\"let option of getTemplateOptions(item); trackBy: trackByFnOption \">\n <div class=\"cc-call-log-details__option\" *ngIf=\"!getCustomOptionView(option);else customView\">\n <div class=\"cc-call-log-details__option-element\">\n\n <div class=\"cc-call-log-details__calling-default-option\" *ngIf=\"option.id=='calls'\">\n\n <cometchat-call-buttons [user]=\"user\" [group]=\"group\"\n [callButtonsStyle]=\"callButtonsConfiguration.callButtonsStyle\"\n [onVideoCallClick]=\"callButtonsConfiguration.onVideoCallClick\"\n [onVoiceCallClick]=\"callButtonsConfiguration.onVoiceCallClick\"\n [videoCallIconURL]=\"callButtonsConfiguration.videoCallIconURL\"\n [voiceCallIconURL]=\"callButtonsConfiguration.voiceCallIconURL\"></cometchat-call-buttons>\n </div>\n <cometchat-list-item *ngIf=\"option.id==='callStatus'\" [listItemStyle]=\"getListItemStyle(option)\"\n [hideSeparator]=\"true\">\n <div class=\"cc-call-log-details__call-Status\" slot=\"subtitleView\" >\n <div *ngIf=\"!subtitleView; else subtitle\" style=\"width: 100%;\">\n <div> <cometchat-date [dateStyle]=\"dateStyle\" [timestamp]=\"call?.getInitiatedAt()\"\n [pattern]=\"datePattern2\">\n </cometchat-date></div>\n\n <div\n class=\"cc-call-log-details__call-Status__subTitle\">\n <div>\n\n <cometchat-date [dateStyle]=\"dateStyle\" [timestamp]=\"call?.getInitiatedAt()\"\n [pattern]=\"datePattern\">\n </cometchat-date>\n <cometchat-label [text]=\"getSubtitle(call)\" [labelStyle]=\"subtitleStyle(option)\">\n </cometchat-label>\n </div>\n <div class=\"cc-call-log-details__call-Status__tailview\" [style]=\"getTailViewStyle()\"> {{ getTailView(call?.getTotalDurationInMinutes()!) }}\n </div>\n\n </div>\n\n\n </div>\n\n <ng-template #subtitle>\n <ng-container *ngTemplateOutlet=\"subtitleView;context:{ $implicit: user ?? group }\">\n </ng-container>\n </ng-template>\n </div>\n\n\n </cometchat-list-item>\n <cometchat-list-item *ngIf=\"option.id!=='calls' && option.id!=='callStatus' \"\n (cc-listitem-clicked)=\"onOptionClick(option)\" [listItemStyle]=\"getListItemStyle(option)\"\n [title]=\"option.title\" [hideSeparator]=\"true\">\n \n <div slot=\"tailView\" class=\"cc-call-log-details__secondary-view__tail-view\" [style]=\"getTailViewStyle()\"\n >\n {{option.tail}}\n <cometchat-icon [iconStyle]=\"iconStyle\" [URL]=\"greaterThanIconURL\"></cometchat-icon>\n </div>\n\n \n\n </cometchat-list-item>\n\n </div>\n </div>\n <ng-template #customView>\n <ng-container *ngTemplateOutlet=\"getCustomOptionView(option)\">\n </ng-container>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n\n\n\n <div *ngIf=\"showParticipantsList || showCallRecordingList || showCallHistory\" style=\" height: 100%;\">\n\n <div *ngIf=\"showParticipantsList\" style=\"height: 100%;\">\n <cometchat-call-log-participants [call]=\"call\"\n [onBackClick]=\"callLogParticipantsConfiguration.onBackClick || handlePageOnBackClick\"\n [backIconUrl]=\"callLogParticipantsConfiguration.backIconUrl || backIconUrl\"\n [avatarStyle]=\"callLogParticipantsConfiguration.avatarStyle\"\n [onItemClick]=\"callLogParticipantsConfiguration.onItemClick!\"\n [datePattern]=\"callLogParticipantsConfiguration.datePattern\"\n [subtitleView]=\"callLogParticipantsConfiguration.subtitleView\"\n [listItemView]=\"callLogParticipantsConfiguration.listItemView\"\n\n [listItemStyle]=\"callLogParticipantsConfiguration.listItemStyle\" [callLogParticipantsStyle]=\"\n callLogParticipantsConfiguration.callLogParticipantsStyle\"\n \n [tailView]=\"callLogParticipantsConfiguration.tailView\"></cometchat-call-log-participants>\n </div>\n <div *ngIf=\"showCallRecordingList\" style=\"height:100%;\">\n <cometchat-call-log-recordings [call]=\"call\"\n [backIconUrl]=\"callLogRecordingsConfiguration.backIconUrl || backIconUrl\" [onBackClick]=\"\n callLogRecordingsConfiguration.onBackClick || handlePageOnBackClick\n \" [onItemClick]=\"callLogRecordingsConfiguration.onItemClick!\"\n [datePattern]=\"callLogRecordingsConfiguration.datePattern!\"\n [listItemStyle]=\"callLogRecordingsConfiguration.listItemStyle\" callLogRecordingsStyle=\"\n callLogRecordingsConfiguration.callLogRecordingsStyle\n callLogRecordingsConfiguration.hideDownloadButton || false\n \" [onDownloadClick]=\"callLogRecordingsConfiguration.onDownloadClick!\"\n [listItemView]=\"callLogRecordingsConfiguration.listItemView\"\n [subtitleView]=\"callLogRecordingsConfiguration.subtitleView\"\n [tailView]=\"callLogRecordingsConfiguration.tailView\"></cometchat-call-log-recordings>\n </div>\n <div *ngIf=\"showCallHistory\" style=\"height: 100%; \">\n <cometchat-call-log-history [call]=\"call\" [user]=\"user\" [group]=\"group\" [onBackClick]=\"handlePageOnBackClick\"\n [backIconUrl]=\"callLogHistoryConfiguration.backIconUrl || backIconUrl\"\n [emptyStateView]=\"callLogHistoryConfiguration.emptyStateView\"\n [errorStateView]=\"callLogHistoryConfiguration.errorStateView\"\n [loadingIconURL]=\"callLogHistoryConfiguration.loadingIconURL\"\n [loadingStateView]=\"callLogHistoryConfiguration.loadingStateView\"\n [tailView]=\"callLogHistoryConfiguration.tailView\" [callLogRequestBuilder]=\"\n callLogHistoryConfiguration.callLogRequestBuilder\n \" [onItemClick]=\"callLogHistoryConfiguration.onItemClick || onItemClick\" [onBackClick]=\"\n callLogHistoryConfiguration.onBackClick || handlePageOnBackClick\n \" [listItemStyle]=\"callLogHistoryConfiguration.listItemStyle\"\n [datePattern]=\"callLogHistoryConfiguration.datePattern\" [dateSeparatorPattern]=\"\n callLogHistoryConfiguration.dateSeparatorPattern\n \" [callLogHistoryStyle]=\"\n callLogHistoryConfiguration.callLogHistoryStyle\n \" [onError]=\"callLogHistoryConfiguration.onError!\"></cometchat-call-log-history>\n </div>\n\n </div>\n </div>\n</div>\n\n\n<ng-template #listitem>\n <ng-container *ngTemplateOutlet=\"customProfileView\">\n </ng-container>\n</ng-template>","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatCallLogDetailsComponent } from \"./cometchat-call-log-details/cometchat-call-log-details.component\";\nimport { CometChatCallButtons } from \"../CometChatCallButtons/cometchat-call-buttons.module\";\nimport { CometChatList } from \"../../CometChatList/cometchat-list.module\";\nimport { CometChatCallLogParticipants } from \"../CometChatCallLogParticipants/cometchat-call-log-participants.module\";\nimport { CometChatCallLogRecordings } from \"../CometChatCallLogRecordings/cometchat-call-log-recordings.module\";\nimport { CometChatCallLogs } from \"../CometChatCallLogs/cometchat-call-logs.module\";\nimport { CometChatCallLogHistory } from \"../CometChatCallLogHistory/cometchat-call-log-history.module\";\n\n@NgModule({\n declarations: [CometChatCallLogDetailsComponent],\n imports: [\n CommonModule,\n CometChatCallButtons,\n CometChatList,\n CometChatCallLogParticipants,\n CometChatCallLogRecordings,\n CometChatCallLogHistory,\n CometChatCallLogs,\n ],\n exports: [CometChatCallLogDetailsComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CometChatCallLogDetails {}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n ChangeDetectorRef,\n ElementRef,\n} from \"@angular/core\";\nimport { CometChat } from \"@cometchat/chat-sdk-javascript\";\n\nimport {\n fontHelper,\n localize,\n CometChatUIKitConstants,\n} from \"@cometchat/uikit-resources\";\n\nimport \"@cometchat/uikit-elements\";\nimport { CometChatThemeService } from \"../../../CometChatTheme.service\";\nimport { BackdropStyle } from \"@cometchat/uikit-elements\";\nimport {\n CallLogDetailsConfiguration,\n CallLogsConfiguration,\n WithDetailsStyle,\n} from \"@cometchat/uikit-shared\";\n\n@Component({\n selector: \"cometchat-call-logs-with-details\",\n templateUrl: \"./cometchat-call-logs-with-details.component.html\",\n styleUrls: [\"./cometchat-call-logs-with-details.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CometChatCallLogsWithDetailsComponent\n implements OnInit, OnChanges\n{\n @Input() isMobileView: boolean = false;\n @Input() messageText: string = localize(\"NO_CALLS_SELECTED\");\n @Input() withDetailsStyle: WithDetailsStyle = {};\n @Input() showMoreInfo: boolean = true;\n @Input() backdropStyle: BackdropStyle = {};\n @Input() call!: any;\n\n @Input() callLogDetailsConfiguration: CallLogDetailsConfiguration =\n new CallLogDetailsConfiguration({});\n\n @Input() callLogConfiguration: CallLogsConfiguration =\n new CallLogsConfiguration({});\n\n @Input() onError: ((error: CometChat.CometChatException) => void) | null = (\n error: CometChat.CometChatException\n ) => {\n console.log(error);\n };\n /**\n * Properties for internal use\n */\n public loggedInUser!: CometChat.User | null;\n public activeCall!:any;\n user!: any | null;\n group!: CometChat.Group | null;\n\n computedCallLogDetailsConfig: CallLogDetailsConfiguration =\n new CallLogDetailsConfiguration({});\n\n labelStyle: any = {\n background: \"transparent\",\n textFont: \"700 22px Inter\",\n textColor: \"rgba(20, 20, 20, 0.33)\",\n };\n\n constructor(\n private elementRef: ElementRef,\n private ref: ChangeDetectorRef,\n private themeService: CometChatThemeService\n ) {}\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"user\"] || changes[\"group\"]) {\n this.setActiveCallLog();\n }\n\n if (changes[\"isMobileView\"]) {\n if (this.isMobileView) {\n this.backdropStyle.height = \"100%\";\n this.backdropStyle.width = \"100%\";\n this.computedCallLogDetailsConfig =\n this.computedCallLogDetailsConfiguration();\n } else if (!this.isMobileView) {\n this.backdropStyle.height = \"100%\";\n this.backdropStyle.width = \"100%\";\n this.computedCallLogDetailsConfig =\n this.computedCallLogDetailsConfiguration();\n }\n setTimeout(() => {\n this.updateBackdropHeight();\n }, 100);\n }\n }\n\n updateBackdropHeight() {\n let divHeight = this.elementRef.nativeElement.offsetHeight;\n let divWidth = this.elementRef.nativeElement.offsetWidth;\n if (divHeight === 0 || divWidth === 0) {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n divHeight = rect.height;\n divWidth = rect.width;\n }\n this.backdropStyle = {\n height: divHeight + \"px\",\n width: divWidth + \"px\",\n background: \"rgba(0, 0, 0, 0.5)\",\n position: \"fixed\",\n };\n\n if (this.isMobileView) {\n this.backdropStyle.height = divHeight + \"px\";\n this.backdropStyle.width = divWidth + \"px\";\n } else {\n this.backdropStyle.height = divHeight + \"px\";\n this.backdropStyle.width = divWidth + \"px\";\n }\n\n this.backdropStyle.height = divHeight + \"px\";\n this.backdropStyle.width = divWidth + \"px\";\n }\n\n onBackClick = () => {\n this.user = null;\n this.group = null;\n this.activeCall = null;\n };\n setWithDetailsStyle() {\n let defaultStyle: WithDetailsStyle = new WithDetailsStyle({\n width: \"100%\",\n height: \"100%\",\n background: this.themeService.theme.palette.getBackground(),\n borderRadius: \"none\",\n border: \"none\",\n messageTextColor: this.themeService.theme.palette.getAccent600(),\n messageTextFont: fontHelper(this.themeService.theme.typography.title1),\n });\n this.withDetailsStyle = {\n ...defaultStyle,\n ...this.withDetailsStyle,\n };\n this.labelStyle.textFont = this.withDetailsStyle.messageTextFont;\n this.labelStyle.textColor = this.withDetailsStyle.messageTextColor;\n }\n\n public onInfoClick: (call: any) => void = (call: any) => {\n this.call = call;\n this.setActiveCallLog();\n };\n setActiveCallLog() {\n this.activeCall = this.call;\n if (this.call!.getInitiator().getUid() == this.loggedInUser?.getUid()) {\n if (\n this.call!.getReceiverType() ==\n CometChatUIKitConstants.MessageReceiverType.user\n ) {\n this.user = this.call!.getReceiver() as unknown as CometChat.User;\n this.group = null;\n } else {\n this.user = null;\n this.group = this.call!.getReceiver() as unknown as CometChat.Group;\n }\n } else {\n this.user = this.call!.getInitiator() as unknown as CometChat.User;\n }\n }\n ngOnInit() {\n this.computedCallLogDetailsConfig =\n this.computedCallLogDetailsConfiguration();\n this.updateBackdropHeight();\n this.setWithDetailsStyle();\n CometChat.getLoggedinUser()\n .then((user: CometChat.User | null) => {\n this.loggedInUser = user;\n })\n .catch((error: CometChat.CometChatException) => {\n if (this.onError) {\n this.onError(error);\n }\n });\n }\n computedCallLogDetailsConfiguration(): CallLogDetailsConfiguration {\n const config = new CallLogDetailsConfiguration({});\n Object.assign(config, this.callLogDetailsConfiguration);\n\n config.callLogDetailsStyle = {\n ...config.callLogDetailsStyle,\n border: `1px solid ${this.themeService.theme.palette?.getAccent100()}`,\n };\n\n if (this.isMobileView)\n config.onBackClick = () => {\n this.activeCall = null;\n this.user = null;\n this.group = null;\n };\n\n return config;\n }\n emptyMessageStyle = () => {\n return {\n background:\n this.withDetailsStyle.background ||\n this.themeService.theme.palette.getBackground(),\n height: this.withDetailsStyle.height,\n width: `calc(${this.withDetailsStyle.width} - 280px)`,\n border: this.withDetailsStyle.border,\n borderRadius: this.withDetailsStyle.borderRadius,\n };\n };\n chatsWrapperStyles = () => {\n return {\n height: this.withDetailsStyle.height,\n width: this.withDetailsStyle.width,\n border: this.withDetailsStyle.border,\n borderRadius: this.withDetailsStyle.borderRadius,\n background:\n this.withDetailsStyle.background ||\n this.themeService.theme.palette.getBackground(),\n };\n };\n}\n","<div class=\"cc-with-details__wrapper\" [ngStyle]=\"chatsWrapperStyles()\">\n <div class=\"cc-with-details__sidebar\" [ngClass]=\"{mobile : isMobileView}\">\n <cometchat-call-logs [activeCall]=\"activeCall\" [showMoreInfo]=\"showMoreInfo\" [backdropStyle]=\"backdropStyle\"\n [activeCall]=\"activeCall\" [titleAlignment]=\"callLogConfiguration?.titleAlignment!\"\n [emptyStateView]=\"callLogConfiguration.emptyStateView\" \n [errorStateView]=\"callLogConfiguration.errorStateView\"\n [subtitleView]=\"callLogConfiguration.subtitleView\" \n [listItemView]=\"callLogConfiguration.listItemView\" \n [tailView]=\"callLogConfiguration.tailView\" \n [loadingIconURL]=\"callLogConfiguration.loadingIconURL\" [loadingStateView]=\"callLogConfiguration.loadingStateView\"\n [callLogRequestBuilder]=\"callLogConfiguration.callLogRequestBuilder\"\n [onItemClick]=\"callLogConfiguration.onItemClick!\" [onInfoClick]=\"callLogConfiguration.onInfoClick || onInfoClick! \"\n [onError]=\"callLogConfiguration.onError!\" [listItemStyle]=\"callLogConfiguration.listItemStyle\"\n [infoIconUrl]=\"callLogConfiguration.infoIconUrl\" [datePattern]=\"callLogConfiguration.datePattern\"\n [dateSeparatorPattern]=\"callLogConfiguration.dateSeparatorPattern\"\n [incomingAudioCallIconUrl]=\"callLogConfiguration.incomingAudioCallIconUrl\"\n [incomingVideoCallIconUrl]=\"callLogConfiguration.incomingVideoCallIconUrl\"\n [outgoingAudioCallIconUrl]=\"callLogConfiguration.outgoingAudioCallIconUrl\"\n [outgoingVideoCallIconUrl]=\"callLogConfiguration.outgoingVideoCallIconUrl\"\n [missedAudioCallIconUrl]=\"callLogConfiguration.missedAudioCallIconUrl\"\n [missedVideoCallIconUrl]=\"callLogConfiguration.missedVideoCallIconUrl\"\n [callLogsStyle]=\"callLogConfiguration.callLogsStyle\" [avatarStyle]=\"callLogConfiguration.avatarStyle\"\n [hideSeparator]=\"callLogConfiguration.hideSeparator\"\n [outgoingCallConfiguration]=\"callLogConfiguration.outgoingCallConfiguration\"></cometchat-call-logs>\n </div>\n <div class=\"cc-with-details__main\" [ngClass]=\"{mobile : isMobileView}\" *ngIf=\"activeCall && (user || group)\">\n <!--call details Screen-->\n <cometchat-call-log-details [user]=\"user!\" [group]=\"group!\" [call]=\"call\"\n [backIconUrl]=\"computedCallLogDetailsConfig.backIconUrl\" [avatarStyle]=\"computedCallLogDetailsConfig.avatarStyle\"\n [onBackClick]=\"computedCallLogDetailsConfig.onBackClick || onBackClick\"\n [callLogHistoryConfiguration]=\"computedCallLogDetailsConfig.callLogHistoryConfiguration\"\n [callLogParticipantsConfiguration]=\"computedCallLogDetailsConfig.callLogParticipantsConfiguration\"\n [callLogRecordingsConfiguration]=\"computedCallLogDetailsConfig.callLogRecordingsConfiguration\"\n [callLogDetailStyle]=\"computedCallLogDetailsConfig.callLogDetailsStyle\">\n </cometchat-call-log-details>\n </div>\n\n <div class=\"cc-decorator__message--empty\" *ngIf=\"!user && !group\" [ngStyle]=\"emptyMessageStyle()\">\n <cometchat-label [text]=\"messageText\" [labelStyle]=\"labelStyle\"></cometchat-label>\n </div>","import { CometChatMessages } from \"./../../CometChatMessages/cometchat-messages.module\";\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CometChatCallLogsWithDetailsComponent } from \"./cometchat-call-logs-with-details/cometchat-call-logs-with-details.component\";\nimport { CometChatCallLogs } from \"../CometChatCallLogs/cometchat-call-logs.module\";\nimport { CometChatCallLogDetails } from \"../CometChatCallLogDetails/cometchat-call-log-details.module\";\nimport { CometChatOutgoingCall } from \"../CometChatOutgoingCall/cometchat-outgoing-call.module\";\n\n@NgModule({\n declarations: [CometChatCallLogsWithDetailsComponent],\n imports: [\n CommonModule,\n CometChatCallLogs,\n CometChatCallLogDetails,\n CometChatOutgoingCall,\n CometChatMessages,\n ],\n exports: [CometChatCallLogsWithDetailsComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CometChatCallLogsWithDetails {}\n","/*\n * Public API Surface of angular-chat-ui-kit\n */\n\n\n\n// shared packages\nexport * from \"@cometchat/uikit-shared\";\nexport * from \"@cometchat/uikit-resources\";\nexport {\n CometChatAvatar,\n AvatarStyle,\n CometChatBadge,\n BadgeStyle,\n CometChatReceipt,\n ReceiptStyle,\n CometChatStatusIndicator,\n CometChatDate,\n DateStyle,\n CometChatIcon,\n IconStyle,\n CometChatBackdrop,\n CometChatButton,\n CometChatPopover,\n PopoverStyle,\n CometChatLabel,\n LabelStyle,\n CometChatInput,\n InputStyle,\n CometChatSearchInput,\n SearchInputStyle,\n CometChatModal,\n ModalStyle,\n CometChatMenuList,\n MenuListStyle,\n CometChatLoader,\n LoaderStyle,\n CometChatListItem,\n ListItemStyle,\n CometChatConfirmDialog,\n ConfirmDialogStyle,\n CometChatDivider,\n CometChatButtonGroup,\n ButtonGroupStyle,\n CometChatCheckbox,\n CheckboxStyle,\n CometChatTextBubble,\n TextBubbleStyle,\n CometChatVideoBubble,\n CometChatAudioBubble,\n CometChatImageBubble,\n ImageBubbleStyle,\n CometChatFileBubble,\n FileBubbleStyle,\n CometChatRadioButton,\n RadioButtonStyle,\n CometChatEmojiKeyboard,\n EmojiKeyboardStyle,\n Emojis,\n CometChatEmoji,\n CometChatMessageInput,\n CometChatTextInput,\n MessageInputStyle,\n TextInputStyle,\n CometChatDropdown,\n DropdownStyle,\n CometChatChangeScope,\n ChangeScopeStyle,\n CometChatPreview,\n PreviewStyle,\n auxiliaryButtonAlignmentEnum,\n CometChatActionSheet,\n CometChatActionItem,\n layoutType,\n ActionSheetStyle,\n CometChatLiveReaction,\n CometChatJoinGroup,\n JoinGroupStyle,\n CometChatCreateGroup,\n CreateGroupStyle,\n CometChatDocumentBubble,\n CometChatCard,\n CardStyle,\n DocumentBubbleStyle,\n CometChatFullScreenViewer,\n FullScreenViewerStyle,\n CometChatIconButton,\n CometChatDraggable,\n CometChatContextMenu,\n ContextMenuStyle,\n CometChatMediaRecorder,\n MediaRecorderStyle,\n CallscreenStyle,\n CometChatCallscreenWrapper,\n BackdropStyle,\n CometChatSingleSelect,\n SingleSelectStyle,\n CometChatPanel,\n CometChatQuickView,\n PanelStyle,\n QuickViewStyle\n} from \"@cometchat/uikit-elements\";\n\nexport { CometChatUIKit } from \"./Shared/CometChatUIkit/CometChatUIKit\";\nexport { ChatConfigurator } from \"./Shared/Framework/ChatConfigurator\";\nexport { DataSource } from \"./Shared/Framework/DataSource\";\nexport { DataSourceDecorator } from \"./Shared/Framework/DataSourceDecorator\";\nexport { ExtensionsDataSource } from \"./Shared/Framework/ExtensionDataSource\";\nexport { AIExtensionDataSource } from \"./Shared/Framework/AIExtensionDataSource\";\nexport { MessageUtils } from \"./Shared/Utils/MessageUtils\";\nexport { shouldShowCustomMimeTypes } from \"./Shared/Utils/UtilityFunctions\";\nexport { CometChatThemeService } from \"./CometChatTheme.service\";\n\n// extensions\nexport { CollaborativeDocumentExtension } from \"./Extensions/CollaborativeDocument/CollaborativeDocumentExtension\";\nexport { CollaborativeDocumentExtensionDecorator } from \"./Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator\";\nexport { CollaborativeWhiteBoardExtension } from \"./Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension\";\nexport { CollaborativeWhiteBoardExtensionDecorator } from \"./Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator\";\nexport { ImageModerationExtension } from \"./Extensions/ImageModeration/ImageModerationExtension\";\nexport { ImageModerationExtensionDecorator } from \"./Extensions/ImageModeration/ImageModerationExtensionDecorator\";\nexport { LinkPreviewExtension } from \"./Extensions/LinkPreviewExtension/LinkPreviewExtension\";\nexport { LinkPreviewExtensionDecorator } from \"./Extensions/LinkPreviewExtension/LinkPreviewExtensionDecorator\";\nexport { MessageTranslationExtension } from \"./Extensions/MessageTranslation/MessageTranslationExtension\";\nexport { MessageTranslationExtensionDecorator } from \"./Extensions/MessageTranslation/MessageTranslationExtensionDecorator\";\nexport { PollsExtension } from \"./Extensions/PollsExtension/PollsExtension\";\nexport { PollsExtensionDecorator } from \"./Extensions/PollsExtension/PollsExtensionDecorator\";\nexport { SmartReplyExtension } from \"./Extensions/SmartReplies/SmartRepliesExtension\";\nexport { SmartReplyExtensionDecorator } from \"./Extensions/SmartReplies/SmartRepliesExtensionDecorator\";\nexport { StickersExtension } from \"./Extensions/Stickers/StickersExtension\";\nexport { StickersExtensionDecorator } from \"./Extensions/Stickers/StickersExtensionDecorator\";\nexport { TextModeratorExtension } from \"./Extensions/TextModerator/TextModeratorExtension\";\nexport { TextModeratorExtensionDecorator } from \"./Extensions/TextModerator/TextModeratorExtensionDecorator\";\nexport { ThumbnailGenerationExtension } from \"./Extensions/ThumbnailGeneration/ThumbnailGenerationExtension\";\nexport { ThumbnailGenerationExtensionDecorator } from \"./Extensions/ThumbnailGeneration/ThumbnailGenerationExtensionDecorator\";\n\n// calls component\nexport { CallingExtension } from \"./Calls/CallingExtension\";\nexport { CallingExtensionDecorator } from \"./Calls/CallingExtensionDecorator\";\nexport { CometChatCallButtons } from \"./Calls/CometChatCallButtons/cometchat-call-buttons.module\";\nexport { CometChatCallButtonsComponent } from \"./Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component\";\nexport { CometChatIncomingCall } from \"./Calls/CometChatIncomingCall/cometchat-incoming-call.module\";\nexport { CometChatIncomingCallComponent } from \"./Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component\";\nexport { CometChatOngoingCall } from \"./Calls/CometChatOngoingCall/cometchat-ongoing-call.module\";\nexport { CometChatOngoingCallComponent } from \"./Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component\";\nexport { CometChatOutgoingCall } from \"./Calls/CometChatOutgoingCall/cometchat-outgoing-call.module\";\nexport { CometChatOutgoingCallComponent } from \"./Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component\";\n\n// chatuikit\nexport { CometChatAddMembersComponent } from \"./CometChatAddMembers/cometchat-add-members/cometchat-add-members.component\";\nexport { CometChatAddMembers } from \"./CometChatAddMembers/cometchat-add-members.module\";\nexport { CometChatBannedMembers } from \"./CometChatBannedMembers/cometchat-banned-members.module\";\nexport { CometChatBannedMembersComponent } from \"./CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component\";\nexport { CometChatConversations } from \"./CometChatConversations/cometchat-conversations.module\";\nexport { CometChatConversationsComponent } from \"./CometChatConversations/cometchat-conversations/cometchat-conversations.component\";\nexport { CometChatConversationsWithMessages } from \"./CometChatConversationsWithMessages/cometchat-conversations-with-messages.module\";\nexport { CometChatConversationsWithMessagesComponent } from \"./CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component\";\nexport { CometChatDetails } from \"./CometChatDetails/cometchat-details.module\";\nexport { CometChatDetailsComponent } from \"./CometChatDetails/cometchat-details/cometchat-details.component\";\nexport { CometChatGroupMembers } from \"./CometChatGroupMembers/cometchat-group-members.module\";\nexport { CometChatGroupMembersComponent } from \"./CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component\";\nexport { CometChatGroups } from \"./CometChatGroups/cometchat-groups.module\";\nexport { CometChatGroupsComponent } from \"./CometChatGroups/cometchat-groups/cometchat-groups.component\";\nexport { CometChatGroupsWithMessages } from \"./CometChatGroupsWithMessages/cometchat-groups-with-messages.module\";\nexport { CometChatGroupsWithMessagesComponent } from \"./CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component\";\nexport { CometChatList } from \"./CometChatList/cometchat-list.module\";\nexport { CometchatListComponent } from \"./CometChatList/cometchat-list.component\";\nexport { CometChatMessageBubble } from \"./CometChatMessageBubble/cometchat-message-bubble.module\";\nexport { CometChatMessageBubbleComponent } from \"./CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component\";\nexport { CometChatMessageComposer } from \"./CometChatMessageComposer/cometchat-message-composer.module\";\nexport { CometChatMessageComposerComponent } from \"./CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component\";\nexport { CometChatMessageHeader } from \"./CometChatMessageHeader/cometchat-message-header.module\";\nexport { CometChatMessageHeaderComponent } from \"./CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component\";\nexport { CometChatMessageList } from \"./CometChatMessageList/cometchat-message-list.module\";\nexport { CometChatMessageListComponent } from \"./CometChatMessageList/cometchat-message-list/cometchat-message-list.component\";\nexport { CometChatMessages } from \"./CometChatMessages/cometchat-messages.module\";\nexport { CometChatMessagesComponent } from \"./CometChatMessages/cometchat-messages/cometchat-messages.component\";\nexport { CometChatThreadedMessages } from \"./CometChatThreadedMessages/cometchat-threaded-messages.module\";\nexport { CometChatThreadedMessagesComponent } from \"./CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component\";\nexport { CometChatTransferOwnership } from \"./CometChatTransferOwnership/cometchat-transfer-ownership.module\";\nexport { CometChatTransferOwnershipComponent } from \"./CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component\";\nexport { CometChatUsersComponent } from \"./CometChatUsers/cometchat-users/cometchat-users.component\";\nexport { CometChatUsers } from \"./CometChatUsers/cometchat-users.module\";\nexport { CometChatUsersWithMessagesComponent } from \"./CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component\";\nexport { CometChatUsersWithMessages } from \"./CometChatUsersWithMessages/cometchat-users-with-messages.module\";\nexport { CometChatTabsComponent } from \"./Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component\";\nexport { CometChatTabs } from \"./Shared/Views/CometChatTabs/cometchat-tabs.module\";\nexport { CometChatContacts } from \"./CometChatContacts/cometchat-contacts.module\";\nexport { CometChatContactsComponent } from \"./CometChatContacts/cometchat-contacts/cometchat-contacts.component\";\nexport { CometChatMessageInformation } from \"./CometChatMessageInformation/cometchat-message-information.module\";\nexport { CometChatMessageInformationComponent } from \"./CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component\";\n\nexport { CometChatCallLogs } from \"./Calls/CometChatCallLogs/cometchat-call-logs.module\";\nexport { CometchatCallLogsComponent } from \"./Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component\";\nexport { CometChatCallLogParticipants } from \"./Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module\";\nexport { CometChatCallLogParticipantsComponent } from \"./Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component\";\nexport { CometChatCallLogRecordings } from \"./Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module\";\nexport { CometChatCallLogRecordingsComponent } from \"./Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component\";\nexport { CometChatCallLogHistory } from \"./Calls/CometChatCallLogHistory/cometchat-call-log-history.module\";\nexport { CometChatCallLogHistoryComponent } from \"./Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component\";\nexport { CometChatCallLogDetails } from \"./Calls/CometChatCallLogDetails/cometchat-call-log-details.module\";\nexport { CometChatCallLogDetailsComponent } from \"./Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component\";\nexport { CometChatCallLogsWithDetails } from \"./Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module\";\nexport { CometChatCallLogsWithDetailsComponent } from \"./Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component\";\n\n\n// AI\n\nexport { AIConversationStarterDecorator } from \"./AI/AIConversationStarter/AIConversationStarterDecorator\";\nexport { AIConversationStarterExtension } from \"./AI/AIConversationStarter/AIConversationStarter\";\nexport { AISmartRepliesExtension } from \"./AI/AISmartReplies/AISmartReplies\";\nexport { AISmartRepliesExtensionDecorator } from \"./AI/AISmartReplies/AISmartRepliesDecorator\";\nexport { AIConversationSummaryDecorator } from \"./AI/AIConversationSummary/AIConversationSummaryDecorator\";\nexport { AIConversationSummaryExtension } from \"./AI/AIConversationSummary/AIConversationSummary\";\nexport { AIAssistBotDecorator } from \"./AI/AIAssistBot/AIAssistBotDecorator\";\nexport { AIAssistBotExtension } from \"./AI/AIAssistBot/AIAssistBot\";\nexport { CometChatUserMemberWrapperComponent } from \"./CometChatUserMemberWrapper/cometchat-user-member-wrapper.component\";\nexport { CometChatUserMemberWrapper } from \"./CometChatUserMemberWrapper/cometchat-user-member-wrapper.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ExtensionsDataSource","i1.CometChatThemeService","i2","i2.CometChatOngoingCallComponent","i3.CometChatOutgoingCallComponent","i4","i1","i2.CometchatListComponent","i2.CometChatUsersComponent","i3.CometchatListComponent","i3.CometChatMessageBubbleComponent","i2.CometChatMessageBubbleComponent","i3.CometChatOngoingCallComponent","i4.CometChatMessageInformationComponent","i5","i3.CometChatGroupMembersComponent","i2.CometChatUserMemberWrapperComponent","i2.CometChatMessageListComponent","i3.CometChatMessageComposerComponent","i2.CometChatGroupMembersComponent","i2.CometChatAddMembersComponent","i3.CometChatBannedMembersComponent","i4.CometChatGroupMembersComponent","i5.CometChatTransferOwnershipComponent","i6","i2.AIAssistBotMessageListComponent","i3.CometChatMessageHeaderComponent","i4.CometChatMessageListComponent","i5.CometChatMessageComposerComponent","i6.CometChatThreadedMessagesComponent","i7.CometChatDetailsComponent","i8.CometChatCallButtonsComponent","i9","i2.CometChatTabsComponent","i3.CometChatUsersComponent","i4.CometChatGroupsComponent","i2.CometChatConversationsComponent","i3.CometChatMessagesComponent","i4.CometChatContactsComponent","i2.CometChatGroupsComponent","i4.CometChatMessageHeaderComponent","i4.CometChatOutgoingCallComponent","i2.CometChatCallButtonsComponent","i3.CometChatCallLogParticipantsComponent","i4.CometChatCallLogRecordingsComponent","i5.CometChatCallLogHistoryComponent","i2.CometchatCallLogsComponent","i3.CometChatCallLogDetailsComponent"],"mappings":"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"}
|