{"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/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.26\",\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    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  }","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  Input,\n  NgZone,\n  OnInit,\n  SimpleChanges,\n  TemplateRef,\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 } 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() 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  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   * 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  };\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    if(this.selectionMode === this.selectionmodeEnum.single){\n      this.userChecked = user.getUid();\n    }\n    if (this.onSelect) {\n      this.onSelect(user, selected);\n    }\n    if (selected) {\n      this.selectedUsers[user.getUid()] = user;\n    } else {\n      delete this.selectedUsers[user.getUid()];\n    }\n    this.ref.detectChanges(); \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            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) {\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\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  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()\">\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]=\"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  <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  (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 [checkboxStyle]=\"checkboxStyle\"  (cc-checkbox-changed)=\"addMembersToList(user,$event)\" [checked]=\"isUserSelected(user)\"></cometchat-checkbox>\n\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, UIKitSettingsBuilder } 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 = \"Search Members\";\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\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\n    </cometchat-users>\n   </div>\n    <div class=\"cc-add-members__buttons\">\n      <cometchat-button 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    })\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      let userStatusVisibility = this.user.getBlockedByMe() || this.user.getHasBlockedMe() || this.disableUsersPresence;\n      this.subtitleText = userStatusVisibility ? \"\" : this.user.getStatus();\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 = \"Search Members\";\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\";\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  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    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  }\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  }\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\")) {\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, 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    this.isHovering = false;\n    this.ref.detectChanges();\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    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  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    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.caption2)\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} from \"@cometchat/uikit-shared\";\nimport {\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\";\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() 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() 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  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        this.scrollToBottom();\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  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    }\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    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 = 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) {\n      return options;\n    }\n\n    return options.filter((option: CometChatMessageOption) => {\n      return option.id !== CometChatUIKitConstants.MessageOption.reactToMessage;\n    });\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  launchCollaborativeWhiteboardDocument = (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.emojiKeyboardStyle = defaultEmojiStyle;\n    this.unreadMessagesStyle = {\n      height: \"100%\",\n      width: \"100%\",\n      display: \"flex\",\n      justifyContent: \"center\",\n      border: \"none\",\n      borderRadius: \"12px\",\n      padding: \"8px\",\n      background: this.themeService.theme.palette.getPrimary(),\n      buttonTextColor: this.themeService.theme.palette.getAccent(\"dark\"),\n      buttonTextFont: 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  /**\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                    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            if (!lastMessage?.getReadAt() && !isSentByMe) {\n              if (!this.disableReceipt) {\n                CometChat.markAsRead(lastMessage)\n                  .then(() => {\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                  .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 =\n                    \" ↓ \" + 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    if (\n      !this.disableReceipt &&\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 =\n            \" ↓ \" + 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 =\n            \" ↓ \" + 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        this.scrollToBottom();\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.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            this.updateMessage(object.message!);\n          }\n        }\n      }\n    );\n    this.ccMessageSent = CometChatMessageEvents.ccMessageSent.subscribe(\n      (obj: IMessages) => {\n        if (obj.message) {\n          let message: CometChat.BaseMessage = 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(message);\n              }\n              this.updateMessage(message, true);\n              break;\n            }\n            case MessageStatus.error: {\n              if (!message.getSender() || this.isPartOfCurrentChatForUIEvent(message)) {\n                this.updateMessage(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\">\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  ? '20%' : '13%'}\">\n    <cometchat-button [text]=\"newMessageCount\"\n      [buttonStyle]=\"unreadMessagesStyle\"\n      (cc-button-clicked)=\"scrollToBottom()\"></cometchat-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]=\"message?.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]=\"launchCollaborativeWhiteboardDocument\"\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]=\"launchCollaborativeWhiteboardDocument\"\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\">\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 = \"Search Members\";\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} from \"@cometchat/uikit-elements\";\nimport {\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\";\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\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\n  subscribeToEvents() {\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) {\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 = 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    this.inputElementRef.nativeElement.click();\n    this.closePopovers();\n  };\n  openFilePicker = (): void => {\n    this.inputElementRef.nativeElement.type = \"file\";\n    this.inputElementRef.nativeElement.accept = \"file/*\";\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    this.inputElementRef.nativeElement.click();\n    this.closePopovers();\n  };\n  openAudioPicker = (): void => {\n    this.inputElementRef.nativeElement.type = \"file\";\n    this.inputElementRef.nativeElement.accept = \"audio/*\";\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    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    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    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  openMediaRecorded = (event: any) => {\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    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  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    let defaultMediaRecorderStyle = new MediaRecorderStyle({\n      startIconTint: this.themeService.theme.palette.getError(),\n      submitIconTint: this.themeService.theme.palette.getAccent600(),\n      stopIconTint: this.themeService.theme.palette.getError(),\n      closeIconTint: this.themeService.theme.palette.getAccent600(),\n      height: \"100%\",\n      width: \"100%\",\n      background: this.themeService.theme.palette.getBackground(),\n      timerTextFont: fontHelper(this.themeService.theme.typography.subtitle2),\n      timerTextColor: this.themeService.theme.palette.getAccent400(),\n    });\n    this.mediaRecordedPopover.background =\n      this.themeService.theme.palette.getBackground();\n    this.mediaRecorderStyle.border = `1px solid ${this.themeService.theme.palette.getAccent100()}`;\n    this.mediaRecorderStyle = {\n      ...defaultMediaRecorderStyle,\n      ...this.mediaRecorderStyle,\n    };\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  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)=\"closePreview()\"> </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            [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      this.subtitleText = userStatusVisibility ? this.user.getStatus() : \"\";\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.user, this.group, template.id as string)\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  </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    [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        [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[\"group\"]) {\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 = backdropStyle\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  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 { 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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"}