@cometchat/chat-uikit-angular 4.1.1 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +1 -0
  2. package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +5 -3
  3. package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +7 -0
  4. package/Shared/CometChatUIkit/CometChatUIKit.d.ts +7 -1
  5. package/Shared/Framework/DataSource.d.ts +2 -1
  6. package/Shared/Framework/DataSourceDecorator.d.ts +1 -0
  7. package/Shared/Utils/MessageUtils.d.ts +1 -0
  8. package/assets/empty-slot.svg +14 -0
  9. package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +7 -2
  10. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +1 -2
  11. package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +3 -3
  12. package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +176 -39
  13. package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +52 -3
  14. package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +34 -1
  15. package/esm2020/Shared/Framework/DataSource.mjs +1 -1
  16. package/esm2020/Shared/Framework/DataSourceDecorator.mjs +4 -1
  17. package/esm2020/Shared/Utils/MessageUtils.mjs +15 -3
  18. package/esm2020/public-api.mjs +2 -2
  19. package/fesm2015/cometchat-chat-uikit-angular.mjs +313 -70
  20. package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
  21. package/fesm2020/cometchat-chat-uikit-angular.mjs +284 -47
  22. package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
  23. package/package.json +4 -4
  24. package/public-api.d.ts +1 -1
@@ -1,9 +1,9 @@
1
- import { ConversationUtils, CallingDetailsUtils, ExtensionsDataSource as ExtensionsDataSource$1, CollaborativeDocumentConstants, ExtensionsId, CollaborativeWhiteboardConstants, PollsConstants, CometChatUIKitUtility, CometChatSoundManager, SmartRepliesConfiguration, StickersConstants, StickersConfiguration, CometChatUIKitCalls, OutgoingCallStyle, OutgoingCallConfiguration, CallScreenConfiguration, CallButtonsStyle, StorageUtils, IncomingCallStyle, UsersStyle, AddMembersStyle, MessageHeaderStyle, ListStyle, BannedMembersStyle, MessageReceiptUtils, ConversationsStyle, MessageInformationStyle, MessageInformationConfiguration, MessageTranslationConstants, MessageTranslationStyle, InteractiveMessageUtils, ReactionsConstants, FormBubbleStyle, CardBubbleStyle, LinkPreviewConstants, ThumbnailGenerationConstants, MessageListStyle, LinkPreviewStyle, SmartRepliesConstants, MessageComposerStyle, MessageListConfiguration, MessageComposerConfiguration, ThreadedMessagesStyle, GroupMemberUtils, GroupMembersStyle, TransferOwnershipStyle, AddMembersConfiguration, BannedMembersConfiguration, GroupMembersConfiguration, TransferOwnershipConfiguration, DetailsUtils, DetailsStyle, MessageHeaderConfiguration, ThreadedMessagesConfiguration, DetailsConfiguration, MessagesStyle, GroupsStyle, UsersConfiguration, GroupsConfiguration, ContactsStyle, TabItemStyle, MessagesConfiguration, ConversationsConfiguration, ContactsConfiguration, WithMessagesStyle, CreateGroupConfiguration, JoinGroupConfiguration, CallLogsStyle, CallLogParticipantsStyle, CallLogRecordingsStyle, CallLogHistoryStyle, CallButtonsConfiguration, CallLogParticipantsConfiguration, CallLogHistoryConfiguration, CallLogRecordingsConfiguration, CallLogDetailsStyle, CallLogDetailsConfiguration, CallLogsConfiguration, WithDetailsStyle } from '@cometchat/uikit-shared';
1
+ import { ConversationUtils, CallingDetailsUtils, ExtensionsDataSource as ExtensionsDataSource$1, CollaborativeDocumentConstants, ExtensionsId, CollaborativeWhiteboardConstants, PollsConstants, CometChatUIKitUtility, CometChatSoundManager, SmartRepliesConfiguration, StickersConstants, StickersConfiguration, CometChatUIKitSharedSettings, CometChatUIKitCalls, OutgoingCallStyle, OutgoingCallConfiguration, CallScreenConfiguration, CallButtonsStyle, StorageUtils, IncomingCallStyle, UsersStyle, AddMembersStyle, MessageHeaderStyle, ListStyle, BannedMembersStyle, MessageReceiptUtils, ConversationsStyle, MessageInformationStyle, MessageInformationConfiguration, MessageTranslationConstants, MessageTranslationStyle, InteractiveMessageUtils, CalendarStyle, TimeSlotStyle, SchedulerBubbleStyle, ReactionsConstants, FormBubbleStyle, CardBubbleStyle, LinkPreviewConstants, ThumbnailGenerationConstants, MessageListStyle, LinkPreviewStyle, SmartRepliesConstants, MessageComposerStyle, MessageListConfiguration, MessageComposerConfiguration, ThreadedMessagesStyle, GroupMemberUtils, GroupMembersStyle, TransferOwnershipStyle, AddMembersConfiguration, BannedMembersConfiguration, GroupMembersConfiguration, TransferOwnershipConfiguration, DetailsUtils, DetailsStyle, MessageHeaderConfiguration, ThreadedMessagesConfiguration, DetailsConfiguration, MessagesStyle, GroupsStyle, UsersConfiguration, GroupsConfiguration, ContactsStyle, TabItemStyle, MessagesConfiguration, ConversationsConfiguration, ContactsConfiguration, WithMessagesStyle, CreateGroupConfiguration, JoinGroupConfiguration, CallLogsStyle, CallLogParticipantsStyle, CallLogRecordingsStyle, CallLogHistoryStyle, CallButtonsConfiguration, CallLogParticipantsConfiguration, CallLogHistoryConfiguration, CallLogRecordingsConfiguration, CallLogDetailsStyle, CallLogDetailsConfiguration, CallLogsConfiguration, WithDetailsStyle } from '@cometchat/uikit-shared';
2
2
  export * from '@cometchat/uikit-shared';
3
3
  import { CometChatMessageOption, CometChatUIKitConstants, localize, fontHelper, CometChatMessageTemplate, CometChatMessageComposerAction, CometChatTheme, CometChatMessageEvents, MessageStatus, CometChatUIEvents, ChatSdkEventInitializer, CometChatLocalize, CallWorkflow, CometChatCallEvents, IconButtonAlignment, TitleAlignment, States, DatePatterns, SelectionMode, CometChatUserEvents, CometChatGroupEvents, CometChatConversationEvents, MessageBubbleAlignment, MessageListAlignment, Receipts, TimestampAlignment, DocumentIconAlignment, Placement, AuxiliaryButtonAlignment, TabAlignment, TabsVisibility, CometChatCallDetailsTemplate, CometChatCallDetailsOption } from '@cometchat/uikit-resources';
4
4
  export * from '@cometchat/uikit-resources';
5
- import { CallscreenStyle, AvatarStyle, ListItemStyle, DateStyle, ReceiptStyle, BadgeStyle, ConfirmDialogStyle, MenuListStyle, InputStyle, LabelStyle, RadioButtonStyle, CheckboxStyle, DropdownStyle, SingleSelectStyle, QuickViewStyle, MediaRecorderStyle, ChangeScopeStyle, CreateGroupStyle, JoinGroupStyle } from '@cometchat/uikit-elements';
6
- export { ActionSheetStyle, AvatarStyle, BackdropStyle, BadgeStyle, ButtonGroupStyle, CallscreenStyle, CardStyle, ChangeScopeStyle, CheckboxStyle, CometChatActionItem, CometChatActionSheet, CometChatAudioBubble, CometChatAvatar, CometChatBackdrop, CometChatBadge, CometChatButton, CometChatButtonGroup, CometChatCallscreenWrapper, CometChatCard, CometChatChangeScope, CometChatCheckbox, CometChatConfirmDialog, CometChatContextMenu, CometChatCreateGroup, CometChatDate, CometChatDivider, CometChatDocumentBubble, CometChatDraggable, CometChatDropdown, CometChatEmoji, CometChatEmojiKeyboard, CometChatFileBubble, CometChatFullScreenViewer, CometChatIcon, CometChatIconButton, CometChatImageBubble, CometChatInput, CometChatJoinGroup, CometChatLabel, CometChatListItem, CometChatLiveReaction, CometChatLoader, CometChatMediaRecorder, CometChatMenuList, CometChatMessageInput, CometChatModal, CometChatPopover, CometChatPreview, CometChatRadioButton, CometChatReceipt, CometChatSearchInput, CometChatStatusIndicator, CometChatTextBubble, CometChatVideoBubble, ConfirmDialogStyle, ContextMenuStyle, CreateGroupStyle, DateStyle, DocumentBubbleStyle, DropdownStyle, EmojiKeyboardStyle, Emojis, FileBubbleStyle, FullScreenViewerStyle, IconStyle, ImageBubbleStyle, InputStyle, JoinGroupStyle, LabelStyle, ListItemStyle, LoaderStyle, MediaRecorderStyle, MenuListStyle, MessageInputStyle, ModalStyle, PopoverStyle, PreviewStyle, RadioButtonStyle, ReceiptStyle, SearchInputStyle, TextBubbleStyle, auxiliaryButtonAlignmentEnum, layoutType } from '@cometchat/uikit-elements';
5
+ import { CallscreenStyle, AvatarStyle, ListItemStyle, DateStyle, ReceiptStyle, BadgeStyle, ConfirmDialogStyle, MenuListStyle, QuickViewStyle, InputStyle, LabelStyle, RadioButtonStyle, CheckboxStyle, DropdownStyle, SingleSelectStyle, MediaRecorderStyle, ChangeScopeStyle, CreateGroupStyle, JoinGroupStyle } from '@cometchat/uikit-elements';
6
+ export { ActionSheetStyle, AvatarStyle, BackdropStyle, BadgeStyle, ButtonGroupStyle, CallscreenStyle, CardStyle, ChangeScopeStyle, CheckboxStyle, CometChatActionItem, CometChatActionSheet, CometChatAudioBubble, CometChatAvatar, CometChatBackdrop, CometChatBadge, CometChatButton, CometChatButtonGroup, CometChatCallscreenWrapper, CometChatCard, CometChatChangeScope, CometChatCheckbox, CometChatConfirmDialog, CometChatContextMenu, CometChatCreateGroup, CometChatDate, CometChatDivider, CometChatDocumentBubble, CometChatDraggable, CometChatDropdown, CometChatEmoji, CometChatEmojiKeyboard, CometChatFileBubble, CometChatFullScreenViewer, CometChatIcon, CometChatIconButton, CometChatImageBubble, CometChatInput, CometChatJoinGroup, CometChatLabel, CometChatListItem, CometChatLiveReaction, CometChatLoader, CometChatMediaRecorder, CometChatMenuList, CometChatMessageInput, CometChatModal, CometChatPanel, CometChatPopover, CometChatPreview, CometChatQuickView, CometChatRadioButton, CometChatReceipt, CometChatSearchInput, CometChatSingleSelect, CometChatStatusIndicator, CometChatTextBubble, CometChatVideoBubble, ConfirmDialogStyle, ContextMenuStyle, CreateGroupStyle, DateStyle, DocumentBubbleStyle, DropdownStyle, EmojiKeyboardStyle, Emojis, FileBubbleStyle, FullScreenViewerStyle, IconStyle, ImageBubbleStyle, InputStyle, JoinGroupStyle, LabelStyle, ListItemStyle, LoaderStyle, MediaRecorderStyle, MenuListStyle, MessageInputStyle, ModalStyle, PanelStyle, PopoverStyle, PreviewStyle, QuickViewStyle, RadioButtonStyle, ReceiptStyle, SearchInputStyle, SingleSelectStyle, TextBubbleStyle, auxiliaryButtonAlignmentEnum, layoutType } from '@cometchat/uikit-elements';
7
7
  import { CometChat } from '@cometchat/chat-sdk-javascript';
8
8
  import * as i0 from '@angular/core';
9
9
  import { Injectable, Component, ViewChild, Input, ChangeDetectionStrategy, NgModule, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Output } from '@angular/core';
@@ -124,6 +124,13 @@ class MessageUtils {
124
124
  getBottomView(_messageObject, _alignment) {
125
125
  return null;
126
126
  }
127
+ getSchedulerMessageTemplate() {
128
+ return new CometChatMessageTemplate({
129
+ type: CometChatUIKitConstants.MessageTypes.scheduler,
130
+ category: CometChatUIKitConstants.MessageCategory.interactive,
131
+ options: ChatConfigurator.getDataSource().getMessageOptions,
132
+ });
133
+ }
127
134
  getTextMessageTemplate() {
128
135
  return new CometChatMessageTemplate({
129
136
  type: CometChatUIKitConstants.MessageTypes.text,
@@ -188,7 +195,8 @@ class MessageUtils {
188
195
  ChatConfigurator.getDataSource().getFileMessageTemplate(),
189
196
  ChatConfigurator.getDataSource().getGroupActionTemplate(),
190
197
  ChatConfigurator.getDataSource().getFormMessageTemplate(),
191
- ChatConfigurator.getDataSource().getCardMessageTemplate()
198
+ ChatConfigurator.getDataSource().getCardMessageTemplate(),
199
+ ChatConfigurator.getDataSource().getSchedulerMessageTemplate()
192
200
  ];
193
201
  }
194
202
  getMessageTemplate(messageType, messageCategory) {
@@ -222,6 +230,9 @@ class MessageUtils {
222
230
  case CometChatUIKitConstants.MessageTypes.card:
223
231
  _template = ChatConfigurator.getDataSource().getCardMessageTemplate();
224
232
  break;
233
+ case CometChatUIKitConstants.MessageTypes.scheduler:
234
+ _template = ChatConfigurator.getDataSource().getSchedulerMessageTemplate();
235
+ break;
225
236
  }
226
237
  }
227
238
  return _template;
@@ -289,7 +300,8 @@ class MessageUtils {
289
300
  CometChatUIKitConstants.MessageTypes.file,
290
301
  CometChatUIKitConstants.MessageTypes.groupMember,
291
302
  CometChatUIKitConstants.MessageTypes.form,
292
- CometChatUIKitConstants.MessageTypes.card
303
+ CometChatUIKitConstants.MessageTypes.card,
304
+ CometChatUIKitConstants.MessageTypes.scheduler
293
305
  ];
294
306
  }
295
307
  addList() {
@@ -477,6 +489,9 @@ class DataSourceDecorator {
477
489
  getGroupActionTemplate() {
478
490
  return (this.dataSource ?? new MessageUtils()).getGroupActionTemplate();
479
491
  }
492
+ getSchedulerMessageTemplate() {
493
+ return (this.dataSource ?? new MessageUtils()).getSchedulerMessageTemplate();
494
+ }
480
495
  getAllMessageTemplates() {
481
496
  return (this.dataSource ?? new MessageUtils()).getAllMessageTemplates();
482
497
  }
@@ -1558,6 +1573,7 @@ class CometChatUIKit {
1558
1573
  static init(uiKitSettings) {
1559
1574
  // perform sdk init taking values from uiKitSettings
1560
1575
  CometChatUIKit.uiKitSettings = uiKitSettings;
1576
+ CometChatUIKitSharedSettings.uikitSettings = CometChatUIKit.uiKitSettings;
1561
1577
  if (!CometChatUIKit.checkAuthSettings())
1562
1578
  return undefined;
1563
1579
  const appSettingsBuilder = new CometChat.AppSettingsBuilder();
@@ -1885,6 +1901,37 @@ class CometChatUIKit {
1885
1901
  });
1886
1902
  });
1887
1903
  }
1904
+ /**
1905
+ * Sends a scheduler message and emits events based on the message status.
1906
+ * @param message - The scheduler message to be sent.
1907
+ * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.
1908
+ */
1909
+ static sendSchedulerMessage(message, disableLocalEvents = false) {
1910
+ if (!disableLocalEvents) {
1911
+ CometChatMessageEvents.ccMessageSent.next({
1912
+ message: message,
1913
+ status: MessageStatus.inprogress,
1914
+ });
1915
+ }
1916
+ CometChat.sendInteractiveMessage(message)
1917
+ .then((message) => {
1918
+ if (!disableLocalEvents) {
1919
+ CometChatMessageEvents.ccMessageSent.next({
1920
+ message: message,
1921
+ status: MessageStatus.success,
1922
+ });
1923
+ }
1924
+ })
1925
+ .catch((error) => {
1926
+ message.setMetadata({ error });
1927
+ if (!disableLocalEvents) {
1928
+ CometChatMessageEvents.ccMessageSent.next({
1929
+ message: message,
1930
+ status: MessageStatus.error,
1931
+ });
1932
+ }
1933
+ });
1934
+ }
1888
1935
  }
1889
1936
  CometChatUIKit.SoundManager = CometChatSoundManager;
1890
1937
  CometChatUIKit.Localize = CometChatLocalize;
@@ -6129,7 +6176,7 @@ class CometChatConversationsComponent {
6129
6176
  this.updateConversation(call);
6130
6177
  }
6131
6178
  }));
6132
- // SDK listeners
6179
+ // SDK listeners
6133
6180
  this.onTextMessageReceived =
6134
6181
  CometChatMessageEvents.onTextMessageReceived.subscribe((textMessage) => {
6135
6182
  callback(CometChatUIKitConstants.messages.TEXT_MESSAGE_RECEIVED, null, textMessage);
@@ -6146,6 +6193,10 @@ class CometChatConversationsComponent {
6146
6193
  CometChatMessageEvents.onFormMessageReceived.subscribe((formMessage) => {
6147
6194
  callback(CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED, null, formMessage);
6148
6195
  });
6196
+ this.onSchedulerMessageReceived =
6197
+ CometChatMessageEvents.onSchedulerMessageReceived.subscribe((formMessage) => {
6198
+ callback(CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED, null, formMessage);
6199
+ });
6149
6200
  this.onCardMessageReceived =
6150
6201
  CometChatMessageEvents.onCardMessageReceived.subscribe((cardMessage) => {
6151
6202
  callback(CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED, null, cardMessage);
@@ -6205,6 +6256,7 @@ class CometChatConversationsComponent {
6205
6256
  this.onMediaMessageReceived?.unsubscribe();
6206
6257
  this.onCustomMessageReceived?.unsubscribe();
6207
6258
  this.onFormMessageReceived?.unsubscribe();
6259
+ this.onSchedulerMessageReceived?.unsubscribe();
6208
6260
  this.onCardMessageReceived?.unsubscribe();
6209
6261
  this.onCustomInteractiveMessageReceived?.unsubscribe();
6210
6262
  this.onMessagesRead?.unsubscribe();
@@ -7999,7 +8051,7 @@ class CometChatMessageListComponent {
7999
8051
  this.lastMessageId = Number(messageList[messageList.length - 1].getId());
8000
8052
  }
8001
8053
  let lastMessage = messageList[messageList.length - 1];
8002
- if (lastMessage?.getSender().getUid() !=
8054
+ if (lastMessage?.getSender()?.getUid() !=
8003
8055
  this.loggedInUser?.getUid() &&
8004
8056
  !lastMessage.getDeliveredAt()) {
8005
8057
  //mark the message as delivered
@@ -8337,17 +8389,6 @@ class CometChatMessageListComponent {
8337
8389
  this.requestBuilder = null;
8338
8390
  CometChat.removeGroupListener(this.groupListenerId);
8339
8391
  CometChat.removeCallListener(this.callListenerId);
8340
- this.onTextMessageReceived?.unsubscribe();
8341
- this.onMediaMessageReceived?.unsubscribe();
8342
- this.onCustomMessageReceived?.unsubscribe();
8343
- this.onFormMessageReceived?.unsubscribe();
8344
- this.onCardMessageReceived?.unsubscribe();
8345
- this.onCustomInteractiveMessageReceived?.unsubscribe();
8346
- this.onMessagesDelivered?.unsubscribe();
8347
- this.onMessagesRead?.unsubscribe();
8348
- this.onMessageDeleted?.unsubscribe();
8349
- this.onMessageEdited?.unsubscribe();
8350
- this.onTransientMessageReceived?.unsubscribe();
8351
8392
  this.reInitializeMessageList();
8352
8393
  };
8353
8394
  /**
@@ -8647,6 +8688,152 @@ class CometChatMessageListComponent {
8647
8688
  iconTint: this.theme.palette.getAccent600(),
8648
8689
  };
8649
8690
  };
8691
+ this.getSchedulerBubbleStyle = (messgae) => {
8692
+ let avatarStyle = new AvatarStyle({
8693
+ borderRadius: "50%",
8694
+ width: "48px",
8695
+ height: "48px",
8696
+ border: "none",
8697
+ backgroundColor: this.themeService.theme.palette.getAccent700(),
8698
+ nameTextColor: this.themeService.theme.palette.getAccent900(),
8699
+ backgroundSize: "cover",
8700
+ nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
8701
+ });
8702
+ let listItemStyle = new ListItemStyle({
8703
+ height: "auto",
8704
+ width: "100%",
8705
+ background: "inherit",
8706
+ activeBackground: "transparent",
8707
+ borderRadius: "0",
8708
+ titleFont: fontHelper(this.themeService.theme.typography.text1),
8709
+ titleColor: this.themeService.theme.palette.getAccent(),
8710
+ border: "none",
8711
+ separatorColor: "",
8712
+ hoverBackground: "transparent"
8713
+ });
8714
+ let calendarStyle = new CalendarStyle({
8715
+ height: "100%",
8716
+ width: "100%",
8717
+ border: "none",
8718
+ borderRadius: "0",
8719
+ background: "transparent",
8720
+ dateTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
8721
+ dateTextColor: this.themeService.theme.palette.getAccent(),
8722
+ dayTextFont: fontHelper(this.themeService.theme.typography.text2),
8723
+ dayTextColor: this.themeService.theme.palette.getAccent(),
8724
+ monthYearTextFont: fontHelper(this.themeService.theme.typography.text2),
8725
+ monthYearTextColor: this.themeService.theme.palette.getAccent(),
8726
+ defaultDateTextBackground: 'transparent',
8727
+ disabledDateTextColor: this.themeService.theme.palette.getAccent400(),
8728
+ disabledDateTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
8729
+ disabledDateTextBackground: "transparent",
8730
+ titleTextFont: fontHelper(this.themeService.theme.typography.text1),
8731
+ titleTextColor: this.themeService.theme.palette.getAccent(),
8732
+ timezoneTextFont: fontHelper(this.themeService.theme.typography.caption2),
8733
+ timezoneTextColor: this.themeService.theme.palette.getAccent(),
8734
+ arrowButtonTextColor: this.themeService.theme.palette.getAccent(),
8735
+ arrowButtonTextFont: fontHelper(this.themeService.theme.typography.title2),
8736
+ });
8737
+ let timeSlotStyle = new TimeSlotStyle({
8738
+ background: "transparent",
8739
+ height: "fit-content",
8740
+ width: "100%",
8741
+ border: "none",
8742
+ borderRadius: "0",
8743
+ calendarIconTint: this.themeService.theme.palette.getAccent(),
8744
+ timezoneIconTint: this.themeService.theme.palette.getAccent(),
8745
+ emptySlotIconTint: this.themeService.theme.palette.getAccent500(),
8746
+ emptySlotTextColor: this.themeService.theme.palette.getAccent500(),
8747
+ emptySlotTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
8748
+ dateTextColor: this.themeService.theme.palette.getAccent(),
8749
+ dateTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
8750
+ seperatorTint: this.themeService.theme.palette.getAccent100(),
8751
+ slotBackground: this.themeService.theme.palette.getAccent900(),
8752
+ slotBorder: "none",
8753
+ slotBorderRadius: "8px",
8754
+ slotTextColor: this.themeService.theme.palette.getAccent(),
8755
+ slotTextFont: fontHelper(this.themeService.theme.typography.caption2),
8756
+ timezoneTextColor: this.themeService.theme.palette.getAccent(),
8757
+ timezoneTextFont: fontHelper(this.themeService.theme.typography.caption2),
8758
+ titleTextColor: this.themeService.theme.palette.getAccent(),
8759
+ titleTextFont: fontHelper(this.themeService.theme.typography.text1)
8760
+ });
8761
+ let qucikViewStyle = new QuickViewStyle({
8762
+ background: this.themeService.theme.palette.getAccent50(),
8763
+ height: "fit-content",
8764
+ width: "100%",
8765
+ titleFont: fontHelper(this.themeService.theme.typography.subtitle2),
8766
+ titleColor: this.themeService.theme.palette.getAccent(),
8767
+ subtitleFont: fontHelper(this.themeService.theme.typography.subtitle2),
8768
+ subtitleColor: this.themeService.theme.palette.getAccent600(),
8769
+ leadingBarTint: this.themeService.theme.palette.getPrimary(),
8770
+ leadingBarWidth: "4px",
8771
+ borderRadius: "8px",
8772
+ });
8773
+ return new SchedulerBubbleStyle({
8774
+ avatarStyle: avatarStyle,
8775
+ listItemStyle: listItemStyle,
8776
+ quickViewStyle: qucikViewStyle,
8777
+ dateSelectorStyle: calendarStyle,
8778
+ timeSlotSelectorStyle: timeSlotStyle,
8779
+ backButtonIconTint: this.themeService.theme.palette.getPrimary(),
8780
+ background: "transparent",
8781
+ height: "100%",
8782
+ width: "100%",
8783
+ border: `1px solid ${this.themeService.theme.palette.getAccent100()}`,
8784
+ borderRadius: "8px",
8785
+ loadingIconTint: this.themeService.theme.palette.getAccent600(),
8786
+ suggestedTimeBackground: this.themeService.theme.palette.getAccent900(),
8787
+ suggestedTimeBorder: `1px solid ${this.themeService.theme.palette.getPrimary()}`,
8788
+ suggestedTimeBorderRadius: "8px",
8789
+ suggestedTimeDisabledBackground: this.themeService.theme.palette.getAccent50(),
8790
+ suggestedTimeDisabledBorder: `1px solid ${this.themeService.theme.palette.getAccent200()}`,
8791
+ suggestedTimeDisabledBorderRadius: "8px",
8792
+ suggestedTimeDisabledTextColor: this.themeService.theme.palette.getAccent700(),
8793
+ suggestedTimeDisabledTextFont: fontHelper(this.themeService.theme.typography.text3),
8794
+ suggestedTimeTextColor: this.themeService.theme.palette.getPrimary(),
8795
+ suggestedTimeTextFont: fontHelper(this.themeService.theme.typography.text3),
8796
+ moreButtonDisabledTextBackground: "transparent",
8797
+ moreButtonDisabledTextBorder: "none",
8798
+ moreButtonDisabledTextBorderRadius: "0",
8799
+ moreButtonDisabledTextColor: this.themeService.theme.palette.getAccent600(),
8800
+ moreButtonDisabledTextFont: fontHelper(this.themeService.theme.typography.caption2),
8801
+ moreButtonTextBackground: "transparent",
8802
+ moreButtonTextBorder: "none",
8803
+ moreButtonTextBorderRadius: "0",
8804
+ moreButtonTextColor: this.themeService.theme.palette.getPrimary(),
8805
+ moreButtonTextFont: fontHelper(this.themeService.theme.typography.caption2),
8806
+ goalCompletionTextColor: this.themeService.theme.palette.getAccent(),
8807
+ goalCompletionTextFont: fontHelper(this.themeService.theme.typography.text3),
8808
+ errorTextColor: this.themeService.theme.palette.getError(),
8809
+ errorTextFont: fontHelper(this.themeService.theme.typography.text3),
8810
+ scheduleButtonStyle: {
8811
+ iconHeight: "20px", iconWidth: "20px",
8812
+ buttonIconTint: this.themeService.theme.palette.getAccent(),
8813
+ buttonTextFont: fontHelper(this.themeService.theme.typography.name),
8814
+ buttonTextColor: this.themeService.theme.palette.getAccent("dark"),
8815
+ border: "none",
8816
+ borderRadius: "8px",
8817
+ background: this.themeService.theme.palette.getPrimary(),
8818
+ width: "100%",
8819
+ display: "flex",
8820
+ justifyContent: "center",
8821
+ padding: "8px"
8822
+ },
8823
+ seperatorTint: this.themeService.theme.palette.getAccent200(),
8824
+ subtitleTextColor: this.themeService.theme.palette.getAccent400(),
8825
+ subtitleTextFont: fontHelper(this.themeService.theme.typography.name),
8826
+ summaryTextColor: this.themeService.theme.palette.getAccent(),
8827
+ summaryTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
8828
+ timezoneTextColor: this.themeService.theme.palette.getAccent600(),
8829
+ timezoneTextFont: fontHelper(this.themeService.theme.typography.caption2),
8830
+ titleTextColor: this.themeService.theme.palette.getAccent(),
8831
+ titleTextFont: fontHelper(this.themeService.theme.typography.title1),
8832
+ timezoneIconTint: this.themeService.theme.palette.getAccent(),
8833
+ calendarIconTint: this.themeService.theme.palette.getAccent(),
8834
+ clockIconTint: this.themeService.theme.palette.getAccent(),
8835
+ });
8836
+ };
8650
8837
  this.wrapperStyle = () => {
8651
8838
  return {
8652
8839
  height: this.messageListStyle.height,
@@ -8755,23 +8942,11 @@ class CometChatMessageListComponent {
8755
8942
  }
8756
8943
  }
8757
8944
  //Removing Previous Conversation Listeners
8758
- this.onTextMessageReceived?.unsubscribe();
8759
- this.onMediaMessageReceived?.unsubscribe();
8760
- this.onCustomMessageReceived?.unsubscribe();
8761
- this.onFormMessageReceived?.unsubscribe();
8762
- this.onCardMessageReceived?.unsubscribe();
8763
- this.onCustomInteractiveMessageReceived?.unsubscribe();
8764
- this.onMessagesDelivered?.unsubscribe();
8765
- this.onMessagesRead?.unsubscribe();
8766
- this.onMessageDeleted?.unsubscribe();
8767
- this.onMessageEdited?.unsubscribe();
8768
- this.onTransientMessageReceived?.unsubscribe();
8769
8945
  CometChat.removeGroupListener(this.groupListenerId);
8770
8946
  CometChat.removeCallListener(this.callListenerId);
8771
8947
  this.groupListenerId = "group_" + new Date().getTime();
8772
8948
  this.callListenerId = "call_" + new Date().getTime();
8773
8949
  // Attach MessageListeners for the new conversation
8774
- this.addMessageEventListeners();
8775
8950
  }
8776
8951
  }
8777
8952
  catch (error) {
@@ -8950,6 +9125,7 @@ class CometChatMessageListComponent {
8950
9125
  this.onMediaMessageReceived?.unsubscribe();
8951
9126
  this.onCustomMessageReceived?.unsubscribe();
8952
9127
  this.onFormMessageReceived?.unsubscribe();
9128
+ this.onSchedulerMessageReceived?.unsubscribe();
8953
9129
  this.onCardMessageReceived?.unsubscribe();
8954
9130
  this.onCustomInteractiveMessageReceived?.unsubscribe();
8955
9131
  this.onMessagesDelivered?.unsubscribe();
@@ -9170,7 +9346,7 @@ class CometChatMessageListComponent {
9170
9346
  msg?.getType() == CometChatUIKitConstants.MessageTypes.audio) {
9171
9347
  style = {
9172
9348
  borderRadius: "",
9173
- background: this.themeService.theme.palette.getAccent100(),
9349
+ background: this.themeService.theme.palette.getSecondary(),
9174
9350
  };
9175
9351
  }
9176
9352
  else if (msg?.getType() == CometChatUIKitConstants.MessageTypes.groupMember ||
@@ -9178,13 +9354,13 @@ class CometChatMessageListComponent {
9178
9354
  style = {
9179
9355
  background: "transparent",
9180
9356
  borderRadius: "12px",
9181
- border: `1px solid ${this.themeService.theme.palette.getAccent100()}`,
9357
+ border: `1px solid ${this.themeService.theme.palette.getSecondary()}`,
9182
9358
  };
9183
9359
  }
9184
9360
  else if (!msg?.getDeletedAt() &&
9185
9361
  msg?.getCategory() === CometChatUIKitConstants.MessageCategory.interactive) {
9186
9362
  return {
9187
- background: this.themeService.theme.palette.getAccent100(),
9363
+ background: this.themeService.theme.palette.getSecondary(),
9188
9364
  width: "300px",
9189
9365
  };
9190
9366
  }
@@ -9192,13 +9368,13 @@ class CometChatMessageListComponent {
9192
9368
  if (msg?.getSender() &&
9193
9369
  msg?.getSender().getUid() != this.loggedInUser.getUid()) {
9194
9370
  style = {
9195
- background: this.themeService.theme.palette.getAccent100(),
9371
+ background: this.themeService.theme.palette.getSecondary(),
9196
9372
  borderRadius: "12px",
9197
9373
  };
9198
9374
  }
9199
9375
  else {
9200
9376
  style = {
9201
- background: this.themeService.theme.palette.getAccent100(),
9377
+ background: this.themeService.theme.palette.getSecondary(),
9202
9378
  borderRadius: "12px",
9203
9379
  };
9204
9380
  }
@@ -9288,7 +9464,7 @@ class CometChatMessageListComponent {
9288
9464
  width: "100%",
9289
9465
  height: "30px",
9290
9466
  border: `1px solid ${this.themeService.theme.palette.getAccent100()}`,
9291
- borderRadius: "3px",
9467
+ borderRadius: "6px",
9292
9468
  padding: "0px 0px 0px 5px",
9293
9469
  placeholderTextColor: this.themeService.theme.palette.getAccent400(),
9294
9470
  placeholderTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
@@ -9317,14 +9493,14 @@ class CometChatMessageListComponent {
9317
9493
  borderRadius: "4px",
9318
9494
  background: "",
9319
9495
  labelTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
9320
- labelTextColor: this.themeService.theme.palette.getAccent600(),
9496
+ labelTextColor: this.themeService.theme.palette.getAccent(),
9321
9497
  });
9322
9498
  const dropdownStyle = new DropdownStyle({
9323
9499
  height: "35px",
9324
9500
  width: "100%",
9325
9501
  background: this.themeService.theme.palette.getBackground(),
9326
9502
  border: `1px solid ${this.themeService.theme.palette.getAccent100()}`,
9327
- borderRadius: "12px",
9503
+ borderRadius: "6px",
9328
9504
  activeTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
9329
9505
  activeTextColor: this.themeService.theme.palette.getAccent(),
9330
9506
  arrowIconTint: this.themeService.theme.palette.getAccent700(),
@@ -9342,7 +9518,7 @@ class CometChatMessageListComponent {
9342
9518
  width: "100%",
9343
9519
  background: this.themeService.theme.palette.getPrimary(),
9344
9520
  border: `none`,
9345
- borderRadius: "12px",
9521
+ borderRadius: "6px",
9346
9522
  buttonTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
9347
9523
  buttonTextColor: this.themeService.theme.palette.getBackground(),
9348
9524
  justifyContent: "center",
@@ -9360,7 +9536,7 @@ class CometChatMessageListComponent {
9360
9536
  textColor: this.themeService.theme.palette.getAccent(),
9361
9537
  optionBackground: this.themeService.theme.palette.getBackground(),
9362
9538
  optionBorder: `1px solid ${this.themeService.theme.palette.getAccent100()}`,
9363
- optionBorderRadius: "2px",
9539
+ optionBorderRadius: "3px",
9364
9540
  hoverTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
9365
9541
  hoverTextColor: this.themeService.theme.palette.getAccent(),
9366
9542
  hoverTextBackground: this.themeService.theme.palette.getAccent100(),
@@ -9398,6 +9574,10 @@ class CometChatMessageListComponent {
9398
9574
  goalCompletionTextColor: this.themeService.theme.palette.getAccent(),
9399
9575
  goalCompletionTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
9400
9576
  wrapperPadding: "2px",
9577
+ datePickerBorder: `1px solid ${this.themeService.theme.palette.getAccent100()}`,
9578
+ datePickerBorderRadius: "6px",
9579
+ datePickerFont: fontHelper(this.themeService.theme.typography.subtitle2),
9580
+ datePickerFontColor: this.themeService.theme.palette.getAccent(),
9401
9581
  });
9402
9582
  }
9403
9583
  getCardMessageBubbleStyle() {
@@ -9535,6 +9715,7 @@ class CometChatMessageListComponent {
9535
9715
  extension_document: this.documentBubble,
9536
9716
  extension_poll: this.pollBubble,
9537
9717
  meeting: this.directCalling,
9718
+ scheduler: this.schedulerBubble,
9538
9719
  form: this.formBubble,
9539
9720
  card: this.cardBubble,
9540
9721
  };
@@ -9700,6 +9881,7 @@ class CometChatMessageListComponent {
9700
9881
  this.setDateStyle();
9701
9882
  this.setReceiptStyle();
9702
9883
  this.subscribeToEvents();
9884
+ this.addMessageEventListeners();
9703
9885
  this.setOngoingCallStyle();
9704
9886
  this.state = States.loading;
9705
9887
  CometChat.getLoggedinUser()
@@ -10080,6 +10262,10 @@ class CometChatMessageListComponent {
10080
10262
  CometChatMessageEvents.onFormMessageReceived.subscribe((message) => {
10081
10263
  this.messageUpdate(CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED, message);
10082
10264
  });
10265
+ this.onSchedulerMessageReceived =
10266
+ CometChatMessageEvents.onSchedulerMessageReceived.subscribe((message) => {
10267
+ this.messageUpdate(CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED, message);
10268
+ });
10083
10269
  this.onCardMessageReceived =
10084
10270
  CometChatMessageEvents.onCardMessageReceived.subscribe((message) => {
10085
10271
  this.messageUpdate(CometChatUIKitConstants.messages.INTERACTIVE_MESSAGE_RECEIVED, message);
@@ -10769,10 +10955,10 @@ class CometChatMessageListComponent {
10769
10955
  }
10770
10956
  }
10771
10957
  CometChatMessageListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatMessageListComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
10772
- CometChatMessageListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatMessageListComponent, selector: "cometchat-message-list", inputs: { hideError: "hideError", errorStateView: "errorStateView", loadingStateView: "loadingStateView", emptyStateView: "emptyStateView", errorStateText: "errorStateText", emptyStateText: "emptyStateText", loadingIconURL: "loadingIconURL", user: "user", group: "group", disableReceipt: "disableReceipt", disableSoundForMessages: "disableSoundForMessages", customSoundForMessages: "customSoundForMessages", readIcon: "readIcon", deliveredIcon: "deliveredIcon", sentIcon: "sentIcon", waitIcon: "waitIcon", errorIcon: "errorIcon", aiErrorIcon: "aiErrorIcon", aiEmptyIcon: "aiEmptyIcon", alignment: "alignment", showAvatar: "showAvatar", datePattern: "datePattern", timestampAlignment: "timestampAlignment", DateSeparatorPattern: "DateSeparatorPattern", templates: "templates", messagesRequestBuilder: "messagesRequestBuilder", newMessageIndicatorText: "newMessageIndicatorText", scrollToBottomOnNewMessages: "scrollToBottomOnNewMessages", thresholdValue: "thresholdValue", unreadMessageThreshold: "unreadMessageThreshold", apiConfiguration: "apiConfiguration", onThreadRepliesClick: "onThreadRepliesClick", headerView: "headerView", footerView: "footerView", parentMessageId: "parentMessageId", avatarStyle: "avatarStyle", backdropStyle: "backdropStyle", dateSeparatorStyle: "dateSeparatorStyle", messageListStyle: "messageListStyle", onError: "onError", messageInformationConfiguration: "messageInformationConfiguration" }, viewQueries: [{ propertyName: "listScroll", first: true, predicate: ["listScroll"], descendants: true }, { propertyName: "bottom", first: true, predicate: ["bottom"], descendants: true }, { propertyName: "top", first: true, predicate: ["top"], descendants: true }, { propertyName: "textBubble", first: true, predicate: ["textBubble"], descendants: true }, { propertyName: "threadMessageBubble", first: true, predicate: ["threadMessageBubble"], descendants: true }, { propertyName: "fileBubble", first: true, predicate: ["fileBubble"], descendants: true }, { propertyName: "audioBubble", first: true, predicate: ["audioBubble"], descendants: true }, { propertyName: "videoBubble", first: true, predicate: ["videoBubble"], descendants: true }, { propertyName: "imageBubble", first: true, predicate: ["imageBubble"], descendants: true }, { propertyName: "formBubble", first: true, predicate: ["formBubble"], descendants: true }, { propertyName: "cardBubble", first: true, predicate: ["cardBubble"], descendants: true }, { propertyName: "stickerBubble", first: true, predicate: ["stickerBubble"], descendants: true }, { propertyName: "documentBubble", first: true, predicate: ["documentBubble"], descendants: true }, { propertyName: "whiteboardBubble", first: true, predicate: ["whiteboardBubble"], descendants: true }, { propertyName: "popoverRef", first: true, predicate: ["popoverRef"], descendants: true }, { propertyName: "directCalling", first: true, predicate: ["directCalling"], descendants: true }, { propertyName: "pollBubble", first: true, predicate: ["pollBubble"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-message-list__wrapper\" [ngStyle]=\"wrapperStyle()\" *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\" *ngIf=\"state == states.loading \">\n <cometchat-loader [iconURL]=\"loadingIconURL\" [loaderStyle]=\"loadingStyle()\">\n </cometchat-loader>\n <span class=\"cc-message-list__customview--loading\" *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\" *ngIf=\"state == states.error && !hideError \">\n <cometchat-label [labelStyle]=\"errorStyle()\" *ngIf=\"state == states.error && !hideError && !errorStateView\"\n [text]=\"errorStateText\">\n </cometchat-label>\n <span class=\"cc-message-list__custom-view--error\"\n *ngIf=\"state == states.error && !hideError && 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 <!-- <cometchat-label [labelStyle]=\"emptyStyle()\" *ngIf=\"state == states.empty && !emptyStateView\" [text]=\"emptyStateText\"\n >\n </cometchat-label> -->\n <span class=\"cc-message-list__custom-view--empty\" *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\" *ngFor=\"let message of messagesList; let i = index\">\n <div class=\"cc-message-list__date-container\" *ngIf=\"(i === 0) && message?.getSentAt()\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message!.getSentAt()\" [pattern]=\"DateSeparatorPattern\"\n [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()\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\" [pattern]=\"DateSeparatorPattern\"\n [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div *ngIf=\"getBubbleWrapper(message) \">\n <ng-container *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\" [leadingView]=\" showAvatar ? leadingView : null\"\n [bottomView]=\"enableReactions ? reactionView : null\"\n [headerView]=\"getHeaderView(message) || message?.getCategory() != MessageCategory.action && showHeaderTitle(message) ? bubbleHeader : null\"\n [footerView]=\"footerView\" [contentView]=\"contentView\" [threadView]=\"threadView\"\n [id]=\"message?.getId() || message?.getMuid()\" [options]=\"setMessageOptions(message)\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\" [alignment]=\"setBubbleAlignment(message)\">\n <ng-template #contentView>\n <ng-container *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <reactions-view *ngIf=\"hasReaction(message)\" [messageObject]=\"message\"\n [alignment]=\"setBubbleAlignment(message)\" [addReactionIconURL]=\"addReactionIconURL\"\n [loggedInUser]=\"loggedInUser\" [reactionsStyle]=\"reactionsStyle(message)\"></reactions-view>\n </ng-template>\n <ng-template #footerView>\n <div class=\"cc-message-list__bubble-footer\">\n <div *ngIf=\"getFooterView(message);else bubbleFooter\">\n <ng-container *ngTemplateOutlet=\"getFooterView(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()\" [dateStyle]=\"bubbleDateStyle\"\n [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\" !message?.getDeletedAt() && !disableReceipt && (!message?.getSender() ||this.loggedInUser.getUid() == message?.getSender()?.getUid()) && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\" [receiptStyle]=\"receiptStyle\"\n [waitIcon]=\"waitIcon\" [sentIcon]=\"sentIcon\" [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 *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\" [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 *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()\" [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\" [timestamp]=\"message?.getSentAt()\" [dateStyle]=\"bubbleDateStyle\"\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\" *ngIf=\"message?.getReplyCount() && !message.getDeletedAt()\">\n <cometchat-divider [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n <cometchat-button [text]=\"getThreadCount(message)\" [buttonStyle]=\"getThreadViewStyle(message)\"\n [iconURL]=\"threadOpenIcon\" (cc-button-clicked)=\"openThreadView(message)\">\n </cometchat-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\" *ngIf=\"UnreadCount && UnreadCount.length > 0 && !isOnBottom\"\n [ngStyle]=\"{bottom: showSmartReply || footerView || showConversationStarter || showConversationSummary ? '20%' : '13%'}\">\n <cometchat-button [text]=\"newMessageCount\" [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\" *ngIf=\"!showConversationStarter && showSmartReply && getReplies()\">\n <smart-replies [smartReplyStyle]=\"smartReplyStyle\" [replies]=\"getReplies()\"\n (cc-reply-clicked)=\"sendReply($event)\" (cc-close-clicked)=\"closeSmartReply()\">\n </smart-replies>\n </div>\n\n\n <div class=\"cc-message-list__conversation-starters\" *ngIf=\"enableConversationStarter && showConversationStarter\">\n <cometchat-ai-card [state]=\"conversationStarterState\" [loadingStateText]=\"starterLoadingStateText\"\n [emptyStateText]=\"starterEmptyStateText\" [errorStateText]=\"errorStateText\">\n <smart-replies *ngIf=\"conversationStarterState == states.loaded && !parentMessageId\"\n [smartReplyStyle]=\"conversationStarterStyle\" [replies]=\"conversationStarterReplies\" slot=\"loadedView\"\n (cc-reply-clicked)=\"sendConversationStarter($event)\" [closeIconURL]=\"''\">\n </smart-replies>\n </cometchat-ai-card>\n </div>\n\n <div class=\"cc-message-list__conversation-summary\" *ngIf=\"enableConversationSummary && showConversationSummary\">\n\n <cometchat-ai-card [state]=\"conversationSummaryState\" [loadingStateText]=\"summaryLoadingStateText\"\n [emptyStateText]=\"summaryEmptyStateText\" [errorStateText]=\"errorStateText\" [errorIconURL]=\"aiErrorIcon\"\n [emptyIconURL]=\"aiEmptyIcon\">\n <cometchat-panel *ngIf=\"conversationSummaryState == states.loaded && !parentMessageId\" slot=\"loadedView\"\n [panelStyle]=\"conversationSummaryStyle\" 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 *ngIf=\"message?.type == MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"message?.message\"></cometchat-text-bubble>\n <cometchat-text-bubble *ngIf=\"message?.getDeletedAt()\" [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)\"></cometchat-text-bubble>\n <link-preview [linkPreviewStyle]=\"linkPreviewStyle\" (cc-link-clicked)=\"openLinkURL($event)\"\n *ngIf=\"!message?.getDeletedAt() && getLinkPreview(message) && enableLinkPreview\"\n [title]=\"getLinkPreviewDetails('title',message)\" [description]=\"getLinkPreviewDetails('description',message)\"\n [URL]=\"getLinkPreviewDetails('url',message)\" [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)\"></cometchat-text-bubble>\n </link-preview>\n <message-translation-bubble [alignment]=\"getBubbleAlignment(message)\" *ngIf=\"isTranslated(message)\"\n [messageTranslationStyle]=\"setTranslationStyle(message)\" [translatedText]=\"isTranslated(message)\">\n <cometchat-text-bubble *ngIf=\" !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"message?.text\"></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)\" [downloadIconURL]=\"downloadIconURL\"\n [subtitle]=\"localize('SHARED_FILE')\" [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)\" [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n <cometchat-audio-bubble *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"> </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)\" [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n\n <cometchat-video-bubble *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [videoStyle]=\"videoBubbleStyle\" [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)\" [imageStyle]=\"imageBubbleStyle\"\n [src]=\" getImageThumbnail(message)\" [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n </image-moderation>\n <cometchat-image-bubble [imageStyle]=\"imageBubbleStyle\" (cc-image-clicked)=\"openImageInFullScreen(message)\"\n *ngIf=\"!message.getDeletedAt() && !enableImageModeration\" [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n</ng-template>\n<ng-template #formBubble let-message>\n <cometchat-form-bubble [message]=\"message\" [formBubbleStyle]=\"getFormMessageBubbleStyle()\"></cometchat-form-bubble>\n</ng-template>\n<ng-template #cardBubble let-message>\n <cometchat-card-bubble [message]=\"message\" [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)\" [imageStyle]=\"imageBubbleStyle\"></cometchat-image-bubble>\n\n</ng-template>\n<ng-template #whiteboardBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\" [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\" [iconURL]=\"whiteboardIconURL\" [title]=\"whiteboardTitle\"\n [buttonText]=\"whiteboardButtonText\" [subtitle]=\"whiteboardSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #documentBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\" [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\" [iconURL]=\"documentIconURL\" [title]=\"documentTitle\"\n [buttonText]=\"documentButtonText\" [subtitle]=\"documentSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #directCalling let-message>\n <cometchat-document-bubble [hideSeparator]=\"true\" [iconAlignment]=\"callBubbleAlignment\"\n [documentStyle]=\"getCallBubbleStyle(message)\" [URL]=\"getSessionId(message)\" [ccClicked]=\"startDirectCall\"\n [iconURL]=\"directCallIconURL\" [title]=\"getCallBubbleTitle(message)\"\n [buttonText]=\"joinCallButtonText\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #pollBubble let-message>\n <polls-bubble [pollStyle]=\"pollBubbleStyle\" [pollQuestion]=\"getPollBubbleData(message,'question')\"\n [pollId]=\"getPollBubbleData(message,'id')\" [loggedInUser]=\"loggedInUser\" [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 *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\" [bottomView]=\"enableReactions ? reactionView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\" [footerView]=\"footerView\"\n [contentView]=\"contentView\" [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\" [alignment]=\"threadedAlignment\">\n <ng-template #contentView>\n <ng-container *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <reactions-view *ngIf=\"hasReaction(message)\" [messageObject]=\"message\" [alignment]=\"setBubbleAlignment(message)\"\n [loggedInUser]=\"loggedInUser\" [reactionsStyle]=\"reactionsStyle(message)\"\n [addReactionIconURL]=\"addReactionIconURL\"></reactions-view>\n </ng-template>\n <ng-template #footerView>\n <div class=\"cc-message-list__bubble-footer\">\n <div *ngIf=\"getFooterView(message);else bubbleFooter\">\n <ng-container *ngTemplateOutlet=\"getFooterView(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()\" [dateStyle]=\"bubbleDateStyle\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\" !message?.getDeletedAt() && !disableReceipt && (!message?.getSender() ||this.loggedInUser.getUid() == message?.getSender()?.getUid()) && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\" [receiptStyle]=\"receiptStyle\"\n [waitIcon]=\"waitIcon\" [sentIcon]=\"sentIcon\" [deliveredIcon]=\"\" [readIcon]=\"deliveredIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\" [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 *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()\" [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\" [timestamp]=\"message?.getSentAt()\" [dateStyle]=\"bubbleDateStyle\"\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<ng-template #bubbleView></ng-template>\n<cometchat-popover [popoverStyle]=\"popoverStyle\" #popoverRef [placement]=\"keyboardAlignment\">\n <cometchat-emoji-keyboard (cc-emoji-clicked)=\"addReaction($event)\" slot=\"content\"></cometchat-emoji-keyboard>\n</cometchat-popover>\n<cometchat-backdrop *ngIf=\"openConfirmDialog\" [backdropStyle]=\"backdropStyle\">\n <cometchat-confirm-dialog [title]=\"''\" [messageText]=\"warningText\" (cc-confirm-clicked)=\"onConfirmClick()\"\n [cancelButtonText]=\"cancelText\" [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()\" *ngIf=\"openFullscreenView\"\n [URL]=\"imageurlToOpen\" [closeIconURL]=\"closeIconURL\" [fullScreenViewerStyle]=\"fullScreenViewerStyle\">\n\n</cometchat-full-screen-viewer>\n\n<!-- ongoing callscreen for direct call -->\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\" [callSettingsBuilder]=\"getCallBuilder()\"\n [ongoingCallStyle]=\"ongoingCallStyle\" [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 *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"enableReactions && hasReaction(message) ? reactionView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\" [contentView]=\"contentView\"\n [id]=\"message?.getId() || message?.getMuid()\" [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"messageInfoAlignment\">\n <ng-template #contentView>\n <ng-container *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <reactions-view *ngIf=\"hasReaction(message)\" [messageObject]=\"message\" [alignment]=\"setBubbleAlignment(message)\"\n [addReactionIconURL]=\"addReactionIconURL\" [loggedInUser]=\"loggedInUser\"\n [reactionsStyle]=\"reactionsStyle(message)\"></reactions-view>\n </ng-template>\n <ng-template #leadingView>\n <div *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\" [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 *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()\" [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\" [timestamp]=\"message?.getSentAt()\" [dateStyle]=\"bubbleDateStyle\"\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 [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\" [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\" [message]=\"messageInfoObject\">\n\n </cometchat-message-information>\n</cometchat-backdrop>", styles: [".cc-message-list{height:100%;width:100%;overflow-y:auto;overflow-x:hidden;position:relative}.cc-message-list__wrapper{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow-y:hidden}.cc-message-list__bubble-footer{display:flex;justify-content:center;align-items:center}.cc-message-list__date-container{text-align:center;margin:5px 0}.cc-message-list__smart-replies,.cc-message-list__conversation-starters{height:-moz-fit-content;height:fit-content;width:100%;position:absolute;bottom:0;z-index:1}.cc-message-list__conversation-summary{height:100%;position:relative;bottom:0;z-index:1;padding:.1px 14px}.cc-message-list__date{border-radius:10px;display:flex;justify-content:center}.cc-message-list__threadreplies{min-width:130px;width:100%}.cc-message-list__message-indicator{height:25px;display:flex;align-items:center;justify-content:center;width:100%;bottom:10%;position:absolute}.cc-message-list__footer-view{z-index:1;position:relative;width:100%;box-sizing:border-box;margin-bottom:1px}.cc-message-list__decorator-message{margin:0;line-height:30px;word-wrap:break-word;padding:0 8px;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;height:100%}.cc-message-list__footer__decorator-message{margin:0;line-height:30px;word-wrap:break-word;padding:0 8px 0 16px;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;height:100%}.cc-message-list::-webkit-scrollbar{background:transparent;width:8px}.cc-message-list::-webkit-scrollbar-thumb{background:#e8e5e5;border-radius:8px}.cc-message-list__footer-view-decorator{display:flex;flex-direction:row;column-gap:8px}.cc_panel_container{border:1px solid #6851d6}\n"], components: [{ type: CometChatMessageBubbleComponent, selector: "cometchat-message-bubble", inputs: ["messageBubbleStyle", "alignment", "options", "id", "leadingView", "headerView", "replyView", "contentView", "threadView", "footerView", "bottomView", "moreIconURL", "topMenuSize"] }, { type: CometChatOngoingCallComponent, selector: "cometchat-ongoing-call", inputs: ["ongoingCallStyle", "resizeIconHoverText", "sessionID", "minimizeIconURL", "maximizeIconURL", "callSettingsBuilder", "callWorkflow", "onError"] }, { type: CometChatMessageInformationComponent, selector: "cometchat-message-information", inputs: ["closeIconURL", "message", "title", "template", "bubbleView", "subtitleView", "listItemView", "receiptDatePattern", "onError", "messageInformationStyle", "readIcon", "deliveredIcon", "onClose", "listItemStyle", "emptyStateText", "errorStateText", "emptyStateView", "loadingIconURL", "loadingStateView", "errorStateView"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10958
+ CometChatMessageListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatMessageListComponent, selector: "cometchat-message-list", inputs: { hideError: "hideError", errorStateView: "errorStateView", loadingStateView: "loadingStateView", emptyStateView: "emptyStateView", errorStateText: "errorStateText", emptyStateText: "emptyStateText", loadingIconURL: "loadingIconURL", user: "user", group: "group", disableReceipt: "disableReceipt", disableSoundForMessages: "disableSoundForMessages", customSoundForMessages: "customSoundForMessages", readIcon: "readIcon", deliveredIcon: "deliveredIcon", sentIcon: "sentIcon", waitIcon: "waitIcon", errorIcon: "errorIcon", aiErrorIcon: "aiErrorIcon", aiEmptyIcon: "aiEmptyIcon", alignment: "alignment", showAvatar: "showAvatar", datePattern: "datePattern", timestampAlignment: "timestampAlignment", DateSeparatorPattern: "DateSeparatorPattern", templates: "templates", messagesRequestBuilder: "messagesRequestBuilder", newMessageIndicatorText: "newMessageIndicatorText", scrollToBottomOnNewMessages: "scrollToBottomOnNewMessages", thresholdValue: "thresholdValue", unreadMessageThreshold: "unreadMessageThreshold", apiConfiguration: "apiConfiguration", onThreadRepliesClick: "onThreadRepliesClick", headerView: "headerView", footerView: "footerView", parentMessageId: "parentMessageId", avatarStyle: "avatarStyle", backdropStyle: "backdropStyle", dateSeparatorStyle: "dateSeparatorStyle", messageListStyle: "messageListStyle", onError: "onError", messageInformationConfiguration: "messageInformationConfiguration" }, viewQueries: [{ propertyName: "listScroll", first: true, predicate: ["listScroll"], descendants: true }, { propertyName: "bottom", first: true, predicate: ["bottom"], descendants: true }, { propertyName: "top", first: true, predicate: ["top"], descendants: true }, { propertyName: "textBubble", first: true, predicate: ["textBubble"], descendants: true }, { propertyName: "threadMessageBubble", first: true, predicate: ["threadMessageBubble"], descendants: true }, { propertyName: "fileBubble", first: true, predicate: ["fileBubble"], descendants: true }, { propertyName: "audioBubble", first: true, predicate: ["audioBubble"], descendants: true }, { propertyName: "videoBubble", first: true, predicate: ["videoBubble"], descendants: true }, { propertyName: "imageBubble", first: true, predicate: ["imageBubble"], descendants: true }, { propertyName: "formBubble", first: true, predicate: ["formBubble"], descendants: true }, { propertyName: "cardBubble", first: true, predicate: ["cardBubble"], descendants: true }, { propertyName: "stickerBubble", first: true, predicate: ["stickerBubble"], descendants: true }, { propertyName: "documentBubble", first: true, predicate: ["documentBubble"], descendants: true }, { propertyName: "whiteboardBubble", first: true, predicate: ["whiteboardBubble"], descendants: true }, { propertyName: "popoverRef", first: true, predicate: ["popoverRef"], descendants: true }, { propertyName: "directCalling", first: true, predicate: ["directCalling"], descendants: true }, { propertyName: "schedulerBubble", first: true, predicate: ["schedulerBubble"], descendants: true }, { propertyName: "pollBubble", first: true, predicate: ["pollBubble"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<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 && !hideError && !errorStateView\"\n [text]=\"errorStateText\">\n </cometchat-label>\n <span class=\"cc-message-list__custom-view--error\"\n *ngIf=\"state == states.error && !hideError && 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 <!-- <cometchat-label [labelStyle]=\"emptyStyle()\" *ngIf=\"state == states.empty && !emptyStateView\" [text]=\"emptyStateText\"\n >\n </cometchat-label> -->\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()\">\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()\">\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 *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [leadingView]=\" showAvatar ? leadingView : null\"\n [bottomView]=\"enableReactions ? reactionView : null\"\n [headerView]=\"getHeaderView(message) || message?.getCategory() != MessageCategory.action && showHeaderTitle(message) ? bubbleHeader : null\"\n [footerView]=\"footerView\" [contentView]=\"contentView\"\n [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 <reactions-view *ngIf=\"hasReaction(message)\"\n [messageObject]=\"message\"\n [alignment]=\"setBubbleAlignment(message)\"\n [addReactionIconURL]=\"addReactionIconURL\"\n [loggedInUser]=\"loggedInUser\"\n [reactionsStyle]=\"reactionsStyle(message)\"></reactions-view>\n </ng-template>\n <ng-template #footerView>\n <div class=\"cc-message-list__bubble-footer\">\n <div *ngIf=\"getFooterView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getFooterView(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]=\"bubbleDateStyle\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\" !message?.getDeletedAt() && !disableReceipt && (!message?.getSender() ||this.loggedInUser.getUid() == message?.getSender()?.getUid()) && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"receiptStyle\" [waitIcon]=\"waitIcon\"\n [sentIcon]=\"sentIcon\" [deliveredIcon]=\"deliveredIcon\"\n [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]=\"bubbleDateStyle\"\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 <cometchat-divider\n [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n <cometchat-button [text]=\"getThreadCount(message)\"\n [buttonStyle]=\"getThreadViewStyle(message)\"\n [iconURL]=\"threadOpenIcon\"\n (cc-button-clicked)=\"openThreadView(message)\">\n </cometchat-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)\"\n [text]=\"getTextMessage(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)\"\n [text]=\"getTextMessage(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 <cometchat-text-bubble\n *ngIf=\" !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"message?.text\"></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]=\"startDirectCall\" [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 *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"enableReactions ? reactionView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [footerView]=\"footerView\" [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 #reactionView>\n <reactions-view *ngIf=\"hasReaction(message)\" [messageObject]=\"message\"\n [alignment]=\"setBubbleAlignment(message)\" [loggedInUser]=\"loggedInUser\"\n [reactionsStyle]=\"reactionsStyle(message)\"\n [addReactionIconURL]=\"addReactionIconURL\"></reactions-view>\n </ng-template>\n <ng-template #footerView>\n <div class=\"cc-message-list__bubble-footer\">\n <div *ngIf=\"getFooterView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getFooterView(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]=\"bubbleDateStyle\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\" !message?.getDeletedAt() && !disableReceipt && (!message?.getSender() ||this.loggedInUser.getUid() == message?.getSender()?.getUid()) && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"receiptStyle\" [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()\" [dateStyle]=\"bubbleDateStyle\"\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<ng-template #bubbleView></ng-template>\n<cometchat-popover [popoverStyle]=\"popoverStyle\" #popoverRef\n [placement]=\"keyboardAlignment\">\n <cometchat-emoji-keyboard (cc-emoji-clicked)=\"addReaction($event)\"\n slot=\"content\"></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 *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"enableReactions && hasReaction(message) ? reactionView : null\"\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 #reactionView>\n <reactions-view *ngIf=\"hasReaction(message)\" [messageObject]=\"message\"\n [alignment]=\"setBubbleAlignment(message)\"\n [addReactionIconURL]=\"addReactionIconURL\" [loggedInUser]=\"loggedInUser\"\n [reactionsStyle]=\"reactionsStyle(message)\"></reactions-view>\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()\" [dateStyle]=\"bubbleDateStyle\"\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", styles: [".cc-message-list{height:100%;width:100%;overflow-y:auto;overflow-x:hidden;position:relative}.cc-message-list__wrapper{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow-y:hidden}.cc-message-list__bubble-footer{display:flex;justify-content:center;align-items:center}.cc-message-list__date-container{text-align:center;margin:5px 0}.cc-message-list__smart-replies,.cc-message-list__conversation-starters{height:-moz-fit-content;height:fit-content;width:100%;position:absolute;bottom:0;z-index:1}.cc-message-list__conversation-summary{height:100%;position:relative;bottom:0;z-index:1;padding:.1px 14px}.cc-message-list__date{border-radius:10px;display:flex;justify-content:center}.cc-message-list__threadreplies{min-width:130px;width:100%}.cc-message-list__message-indicator{height:25px;display:flex;align-items:center;justify-content:center;width:100%;bottom:10%;position:absolute}.cc-message-list__footer-view{z-index:1;position:relative;width:100%;box-sizing:border-box;margin-bottom:1px}.cc-message-list__decorator-message{margin:0;line-height:30px;word-wrap:break-word;padding:0 8px;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;height:100%}.cc-message-list__footer__decorator-message{margin:0;line-height:30px;word-wrap:break-word;padding:0 8px 0 16px;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;height:100%}.cc-message-list::-webkit-scrollbar{background:transparent;width:8px}.cc-message-list::-webkit-scrollbar-thumb{background:#e8e5e5;border-radius:8px}.cc-message-list__footer-view-decorator{display:flex;flex-direction:row;column-gap:8px}.cc_panel_container{border:1px solid #6851d6}cometchat-scheduler-bubble{width:100%}\n"], components: [{ type: CometChatMessageBubbleComponent, selector: "cometchat-message-bubble", inputs: ["messageBubbleStyle", "alignment", "options", "id", "leadingView", "headerView", "replyView", "contentView", "threadView", "footerView", "bottomView", "moreIconURL", "topMenuSize"] }, { type: CometChatOngoingCallComponent, selector: "cometchat-ongoing-call", inputs: ["ongoingCallStyle", "resizeIconHoverText", "sessionID", "minimizeIconURL", "maximizeIconURL", "callSettingsBuilder", "callWorkflow", "onError"] }, { type: CometChatMessageInformationComponent, selector: "cometchat-message-information", inputs: ["closeIconURL", "message", "title", "template", "bubbleView", "subtitleView", "listItemView", "receiptDatePattern", "onError", "messageInformationStyle", "readIcon", "deliveredIcon", "onClose", "listItemStyle", "emptyStateText", "errorStateText", "emptyStateView", "loadingIconURL", "loadingStateView", "errorStateView"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10773
10959
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatMessageListComponent, decorators: [{
10774
10960
  type: Component,
10775
- args: [{ selector: "cometchat-message-list", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-message-list__wrapper\" [ngStyle]=\"wrapperStyle()\" *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\" *ngIf=\"state == states.loading \">\n <cometchat-loader [iconURL]=\"loadingIconURL\" [loaderStyle]=\"loadingStyle()\">\n </cometchat-loader>\n <span class=\"cc-message-list__customview--loading\" *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\" *ngIf=\"state == states.error && !hideError \">\n <cometchat-label [labelStyle]=\"errorStyle()\" *ngIf=\"state == states.error && !hideError && !errorStateView\"\n [text]=\"errorStateText\">\n </cometchat-label>\n <span class=\"cc-message-list__custom-view--error\"\n *ngIf=\"state == states.error && !hideError && 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 <!-- <cometchat-label [labelStyle]=\"emptyStyle()\" *ngIf=\"state == states.empty && !emptyStateView\" [text]=\"emptyStateText\"\n >\n </cometchat-label> -->\n <span class=\"cc-message-list__custom-view--empty\" *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\" *ngFor=\"let message of messagesList; let i = index\">\n <div class=\"cc-message-list__date-container\" *ngIf=\"(i === 0) && message?.getSentAt()\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message!.getSentAt()\" [pattern]=\"DateSeparatorPattern\"\n [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()\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\" [pattern]=\"DateSeparatorPattern\"\n [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div *ngIf=\"getBubbleWrapper(message) \">\n <ng-container *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\" [leadingView]=\" showAvatar ? leadingView : null\"\n [bottomView]=\"enableReactions ? reactionView : null\"\n [headerView]=\"getHeaderView(message) || message?.getCategory() != MessageCategory.action && showHeaderTitle(message) ? bubbleHeader : null\"\n [footerView]=\"footerView\" [contentView]=\"contentView\" [threadView]=\"threadView\"\n [id]=\"message?.getId() || message?.getMuid()\" [options]=\"setMessageOptions(message)\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\" [alignment]=\"setBubbleAlignment(message)\">\n <ng-template #contentView>\n <ng-container *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <reactions-view *ngIf=\"hasReaction(message)\" [messageObject]=\"message\"\n [alignment]=\"setBubbleAlignment(message)\" [addReactionIconURL]=\"addReactionIconURL\"\n [loggedInUser]=\"loggedInUser\" [reactionsStyle]=\"reactionsStyle(message)\"></reactions-view>\n </ng-template>\n <ng-template #footerView>\n <div class=\"cc-message-list__bubble-footer\">\n <div *ngIf=\"getFooterView(message);else bubbleFooter\">\n <ng-container *ngTemplateOutlet=\"getFooterView(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()\" [dateStyle]=\"bubbleDateStyle\"\n [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\" !message?.getDeletedAt() && !disableReceipt && (!message?.getSender() ||this.loggedInUser.getUid() == message?.getSender()?.getUid()) && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\" [receiptStyle]=\"receiptStyle\"\n [waitIcon]=\"waitIcon\" [sentIcon]=\"sentIcon\" [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 *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\" [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 *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()\" [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\" [timestamp]=\"message?.getSentAt()\" [dateStyle]=\"bubbleDateStyle\"\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\" *ngIf=\"message?.getReplyCount() && !message.getDeletedAt()\">\n <cometchat-divider [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n <cometchat-button [text]=\"getThreadCount(message)\" [buttonStyle]=\"getThreadViewStyle(message)\"\n [iconURL]=\"threadOpenIcon\" (cc-button-clicked)=\"openThreadView(message)\">\n </cometchat-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\" *ngIf=\"UnreadCount && UnreadCount.length > 0 && !isOnBottom\"\n [ngStyle]=\"{bottom: showSmartReply || footerView || showConversationStarter || showConversationSummary ? '20%' : '13%'}\">\n <cometchat-button [text]=\"newMessageCount\" [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\" *ngIf=\"!showConversationStarter && showSmartReply && getReplies()\">\n <smart-replies [smartReplyStyle]=\"smartReplyStyle\" [replies]=\"getReplies()\"\n (cc-reply-clicked)=\"sendReply($event)\" (cc-close-clicked)=\"closeSmartReply()\">\n </smart-replies>\n </div>\n\n\n <div class=\"cc-message-list__conversation-starters\" *ngIf=\"enableConversationStarter && showConversationStarter\">\n <cometchat-ai-card [state]=\"conversationStarterState\" [loadingStateText]=\"starterLoadingStateText\"\n [emptyStateText]=\"starterEmptyStateText\" [errorStateText]=\"errorStateText\">\n <smart-replies *ngIf=\"conversationStarterState == states.loaded && !parentMessageId\"\n [smartReplyStyle]=\"conversationStarterStyle\" [replies]=\"conversationStarterReplies\" slot=\"loadedView\"\n (cc-reply-clicked)=\"sendConversationStarter($event)\" [closeIconURL]=\"''\">\n </smart-replies>\n </cometchat-ai-card>\n </div>\n\n <div class=\"cc-message-list__conversation-summary\" *ngIf=\"enableConversationSummary && showConversationSummary\">\n\n <cometchat-ai-card [state]=\"conversationSummaryState\" [loadingStateText]=\"summaryLoadingStateText\"\n [emptyStateText]=\"summaryEmptyStateText\" [errorStateText]=\"errorStateText\" [errorIconURL]=\"aiErrorIcon\"\n [emptyIconURL]=\"aiEmptyIcon\">\n <cometchat-panel *ngIf=\"conversationSummaryState == states.loaded && !parentMessageId\" slot=\"loadedView\"\n [panelStyle]=\"conversationSummaryStyle\" 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 *ngIf=\"message?.type == MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"message?.message\"></cometchat-text-bubble>\n <cometchat-text-bubble *ngIf=\"message?.getDeletedAt()\" [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)\"></cometchat-text-bubble>\n <link-preview [linkPreviewStyle]=\"linkPreviewStyle\" (cc-link-clicked)=\"openLinkURL($event)\"\n *ngIf=\"!message?.getDeletedAt() && getLinkPreview(message) && enableLinkPreview\"\n [title]=\"getLinkPreviewDetails('title',message)\" [description]=\"getLinkPreviewDetails('description',message)\"\n [URL]=\"getLinkPreviewDetails('url',message)\" [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)\"></cometchat-text-bubble>\n </link-preview>\n <message-translation-bubble [alignment]=\"getBubbleAlignment(message)\" *ngIf=\"isTranslated(message)\"\n [messageTranslationStyle]=\"setTranslationStyle(message)\" [translatedText]=\"isTranslated(message)\">\n <cometchat-text-bubble *ngIf=\" !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"message?.text\"></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)\" [downloadIconURL]=\"downloadIconURL\"\n [subtitle]=\"localize('SHARED_FILE')\" [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)\" [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n <cometchat-audio-bubble *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"> </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)\" [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n\n <cometchat-video-bubble *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [videoStyle]=\"videoBubbleStyle\" [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)\" [imageStyle]=\"imageBubbleStyle\"\n [src]=\" getImageThumbnail(message)\" [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n </image-moderation>\n <cometchat-image-bubble [imageStyle]=\"imageBubbleStyle\" (cc-image-clicked)=\"openImageInFullScreen(message)\"\n *ngIf=\"!message.getDeletedAt() && !enableImageModeration\" [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n</ng-template>\n<ng-template #formBubble let-message>\n <cometchat-form-bubble [message]=\"message\" [formBubbleStyle]=\"getFormMessageBubbleStyle()\"></cometchat-form-bubble>\n</ng-template>\n<ng-template #cardBubble let-message>\n <cometchat-card-bubble [message]=\"message\" [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)\" [imageStyle]=\"imageBubbleStyle\"></cometchat-image-bubble>\n\n</ng-template>\n<ng-template #whiteboardBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\" [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\" [iconURL]=\"whiteboardIconURL\" [title]=\"whiteboardTitle\"\n [buttonText]=\"whiteboardButtonText\" [subtitle]=\"whiteboardSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #documentBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\" [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\" [iconURL]=\"documentIconURL\" [title]=\"documentTitle\"\n [buttonText]=\"documentButtonText\" [subtitle]=\"documentSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #directCalling let-message>\n <cometchat-document-bubble [hideSeparator]=\"true\" [iconAlignment]=\"callBubbleAlignment\"\n [documentStyle]=\"getCallBubbleStyle(message)\" [URL]=\"getSessionId(message)\" [ccClicked]=\"startDirectCall\"\n [iconURL]=\"directCallIconURL\" [title]=\"getCallBubbleTitle(message)\"\n [buttonText]=\"joinCallButtonText\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #pollBubble let-message>\n <polls-bubble [pollStyle]=\"pollBubbleStyle\" [pollQuestion]=\"getPollBubbleData(message,'question')\"\n [pollId]=\"getPollBubbleData(message,'id')\" [loggedInUser]=\"loggedInUser\" [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 *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\" [bottomView]=\"enableReactions ? reactionView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\" [footerView]=\"footerView\"\n [contentView]=\"contentView\" [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\" [alignment]=\"threadedAlignment\">\n <ng-template #contentView>\n <ng-container *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <reactions-view *ngIf=\"hasReaction(message)\" [messageObject]=\"message\" [alignment]=\"setBubbleAlignment(message)\"\n [loggedInUser]=\"loggedInUser\" [reactionsStyle]=\"reactionsStyle(message)\"\n [addReactionIconURL]=\"addReactionIconURL\"></reactions-view>\n </ng-template>\n <ng-template #footerView>\n <div class=\"cc-message-list__bubble-footer\">\n <div *ngIf=\"getFooterView(message);else bubbleFooter\">\n <ng-container *ngTemplateOutlet=\"getFooterView(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()\" [dateStyle]=\"bubbleDateStyle\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\" !message?.getDeletedAt() && !disableReceipt && (!message?.getSender() ||this.loggedInUser.getUid() == message?.getSender()?.getUid()) && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\" [receiptStyle]=\"receiptStyle\"\n [waitIcon]=\"waitIcon\" [sentIcon]=\"sentIcon\" [deliveredIcon]=\"\" [readIcon]=\"deliveredIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\" [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 *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()\" [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\" [timestamp]=\"message?.getSentAt()\" [dateStyle]=\"bubbleDateStyle\"\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<ng-template #bubbleView></ng-template>\n<cometchat-popover [popoverStyle]=\"popoverStyle\" #popoverRef [placement]=\"keyboardAlignment\">\n <cometchat-emoji-keyboard (cc-emoji-clicked)=\"addReaction($event)\" slot=\"content\"></cometchat-emoji-keyboard>\n</cometchat-popover>\n<cometchat-backdrop *ngIf=\"openConfirmDialog\" [backdropStyle]=\"backdropStyle\">\n <cometchat-confirm-dialog [title]=\"''\" [messageText]=\"warningText\" (cc-confirm-clicked)=\"onConfirmClick()\"\n [cancelButtonText]=\"cancelText\" [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()\" *ngIf=\"openFullscreenView\"\n [URL]=\"imageurlToOpen\" [closeIconURL]=\"closeIconURL\" [fullScreenViewerStyle]=\"fullScreenViewerStyle\">\n\n</cometchat-full-screen-viewer>\n\n<!-- ongoing callscreen for direct call -->\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\" [callSettingsBuilder]=\"getCallBuilder()\"\n [ongoingCallStyle]=\"ongoingCallStyle\" [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 *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"enableReactions && hasReaction(message) ? reactionView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\" [contentView]=\"contentView\"\n [id]=\"message?.getId() || message?.getMuid()\" [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"messageInfoAlignment\">\n <ng-template #contentView>\n <ng-container *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <reactions-view *ngIf=\"hasReaction(message)\" [messageObject]=\"message\" [alignment]=\"setBubbleAlignment(message)\"\n [addReactionIconURL]=\"addReactionIconURL\" [loggedInUser]=\"loggedInUser\"\n [reactionsStyle]=\"reactionsStyle(message)\"></reactions-view>\n </ng-template>\n <ng-template #leadingView>\n <div *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\" [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 *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()\" [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\" [timestamp]=\"message?.getSentAt()\" [dateStyle]=\"bubbleDateStyle\"\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 [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\" [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\" [message]=\"messageInfoObject\">\n\n </cometchat-message-information>\n</cometchat-backdrop>", styles: [".cc-message-list{height:100%;width:100%;overflow-y:auto;overflow-x:hidden;position:relative}.cc-message-list__wrapper{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow-y:hidden}.cc-message-list__bubble-footer{display:flex;justify-content:center;align-items:center}.cc-message-list__date-container{text-align:center;margin:5px 0}.cc-message-list__smart-replies,.cc-message-list__conversation-starters{height:-moz-fit-content;height:fit-content;width:100%;position:absolute;bottom:0;z-index:1}.cc-message-list__conversation-summary{height:100%;position:relative;bottom:0;z-index:1;padding:.1px 14px}.cc-message-list__date{border-radius:10px;display:flex;justify-content:center}.cc-message-list__threadreplies{min-width:130px;width:100%}.cc-message-list__message-indicator{height:25px;display:flex;align-items:center;justify-content:center;width:100%;bottom:10%;position:absolute}.cc-message-list__footer-view{z-index:1;position:relative;width:100%;box-sizing:border-box;margin-bottom:1px}.cc-message-list__decorator-message{margin:0;line-height:30px;word-wrap:break-word;padding:0 8px;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;height:100%}.cc-message-list__footer__decorator-message{margin:0;line-height:30px;word-wrap:break-word;padding:0 8px 0 16px;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;height:100%}.cc-message-list::-webkit-scrollbar{background:transparent;width:8px}.cc-message-list::-webkit-scrollbar-thumb{background:#e8e5e5;border-radius:8px}.cc-message-list__footer-view-decorator{display:flex;flex-direction:row;column-gap:8px}.cc_panel_container{border:1px solid #6851d6}\n"] }]
10961
+ args: [{ selector: "cometchat-message-list", changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 && !hideError && !errorStateView\"\n [text]=\"errorStateText\">\n </cometchat-label>\n <span class=\"cc-message-list__custom-view--error\"\n *ngIf=\"state == states.error && !hideError && 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 <!-- <cometchat-label [labelStyle]=\"emptyStyle()\" *ngIf=\"state == states.empty && !emptyStateView\" [text]=\"emptyStateText\"\n >\n </cometchat-label> -->\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()\">\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()\">\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 *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [leadingView]=\" showAvatar ? leadingView : null\"\n [bottomView]=\"enableReactions ? reactionView : null\"\n [headerView]=\"getHeaderView(message) || message?.getCategory() != MessageCategory.action && showHeaderTitle(message) ? bubbleHeader : null\"\n [footerView]=\"footerView\" [contentView]=\"contentView\"\n [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 <reactions-view *ngIf=\"hasReaction(message)\"\n [messageObject]=\"message\"\n [alignment]=\"setBubbleAlignment(message)\"\n [addReactionIconURL]=\"addReactionIconURL\"\n [loggedInUser]=\"loggedInUser\"\n [reactionsStyle]=\"reactionsStyle(message)\"></reactions-view>\n </ng-template>\n <ng-template #footerView>\n <div class=\"cc-message-list__bubble-footer\">\n <div *ngIf=\"getFooterView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getFooterView(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]=\"bubbleDateStyle\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\" !message?.getDeletedAt() && !disableReceipt && (!message?.getSender() ||this.loggedInUser.getUid() == message?.getSender()?.getUid()) && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"receiptStyle\" [waitIcon]=\"waitIcon\"\n [sentIcon]=\"sentIcon\" [deliveredIcon]=\"deliveredIcon\"\n [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]=\"bubbleDateStyle\"\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 <cometchat-divider\n [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n <cometchat-button [text]=\"getThreadCount(message)\"\n [buttonStyle]=\"getThreadViewStyle(message)\"\n [iconURL]=\"threadOpenIcon\"\n (cc-button-clicked)=\"openThreadView(message)\">\n </cometchat-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)\"\n [text]=\"getTextMessage(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)\"\n [text]=\"getTextMessage(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 <cometchat-text-bubble\n *ngIf=\" !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"message?.text\"></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]=\"startDirectCall\" [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 *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"enableReactions ? reactionView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [footerView]=\"footerView\" [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 #reactionView>\n <reactions-view *ngIf=\"hasReaction(message)\" [messageObject]=\"message\"\n [alignment]=\"setBubbleAlignment(message)\" [loggedInUser]=\"loggedInUser\"\n [reactionsStyle]=\"reactionsStyle(message)\"\n [addReactionIconURL]=\"addReactionIconURL\"></reactions-view>\n </ng-template>\n <ng-template #footerView>\n <div class=\"cc-message-list__bubble-footer\">\n <div *ngIf=\"getFooterView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getFooterView(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]=\"bubbleDateStyle\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\" !message?.getDeletedAt() && !disableReceipt && (!message?.getSender() ||this.loggedInUser.getUid() == message?.getSender()?.getUid()) && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"receiptStyle\" [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()\" [dateStyle]=\"bubbleDateStyle\"\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<ng-template #bubbleView></ng-template>\n<cometchat-popover [popoverStyle]=\"popoverStyle\" #popoverRef\n [placement]=\"keyboardAlignment\">\n <cometchat-emoji-keyboard (cc-emoji-clicked)=\"addReaction($event)\"\n slot=\"content\"></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 *ngTemplateOutlet=\"getBubbleWrapper(message)\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"enableReactions && hasReaction(message) ? reactionView : null\"\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 #reactionView>\n <reactions-view *ngIf=\"hasReaction(message)\" [messageObject]=\"message\"\n [alignment]=\"setBubbleAlignment(message)\"\n [addReactionIconURL]=\"addReactionIconURL\" [loggedInUser]=\"loggedInUser\"\n [reactionsStyle]=\"reactionsStyle(message)\"></reactions-view>\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()\" [dateStyle]=\"bubbleDateStyle\"\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", styles: [".cc-message-list{height:100%;width:100%;overflow-y:auto;overflow-x:hidden;position:relative}.cc-message-list__wrapper{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow-y:hidden}.cc-message-list__bubble-footer{display:flex;justify-content:center;align-items:center}.cc-message-list__date-container{text-align:center;margin:5px 0}.cc-message-list__smart-replies,.cc-message-list__conversation-starters{height:-moz-fit-content;height:fit-content;width:100%;position:absolute;bottom:0;z-index:1}.cc-message-list__conversation-summary{height:100%;position:relative;bottom:0;z-index:1;padding:.1px 14px}.cc-message-list__date{border-radius:10px;display:flex;justify-content:center}.cc-message-list__threadreplies{min-width:130px;width:100%}.cc-message-list__message-indicator{height:25px;display:flex;align-items:center;justify-content:center;width:100%;bottom:10%;position:absolute}.cc-message-list__footer-view{z-index:1;position:relative;width:100%;box-sizing:border-box;margin-bottom:1px}.cc-message-list__decorator-message{margin:0;line-height:30px;word-wrap:break-word;padding:0 8px;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;height:100%}.cc-message-list__footer__decorator-message{margin:0;line-height:30px;word-wrap:break-word;padding:0 8px 0 16px;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;height:100%}.cc-message-list::-webkit-scrollbar{background:transparent;width:8px}.cc-message-list::-webkit-scrollbar-thumb{background:#e8e5e5;border-radius:8px}.cc-message-list__footer-view-decorator{display:flex;flex-direction:row;column-gap:8px}.cc_panel_container{border:1px solid #6851d6}cometchat-scheduler-bubble{width:100%}\n"] }]
10776
10962
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: CometChatThemeService }]; }, propDecorators: { listScroll: [{
10777
10963
  type: ViewChild,
10778
10964
  args: ["listScroll", { static: false }]
@@ -10821,6 +11007,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
10821
11007
  }], directCalling: [{
10822
11008
  type: ViewChild,
10823
11009
  args: ["directCalling", { static: false }]
11010
+ }], schedulerBubble: [{
11011
+ type: ViewChild,
11012
+ args: ["schedulerBubble", { static: false }]
10824
11013
  }], pollBubble: [{
10825
11014
  type: ViewChild,
10826
11015
  args: ["pollBubble", { static: false }]
@@ -12525,6 +12714,48 @@ class CometChatThreadedMessagesComponent {
12525
12714
  this.onMessageEdited = CometChatMessageEvents.onMessageEdited.subscribe((editedMessage) => {
12526
12715
  this.updateMessage(editedMessage);
12527
12716
  });
12717
+ this.onTextMessageReceived =
12718
+ CometChatMessageEvents.onTextMessageReceived.subscribe((message) => {
12719
+ if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {
12720
+ this.ref.detectChanges();
12721
+ }
12722
+ });
12723
+ this.onMediaMessageReceived =
12724
+ CometChatMessageEvents.onMediaMessageReceived.subscribe((message) => {
12725
+ if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {
12726
+ this.ref.detectChanges();
12727
+ }
12728
+ });
12729
+ this.onCustomMessageReceived =
12730
+ CometChatMessageEvents.onCustomMessageReceived.subscribe((message) => {
12731
+ if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {
12732
+ this.ref.detectChanges();
12733
+ }
12734
+ });
12735
+ this.onFormMessageReceived =
12736
+ CometChatMessageEvents.onFormMessageReceived.subscribe((message) => {
12737
+ if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {
12738
+ this.ref.detectChanges();
12739
+ }
12740
+ });
12741
+ this.onSchedulerMessageReceived =
12742
+ CometChatMessageEvents.onSchedulerMessageReceived.subscribe((message) => {
12743
+ if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {
12744
+ this.ref.detectChanges();
12745
+ }
12746
+ });
12747
+ this.onCardMessageReceived =
12748
+ CometChatMessageEvents.onCardMessageReceived.subscribe((message) => {
12749
+ if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {
12750
+ this.ref.detectChanges();
12751
+ }
12752
+ });
12753
+ this.onCustomInteractiveMessageReceived =
12754
+ CometChatMessageEvents.onCustomInteractiveMessageReceived.subscribe((message) => {
12755
+ if (message.getParentMessageId() && message.getParentMessageId() == this.parentMessage?.getId()) {
12756
+ this.ref.detectChanges();
12757
+ }
12758
+ });
12528
12759
  }
12529
12760
  catch (error) {
12530
12761
  if (this.onError) {
@@ -12564,6 +12795,13 @@ class CometChatThreadedMessagesComponent {
12564
12795
  this.ccMessageEdited?.unsubscribe();
12565
12796
  this.ccMessageRead?.unsubscribe();
12566
12797
  this.ccMessageSent?.unsubscribe();
12798
+ this.onCardMessageReceived?.unsubscribe();
12799
+ this.onFormMessageReceived?.unsubscribe();
12800
+ this.onSchedulerMessageReceived?.unsubscribe();
12801
+ this.onTextMessageReceived?.unsubscribe();
12802
+ this.onCustomInteractiveMessageReceived?.unsubscribe();
12803
+ this.onCustomMessageReceived?.unsubscribe();
12804
+ this.onMediaMessageReceived?.unsubscribe();
12567
12805
  }
12568
12806
  closeView() {
12569
12807
  if (this.onClose) {
@@ -12610,10 +12848,10 @@ class CometChatThreadedMessagesComponent {
12610
12848
  }
12611
12849
  }
12612
12850
  CometChatThreadedMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatThreadedMessagesComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
12613
- CometChatThreadedMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatThreadedMessagesComponent, selector: "cometchat-threaded-messages", inputs: { onClose: "onClose", onError: "onError", parentMessage: "parentMessage", title: "title", closeIconURL: "closeIconURL", bubbleView: "bubbleView", messageActionView: "messageActionView", messageListConfiguration: "messageListConfiguration", messageComposerConfiguration: "messageComposerConfiguration", threadedMessagesStyle: "threadedMessagesStyle" }, usesOnChanges: true, ngImport: i0, template: "<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\">\n <cometchat-message-list #messageListRef\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 [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 [messageTypes]=\"messageListConfiguration.templates\"\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 [dateSeparatorStyle]=\"messageListConfiguration.dateSeparatorStyle\"\n [messageListStyle]=\"messageListConfiguration.messageListStyle\"\n [onError]=\"messageListConfiguration.onError\">\n </cometchat-message-list>\n </div>\n <div class=\"cc-threaded-messages__composer\">\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 [onSendButtonClick]=\"messageComposerConfiguration.onSendButtonClick\"\n [onError]=\"messageComposerConfiguration.onError\"\n [actionSheetStyle]=\"messageComposerConfiguration.actionSheetStyle\">\n </cometchat-message-composer>\n </div>\n</div>\n", styles: ["*{box-sizing:border-box;margin:0;padding:0}.cc-threaded-messages__wrapper{display:flex;flex-direction:column;height:100%;overflow-y:auto}.cc-threaded-messages__header{height:8%;width:100%;display:flex;padding:16px;align-items:flex-start}.cc-threaded-messages__close{display:flex;align-items:center}.cc-threaded-messages__title{display:flex;align-items:center;justify-content:center;width:100%}.cc-threaded-messages__bubble-view{width:-moz-fit-content;width:fit-content}.cc-threaded-messages__header{flex:0 0 auto}.cc-threaded-messages__list{flex:1 1 auto;min-height:65%}.cc-threaded-messages__composer{flex:0 0 auto;min-height:80px}\n"], components: [{ type: CometChatMessageListComponent, selector: "cometchat-message-list", inputs: ["hideError", "errorStateView", "loadingStateView", "emptyStateView", "errorStateText", "emptyStateText", "loadingIconURL", "user", "group", "disableReceipt", "disableSoundForMessages", "customSoundForMessages", "readIcon", "deliveredIcon", "sentIcon", "waitIcon", "errorIcon", "aiErrorIcon", "aiEmptyIcon", "alignment", "showAvatar", "datePattern", "timestampAlignment", "DateSeparatorPattern", "templates", "messagesRequestBuilder", "newMessageIndicatorText", "scrollToBottomOnNewMessages", "thresholdValue", "unreadMessageThreshold", "apiConfiguration", "onThreadRepliesClick", "headerView", "footerView", "parentMessageId", "avatarStyle", "backdropStyle", "dateSeparatorStyle", "messageListStyle", "onError", "messageInformationConfiguration"] }, { type: CometChatMessageComposerComponent, selector: "cometchat-message-composer", inputs: ["user", "group", "disableSoundForMessages", "customSoundForMessage", "disableTypingEvents", "text", "placeholderText", "headerView", "onTextChange", "attachmentIconURL", "attachmentOptions", "secondaryButtonView", "auxilaryButtonView", "auxiliaryButtonsAlignment", "sendButtonView", "parentMessageId", "hideLiveReaction", "LiveReactionIconURL", "backButtonIconURL", "messageComposerStyle", "onSendButtonClick", "onError", "backdropStyle", "actionSheetStyle", "aiActionSheetStyle", "hideVoiceRecording", "mediaRecorderStyle", "aiOptionsStyle", "aiIconURL", "voiceRecordingIconURL", "voiceRecordingCloseIconURL", "voiceRecordingStartIconURL", "voiceRecordingStopIconURL", "voiceRecordingSubmitIconURL"], outputs: ["childEvent"] }], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12851
+ CometChatThreadedMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatThreadedMessagesComponent, selector: "cometchat-threaded-messages", inputs: { onClose: "onClose", onError: "onError", parentMessage: "parentMessage", title: "title", closeIconURL: "closeIconURL", bubbleView: "bubbleView", messageActionView: "messageActionView", messageListConfiguration: "messageListConfiguration", messageComposerConfiguration: "messageComposerConfiguration", threadedMessagesStyle: "threadedMessagesStyle" }, usesOnChanges: true, ngImport: i0, template: "<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\">\n <cometchat-message-list #messageListRef\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 [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 [messageTypes]=\"messageListConfiguration.templates\"\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 [dateSeparatorStyle]=\"messageListConfiguration.dateSeparatorStyle\"\n [messageListStyle]=\"messageListConfiguration.messageListStyle\"\n [onError]=\"messageListConfiguration.onError\">\n </cometchat-message-list>\n </div>\n <div class=\"cc-threaded-messages__composer\">\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 [onSendButtonClick]=\"messageComposerConfiguration.onSendButtonClick\"\n [onError]=\"messageComposerConfiguration.onError\"\n [actionSheetStyle]=\"messageComposerConfiguration.actionSheetStyle\">\n </cometchat-message-composer>\n </div>\n</div>\n", styles: ["*{box-sizing:border-box;margin:0;padding:0}.cc-threaded-messages__wrapper{display:flex;flex-direction:column;height:100%;overflow-y:auto}.cc-threaded-messages__header{height:8%;width:100%;display:flex;padding:16px;align-items:flex-start}.cc-threaded-messages__close{display:flex;align-items:center}.cc-threaded-messages__title{display:flex;align-items:center;justify-content:center;width:100%}.cc-threaded-messages__bubble-view{width:100%}.cc-threaded-messages__header{flex:0 0 auto}.cc-threaded-messages__list{flex:1 1 auto;min-height:65%}.cc-threaded-messages__composer{flex:0 0 auto;min-height:80px}\n"], components: [{ type: CometChatMessageListComponent, selector: "cometchat-message-list", inputs: ["hideError", "errorStateView", "loadingStateView", "emptyStateView", "errorStateText", "emptyStateText", "loadingIconURL", "user", "group", "disableReceipt", "disableSoundForMessages", "customSoundForMessages", "readIcon", "deliveredIcon", "sentIcon", "waitIcon", "errorIcon", "aiErrorIcon", "aiEmptyIcon", "alignment", "showAvatar", "datePattern", "timestampAlignment", "DateSeparatorPattern", "templates", "messagesRequestBuilder", "newMessageIndicatorText", "scrollToBottomOnNewMessages", "thresholdValue", "unreadMessageThreshold", "apiConfiguration", "onThreadRepliesClick", "headerView", "footerView", "parentMessageId", "avatarStyle", "backdropStyle", "dateSeparatorStyle", "messageListStyle", "onError", "messageInformationConfiguration"] }, { type: CometChatMessageComposerComponent, selector: "cometchat-message-composer", inputs: ["user", "group", "disableSoundForMessages", "customSoundForMessage", "disableTypingEvents", "text", "placeholderText", "headerView", "onTextChange", "attachmentIconURL", "attachmentOptions", "secondaryButtonView", "auxilaryButtonView", "auxiliaryButtonsAlignment", "sendButtonView", "parentMessageId", "hideLiveReaction", "LiveReactionIconURL", "backButtonIconURL", "messageComposerStyle", "onSendButtonClick", "onError", "backdropStyle", "actionSheetStyle", "aiActionSheetStyle", "hideVoiceRecording", "mediaRecorderStyle", "aiOptionsStyle", "aiIconURL", "voiceRecordingIconURL", "voiceRecordingCloseIconURL", "voiceRecordingStartIconURL", "voiceRecordingStopIconURL", "voiceRecordingSubmitIconURL"], outputs: ["childEvent"] }], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12614
12852
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatThreadedMessagesComponent, decorators: [{
12615
12853
  type: Component,
12616
- args: [{ selector: "cometchat-threaded-messages", changeDetection: ChangeDetectionStrategy.OnPush, template: "<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\">\n <cometchat-message-list #messageListRef\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 [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 [messageTypes]=\"messageListConfiguration.templates\"\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 [dateSeparatorStyle]=\"messageListConfiguration.dateSeparatorStyle\"\n [messageListStyle]=\"messageListConfiguration.messageListStyle\"\n [onError]=\"messageListConfiguration.onError\">\n </cometchat-message-list>\n </div>\n <div class=\"cc-threaded-messages__composer\">\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 [onSendButtonClick]=\"messageComposerConfiguration.onSendButtonClick\"\n [onError]=\"messageComposerConfiguration.onError\"\n [actionSheetStyle]=\"messageComposerConfiguration.actionSheetStyle\">\n </cometchat-message-composer>\n </div>\n</div>\n", styles: ["*{box-sizing:border-box;margin:0;padding:0}.cc-threaded-messages__wrapper{display:flex;flex-direction:column;height:100%;overflow-y:auto}.cc-threaded-messages__header{height:8%;width:100%;display:flex;padding:16px;align-items:flex-start}.cc-threaded-messages__close{display:flex;align-items:center}.cc-threaded-messages__title{display:flex;align-items:center;justify-content:center;width:100%}.cc-threaded-messages__bubble-view{width:-moz-fit-content;width:fit-content}.cc-threaded-messages__header{flex:0 0 auto}.cc-threaded-messages__list{flex:1 1 auto;min-height:65%}.cc-threaded-messages__composer{flex:0 0 auto;min-height:80px}\n"] }]
12854
+ args: [{ selector: "cometchat-threaded-messages", changeDetection: ChangeDetectionStrategy.OnPush, template: "<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\">\n <cometchat-message-list #messageListRef\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 [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 [messageTypes]=\"messageListConfiguration.templates\"\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 [dateSeparatorStyle]=\"messageListConfiguration.dateSeparatorStyle\"\n [messageListStyle]=\"messageListConfiguration.messageListStyle\"\n [onError]=\"messageListConfiguration.onError\">\n </cometchat-message-list>\n </div>\n <div class=\"cc-threaded-messages__composer\">\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 [onSendButtonClick]=\"messageComposerConfiguration.onSendButtonClick\"\n [onError]=\"messageComposerConfiguration.onError\"\n [actionSheetStyle]=\"messageComposerConfiguration.actionSheetStyle\">\n </cometchat-message-composer>\n </div>\n</div>\n", styles: ["*{box-sizing:border-box;margin:0;padding:0}.cc-threaded-messages__wrapper{display:flex;flex-direction:column;height:100%;overflow-y:auto}.cc-threaded-messages__header{height:8%;width:100%;display:flex;padding:16px;align-items:flex-start}.cc-threaded-messages__close{display:flex;align-items:center}.cc-threaded-messages__title{display:flex;align-items:center;justify-content:center;width:100%}.cc-threaded-messages__bubble-view{width:100%}.cc-threaded-messages__header{flex:0 0 auto}.cc-threaded-messages__list{flex:1 1 auto;min-height:65%}.cc-threaded-messages__composer{flex:0 0 auto;min-height:80px}\n"] }]
12617
12855
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: CometChatThemeService }]; }, propDecorators: { onClose: [{
12618
12856
  type: Input
12619
12857
  }], onError: [{
@@ -13228,10 +13466,10 @@ class CometChatGroupMembersComponent {
13228
13466
  }
13229
13467
  }
13230
13468
  CometChatGroupMembersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatGroupMembersComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
13231
- CometChatGroupMembersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatGroupMembersComponent, selector: "cometchat-group-members", inputs: { groupMemberRequestBuilder: "groupMemberRequestBuilder", searchRequestBuilder: "searchRequestBuilder", subtitleView: "subtitleView", listItemView: "listItemView", tailView: "tailView", disableUsersPresence: "disableUsersPresence", menu: "menu", options: "options", backButtonIconURL: "backButtonIconURL", closeButtonIconURL: "closeButtonIconURL", showBackButton: "showBackButton", hideSeparator: "hideSeparator", selectionMode: "selectionMode", searchPlaceholder: "searchPlaceholder", searchIconURL: "searchIconURL", hideSearch: "hideSearch", title: "title", onError: "onError", backdropStyle: "backdropStyle", onBack: "onBack", onClose: "onClose", onSelect: "onSelect", group: "group", emptyStateView: "emptyStateView", errorStateView: "errorStateView", loadingIconURL: "loadingIconURL", loadingStateView: "loadingStateView", emptyStateText: "emptyStateText", errorStateText: "errorStateText", titleAlignment: "titleAlignment", dropdownIconURL: "dropdownIconURL", statusIndicatorStyle: "statusIndicatorStyle", avatarStyle: "avatarStyle", groupMembersStyle: "groupMembersStyle", groupScopeStyle: "groupScopeStyle", listItemStyle: "listItemStyle" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-group-members\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-group-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-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\" [onSearch]=\"onSearch\"\n [list]=\"groupMembers\" [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-groupMember>\n <cometchat-list-item [title]=\"groupMember?.name\" [avatarURL]=\"groupMember?.avatar\" [avatarName]=\"groupMember?.name\"\n [listItemStyle]=\"listItemStyle\" [avatarStyle]=\"avatarStyle\" [statusIndicatorStyle]=\"statusIndicatorStyle\"\n [statusIndicatorColor]=\"getStatusIndicatorColor(groupMember)\" [hideSeparator]=\"hideSeparator\">\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\" (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)\"></cometchat-radio-button>\n </div>\n <div *ngIf=\"selectionMode == selectionmodeEnum.multiple\" class=\"cc-group-members__selection--multiple\">\n <cometchat-checkbox (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))\" [topMenuSize]=\"0\" [data]=\"getOptions(groupMember)\" (cc-menu-clicked)=\"handleMenuAction($event, groupMember)\" [menuListStyle]=\"menuListStyle\"></cometchat-menu-list>\n <cometchat-label *ngIf=\" isString(getOptions(groupMember))\" [text]=\"getOptions(groupMember)\" [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\">\n <cometchat-button [iconURL]=\"closeButtonIconURL\" [buttonStyle]=\"closeButtonStyle()\" (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\" (cc-changescope-close-clicked)=\"changeScope = false;\" (cc-changescope-changed)=\"changeMemberScope($event)\">\n\n </cometchat-change-scope>\n</cometchat-backdrop>", styles: [".cc-group-members{display:flex;height:100%;width:100%;overflow:hidden}.cc-group-members__back{position:absolute;left:8px;padding:12px 8px 8px}.cc-group-members__wrapper{height:100%;padding:8px;width:100%}.cc-group-members__close{position:absolute;right:8px;padding:8px}.cc-group-members__tail-view{position:relative;display:flex;gap:8px;justify-content:flex-end;align-items:center}.cc-group-members__menus{position:absolute;right:12px;padding:12px;cursor:pointer}.scope__changed{height:100%;width:-moz-fit-content;width:fit-content;position:absolute;right:8px}\n"], components: [{ type: CometchatListComponent, selector: "cometchat-list", inputs: ["listItemView", "onScrolledToBottom", "onScrolledToTop", "list", "onSearch", "getSectionHeader", "searchText", "searchIconURL", "listStyle", "searchPlaceholderText", "hideSearch", "hideError", "title", "titleAlignment", "errorStateView", "loadingStateView", "emptyStateView", "state", "errorStateText", "emptyStateText", "loadingIconURL", "showSectionHeader", "sectionHeaderField", "DateSeparatorPattern", "dateSeparatorStyle"] }], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13469
+ CometChatGroupMembersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatGroupMembersComponent, selector: "cometchat-group-members", inputs: { groupMemberRequestBuilder: "groupMemberRequestBuilder", searchRequestBuilder: "searchRequestBuilder", subtitleView: "subtitleView", listItemView: "listItemView", tailView: "tailView", disableUsersPresence: "disableUsersPresence", menu: "menu", options: "options", backButtonIconURL: "backButtonIconURL", closeButtonIconURL: "closeButtonIconURL", showBackButton: "showBackButton", hideSeparator: "hideSeparator", selectionMode: "selectionMode", searchPlaceholder: "searchPlaceholder", searchIconURL: "searchIconURL", hideSearch: "hideSearch", title: "title", onError: "onError", backdropStyle: "backdropStyle", onBack: "onBack", onClose: "onClose", onSelect: "onSelect", group: "group", emptyStateView: "emptyStateView", errorStateView: "errorStateView", loadingIconURL: "loadingIconURL", loadingStateView: "loadingStateView", emptyStateText: "emptyStateText", errorStateText: "errorStateText", titleAlignment: "titleAlignment", dropdownIconURL: "dropdownIconURL", statusIndicatorStyle: "statusIndicatorStyle", avatarStyle: "avatarStyle", groupMembersStyle: "groupMembersStyle", groupScopeStyle: "groupScopeStyle", listItemStyle: "listItemStyle" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-group-members\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-group-members__back\">\n <cometchat-button [iconURL]=\"backButtonIconURL\"\n [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\"\n [onScrolledToBottom]=\"onScrolledToBottom\" [onSearch]=\"onSearch\"\n [list]=\"groupMembers\" [searchText]=\"searchKeyword\"\n [searchPlaceholderText]=\"searchPlaceholder\"\n [searchIconURL]=\"searchIconURL\" [hideSearch]=\"hideSearch\" [title]=\"title\"\n [emptyStateText]=\"emptyStateText\" [loadingIconURL]=\"loadingIconURL\"\n [titleAlignment]=\"titleAlignment\" [loadingStateView]=\"loadingStateView\"\n [emptyStateView]=\"emptyStateView\" [errorStateText]=\"errorStateText\"\n [errorStateView]=\"errorStateView\" [listStyle]=\"listStyle\" [state]=\"state\">\n </cometchat-list>\n <ng-template #listItem let-groupMember>\n <cometchat-list-item [title]=\"groupMember?.name\"\n [avatarURL]=\"groupMember?.avatar\" [avatarName]=\"groupMember?.name\"\n [listItemStyle]=\"listItemStyle\" [avatarStyle]=\"avatarStyle\"\n [statusIndicatorStyle]=\"statusIndicatorStyle\"\n [statusIndicatorColor]=\"getStatusIndicatorColor(groupMember)\"\n [hideSeparator]=\"hideSeparator\">\n <div slot=\"subtitleView\" *ngIf=\"subtitleView\"\n 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\"\n *ngIf=\" !tailView && options\">\n <cometchat-menu-list [data]=\"options(groupMember)\"\n [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\n *ngTemplateOutlet=\"tailView;context:{ $implicit: groupMember }\">\n </ng-container>\n\n </div>\n <div *ngIf=\"selectionMode != selectionmodeEnum.none\">\n <div *ngIf=\"selectionMode == selectionmodeEnum.single\"\n class=\"cc-group-members__selection--single\">\n <cometchat-radio-button\n (cc-radio-button-changed)=\"onMemberSelected(groupMember,$event)\"></cometchat-radio-button>\n </div>\n <div *ngIf=\"selectionMode == selectionmodeEnum.multiple\"\n class=\"cc-group-members__selection--multiple\">\n <cometchat-checkbox\n (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\"\n *ngIf=\"isArray(getOptions(groupMember))\" [topMenuSize]=\"0\"\n [data]=\"getOptions(groupMember)\"\n (cc-menu-clicked)=\"handleMenuAction($event, groupMember)\"\n [menuListStyle]=\"menuListStyle\"></cometchat-menu-list>\n <cometchat-label *ngIf=\" isString(getOptions(groupMember))\"\n [text]=\"getOptions(groupMember)\" [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\">\n <cometchat-button [iconURL]=\"closeButtonIconURL\"\n [buttonStyle]=\"closeButtonStyle()\" (cc-button-clicked)=\"closeClicked()\">\n </cometchat-button>\n </div>\n</div>\n<cometchat-backdrop *ngIf=\"changeScope && memberScope.length > 0\"\n [backdropStyle]=\"backdropStyle\">\n <cometchat-change-scope [changeScopeStyle]=\"groupScopeStyle\"\n [options]=\"memberScope\" [arrowIconURL]=\"dropdownIconURL\"\n (cc-changescope-close-clicked)=\"changeScope = false;\"\n (cc-changescope-changed)=\"changeMemberScope($event)\">\n\n </cometchat-change-scope>\n</cometchat-backdrop>\n", styles: [".cc-group-members{display:flex;height:100%;width:100%;overflow:hidden}.cc-group-members__back{position:absolute;left:8px;padding:12px 8px 8px}.cc-group-members__wrapper{height:100%;padding:8px;width:100%}.cc-group-members__close{position:absolute;right:8px;padding:8px}.cc-group-members__tail-view{position:relative;display:flex;gap:8px;justify-content:flex-end;align-items:center}.cc-group-members__menus{position:absolute;right:12px;padding:12px;cursor:pointer}.scope__changed{height:100%;width:-moz-fit-content;width:fit-content;position:absolute;right:8px}\n"], components: [{ type: CometchatListComponent, selector: "cometchat-list", inputs: ["listItemView", "onScrolledToBottom", "onScrolledToTop", "list", "onSearch", "getSectionHeader", "searchText", "searchIconURL", "listStyle", "searchPlaceholderText", "hideSearch", "hideError", "title", "titleAlignment", "errorStateView", "loadingStateView", "emptyStateView", "state", "errorStateText", "emptyStateText", "loadingIconURL", "showSectionHeader", "sectionHeaderField", "DateSeparatorPattern", "dateSeparatorStyle"] }], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13232
13470
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatGroupMembersComponent, decorators: [{
13233
13471
  type: Component,
13234
- args: [{ selector: "cometchat-group-members", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-group-members\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-group-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-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\" [onSearch]=\"onSearch\"\n [list]=\"groupMembers\" [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-groupMember>\n <cometchat-list-item [title]=\"groupMember?.name\" [avatarURL]=\"groupMember?.avatar\" [avatarName]=\"groupMember?.name\"\n [listItemStyle]=\"listItemStyle\" [avatarStyle]=\"avatarStyle\" [statusIndicatorStyle]=\"statusIndicatorStyle\"\n [statusIndicatorColor]=\"getStatusIndicatorColor(groupMember)\" [hideSeparator]=\"hideSeparator\">\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\" (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)\"></cometchat-radio-button>\n </div>\n <div *ngIf=\"selectionMode == selectionmodeEnum.multiple\" class=\"cc-group-members__selection--multiple\">\n <cometchat-checkbox (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))\" [topMenuSize]=\"0\" [data]=\"getOptions(groupMember)\" (cc-menu-clicked)=\"handleMenuAction($event, groupMember)\" [menuListStyle]=\"menuListStyle\"></cometchat-menu-list>\n <cometchat-label *ngIf=\" isString(getOptions(groupMember))\" [text]=\"getOptions(groupMember)\" [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\">\n <cometchat-button [iconURL]=\"closeButtonIconURL\" [buttonStyle]=\"closeButtonStyle()\" (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\" (cc-changescope-close-clicked)=\"changeScope = false;\" (cc-changescope-changed)=\"changeMemberScope($event)\">\n\n </cometchat-change-scope>\n</cometchat-backdrop>", styles: [".cc-group-members{display:flex;height:100%;width:100%;overflow:hidden}.cc-group-members__back{position:absolute;left:8px;padding:12px 8px 8px}.cc-group-members__wrapper{height:100%;padding:8px;width:100%}.cc-group-members__close{position:absolute;right:8px;padding:8px}.cc-group-members__tail-view{position:relative;display:flex;gap:8px;justify-content:flex-end;align-items:center}.cc-group-members__menus{position:absolute;right:12px;padding:12px;cursor:pointer}.scope__changed{height:100%;width:-moz-fit-content;width:fit-content;position:absolute;right:8px}\n"] }]
13472
+ args: [{ selector: "cometchat-group-members", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-group-members\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-group-members__back\">\n <cometchat-button [iconURL]=\"backButtonIconURL\"\n [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\"\n [onScrolledToBottom]=\"onScrolledToBottom\" [onSearch]=\"onSearch\"\n [list]=\"groupMembers\" [searchText]=\"searchKeyword\"\n [searchPlaceholderText]=\"searchPlaceholder\"\n [searchIconURL]=\"searchIconURL\" [hideSearch]=\"hideSearch\" [title]=\"title\"\n [emptyStateText]=\"emptyStateText\" [loadingIconURL]=\"loadingIconURL\"\n [titleAlignment]=\"titleAlignment\" [loadingStateView]=\"loadingStateView\"\n [emptyStateView]=\"emptyStateView\" [errorStateText]=\"errorStateText\"\n [errorStateView]=\"errorStateView\" [listStyle]=\"listStyle\" [state]=\"state\">\n </cometchat-list>\n <ng-template #listItem let-groupMember>\n <cometchat-list-item [title]=\"groupMember?.name\"\n [avatarURL]=\"groupMember?.avatar\" [avatarName]=\"groupMember?.name\"\n [listItemStyle]=\"listItemStyle\" [avatarStyle]=\"avatarStyle\"\n [statusIndicatorStyle]=\"statusIndicatorStyle\"\n [statusIndicatorColor]=\"getStatusIndicatorColor(groupMember)\"\n [hideSeparator]=\"hideSeparator\">\n <div slot=\"subtitleView\" *ngIf=\"subtitleView\"\n 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\"\n *ngIf=\" !tailView && options\">\n <cometchat-menu-list [data]=\"options(groupMember)\"\n [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\n *ngTemplateOutlet=\"tailView;context:{ $implicit: groupMember }\">\n </ng-container>\n\n </div>\n <div *ngIf=\"selectionMode != selectionmodeEnum.none\">\n <div *ngIf=\"selectionMode == selectionmodeEnum.single\"\n class=\"cc-group-members__selection--single\">\n <cometchat-radio-button\n (cc-radio-button-changed)=\"onMemberSelected(groupMember,$event)\"></cometchat-radio-button>\n </div>\n <div *ngIf=\"selectionMode == selectionmodeEnum.multiple\"\n class=\"cc-group-members__selection--multiple\">\n <cometchat-checkbox\n (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\"\n *ngIf=\"isArray(getOptions(groupMember))\" [topMenuSize]=\"0\"\n [data]=\"getOptions(groupMember)\"\n (cc-menu-clicked)=\"handleMenuAction($event, groupMember)\"\n [menuListStyle]=\"menuListStyle\"></cometchat-menu-list>\n <cometchat-label *ngIf=\" isString(getOptions(groupMember))\"\n [text]=\"getOptions(groupMember)\" [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\">\n <cometchat-button [iconURL]=\"closeButtonIconURL\"\n [buttonStyle]=\"closeButtonStyle()\" (cc-button-clicked)=\"closeClicked()\">\n </cometchat-button>\n </div>\n</div>\n<cometchat-backdrop *ngIf=\"changeScope && memberScope.length > 0\"\n [backdropStyle]=\"backdropStyle\">\n <cometchat-change-scope [changeScopeStyle]=\"groupScopeStyle\"\n [options]=\"memberScope\" [arrowIconURL]=\"dropdownIconURL\"\n (cc-changescope-close-clicked)=\"changeScope = false;\"\n (cc-changescope-changed)=\"changeMemberScope($event)\">\n\n </cometchat-change-scope>\n</cometchat-backdrop>\n", styles: [".cc-group-members{display:flex;height:100%;width:100%;overflow:hidden}.cc-group-members__back{position:absolute;left:8px;padding:12px 8px 8px}.cc-group-members__wrapper{height:100%;padding:8px;width:100%}.cc-group-members__close{position:absolute;right:8px;padding:8px}.cc-group-members__tail-view{position:relative;display:flex;gap:8px;justify-content:flex-end;align-items:center}.cc-group-members__menus{position:absolute;right:12px;padding:12px;cursor:pointer}.scope__changed{height:100%;width:-moz-fit-content;width:fit-content;position:absolute;right:8px}\n"] }]
13235
13473
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: CometChatThemeService }]; }, propDecorators: { groupMemberRequestBuilder: [{
13236
13474
  type: Input
13237
13475
  }], searchRequestBuilder: [{
@@ -16019,7 +16257,6 @@ class CometChatConversationsWithMessagesComponent {
16019
16257
  if (this.group && this.group.getGuid() == item?.leftGroup.getGuid() && this.loggedInUser?.getUid() == item?.userLeft?.getUid()) {
16020
16258
  this.group = null;
16021
16259
  this.activeConversation = null;
16022
- console.log(this.group, this.user, this.activeConversation);
16023
16260
  this.ref.detectChanges();
16024
16261
  }
16025
16262
  });