@cometchat/chat-uikit-angular 4.3.25 → 4.3.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +3 -1
- package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +6 -1
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +2 -0
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +44 -19
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +6 -4
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +101 -27
- package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +12 -12
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +25 -8
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +2 -2
- package/fesm2015/cometchat-chat-uikit-angular.mjs +193 -74
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +184 -66
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/package.json +5 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ConversationUtils, CometChatMentionsFormatter, CometChatUIKitLoginListener, UserMentionStyle, CometChatUrlsFormatter, CallingDetailsUtils, ExtensionsDataSource as ExtensionsDataSource$1, CollaborativeDocumentConstants, ExtensionsId, CollaborativeWhiteboardConstants, PollsConstants, CometChatUIKitUtility, CometChatSoundManager, SmartRepliesConfiguration, StickersConstants, StickersConfiguration, CometChatUIKitSharedSettings, CometChatUIKitCalls, StorageUtils, InteractiveMessageUtils, OutgoingCallStyle, OutgoingCallConfiguration, CallScreenConfiguration, CallButtonsStyle, IncomingCallStyle, UsersStyle, AddMembersStyle, MessageHeaderStyle, ListStyle, BannedMembersStyle, MessageReceiptUtils, ConversationsStyle, MessageInformationStyle, ReactionsConfiguration, MessageInformationConfiguration, MessageTranslationConstants, MessageTranslationStyle, CalendarStyle, TimeSlotStyle, SchedulerBubbleStyle, ReactionsStyle, FormBubbleStyle, CardBubbleStyle, LinkPreviewConstants, ThumbnailGenerationConstants, MessageListStyle, LinkPreviewStyle, SmartRepliesConstants, ReactionListStyle, ReactionListConfiguration, ReactionInfoStyle, ReactionInfoConfiguration, GroupMemberUtils, GroupMembersStyle, UserMemberWrapperConfiguration, MessageComposerStyle, MessageListConfiguration, MessageComposerConfiguration, ThreadedMessagesStyle, 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
|
-
import { CometChatMessageOption, CometChatUIKitConstants, localize, fontHelper, CometChatMessageTemplate, CometChatMessageComposerAction, MentionsTargetElement, MessageBubbleAlignment, CometChatTheme, CometChatMessageEvents, MessageStatus, CometChatUIEvents, ChatSdkEventInitializer, CometChatLocalize, CallWorkflow, CometChatCallEvents, IconButtonAlignment, TitleAlignment, States, DatePatterns, SelectionMode, UserPresencePlacement, CometChatUserEvents, CometChatGroupEvents, CometChatConversationEvents, MessageListAlignment, Receipts, TimestampAlignment, DocumentIconAlignment, Placement, UserMemberListType, AuxiliaryButtonAlignment, PreviewMessageMode, TabAlignment, TabsVisibility, CometChatCallDetailsTemplate, CometChatCallDetailsOption } from '@cometchat/uikit-resources';
|
|
3
|
+
import { CometChatMessageOption, CometChatUIKitConstants, localize, fontHelper, CometChatMessageTemplate, CometChatMessageComposerAction, MentionsTargetElement, MessageBubbleAlignment, CometChatTheme, CometChatMessageEvents, MessageStatus, CometChatUIEvents, ChatSdkEventInitializer, CometChatLocalize, CallWorkflow, CometChatCallEvents, IconButtonAlignment, TitleAlignment, States, DatePatterns, SelectionMode, UserPresencePlacement, CometChatUserEvents, CometChatGroupEvents, CometChatConversationEvents, MessageListAlignment, Receipts, TimestampAlignment, DocumentIconAlignment, Placement, ActivePopover, UserMemberListType, AuxiliaryButtonAlignment, PreviewMessageMode, TabAlignment, TabsVisibility, CometChatCallDetailsTemplate, CometChatCallDetailsOption } from '@cometchat/uikit-resources';
|
|
4
4
|
export * from '@cometchat/uikit-resources';
|
|
5
5
|
import { CallscreenStyle, AvatarStyle, ListItemStyle, ConfirmDialogStyle, DateStyle, ReceiptStyle, BadgeStyle, MenuListStyle, QuickViewStyle, InputStyle, LabelStyle, RadioButtonStyle, CheckboxStyle, DropdownStyle, SingleSelectStyle, ChangeScopeStyle, MediaRecorderStyle, CreateGroupStyle, JoinGroupStyle } from '@cometchat/uikit-elements';
|
|
6
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, CometChatTextInput, 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, TextInputStyle, auxiliaryButtonAlignmentEnum, layoutType } from '@cometchat/uikit-elements';
|
|
@@ -1912,7 +1912,7 @@ class CometChatUIKit {
|
|
|
1912
1912
|
if (window) {
|
|
1913
1913
|
window.CometChatUiKit = {
|
|
1914
1914
|
name: "@cometchat/chat-uikit-angular",
|
|
1915
|
-
version: "4.3.
|
|
1915
|
+
version: "4.3.27",
|
|
1916
1916
|
};
|
|
1917
1917
|
}
|
|
1918
1918
|
if (CometChatUIKitSharedSettings) {
|
|
@@ -6641,6 +6641,12 @@ class CometChatConversationsComponent {
|
|
|
6641
6641
|
this.ref.detectChanges();
|
|
6642
6642
|
});
|
|
6643
6643
|
this.ccMessageRead = CometChatMessageEvents.ccMessageRead.subscribe((messageObject) => {
|
|
6644
|
+
let conversation = this.getConversationFromId(messageObject.getConversationId());
|
|
6645
|
+
if (conversation) {
|
|
6646
|
+
this.updateEditedMessage(conversation.getLastMessage());
|
|
6647
|
+
this.resetUnreadCount(conversation.getConversationId());
|
|
6648
|
+
return;
|
|
6649
|
+
}
|
|
6644
6650
|
if (!this.conversationType || this.conversationType == messageObject.getReceiverType()) {
|
|
6645
6651
|
CometChat.CometChatHelper.getConversationFromMessage(messageObject).then((conversation) => {
|
|
6646
6652
|
if (conversation &&
|
|
@@ -6667,6 +6673,17 @@ class CometChatConversationsComponent {
|
|
|
6667
6673
|
this.ccCallAccepted = CometChatCallEvents.ccCallAccepted.subscribe((call) => {
|
|
6668
6674
|
this.updateConversation(call);
|
|
6669
6675
|
});
|
|
6676
|
+
this.ccGroupCreated = CometChatGroupEvents.ccGroupCreated.subscribe((group) => {
|
|
6677
|
+
CometChat.getConversation(group.getGuid(), CometChatUIKitConstants.MessageReceiverType.group).then((conversation) => {
|
|
6678
|
+
this.conversationList.unshift(conversation);
|
|
6679
|
+
this.ref.detectChanges();
|
|
6680
|
+
})
|
|
6681
|
+
.catch((error) => {
|
|
6682
|
+
if (this.onError) {
|
|
6683
|
+
this.onError(error);
|
|
6684
|
+
}
|
|
6685
|
+
});
|
|
6686
|
+
});
|
|
6670
6687
|
}
|
|
6671
6688
|
unsubscribeToEvents() {
|
|
6672
6689
|
this.ccGroupMemberAdded?.unsubscribe();
|
|
@@ -6681,6 +6698,7 @@ class CometChatConversationsComponent {
|
|
|
6681
6698
|
this.ccUserBlocked?.unsubscribe();
|
|
6682
6699
|
this.ccUserUnblocked?.unsubscribe();
|
|
6683
6700
|
this.ccMessageRead?.unsubscribe();
|
|
6701
|
+
this.ccGroupCreated?.unsubscribe();
|
|
6684
6702
|
}
|
|
6685
6703
|
getConversationFromUser(user) {
|
|
6686
6704
|
let index = this.conversationList.findIndex((element) => element.getConversationType() ==
|
|
@@ -6692,6 +6710,13 @@ class CometChatConversationsComponent {
|
|
|
6692
6710
|
}
|
|
6693
6711
|
return null;
|
|
6694
6712
|
}
|
|
6713
|
+
getConversationFromId(id) {
|
|
6714
|
+
let index = this.conversationList.findIndex((element) => element.getConversationId() == id);
|
|
6715
|
+
if (index >= 0) {
|
|
6716
|
+
return this.conversationList[index];
|
|
6717
|
+
}
|
|
6718
|
+
return null;
|
|
6719
|
+
}
|
|
6695
6720
|
getConversationFromGroup(group) {
|
|
6696
6721
|
let index = this.conversationList.findIndex((element) => element.getConversationType() ==
|
|
6697
6722
|
CometChatUIKitConstants.MessageReceiverType.group &&
|
|
@@ -6754,25 +6779,25 @@ class CometChatConversationsComponent {
|
|
|
6754
6779
|
}
|
|
6755
6780
|
}
|
|
6756
6781
|
// set unread count
|
|
6757
|
-
resetUnreadCount() {
|
|
6758
|
-
|
|
6759
|
-
|
|
6760
|
-
|
|
6761
|
-
|
|
6762
|
-
|
|
6763
|
-
|
|
6764
|
-
|
|
6765
|
-
|
|
6766
|
-
|
|
6767
|
-
|
|
6768
|
-
|
|
6769
|
-
|
|
6770
|
-
|
|
6771
|
-
|
|
6772
|
-
|
|
6773
|
-
|
|
6774
|
-
|
|
6775
|
-
|
|
6782
|
+
resetUnreadCount(conversationId) {
|
|
6783
|
+
const targetConversationId = conversationId || this.activeConversation?.getConversationId();
|
|
6784
|
+
if (!targetConversationId)
|
|
6785
|
+
return;
|
|
6786
|
+
const conversationIndex = this.conversationList.findIndex((conv) => conv.getConversationId() === targetConversationId);
|
|
6787
|
+
if (conversationIndex < 0)
|
|
6788
|
+
return;
|
|
6789
|
+
const updatedConversation = this.conversationList[conversationIndex];
|
|
6790
|
+
updatedConversation.setUnreadMessageCount(0);
|
|
6791
|
+
const lastMessage = updatedConversation.getLastMessage();
|
|
6792
|
+
if (lastMessage instanceof CometChat.TextMessage) {
|
|
6793
|
+
lastMessage.setMuid(this.getUinx());
|
|
6794
|
+
}
|
|
6795
|
+
this.conversationList = [
|
|
6796
|
+
...this.conversationList.slice(0, conversationIndex),
|
|
6797
|
+
updatedConversation,
|
|
6798
|
+
...this.conversationList.slice(conversationIndex + 1),
|
|
6799
|
+
];
|
|
6800
|
+
this.ref.detectChanges();
|
|
6776
6801
|
}
|
|
6777
6802
|
// sets property from theme to style object
|
|
6778
6803
|
setThemeStyle() {
|
|
@@ -7823,8 +7848,10 @@ class CometChatMessageBubbleComponent {
|
|
|
7823
7848
|
if (onClick) {
|
|
7824
7849
|
onClick(this.id, event?.detail?.event);
|
|
7825
7850
|
}
|
|
7826
|
-
|
|
7827
|
-
|
|
7851
|
+
if (event?.detail?.data && event?.detail?.data?.id != CometChatUIKitConstants.MessageOption.reactToMessage) {
|
|
7852
|
+
this.isHovering = false;
|
|
7853
|
+
this.ref.detectChanges();
|
|
7854
|
+
}
|
|
7828
7855
|
}
|
|
7829
7856
|
bubbleAlignmentStyle() {
|
|
7830
7857
|
return {
|
|
@@ -8185,16 +8212,7 @@ class CometChatMessageInformationComponent {
|
|
|
8185
8212
|
this.errorStateText = localize("SOMETHING_WRONG");
|
|
8186
8213
|
this.loadingIconURL = "assets/Spinner.svg";
|
|
8187
8214
|
this.receipts = [];
|
|
8188
|
-
this.receiptStyle = new ReceiptStyle({
|
|
8189
|
-
waitIconTint: this.themeService.theme.palette.getAccent700(),
|
|
8190
|
-
sentIconTint: this.themeService.theme.palette.getAccent600(),
|
|
8191
|
-
deliveredIconTint: this.themeService.theme.palette.getAccent600(),
|
|
8192
|
-
readIconTint: this.themeService.theme.palette.getPrimary(),
|
|
8193
|
-
errorIconTint: this.themeService.theme.palette.getError(),
|
|
8194
|
-
height: "20px",
|
|
8195
|
-
width: "20px",
|
|
8196
|
-
background: "transparent"
|
|
8197
|
-
});
|
|
8215
|
+
this.receiptStyle = new ReceiptStyle({});
|
|
8198
8216
|
this.isUserType = false;
|
|
8199
8217
|
this.deliveredReceipt = Receipts.delivered;
|
|
8200
8218
|
this.readReceipt = Receipts.read;
|
|
@@ -8258,6 +8276,15 @@ class CometChatMessageInformationComponent {
|
|
|
8258
8276
|
setTheme() {
|
|
8259
8277
|
this.setMessageInfoStyle();
|
|
8260
8278
|
this.setListItemStyle();
|
|
8279
|
+
let { sendIconTint, deliveredIconTint, readIconTint } = this.messageInformationStyle;
|
|
8280
|
+
this.receiptStyle = new ReceiptStyle({
|
|
8281
|
+
sentIconTint: sendIconTint ?? this.themeService.theme.palette.getAccent600(),
|
|
8282
|
+
deliveredIconTint: deliveredIconTint ?? this.themeService.theme.palette.getAccent600(),
|
|
8283
|
+
readIconTint: readIconTint ?? this.themeService.theme.palette.getPrimary(),
|
|
8284
|
+
height: "20px",
|
|
8285
|
+
width: "20px",
|
|
8286
|
+
background: "transparent"
|
|
8287
|
+
});
|
|
8261
8288
|
this.listStyle = {
|
|
8262
8289
|
titleTextFont: this.messageInformationStyle.titleTextFont,
|
|
8263
8290
|
titleTextColor: this.messageInformationStyle.titleTextColor,
|
|
@@ -8314,7 +8341,7 @@ class CometChatMessageInformationComponent {
|
|
|
8314
8341
|
height: "500px",
|
|
8315
8342
|
width: "500px",
|
|
8316
8343
|
captionTextColor: this.themeService.theme.palette.getAccent600(),
|
|
8317
|
-
captionTextFont: fontHelper(this.themeService.theme.typography.
|
|
8344
|
+
captionTextFont: fontHelper(this.themeService.theme.typography.caption3)
|
|
8318
8345
|
});
|
|
8319
8346
|
this.messageInformationStyle = { ...defaultStyle, ...this.messageInformationStyle };
|
|
8320
8347
|
}
|
|
@@ -8702,6 +8729,9 @@ class CometChatMessageListComponent {
|
|
|
8702
8729
|
this.popoverRef.nativeElement.openContentView(event);
|
|
8703
8730
|
if (this.messageToReact) {
|
|
8704
8731
|
this.reactToMessage(emoji, this.messageToReact);
|
|
8732
|
+
setTimeout(() => {
|
|
8733
|
+
this.messageToReact = null;
|
|
8734
|
+
}, 0);
|
|
8705
8735
|
}
|
|
8706
8736
|
};
|
|
8707
8737
|
this.getCallActionMessage = (call) => {
|
|
@@ -8711,6 +8741,7 @@ class CometChatMessageListComponent {
|
|
|
8711
8741
|
return window.innerWidth <= 768;
|
|
8712
8742
|
};
|
|
8713
8743
|
this.showEmojiKeyboard = (id, event) => {
|
|
8744
|
+
CometChatUIEvents.ccActivePopover.next(ActivePopover.messageList);
|
|
8714
8745
|
let message = this.getMessageById(id);
|
|
8715
8746
|
if (message) {
|
|
8716
8747
|
this.messageToReact = message;
|
|
@@ -9187,8 +9218,8 @@ class CometChatMessageListComponent {
|
|
|
9187
9218
|
!lastMessage.getDeliveredAt()) {
|
|
9188
9219
|
//mark the message as delivered
|
|
9189
9220
|
if (!this.disableReceipt) {
|
|
9190
|
-
CometChat.markAsDelivered(lastMessage).then((
|
|
9191
|
-
let messageKey = this.messagesList.findIndex((m) => m.getId() ===
|
|
9221
|
+
CometChat.markAsDelivered(lastMessage).then(() => {
|
|
9222
|
+
let messageKey = this.messagesList.findIndex((m) => m.getId() === lastMessage?.getId());
|
|
9192
9223
|
if (messageKey > -1) {
|
|
9193
9224
|
this.markAllMessagAsDelivered(messageKey);
|
|
9194
9225
|
}
|
|
@@ -9198,8 +9229,8 @@ class CometChatMessageListComponent {
|
|
|
9198
9229
|
if (!lastMessage?.getReadAt() && !isSentByMe) {
|
|
9199
9230
|
if (!this.disableReceipt) {
|
|
9200
9231
|
CometChat.markAsRead(lastMessage)
|
|
9201
|
-
.then((
|
|
9202
|
-
let messageKey = this.messagesList.findIndex((m) => m.getId() ===
|
|
9232
|
+
.then(() => {
|
|
9233
|
+
let messageKey = this.messagesList.findIndex((m) => m.getId() === lastMessage?.getId());
|
|
9203
9234
|
if (messageKey > -1) {
|
|
9204
9235
|
this.markAllMessagAsRead(messageKey);
|
|
9205
9236
|
}
|
|
@@ -10274,6 +10305,12 @@ class CometChatMessageListComponent {
|
|
|
10274
10305
|
});
|
|
10275
10306
|
}
|
|
10276
10307
|
}
|
|
10308
|
+
onEmojiKeyboardClosed() {
|
|
10309
|
+
if (this.messageToReact) {
|
|
10310
|
+
this.messageToReact = null;
|
|
10311
|
+
this.ref.detectChanges();
|
|
10312
|
+
}
|
|
10313
|
+
}
|
|
10277
10314
|
getCallBubbleTitle(message) {
|
|
10278
10315
|
if (!message.getSender() ||
|
|
10279
10316
|
message.getSender().getUid() == this.loggedInUser.getUid()) {
|
|
@@ -12208,6 +12245,13 @@ class CometChatMessageListComponent {
|
|
|
12208
12245
|
* Method to subscribe the required Rxjs events when the CometChatMessageListComponent loads
|
|
12209
12246
|
*/
|
|
12210
12247
|
subscribeToEvents() {
|
|
12248
|
+
this.ccActivePppover = CometChatUIEvents.ccActivePopover.subscribe((data) => {
|
|
12249
|
+
if (data == ActivePopover.composer && this.messageToReact) {
|
|
12250
|
+
this.popoverRef.nativeElement.openContentView();
|
|
12251
|
+
this.messageToReact = null;
|
|
12252
|
+
this.ref.detectChanges();
|
|
12253
|
+
}
|
|
12254
|
+
});
|
|
12211
12255
|
this.ccShowPanel = CometChatUIEvents.ccShowPanel.subscribe((data) => {
|
|
12212
12256
|
if (data.child?.showConversationSummaryView) {
|
|
12213
12257
|
this.fetchConversationSummary();
|
|
@@ -12588,10 +12632,10 @@ class CometChatMessageListComponent {
|
|
|
12588
12632
|
}
|
|
12589
12633
|
}
|
|
12590
12634
|
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 });
|
|
12591
|
-
CometChatMessageListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatMessageListComponent, selector: "cometchat-message-list", inputs: { hideError: "hideError", hideDateSeparator: "hideDateSeparator", errorStateView: "errorStateView", loadingStateView: "loadingStateView", emptyStateView: "emptyStateView", errorStateText: "errorStateText", emptyStateText: "emptyStateText", loadingIconURL: "loadingIconURL", user: "user", group: "group", disableReceipt: "disableReceipt", hideReceipt: "hideReceipt", 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", reactionsConfiguration: "reactionsConfiguration", disableReactions: "disableReactions", emojiKeyboardStyle: "emojiKeyboardStyle", apiConfiguration: "apiConfiguration", onThreadRepliesClick: "onThreadRepliesClick", headerView: "headerView", footerView: "footerView", parentMessageId: "parentMessageId", threadIndicatorIcon: "threadIndicatorIcon", avatarStyle: "avatarStyle", backdropStyle: "backdropStyle", dateSeparatorStyle: "dateSeparatorStyle", messageListStyle: "messageListStyle", onError: "onError", messageInformationConfiguration: "messageInformationConfiguration", disableMentions: "disableMentions", textFormatters: "textFormatters" }, 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 }, { propertyName: "messageBubbleRef", predicate: ["messageBubbleRef"], 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 && !errorStateView\"\n [text]=\"errorStateText\">\n </cometchat-label>\n <span class=\"cc-message-list__custom-view--error\"\n *ngIf=\"state == states.error && errorStateView\">\n <ng-container *ngTemplateOutlet=\"errorStateView\">\n </ng-container>\n </span>\n </div>\n <div class=\"cc-message-list__empty-view\" *ngIf=\"state == states.empty\">\n <span class=\"cc-message-list__custom-view--empty\"\n *ngIf=\"state == states.empty && emptyStateView\">\n <ng-container *ngTemplateOutlet=\"emptyStateView\">\n </ng-container>\n </span>\n </div>\n </div>\n <div class=\"cc-message-list__bubble\"\n *ngFor=\"let message of messagesList; let i = index\">\n <div class=\"cc-message-list__date-container\"\n *ngIf=\"(i === 0) && message?.getSentAt() && !hideDateSeparator\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message!.getSentAt()\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div class=\"cc-message-list__date-container\"\n *ngIf=\"(i > 0 && isDateDifferent(messagesList[i - 1]?.getSentAt(), messagesList[i]?.getSentAt())) && message?.getSentAt() && !hideDateSeparator\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <div *ngIf=\"!getBubbleWrapper(message)\" #messageBubbleRef\n [id]=\"message?.getId()\">\n <cometchat-message-bubble\n [leadingView]=\" showAvatar ? leadingView : null\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"showStatusInfo(message) ? statusInfoView : null\"\n [headerView]=\"getHeaderView(message) || message?.getCategory() != MessageCategory.action && showHeaderTitle(message) ? bubbleHeader : null\"\n [footerView]=\"getFooterView(message) || reactionView\"\n [contentView]=\"contentView\" [threadView]=\"threadView\"\n [id]=\"message?.getId() || message?.getMuid()\"\n [options]=\"setMessageOptions(message)\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"setBubbleAlignment(message)\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <cometchat-reactions\n *ngIf=\"message.getReactions() && message.getReactions().length > 0 && !disableReactions\"\n [messageObject]=\"getClonedReactionObject(message)\"\n [alignment]=\"setBubbleAlignment(message)\"\n [reactionsStyle]=\"getReactionsStyle()\"\n [reactionClick]=\"addReactionOnClick\"\n [reactionListConfiguration]=\"getReactionListConfiguration()\"\n [reactionInfoConfiguration]=\"getReactionInfoConfiguration()\"></cometchat-reactions>\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc-message-list__bubble-status-info\"\n [ngStyle]=\"getStatusInfoStyle(message)\">\n <div *ngIf=\"getStatusInfoView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getStatusInfoView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #bubbleFooter>\n <div class=\"cc-message-list__bubble-date\"\n *ngIf=\"timestampAlignment == timestampEnum.bottom && message?.getCategory() != MessageCategory.action && !message.getDeletedAt() && message?.getCategory() != MessageCategory.call && message?.getSentAt()\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\"shouldShowMessage(message, disableReceipt, hideReceipt)\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"getReceiptStyle(message)\"\n [waitIcon]=\"waitIcon\" [sentIcon]=\"sentIcon\"\n [deliveredIcon]=\"deliveredIcon\" [readIcon]=\"readIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n <ng-template #threadView>\n <div class=\"cc-message-list__threadreplies\"\n *ngIf=\"message?.getReplyCount() && !message.getDeletedAt()\"\n [ngStyle]=\"getThreadViewAlignment(message)\">\n <cometchat-icon-button [iconURL]=\"threadIndicatorIcon\"\n [mirrorIcon]=\"getThreadIconAlignment(message)\"\n [buttonStyle]=\"getThreadViewStyle(message)\"\n (cc-button-clicked)=\"openThreadView(message)\"\n [text]='getThreadCount(message)'>\n <!-- <span slot=\"buttonView\" [ngStyle]=\"getUnreadRepliesCountStyle()\"\n class=\"cc-message-list__unread-thread\"\n *ngIf=\"!message.getDeletedAt() && message.getUnreadReplyCount() > 0\">\n {{message.getUnreadReplyCount()}}\n </span> -->\n\n </cometchat-icon-button>\n </div>\n </ng-template>\n </cometchat-message-bubble>\n </div>\n </div>\n <div class=\"cc-message-list__bottom\" #bottom>\n </div>\n\n </div>\n <div class=\"cc-message-list__message-indicator\"\n *ngIf=\"UnreadCount && UnreadCount.length > 0 && !isOnBottom\"\n [ngStyle]=\"{bottom: showSmartReply || footerView || showConversationStarter || showConversationSummary ? '20%' : '13%'}\">\n <cometchat-button [text]=\"newMessageCount\"\n [buttonStyle]=\"unreadMessagesStyle\"\n (cc-button-clicked)=\"scrollToBottom()\"></cometchat-button>\n </div>\n <div class=\"cc-message-list__footer-view\" [ngStyle]=\"{height: 'auto'}\">\n\n <div *ngIf=\"footerView;else footer\">\n <ng-container *ngTemplateOutlet=\"footerView\">\n </ng-container>\n </div>\n <ng-template #footer>\n\n <div class=\"cc-message-list__smart-replies\"\n *ngIf=\"!showConversationStarter && showSmartReply && getReplies()\">\n <smart-replies [smartReplyStyle]=\"smartReplyStyle\"\n [replies]=\"getReplies()\" (cc-reply-clicked)=\"sendReply($event)\"\n (cc-close-clicked)=\"closeSmartReply()\">\n </smart-replies>\n </div>\n\n\n <div class=\"cc-message-list__conversation-starters\"\n *ngIf=\"enableConversationStarter && showConversationStarter\">\n <cometchat-ai-card [state]=\"conversationStarterState\"\n [loadingStateText]=\"starterLoadingStateText\"\n [emptyStateText]=\"starterEmptyStateText\"\n [errorStateText]=\"errorStateText\">\n <smart-replies\n *ngIf=\"conversationStarterState == states.loaded && !parentMessageId\"\n [smartReplyStyle]=\"conversationStarterStyle\"\n [replies]=\"conversationStarterReplies\" slot=\"loadedView\"\n (cc-reply-clicked)=\"sendConversationStarter($event)\"\n [closeIconURL]=\"''\">\n </smart-replies>\n </cometchat-ai-card>\n </div>\n\n <div class=\"cc-message-list__conversation-summary\"\n *ngIf=\"enableConversationSummary && showConversationSummary\">\n\n <cometchat-ai-card [state]=\"conversationSummaryState\"\n [loadingStateText]=\"summaryLoadingStateText\"\n [emptyStateText]=\"summaryEmptyStateText\"\n [errorStateText]=\"errorStateText\" [errorIconURL]=\"aiErrorIcon\"\n [emptyIconURL]=\"aiEmptyIcon\">\n <cometchat-panel\n *ngIf=\"conversationSummaryState == states.loaded && !parentMessageId\"\n slot=\"loadedView\" [panelStyle]=\"conversationSummaryStyle\"\n title=\"Conversation Summary\" [text]=\"conversationSummary\"\n (cc-close-clicked)=\"closeConversationSummary()\">\n </cometchat-panel>\n </cometchat-ai-card>\n\n </div>\n\n </ng-template>\n </div>\n\n</div>\n<!-- default bubbles -->\n<ng-template #textBubble let-message>\n <cometchat-text-bubble\n *ngIf=\"message?.type == MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"message?.message\"></cometchat-text-bubble>\n <cometchat-text-bubble *ngIf=\"message?.getDeletedAt()\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"localize('MESSAGE_IS_DELETED')\"></cometchat-text-bubble>\n <cometchat-text-bubble\n *ngIf=\"!isTranslated(message) && !getLinkPreview(message) && !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"getTextMessage(message)\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n <link-preview [linkPreviewStyle]=\"linkPreviewStyle\"\n (cc-link-clicked)=\"openLinkURL($event)\"\n *ngIf=\"!message?.getDeletedAt() && getLinkPreview(message) && enableLinkPreview\"\n [title]=\"getLinkPreviewDetails('title',message)\"\n [description]=\"getLinkPreviewDetails('description',message)\"\n [URL]=\"getLinkPreviewDetails('url',message)\"\n [image]=\"getLinkPreviewDetails('image',message)\"\n [favIconURL]=\"getLinkPreviewDetails('favicon',message)\">\n <cometchat-text-bubble\n *ngIf=\"!isTranslated(message) && getLinkPreview(message) && !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"getTextMessage(message)\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n </link-preview>\n <message-translation-bubble [alignment]=\"getBubbleAlignment(message)\"\n *ngIf=\"isTranslated(message)\"\n [messageTranslationStyle]=\"setTranslationStyle(message)\"\n [translatedText]=\"isTranslated(message)\"\n [textFormatters]=\"getTextFormatters(message)\">\n <cometchat-text-bubble\n *ngIf=\" !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"message?.text\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n\n </message-translation-bubble>\n</ng-template>\n<ng-template #fileBubble let-message>\n\n <cometchat-file-bubble [fileStyle]=\"setFileBubbleStyle(message)\"\n [downloadIconURL]=\"downloadIconURL\" [subtitle]=\"localize('SHARED_FILE')\"\n [title]=\"message?.data?.attachments ? message?.data?.attachments[0]?.name: ''\"\n [fileURL]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"></cometchat-file-bubble>\n</ng-template>\n<ng-template #audioBubble let-message>\n <cometchat-icon-button [disabled]=\"true\"\n *ngIf=\"message?.category == callConstant && message?.type == MessageTypesConstant.audio\"\n [iconURL]=\"getCallTypeIcon(message)\"\n [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n <cometchat-audio-bubble\n *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\">\n </cometchat-audio-bubble>\n</ng-template>\n<ng-template #videoBubble let-message>\n <cometchat-icon-button [disabled]=\"true\"\n *ngIf=\"message?.category == callConstant && message?.type == MessageTypesConstant.video\"\n [iconURL]=\"getCallTypeIcon(message)\"\n [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n\n <cometchat-video-bubble\n *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [videoStyle]=\"videoBubbleStyle\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"\n [poster]=\" getImageThumbnail(message)\"></cometchat-video-bubble>\n</ng-template>\n<ng-template #imageBubble let-message>\n <image-moderation (cc-show-dialog)=\"openWarningDialog($event)\"\n *ngIf=\"!message.getDeletedAt() && enableImageModeration\" [message]=\"message\"\n [imageModerationStyle]=\"imageModerationStyle\">\n <cometchat-image-bubble (cc-image-clicked)=\"openImageInFullScreen(message)\"\n [imageStyle]=\"imageBubbleStyle\" [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n </image-moderation>\n <cometchat-image-bubble [imageStyle]=\"imageBubbleStyle\"\n (cc-image-clicked)=\"openImageInFullScreen(message)\"\n *ngIf=\"!message.getDeletedAt() && !enableImageModeration\"\n [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n</ng-template>\n<ng-template #formBubble let-message>\n <cometchat-form-bubble [message]=\"message\"\n [formBubbleStyle]=\"getFormMessageBubbleStyle()\"></cometchat-form-bubble>\n</ng-template>\n<ng-template #cardBubble let-message>\n <cometchat-card-bubble [message]=\"message\"\n [cardBubbleStyle]=\"getCardMessageBubbleStyle()\"></cometchat-card-bubble>\n</ng-template>\n<ng-template #customTextBubble>\n</ng-template>\n<ng-template #stickerBubble let-message>\n <cometchat-image-bubble [src]=\"getSticker(message)\"\n [imageStyle]=\"imageBubbleStyle\"></cometchat-image-bubble>\n\n</ng-template>\n<ng-template #whiteboardBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\"\n [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\"\n [iconURL]=\"whiteboardIconURL\" [title]=\"whiteboardTitle\"\n [buttonText]=\"whiteboardButtonText\"\n [subtitle]=\"whiteboardSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #documentBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\"\n [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\"\n [iconURL]=\"documentIconURL\" [title]=\"documentTitle\"\n [buttonText]=\"documentButtonText\"\n [subtitle]=\"documentSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #directCalling let-message>\n <cometchat-document-bubble [hideSeparator]=\"true\"\n [iconAlignment]=\"callBubbleAlignment\"\n [documentStyle]=\"getCallBubbleStyle(message)\" [URL]=\"getSessionId(message)\"\n [ccClicked]=\"getStartCallFunction(message)\" [iconURL]=\"directCallIconURL\"\n [title]=\"getCallBubbleTitle(message)\" [buttonText]=\"joinCallButtonText\"\n *ngIf=\"message.category == 'custom'\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #schedulerBubble let-message>\n <cometchat-scheduler-bubble [schedulerMessage]=\"message\"\n [loggedInUser]=\"loggedInUser\"\n [schedulerBubbleStyle]=\"getSchedulerBubbleStyle(message)\"></cometchat-scheduler-bubble>\n\n</ng-template>\n<ng-template #pollBubble let-message>\n <polls-bubble [pollStyle]=\"pollBubbleStyle\"\n [pollQuestion]=\"getPollBubbleData(message,'question')\"\n [pollId]=\"getPollBubbleData(message,'id')\" [loggedInUser]=\"loggedInUser\"\n [senderUid]=\"getPollBubbleData(message)\"\n [metadata]=\"message?.metadata\"></polls-bubble>\n\n</ng-template>\n\n<!-- thread bubble view -->\n<ng-template #threadMessageBubble let-message>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"showStatusInfo(message) ? statusInfoView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [footerView]=\"getFooterView(message)\" [contentView]=\"contentView\"\n [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"threadedAlignment\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc-message-list__bubble-status-info\"\n [ngStyle]=\"getStatusInfoStyle(message)\">\n <div *ngIf=\"getStatusInfoView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getStatusInfoView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #bubbleFooter>\n <div class=\"cc-message-list__bubble-date\"\n *ngIf=\"timestampAlignment == timestampEnum.bottom && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call && message?.getSentAt()\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\"shouldShowMessage(message, disableReceipt, hideReceipt)\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"getReceiptStyle(message)\" [waitIcon]=\"waitIcon\"\n [sentIcon]=\"sentIcon\" [deliveredIcon]=\"\"\n [readIcon]=\"deliveredIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n </cometchat-message-bubble>\n\n</ng-template>\n\n\n<!-- -->\n<cometchat-popover [popoverStyle]=\"popoverStyle\" #popoverRef\n [placement]=\"keyboardAlignment\">\n <cometchat-emoji-keyboard (cc-emoji-clicked)=\"addReaction($event)\"\n slot=\"content\"\n [emojiKeyboardStyle]=\"emojiKeyboardStyle\"></cometchat-emoji-keyboard>\n</cometchat-popover>\n<cometchat-backdrop *ngIf=\"openConfirmDialog\" [backdropStyle]=\"backdropStyle\">\n <cometchat-confirm-dialog [title]=\"''\" [messageText]=\"warningText\"\n (cc-confirm-clicked)=\"onConfirmClick()\" [cancelButtonText]=\"cancelText\"\n [confirmButtonText]=\"confirmText\" (cc-cancel-clicked)=\"onCancelClick()\"\n [confirmDialogStyle]=\"confirmDialogStyle\">\n\n </cometchat-confirm-dialog>\n</cometchat-backdrop>\n<cometchat-full-screen-viewer (cc-close-clicked)=\"closeImageInFullScreen()\"\n *ngIf=\"openFullscreenView\" [URL]=\"imageurlToOpen\"\n [closeIconURL]=\"closeIconURL\" [fullScreenViewerStyle]=\"fullScreenViewerStyle\">\n\n</cometchat-full-screen-viewer>\n\n<!-- ongoing callscreen for direct call -->\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\"\n [callSettingsBuilder]=\"getCallBuilder()\" [ongoingCallStyle]=\"ongoingCallStyle\"\n [sessionID]=\"sessionId\"></cometchat-ongoing-call>\n<!-- message information view -->\n<!-- thread bubble view -->\n<ng-template #messageinfoBubble let-message>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"getStatusInfoView(message)\"\n [footerView]=\"getFooterView(message)\"\n [leadingView]=\"showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [contentView]=\"contentView\" [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"messageInfoAlignment\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n </cometchat-message-bubble>\n\n</ng-template>\n<cometchat-backdrop *ngIf=\"openMessageInfoPage\" [backdropStyle]=\"backdropStyle\">\n <cometchat-message-information\n [closeIconURL]=\"messageInformationConfiguration.closeIconURL\"\n [loadingStateView]=\"messageInformationConfiguration.loadingStateView\"\n [errorStateView]=\"messageInformationConfiguration.errorStateView\"\n [listItemStyle]=\"messageInformationConfiguration.listItemStyle\"\n [emptyStateView]=\"messageInformationConfiguration.emptyStateView\"\n [loadingIconURL]=\"messageInformationConfiguration.loadingIconURL\"\n [readIcon]=\"messageInformationConfiguration.readIcon\"\n [deliveredIcon]=\"messageInformationConfiguration.deliveredIcon\"\n [onError]=\"messageInformationConfiguration.onError\"\n [SubtitleView]=\"messageInformationConfiguration.subtitleView\"\n [receiptDatePattern]=\"messageInformationConfiguration.receiptDatePattern\"\n [listItemView]=\"messageInformationConfiguration.listItemView \"\n [messageInformationStyle]=\"messageInformationConfiguration.messageInformationStyle\"\n [onClose]=\"messageInformationConfiguration.onClose ?? closeMessageInfoPage\"\n [bubbleView]=\"messageInformationConfiguration.bubbleView ?? messageinfoBubble\"\n [message]=\"messageInfoObject\">\n\n </cometchat-message-information>\n</cometchat-backdrop>\n", 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-status-info{display:flex;align-items:flex-end;width:100%;padding:0 8px 8px;box-sizing:border-box}cometchat-reactions{margin-top:-3px}cometchat-document-bubble{width:100%;overflow:hidden}.cc-message-list__unread-thread{margin-left:4px}.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%;padding-top:4px;display:flex}.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%}.cc-message-list__bubble-reactions{width:100%;box-sizing:border-box}\n"], components: [{ type: CometChatMessageBubbleComponent, selector: "cometchat-message-bubble", inputs: ["messageBubbleStyle", "alignment", "options", "id", "leadingView", "headerView", "replyView", "contentView", "threadView", "footerView", "bottomView", "statusInfoView", "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 });
|
|
12635
|
+
CometChatMessageListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatMessageListComponent, selector: "cometchat-message-list", inputs: { hideError: "hideError", hideDateSeparator: "hideDateSeparator", errorStateView: "errorStateView", loadingStateView: "loadingStateView", emptyStateView: "emptyStateView", errorStateText: "errorStateText", emptyStateText: "emptyStateText", loadingIconURL: "loadingIconURL", user: "user", group: "group", disableReceipt: "disableReceipt", hideReceipt: "hideReceipt", 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", reactionsConfiguration: "reactionsConfiguration", disableReactions: "disableReactions", emojiKeyboardStyle: "emojiKeyboardStyle", apiConfiguration: "apiConfiguration", onThreadRepliesClick: "onThreadRepliesClick", headerView: "headerView", footerView: "footerView", parentMessageId: "parentMessageId", threadIndicatorIcon: "threadIndicatorIcon", avatarStyle: "avatarStyle", backdropStyle: "backdropStyle", dateSeparatorStyle: "dateSeparatorStyle", messageListStyle: "messageListStyle", onError: "onError", messageInformationConfiguration: "messageInformationConfiguration", disableMentions: "disableMentions", textFormatters: "textFormatters" }, 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 }, { propertyName: "messageBubbleRef", predicate: ["messageBubbleRef"], 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 && !errorStateView\"\n [text]=\"errorStateText\">\n </cometchat-label>\n <span class=\"cc-message-list__custom-view--error\"\n *ngIf=\"state == states.error && errorStateView\">\n <ng-container *ngTemplateOutlet=\"errorStateView\">\n </ng-container>\n </span>\n </div>\n <div class=\"cc-message-list__empty-view\" *ngIf=\"state == states.empty\">\n <span class=\"cc-message-list__custom-view--empty\"\n *ngIf=\"state == states.empty && emptyStateView\">\n <ng-container *ngTemplateOutlet=\"emptyStateView\">\n </ng-container>\n </span>\n </div>\n </div>\n <div class=\"cc-message-list__bubble\"\n *ngFor=\"let message of messagesList; let i = index\">\n <div class=\"cc-message-list__date-container\"\n *ngIf=\"(i === 0) && message?.getSentAt() && !hideDateSeparator\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message!.getSentAt()\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div class=\"cc-message-list__date-container\"\n *ngIf=\"(i > 0 && isDateDifferent(messagesList[i - 1]?.getSentAt(), messagesList[i]?.getSentAt())) && message?.getSentAt() && !hideDateSeparator\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <div *ngIf=\"!getBubbleWrapper(message)\" #messageBubbleRef\n [id]=\"message?.getId()\">\n <cometchat-message-bubble\n [leadingView]=\" showAvatar ? leadingView : null\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"showStatusInfo(message) ? statusInfoView : null\"\n [headerView]=\"getHeaderView(message) || message?.getCategory() != MessageCategory.action && showHeaderTitle(message) ? bubbleHeader : null\"\n [footerView]=\"getFooterView(message) || reactionView\"\n [contentView]=\"contentView\" [threadView]=\"threadView\"\n [id]=\"message?.getId() || message?.getMuid()\"\n [options]=\"setMessageOptions(message)\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"setBubbleAlignment(message)\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <cometchat-reactions\n *ngIf=\"message.getReactions() && message.getReactions().length > 0 && !disableReactions\"\n [messageObject]=\"getClonedReactionObject(message)\"\n [alignment]=\"setBubbleAlignment(message)\"\n [reactionsStyle]=\"getReactionsStyle()\"\n [reactionClick]=\"addReactionOnClick\"\n [reactionListConfiguration]=\"getReactionListConfiguration()\"\n [reactionInfoConfiguration]=\"getReactionInfoConfiguration()\"></cometchat-reactions>\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc-message-list__bubble-status-info\"\n [ngStyle]=\"getStatusInfoStyle(message)\">\n <div *ngIf=\"getStatusInfoView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getStatusInfoView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #bubbleFooter>\n <div class=\"cc-message-list__bubble-date\"\n *ngIf=\"timestampAlignment == timestampEnum.bottom && message?.getCategory() != MessageCategory.action && !message.getDeletedAt() && message?.getCategory() != MessageCategory.call && message?.getSentAt()\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\"shouldShowMessage(message, disableReceipt, hideReceipt)\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"getReceiptStyle(message)\"\n [waitIcon]=\"waitIcon\" [sentIcon]=\"sentIcon\"\n [deliveredIcon]=\"deliveredIcon\" [readIcon]=\"readIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n <ng-template #threadView>\n <div class=\"cc-message-list__threadreplies\"\n *ngIf=\"message?.getReplyCount() && !message.getDeletedAt()\"\n [ngStyle]=\"getThreadViewAlignment(message)\">\n <cometchat-icon-button [iconURL]=\"threadIndicatorIcon\"\n [mirrorIcon]=\"getThreadIconAlignment(message)\"\n [buttonStyle]=\"getThreadViewStyle(message)\"\n (cc-button-clicked)=\"openThreadView(message)\"\n [text]='getThreadCount(message)'>\n <!-- <span slot=\"buttonView\" [ngStyle]=\"getUnreadRepliesCountStyle()\"\n class=\"cc-message-list__unread-thread\"\n *ngIf=\"!message.getDeletedAt() && message.getUnreadReplyCount() > 0\">\n {{message.getUnreadReplyCount()}}\n </span> -->\n\n </cometchat-icon-button>\n </div>\n </ng-template>\n </cometchat-message-bubble>\n </div>\n </div>\n <div class=\"cc-message-list__bottom\" #bottom>\n </div>\n\n </div>\n <div class=\"cc-message-list__message-indicator\"\n *ngIf=\"UnreadCount && UnreadCount.length > 0 && !isOnBottom\"\n [ngStyle]=\"{bottom: showSmartReply || footerView || showConversationStarter || showConversationSummary ? '20%' : '13%'}\">\n <cometchat-button [text]=\"newMessageCount\"\n [buttonStyle]=\"unreadMessagesStyle\"\n (cc-button-clicked)=\"scrollToBottom()\"></cometchat-button>\n </div>\n <div class=\"cc-message-list__footer-view\" [ngStyle]=\"{height: 'auto'}\">\n\n <div *ngIf=\"footerView;else footer\">\n <ng-container *ngTemplateOutlet=\"footerView\">\n </ng-container>\n </div>\n <ng-template #footer>\n\n <div class=\"cc-message-list__smart-replies\"\n *ngIf=\"!showConversationStarter && showSmartReply && getReplies()\">\n <smart-replies [smartReplyStyle]=\"smartReplyStyle\"\n [replies]=\"getReplies()\" (cc-reply-clicked)=\"sendReply($event)\"\n (cc-close-clicked)=\"closeSmartReply()\">\n </smart-replies>\n </div>\n\n\n <div class=\"cc-message-list__conversation-starters\"\n *ngIf=\"enableConversationStarter && showConversationStarter\">\n <cometchat-ai-card [state]=\"conversationStarterState\"\n [loadingStateText]=\"starterLoadingStateText\"\n [emptyStateText]=\"starterEmptyStateText\"\n [errorStateText]=\"errorStateText\">\n <smart-replies\n *ngIf=\"conversationStarterState == states.loaded && !parentMessageId\"\n [smartReplyStyle]=\"conversationStarterStyle\"\n [replies]=\"conversationStarterReplies\" slot=\"loadedView\"\n (cc-reply-clicked)=\"sendConversationStarter($event)\"\n [closeIconURL]=\"''\">\n </smart-replies>\n </cometchat-ai-card>\n </div>\n\n <div class=\"cc-message-list__conversation-summary\"\n *ngIf=\"enableConversationSummary && showConversationSummary\">\n\n <cometchat-ai-card [state]=\"conversationSummaryState\"\n [loadingStateText]=\"summaryLoadingStateText\"\n [emptyStateText]=\"summaryEmptyStateText\"\n [errorStateText]=\"errorStateText\" [errorIconURL]=\"aiErrorIcon\"\n [emptyIconURL]=\"aiEmptyIcon\">\n <cometchat-panel\n *ngIf=\"conversationSummaryState == states.loaded && !parentMessageId\"\n slot=\"loadedView\" [panelStyle]=\"conversationSummaryStyle\"\n title=\"Conversation Summary\" [text]=\"conversationSummary\"\n (cc-close-clicked)=\"closeConversationSummary()\">\n </cometchat-panel>\n </cometchat-ai-card>\n\n </div>\n\n </ng-template>\n </div>\n\n</div>\n<!-- default bubbles -->\n<ng-template #textBubble let-message>\n <cometchat-text-bubble\n *ngIf=\"message?.type == MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"message?.message\"></cometchat-text-bubble>\n <cometchat-text-bubble *ngIf=\"message?.getDeletedAt()\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"localize('MESSAGE_IS_DELETED')\"></cometchat-text-bubble>\n <cometchat-text-bubble\n *ngIf=\"!isTranslated(message) && !getLinkPreview(message) && !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"getTextMessage(message)\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n <link-preview [linkPreviewStyle]=\"linkPreviewStyle\"\n (cc-link-clicked)=\"openLinkURL($event)\"\n *ngIf=\"!message?.getDeletedAt() && getLinkPreview(message) && enableLinkPreview\"\n [title]=\"getLinkPreviewDetails('title',message)\"\n [description]=\"getLinkPreviewDetails('description',message)\"\n [URL]=\"getLinkPreviewDetails('url',message)\"\n [image]=\"getLinkPreviewDetails('image',message)\"\n [favIconURL]=\"getLinkPreviewDetails('favicon',message)\">\n <cometchat-text-bubble\n *ngIf=\"!isTranslated(message) && getLinkPreview(message) && !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"getTextMessage(message)\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n </link-preview>\n <message-translation-bubble [alignment]=\"getBubbleAlignment(message)\"\n *ngIf=\"isTranslated(message)\"\n [messageTranslationStyle]=\"setTranslationStyle(message)\"\n [translatedText]=\"isTranslated(message)\"\n [textFormatters]=\"getTextFormatters(message)\">\n <cometchat-text-bubble\n *ngIf=\" !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"message?.text\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n\n </message-translation-bubble>\n</ng-template>\n<ng-template #fileBubble let-message>\n\n <cometchat-file-bubble [fileStyle]=\"setFileBubbleStyle(message)\"\n [downloadIconURL]=\"downloadIconURL\" [subtitle]=\"localize('SHARED_FILE')\"\n [title]=\"message?.data?.attachments ? message?.data?.attachments[0]?.name: ''\"\n [fileURL]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"></cometchat-file-bubble>\n</ng-template>\n<ng-template #audioBubble let-message>\n <cometchat-icon-button [disabled]=\"true\"\n *ngIf=\"message?.category == callConstant && message?.type == MessageTypesConstant.audio\"\n [iconURL]=\"getCallTypeIcon(message)\"\n [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n <cometchat-audio-bubble\n *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\">\n </cometchat-audio-bubble>\n</ng-template>\n<ng-template #videoBubble let-message>\n <cometchat-icon-button [disabled]=\"true\"\n *ngIf=\"message?.category == callConstant && message?.type == MessageTypesConstant.video\"\n [iconURL]=\"getCallTypeIcon(message)\"\n [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n\n <cometchat-video-bubble\n *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [videoStyle]=\"videoBubbleStyle\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"\n [poster]=\" getImageThumbnail(message)\"></cometchat-video-bubble>\n</ng-template>\n<ng-template #imageBubble let-message>\n <image-moderation (cc-show-dialog)=\"openWarningDialog($event)\"\n *ngIf=\"!message.getDeletedAt() && enableImageModeration\" [message]=\"message\"\n [imageModerationStyle]=\"imageModerationStyle\">\n <cometchat-image-bubble (cc-image-clicked)=\"openImageInFullScreen(message)\"\n [imageStyle]=\"imageBubbleStyle\" [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n </image-moderation>\n <cometchat-image-bubble [imageStyle]=\"imageBubbleStyle\"\n (cc-image-clicked)=\"openImageInFullScreen(message)\"\n *ngIf=\"!message.getDeletedAt() && !enableImageModeration\"\n [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n</ng-template>\n<ng-template #formBubble let-message>\n <cometchat-form-bubble [message]=\"message\"\n [formBubbleStyle]=\"getFormMessageBubbleStyle()\"></cometchat-form-bubble>\n</ng-template>\n<ng-template #cardBubble let-message>\n <cometchat-card-bubble [message]=\"message\"\n [cardBubbleStyle]=\"getCardMessageBubbleStyle()\"></cometchat-card-bubble>\n</ng-template>\n<ng-template #customTextBubble>\n</ng-template>\n<ng-template #stickerBubble let-message>\n <cometchat-image-bubble [src]=\"getSticker(message)\"\n [imageStyle]=\"imageBubbleStyle\"></cometchat-image-bubble>\n\n</ng-template>\n<ng-template #whiteboardBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\"\n [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\"\n [iconURL]=\"whiteboardIconURL\" [title]=\"whiteboardTitle\"\n [buttonText]=\"whiteboardButtonText\"\n [subtitle]=\"whiteboardSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #documentBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\"\n [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\"\n [iconURL]=\"documentIconURL\" [title]=\"documentTitle\"\n [buttonText]=\"documentButtonText\"\n [subtitle]=\"documentSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #directCalling let-message>\n <cometchat-document-bubble [hideSeparator]=\"true\"\n [iconAlignment]=\"callBubbleAlignment\"\n [documentStyle]=\"getCallBubbleStyle(message)\" [URL]=\"getSessionId(message)\"\n [ccClicked]=\"getStartCallFunction(message)\" [iconURL]=\"directCallIconURL\"\n [title]=\"getCallBubbleTitle(message)\" [buttonText]=\"joinCallButtonText\"\n *ngIf=\"message.category == 'custom'\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #schedulerBubble let-message>\n <cometchat-scheduler-bubble [schedulerMessage]=\"message\"\n [loggedInUser]=\"loggedInUser\"\n [schedulerBubbleStyle]=\"getSchedulerBubbleStyle(message)\"></cometchat-scheduler-bubble>\n\n</ng-template>\n<ng-template #pollBubble let-message>\n <polls-bubble [pollStyle]=\"pollBubbleStyle\"\n [pollQuestion]=\"getPollBubbleData(message,'question')\"\n [pollId]=\"getPollBubbleData(message,'id')\" [loggedInUser]=\"loggedInUser\"\n [senderUid]=\"getPollBubbleData(message)\"\n [metadata]=\"message?.metadata\"></polls-bubble>\n\n</ng-template>\n\n<!-- thread bubble view -->\n<ng-template #threadMessageBubble let-message>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"showStatusInfo(message) ? statusInfoView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [footerView]=\"getFooterView(message)\" [contentView]=\"contentView\"\n [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"threadedAlignment\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc-message-list__bubble-status-info\"\n [ngStyle]=\"getStatusInfoStyle(message)\">\n <div *ngIf=\"getStatusInfoView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getStatusInfoView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #bubbleFooter>\n <div class=\"cc-message-list__bubble-date\"\n *ngIf=\"timestampAlignment == timestampEnum.bottom && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call && message?.getSentAt()\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\"shouldShowMessage(message, disableReceipt, hideReceipt)\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"getReceiptStyle(message)\" [waitIcon]=\"waitIcon\"\n [sentIcon]=\"sentIcon\" [deliveredIcon]=\"\"\n [readIcon]=\"deliveredIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n </cometchat-message-bubble>\n\n</ng-template>\n\n\n<!-- -->\n<cometchat-popover [popoverStyle]=\"popoverStyle\" #popoverRef\n [placement]=\"keyboardAlignment\" (cc-popover-outside-clicked)=\"onEmojiKeyboardClosed()\">\n <cometchat-emoji-keyboard (cc-emoji-clicked)=\"addReaction($event)\"\n slot=\"content\"\n [emojiKeyboardStyle]=\"emojiKeyboardStyle\"></cometchat-emoji-keyboard>\n</cometchat-popover>\n<cometchat-backdrop *ngIf=\"openConfirmDialog\" [backdropStyle]=\"backdropStyle\">\n <cometchat-confirm-dialog [title]=\"''\" [messageText]=\"warningText\"\n (cc-confirm-clicked)=\"onConfirmClick()\" [cancelButtonText]=\"cancelText\"\n [confirmButtonText]=\"confirmText\" (cc-cancel-clicked)=\"onCancelClick()\"\n [confirmDialogStyle]=\"confirmDialogStyle\">\n\n </cometchat-confirm-dialog>\n</cometchat-backdrop>\n<cometchat-full-screen-viewer (cc-close-clicked)=\"closeImageInFullScreen()\"\n *ngIf=\"openFullscreenView\" [URL]=\"imageurlToOpen\"\n [closeIconURL]=\"closeIconURL\" [fullScreenViewerStyle]=\"fullScreenViewerStyle\">\n\n</cometchat-full-screen-viewer>\n\n<!-- ongoing callscreen for direct call -->\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\"\n [callSettingsBuilder]=\"getCallBuilder()\" [ongoingCallStyle]=\"ongoingCallStyle\"\n [sessionID]=\"sessionId\"></cometchat-ongoing-call>\n<!-- message information view -->\n<!-- thread bubble view -->\n<ng-template #messageinfoBubble let-message>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"getStatusInfoView(message)\"\n [footerView]=\"getFooterView(message)\"\n [leadingView]=\"showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [contentView]=\"contentView\" [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"messageInfoAlignment\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n </cometchat-message-bubble>\n\n</ng-template>\n<cometchat-backdrop *ngIf=\"openMessageInfoPage\" [backdropStyle]=\"backdropStyle\">\n <cometchat-message-information\n [closeIconURL]=\"messageInformationConfiguration.closeIconURL\"\n [loadingStateView]=\"messageInformationConfiguration.loadingStateView\"\n [errorStateView]=\"messageInformationConfiguration.errorStateView\"\n [listItemStyle]=\"messageInformationConfiguration.listItemStyle\"\n [emptyStateView]=\"messageInformationConfiguration.emptyStateView\"\n [loadingIconURL]=\"messageInformationConfiguration.loadingIconURL\"\n [readIcon]=\"messageInformationConfiguration.readIcon\"\n [deliveredIcon]=\"messageInformationConfiguration.deliveredIcon\"\n [onError]=\"messageInformationConfiguration.onError\"\n [SubtitleView]=\"messageInformationConfiguration.subtitleView\"\n [receiptDatePattern]=\"messageInformationConfiguration.receiptDatePattern\"\n [listItemView]=\"messageInformationConfiguration.listItemView \"\n [messageInformationStyle]=\"messageInformationConfiguration.messageInformationStyle\"\n [onClose]=\"messageInformationConfiguration.onClose ?? closeMessageInfoPage\"\n [bubbleView]=\"messageInformationConfiguration.bubbleView ?? messageinfoBubble\"\n [message]=\"messageInfoObject\">\n\n </cometchat-message-information>\n</cometchat-backdrop>\n", 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-status-info{display:flex;align-items:flex-end;width:100%;padding:0 8px 8px;box-sizing:border-box}cometchat-reactions{margin-top:-3px}cometchat-document-bubble{width:100%;overflow:hidden}.cc-message-list__unread-thread{margin-left:4px}.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%;padding-top:4px;display:flex}.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%}.cc-message-list__bubble-reactions{width:100%;box-sizing:border-box}\n"], components: [{ type: CometChatMessageBubbleComponent, selector: "cometchat-message-bubble", inputs: ["messageBubbleStyle", "alignment", "options", "id", "leadingView", "headerView", "replyView", "contentView", "threadView", "footerView", "bottomView", "statusInfoView", "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 });
|
|
12592
12636
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatMessageListComponent, decorators: [{
|
|
12593
12637
|
type: Component,
|
|
12594
|
-
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 && !errorStateView\"\n [text]=\"errorStateText\">\n </cometchat-label>\n <span class=\"cc-message-list__custom-view--error\"\n *ngIf=\"state == states.error && errorStateView\">\n <ng-container *ngTemplateOutlet=\"errorStateView\">\n </ng-container>\n </span>\n </div>\n <div class=\"cc-message-list__empty-view\" *ngIf=\"state == states.empty\">\n <span class=\"cc-message-list__custom-view--empty\"\n *ngIf=\"state == states.empty && emptyStateView\">\n <ng-container *ngTemplateOutlet=\"emptyStateView\">\n </ng-container>\n </span>\n </div>\n </div>\n <div class=\"cc-message-list__bubble\"\n *ngFor=\"let message of messagesList; let i = index\">\n <div class=\"cc-message-list__date-container\"\n *ngIf=\"(i === 0) && message?.getSentAt() && !hideDateSeparator\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message!.getSentAt()\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div class=\"cc-message-list__date-container\"\n *ngIf=\"(i > 0 && isDateDifferent(messagesList[i - 1]?.getSentAt(), messagesList[i]?.getSentAt())) && message?.getSentAt() && !hideDateSeparator\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <div *ngIf=\"!getBubbleWrapper(message)\" #messageBubbleRef\n [id]=\"message?.getId()\">\n <cometchat-message-bubble\n [leadingView]=\" showAvatar ? leadingView : null\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"showStatusInfo(message) ? statusInfoView : null\"\n [headerView]=\"getHeaderView(message) || message?.getCategory() != MessageCategory.action && showHeaderTitle(message) ? bubbleHeader : null\"\n [footerView]=\"getFooterView(message) || reactionView\"\n [contentView]=\"contentView\" [threadView]=\"threadView\"\n [id]=\"message?.getId() || message?.getMuid()\"\n [options]=\"setMessageOptions(message)\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"setBubbleAlignment(message)\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <cometchat-reactions\n *ngIf=\"message.getReactions() && message.getReactions().length > 0 && !disableReactions\"\n [messageObject]=\"getClonedReactionObject(message)\"\n [alignment]=\"setBubbleAlignment(message)\"\n [reactionsStyle]=\"getReactionsStyle()\"\n [reactionClick]=\"addReactionOnClick\"\n [reactionListConfiguration]=\"getReactionListConfiguration()\"\n [reactionInfoConfiguration]=\"getReactionInfoConfiguration()\"></cometchat-reactions>\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc-message-list__bubble-status-info\"\n [ngStyle]=\"getStatusInfoStyle(message)\">\n <div *ngIf=\"getStatusInfoView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getStatusInfoView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #bubbleFooter>\n <div class=\"cc-message-list__bubble-date\"\n *ngIf=\"timestampAlignment == timestampEnum.bottom && message?.getCategory() != MessageCategory.action && !message.getDeletedAt() && message?.getCategory() != MessageCategory.call && message?.getSentAt()\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\"shouldShowMessage(message, disableReceipt, hideReceipt)\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"getReceiptStyle(message)\"\n [waitIcon]=\"waitIcon\" [sentIcon]=\"sentIcon\"\n [deliveredIcon]=\"deliveredIcon\" [readIcon]=\"readIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n <ng-template #threadView>\n <div class=\"cc-message-list__threadreplies\"\n *ngIf=\"message?.getReplyCount() && !message.getDeletedAt()\"\n [ngStyle]=\"getThreadViewAlignment(message)\">\n <cometchat-icon-button [iconURL]=\"threadIndicatorIcon\"\n [mirrorIcon]=\"getThreadIconAlignment(message)\"\n [buttonStyle]=\"getThreadViewStyle(message)\"\n (cc-button-clicked)=\"openThreadView(message)\"\n [text]='getThreadCount(message)'>\n <!-- <span slot=\"buttonView\" [ngStyle]=\"getUnreadRepliesCountStyle()\"\n class=\"cc-message-list__unread-thread\"\n *ngIf=\"!message.getDeletedAt() && message.getUnreadReplyCount() > 0\">\n {{message.getUnreadReplyCount()}}\n </span> -->\n\n </cometchat-icon-button>\n </div>\n </ng-template>\n </cometchat-message-bubble>\n </div>\n </div>\n <div class=\"cc-message-list__bottom\" #bottom>\n </div>\n\n </div>\n <div class=\"cc-message-list__message-indicator\"\n *ngIf=\"UnreadCount && UnreadCount.length > 0 && !isOnBottom\"\n [ngStyle]=\"{bottom: showSmartReply || footerView || showConversationStarter || showConversationSummary ? '20%' : '13%'}\">\n <cometchat-button [text]=\"newMessageCount\"\n [buttonStyle]=\"unreadMessagesStyle\"\n (cc-button-clicked)=\"scrollToBottom()\"></cometchat-button>\n </div>\n <div class=\"cc-message-list__footer-view\" [ngStyle]=\"{height: 'auto'}\">\n\n <div *ngIf=\"footerView;else footer\">\n <ng-container *ngTemplateOutlet=\"footerView\">\n </ng-container>\n </div>\n <ng-template #footer>\n\n <div class=\"cc-message-list__smart-replies\"\n *ngIf=\"!showConversationStarter && showSmartReply && getReplies()\">\n <smart-replies [smartReplyStyle]=\"smartReplyStyle\"\n [replies]=\"getReplies()\" (cc-reply-clicked)=\"sendReply($event)\"\n (cc-close-clicked)=\"closeSmartReply()\">\n </smart-replies>\n </div>\n\n\n <div class=\"cc-message-list__conversation-starters\"\n *ngIf=\"enableConversationStarter && showConversationStarter\">\n <cometchat-ai-card [state]=\"conversationStarterState\"\n [loadingStateText]=\"starterLoadingStateText\"\n [emptyStateText]=\"starterEmptyStateText\"\n [errorStateText]=\"errorStateText\">\n <smart-replies\n *ngIf=\"conversationStarterState == states.loaded && !parentMessageId\"\n [smartReplyStyle]=\"conversationStarterStyle\"\n [replies]=\"conversationStarterReplies\" slot=\"loadedView\"\n (cc-reply-clicked)=\"sendConversationStarter($event)\"\n [closeIconURL]=\"''\">\n </smart-replies>\n </cometchat-ai-card>\n </div>\n\n <div class=\"cc-message-list__conversation-summary\"\n *ngIf=\"enableConversationSummary && showConversationSummary\">\n\n <cometchat-ai-card [state]=\"conversationSummaryState\"\n [loadingStateText]=\"summaryLoadingStateText\"\n [emptyStateText]=\"summaryEmptyStateText\"\n [errorStateText]=\"errorStateText\" [errorIconURL]=\"aiErrorIcon\"\n [emptyIconURL]=\"aiEmptyIcon\">\n <cometchat-panel\n *ngIf=\"conversationSummaryState == states.loaded && !parentMessageId\"\n slot=\"loadedView\" [panelStyle]=\"conversationSummaryStyle\"\n title=\"Conversation Summary\" [text]=\"conversationSummary\"\n (cc-close-clicked)=\"closeConversationSummary()\">\n </cometchat-panel>\n </cometchat-ai-card>\n\n </div>\n\n </ng-template>\n </div>\n\n</div>\n<!-- default bubbles -->\n<ng-template #textBubble let-message>\n <cometchat-text-bubble\n *ngIf=\"message?.type == MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"message?.message\"></cometchat-text-bubble>\n <cometchat-text-bubble *ngIf=\"message?.getDeletedAt()\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"localize('MESSAGE_IS_DELETED')\"></cometchat-text-bubble>\n <cometchat-text-bubble\n *ngIf=\"!isTranslated(message) && !getLinkPreview(message) && !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"getTextMessage(message)\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n <link-preview [linkPreviewStyle]=\"linkPreviewStyle\"\n (cc-link-clicked)=\"openLinkURL($event)\"\n *ngIf=\"!message?.getDeletedAt() && getLinkPreview(message) && enableLinkPreview\"\n [title]=\"getLinkPreviewDetails('title',message)\"\n [description]=\"getLinkPreviewDetails('description',message)\"\n [URL]=\"getLinkPreviewDetails('url',message)\"\n [image]=\"getLinkPreviewDetails('image',message)\"\n [favIconURL]=\"getLinkPreviewDetails('favicon',message)\">\n <cometchat-text-bubble\n *ngIf=\"!isTranslated(message) && getLinkPreview(message) && !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"getTextMessage(message)\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n </link-preview>\n <message-translation-bubble [alignment]=\"getBubbleAlignment(message)\"\n *ngIf=\"isTranslated(message)\"\n [messageTranslationStyle]=\"setTranslationStyle(message)\"\n [translatedText]=\"isTranslated(message)\"\n [textFormatters]=\"getTextFormatters(message)\">\n <cometchat-text-bubble\n *ngIf=\" !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"message?.text\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n\n </message-translation-bubble>\n</ng-template>\n<ng-template #fileBubble let-message>\n\n <cometchat-file-bubble [fileStyle]=\"setFileBubbleStyle(message)\"\n [downloadIconURL]=\"downloadIconURL\" [subtitle]=\"localize('SHARED_FILE')\"\n [title]=\"message?.data?.attachments ? message?.data?.attachments[0]?.name: ''\"\n [fileURL]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"></cometchat-file-bubble>\n</ng-template>\n<ng-template #audioBubble let-message>\n <cometchat-icon-button [disabled]=\"true\"\n *ngIf=\"message?.category == callConstant && message?.type == MessageTypesConstant.audio\"\n [iconURL]=\"getCallTypeIcon(message)\"\n [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n <cometchat-audio-bubble\n *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\">\n </cometchat-audio-bubble>\n</ng-template>\n<ng-template #videoBubble let-message>\n <cometchat-icon-button [disabled]=\"true\"\n *ngIf=\"message?.category == callConstant && message?.type == MessageTypesConstant.video\"\n [iconURL]=\"getCallTypeIcon(message)\"\n [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n\n <cometchat-video-bubble\n *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [videoStyle]=\"videoBubbleStyle\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"\n [poster]=\" getImageThumbnail(message)\"></cometchat-video-bubble>\n</ng-template>\n<ng-template #imageBubble let-message>\n <image-moderation (cc-show-dialog)=\"openWarningDialog($event)\"\n *ngIf=\"!message.getDeletedAt() && enableImageModeration\" [message]=\"message\"\n [imageModerationStyle]=\"imageModerationStyle\">\n <cometchat-image-bubble (cc-image-clicked)=\"openImageInFullScreen(message)\"\n [imageStyle]=\"imageBubbleStyle\" [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n </image-moderation>\n <cometchat-image-bubble [imageStyle]=\"imageBubbleStyle\"\n (cc-image-clicked)=\"openImageInFullScreen(message)\"\n *ngIf=\"!message.getDeletedAt() && !enableImageModeration\"\n [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n</ng-template>\n<ng-template #formBubble let-message>\n <cometchat-form-bubble [message]=\"message\"\n [formBubbleStyle]=\"getFormMessageBubbleStyle()\"></cometchat-form-bubble>\n</ng-template>\n<ng-template #cardBubble let-message>\n <cometchat-card-bubble [message]=\"message\"\n [cardBubbleStyle]=\"getCardMessageBubbleStyle()\"></cometchat-card-bubble>\n</ng-template>\n<ng-template #customTextBubble>\n</ng-template>\n<ng-template #stickerBubble let-message>\n <cometchat-image-bubble [src]=\"getSticker(message)\"\n [imageStyle]=\"imageBubbleStyle\"></cometchat-image-bubble>\n\n</ng-template>\n<ng-template #whiteboardBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\"\n [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\"\n [iconURL]=\"whiteboardIconURL\" [title]=\"whiteboardTitle\"\n [buttonText]=\"whiteboardButtonText\"\n [subtitle]=\"whiteboardSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #documentBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\"\n [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\"\n [iconURL]=\"documentIconURL\" [title]=\"documentTitle\"\n [buttonText]=\"documentButtonText\"\n [subtitle]=\"documentSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #directCalling let-message>\n <cometchat-document-bubble [hideSeparator]=\"true\"\n [iconAlignment]=\"callBubbleAlignment\"\n [documentStyle]=\"getCallBubbleStyle(message)\" [URL]=\"getSessionId(message)\"\n [ccClicked]=\"getStartCallFunction(message)\" [iconURL]=\"directCallIconURL\"\n [title]=\"getCallBubbleTitle(message)\" [buttonText]=\"joinCallButtonText\"\n *ngIf=\"message.category == 'custom'\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #schedulerBubble let-message>\n <cometchat-scheduler-bubble [schedulerMessage]=\"message\"\n [loggedInUser]=\"loggedInUser\"\n [schedulerBubbleStyle]=\"getSchedulerBubbleStyle(message)\"></cometchat-scheduler-bubble>\n\n</ng-template>\n<ng-template #pollBubble let-message>\n <polls-bubble [pollStyle]=\"pollBubbleStyle\"\n [pollQuestion]=\"getPollBubbleData(message,'question')\"\n [pollId]=\"getPollBubbleData(message,'id')\" [loggedInUser]=\"loggedInUser\"\n [senderUid]=\"getPollBubbleData(message)\"\n [metadata]=\"message?.metadata\"></polls-bubble>\n\n</ng-template>\n\n<!-- thread bubble view -->\n<ng-template #threadMessageBubble let-message>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"showStatusInfo(message) ? statusInfoView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [footerView]=\"getFooterView(message)\" [contentView]=\"contentView\"\n [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"threadedAlignment\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc-message-list__bubble-status-info\"\n [ngStyle]=\"getStatusInfoStyle(message)\">\n <div *ngIf=\"getStatusInfoView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getStatusInfoView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #bubbleFooter>\n <div class=\"cc-message-list__bubble-date\"\n *ngIf=\"timestampAlignment == timestampEnum.bottom && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call && message?.getSentAt()\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\"shouldShowMessage(message, disableReceipt, hideReceipt)\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"getReceiptStyle(message)\" [waitIcon]=\"waitIcon\"\n [sentIcon]=\"sentIcon\" [deliveredIcon]=\"\"\n [readIcon]=\"deliveredIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n </cometchat-message-bubble>\n\n</ng-template>\n\n\n<!-- -->\n<cometchat-popover [popoverStyle]=\"popoverStyle\" #popoverRef\n [placement]=\"keyboardAlignment\">\n <cometchat-emoji-keyboard (cc-emoji-clicked)=\"addReaction($event)\"\n slot=\"content\"\n [emojiKeyboardStyle]=\"emojiKeyboardStyle\"></cometchat-emoji-keyboard>\n</cometchat-popover>\n<cometchat-backdrop *ngIf=\"openConfirmDialog\" [backdropStyle]=\"backdropStyle\">\n <cometchat-confirm-dialog [title]=\"''\" [messageText]=\"warningText\"\n (cc-confirm-clicked)=\"onConfirmClick()\" [cancelButtonText]=\"cancelText\"\n [confirmButtonText]=\"confirmText\" (cc-cancel-clicked)=\"onCancelClick()\"\n [confirmDialogStyle]=\"confirmDialogStyle\">\n\n </cometchat-confirm-dialog>\n</cometchat-backdrop>\n<cometchat-full-screen-viewer (cc-close-clicked)=\"closeImageInFullScreen()\"\n *ngIf=\"openFullscreenView\" [URL]=\"imageurlToOpen\"\n [closeIconURL]=\"closeIconURL\" [fullScreenViewerStyle]=\"fullScreenViewerStyle\">\n\n</cometchat-full-screen-viewer>\n\n<!-- ongoing callscreen for direct call -->\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\"\n [callSettingsBuilder]=\"getCallBuilder()\" [ongoingCallStyle]=\"ongoingCallStyle\"\n [sessionID]=\"sessionId\"></cometchat-ongoing-call>\n<!-- message information view -->\n<!-- thread bubble view -->\n<ng-template #messageinfoBubble let-message>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"getStatusInfoView(message)\"\n [footerView]=\"getFooterView(message)\"\n [leadingView]=\"showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [contentView]=\"contentView\" [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"messageInfoAlignment\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n </cometchat-message-bubble>\n\n</ng-template>\n<cometchat-backdrop *ngIf=\"openMessageInfoPage\" [backdropStyle]=\"backdropStyle\">\n <cometchat-message-information\n [closeIconURL]=\"messageInformationConfiguration.closeIconURL\"\n [loadingStateView]=\"messageInformationConfiguration.loadingStateView\"\n [errorStateView]=\"messageInformationConfiguration.errorStateView\"\n [listItemStyle]=\"messageInformationConfiguration.listItemStyle\"\n [emptyStateView]=\"messageInformationConfiguration.emptyStateView\"\n [loadingIconURL]=\"messageInformationConfiguration.loadingIconURL\"\n [readIcon]=\"messageInformationConfiguration.readIcon\"\n [deliveredIcon]=\"messageInformationConfiguration.deliveredIcon\"\n [onError]=\"messageInformationConfiguration.onError\"\n [SubtitleView]=\"messageInformationConfiguration.subtitleView\"\n [receiptDatePattern]=\"messageInformationConfiguration.receiptDatePattern\"\n [listItemView]=\"messageInformationConfiguration.listItemView \"\n [messageInformationStyle]=\"messageInformationConfiguration.messageInformationStyle\"\n [onClose]=\"messageInformationConfiguration.onClose ?? closeMessageInfoPage\"\n [bubbleView]=\"messageInformationConfiguration.bubbleView ?? messageinfoBubble\"\n [message]=\"messageInfoObject\">\n\n </cometchat-message-information>\n</cometchat-backdrop>\n", 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-status-info{display:flex;align-items:flex-end;width:100%;padding:0 8px 8px;box-sizing:border-box}cometchat-reactions{margin-top:-3px}cometchat-document-bubble{width:100%;overflow:hidden}.cc-message-list__unread-thread{margin-left:4px}.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%;padding-top:4px;display:flex}.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%}.cc-message-list__bubble-reactions{width:100%;box-sizing:border-box}\n"] }]
|
|
12638
|
+
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 && !errorStateView\"\n [text]=\"errorStateText\">\n </cometchat-label>\n <span class=\"cc-message-list__custom-view--error\"\n *ngIf=\"state == states.error && errorStateView\">\n <ng-container *ngTemplateOutlet=\"errorStateView\">\n </ng-container>\n </span>\n </div>\n <div class=\"cc-message-list__empty-view\" *ngIf=\"state == states.empty\">\n <span class=\"cc-message-list__custom-view--empty\"\n *ngIf=\"state == states.empty && emptyStateView\">\n <ng-container *ngTemplateOutlet=\"emptyStateView\">\n </ng-container>\n </span>\n </div>\n </div>\n <div class=\"cc-message-list__bubble\"\n *ngFor=\"let message of messagesList; let i = index\">\n <div class=\"cc-message-list__date-container\"\n *ngIf=\"(i === 0) && message?.getSentAt() && !hideDateSeparator\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message!.getSentAt()\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div class=\"cc-message-list__date-container\"\n *ngIf=\"(i > 0 && isDateDifferent(messagesList[i - 1]?.getSentAt(), messagesList[i]?.getSentAt())) && message?.getSentAt() && !hideDateSeparator\">\n <span class=\"cc-message-list__date\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [pattern]=\"DateSeparatorPattern\" [dateStyle]=\"dateSeparatorStyle\">\n </cometchat-date>\n </span>\n </div>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <div *ngIf=\"!getBubbleWrapper(message)\" #messageBubbleRef\n [id]=\"message?.getId()\">\n <cometchat-message-bubble\n [leadingView]=\" showAvatar ? leadingView : null\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"showStatusInfo(message) ? statusInfoView : null\"\n [headerView]=\"getHeaderView(message) || message?.getCategory() != MessageCategory.action && showHeaderTitle(message) ? bubbleHeader : null\"\n [footerView]=\"getFooterView(message) || reactionView\"\n [contentView]=\"contentView\" [threadView]=\"threadView\"\n [id]=\"message?.getId() || message?.getMuid()\"\n [options]=\"setMessageOptions(message)\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"setBubbleAlignment(message)\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #reactionView>\n <cometchat-reactions\n *ngIf=\"message.getReactions() && message.getReactions().length > 0 && !disableReactions\"\n [messageObject]=\"getClonedReactionObject(message)\"\n [alignment]=\"setBubbleAlignment(message)\"\n [reactionsStyle]=\"getReactionsStyle()\"\n [reactionClick]=\"addReactionOnClick\"\n [reactionListConfiguration]=\"getReactionListConfiguration()\"\n [reactionInfoConfiguration]=\"getReactionInfoConfiguration()\"></cometchat-reactions>\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc-message-list__bubble-status-info\"\n [ngStyle]=\"getStatusInfoStyle(message)\">\n <div *ngIf=\"getStatusInfoView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getStatusInfoView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #bubbleFooter>\n <div class=\"cc-message-list__bubble-date\"\n *ngIf=\"timestampAlignment == timestampEnum.bottom && message?.getCategory() != MessageCategory.action && !message.getDeletedAt() && message?.getCategory() != MessageCategory.call && message?.getSentAt()\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\"shouldShowMessage(message, disableReceipt, hideReceipt)\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"getReceiptStyle(message)\"\n [waitIcon]=\"waitIcon\" [sentIcon]=\"sentIcon\"\n [deliveredIcon]=\"deliveredIcon\" [readIcon]=\"readIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n <ng-template #threadView>\n <div class=\"cc-message-list__threadreplies\"\n *ngIf=\"message?.getReplyCount() && !message.getDeletedAt()\"\n [ngStyle]=\"getThreadViewAlignment(message)\">\n <cometchat-icon-button [iconURL]=\"threadIndicatorIcon\"\n [mirrorIcon]=\"getThreadIconAlignment(message)\"\n [buttonStyle]=\"getThreadViewStyle(message)\"\n (cc-button-clicked)=\"openThreadView(message)\"\n [text]='getThreadCount(message)'>\n <!-- <span slot=\"buttonView\" [ngStyle]=\"getUnreadRepliesCountStyle()\"\n class=\"cc-message-list__unread-thread\"\n *ngIf=\"!message.getDeletedAt() && message.getUnreadReplyCount() > 0\">\n {{message.getUnreadReplyCount()}}\n </span> -->\n\n </cometchat-icon-button>\n </div>\n </ng-template>\n </cometchat-message-bubble>\n </div>\n </div>\n <div class=\"cc-message-list__bottom\" #bottom>\n </div>\n\n </div>\n <div class=\"cc-message-list__message-indicator\"\n *ngIf=\"UnreadCount && UnreadCount.length > 0 && !isOnBottom\"\n [ngStyle]=\"{bottom: showSmartReply || footerView || showConversationStarter || showConversationSummary ? '20%' : '13%'}\">\n <cometchat-button [text]=\"newMessageCount\"\n [buttonStyle]=\"unreadMessagesStyle\"\n (cc-button-clicked)=\"scrollToBottom()\"></cometchat-button>\n </div>\n <div class=\"cc-message-list__footer-view\" [ngStyle]=\"{height: 'auto'}\">\n\n <div *ngIf=\"footerView;else footer\">\n <ng-container *ngTemplateOutlet=\"footerView\">\n </ng-container>\n </div>\n <ng-template #footer>\n\n <div class=\"cc-message-list__smart-replies\"\n *ngIf=\"!showConversationStarter && showSmartReply && getReplies()\">\n <smart-replies [smartReplyStyle]=\"smartReplyStyle\"\n [replies]=\"getReplies()\" (cc-reply-clicked)=\"sendReply($event)\"\n (cc-close-clicked)=\"closeSmartReply()\">\n </smart-replies>\n </div>\n\n\n <div class=\"cc-message-list__conversation-starters\"\n *ngIf=\"enableConversationStarter && showConversationStarter\">\n <cometchat-ai-card [state]=\"conversationStarterState\"\n [loadingStateText]=\"starterLoadingStateText\"\n [emptyStateText]=\"starterEmptyStateText\"\n [errorStateText]=\"errorStateText\">\n <smart-replies\n *ngIf=\"conversationStarterState == states.loaded && !parentMessageId\"\n [smartReplyStyle]=\"conversationStarterStyle\"\n [replies]=\"conversationStarterReplies\" slot=\"loadedView\"\n (cc-reply-clicked)=\"sendConversationStarter($event)\"\n [closeIconURL]=\"''\">\n </smart-replies>\n </cometchat-ai-card>\n </div>\n\n <div class=\"cc-message-list__conversation-summary\"\n *ngIf=\"enableConversationSummary && showConversationSummary\">\n\n <cometchat-ai-card [state]=\"conversationSummaryState\"\n [loadingStateText]=\"summaryLoadingStateText\"\n [emptyStateText]=\"summaryEmptyStateText\"\n [errorStateText]=\"errorStateText\" [errorIconURL]=\"aiErrorIcon\"\n [emptyIconURL]=\"aiEmptyIcon\">\n <cometchat-panel\n *ngIf=\"conversationSummaryState == states.loaded && !parentMessageId\"\n slot=\"loadedView\" [panelStyle]=\"conversationSummaryStyle\"\n title=\"Conversation Summary\" [text]=\"conversationSummary\"\n (cc-close-clicked)=\"closeConversationSummary()\">\n </cometchat-panel>\n </cometchat-ai-card>\n\n </div>\n\n </ng-template>\n </div>\n\n</div>\n<!-- default bubbles -->\n<ng-template #textBubble let-message>\n <cometchat-text-bubble\n *ngIf=\"message?.type == MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"message?.message\"></cometchat-text-bubble>\n <cometchat-text-bubble *ngIf=\"message?.getDeletedAt()\"\n [textStyle]=\"setTextBubbleStyle(message)\"\n [text]=\"localize('MESSAGE_IS_DELETED')\"></cometchat-text-bubble>\n <cometchat-text-bubble\n *ngIf=\"!isTranslated(message) && !getLinkPreview(message) && !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"getTextMessage(message)\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n <link-preview [linkPreviewStyle]=\"linkPreviewStyle\"\n (cc-link-clicked)=\"openLinkURL($event)\"\n *ngIf=\"!message?.getDeletedAt() && getLinkPreview(message) && enableLinkPreview\"\n [title]=\"getLinkPreviewDetails('title',message)\"\n [description]=\"getLinkPreviewDetails('description',message)\"\n [URL]=\"getLinkPreviewDetails('url',message)\"\n [image]=\"getLinkPreviewDetails('image',message)\"\n [favIconURL]=\"getLinkPreviewDetails('favicon',message)\">\n <cometchat-text-bubble\n *ngIf=\"!isTranslated(message) && getLinkPreview(message) && !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"getTextMessage(message)\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n </link-preview>\n <message-translation-bubble [alignment]=\"getBubbleAlignment(message)\"\n *ngIf=\"isTranslated(message)\"\n [messageTranslationStyle]=\"setTranslationStyle(message)\"\n [translatedText]=\"isTranslated(message)\"\n [textFormatters]=\"getTextFormatters(message)\">\n <cometchat-text-bubble\n *ngIf=\" !message?.deletedAt && message?.type != MessageTypesConstant.groupMember\"\n [textStyle]=\"setTextBubbleStyle(message)\" [text]=\"message?.text\"\n [textFormatters]=\"getTextFormatters(message)\"></cometchat-text-bubble>\n\n </message-translation-bubble>\n</ng-template>\n<ng-template #fileBubble let-message>\n\n <cometchat-file-bubble [fileStyle]=\"setFileBubbleStyle(message)\"\n [downloadIconURL]=\"downloadIconURL\" [subtitle]=\"localize('SHARED_FILE')\"\n [title]=\"message?.data?.attachments ? message?.data?.attachments[0]?.name: ''\"\n [fileURL]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"></cometchat-file-bubble>\n</ng-template>\n<ng-template #audioBubble let-message>\n <cometchat-icon-button [disabled]=\"true\"\n *ngIf=\"message?.category == callConstant && message?.type == MessageTypesConstant.audio\"\n [iconURL]=\"getCallTypeIcon(message)\"\n [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n <cometchat-audio-bubble\n *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\">\n </cometchat-audio-bubble>\n</ng-template>\n<ng-template #videoBubble let-message>\n <cometchat-icon-button [disabled]=\"true\"\n *ngIf=\"message?.category == callConstant && message?.type == MessageTypesConstant.video\"\n [iconURL]=\"getCallTypeIcon(message)\"\n [buttonStyle]=\"callStatusStyle(message)\"\n [text]=\"getCallActionMessage(message)\"></cometchat-icon-button>\n\n <cometchat-video-bubble\n *ngIf=\"!message.getDeletedAt() && message?.category != callConstant\"\n [videoStyle]=\"videoBubbleStyle\"\n [src]=\"message?.data?.attachments ? message?.data?.attachments[0]?.url : ''\"\n [poster]=\" getImageThumbnail(message)\"></cometchat-video-bubble>\n</ng-template>\n<ng-template #imageBubble let-message>\n <image-moderation (cc-show-dialog)=\"openWarningDialog($event)\"\n *ngIf=\"!message.getDeletedAt() && enableImageModeration\" [message]=\"message\"\n [imageModerationStyle]=\"imageModerationStyle\">\n <cometchat-image-bubble (cc-image-clicked)=\"openImageInFullScreen(message)\"\n [imageStyle]=\"imageBubbleStyle\" [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n </image-moderation>\n <cometchat-image-bubble [imageStyle]=\"imageBubbleStyle\"\n (cc-image-clicked)=\"openImageInFullScreen(message)\"\n *ngIf=\"!message.getDeletedAt() && !enableImageModeration\"\n [src]=\" getImageThumbnail(message)\"\n [placeholderImage]=\"placeholderIconURL\"></cometchat-image-bubble>\n</ng-template>\n<ng-template #formBubble let-message>\n <cometchat-form-bubble [message]=\"message\"\n [formBubbleStyle]=\"getFormMessageBubbleStyle()\"></cometchat-form-bubble>\n</ng-template>\n<ng-template #cardBubble let-message>\n <cometchat-card-bubble [message]=\"message\"\n [cardBubbleStyle]=\"getCardMessageBubbleStyle()\"></cometchat-card-bubble>\n</ng-template>\n<ng-template #customTextBubble>\n</ng-template>\n<ng-template #stickerBubble let-message>\n <cometchat-image-bubble [src]=\"getSticker(message)\"\n [imageStyle]=\"imageBubbleStyle\"></cometchat-image-bubble>\n\n</ng-template>\n<ng-template #whiteboardBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\"\n [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\"\n [iconURL]=\"whiteboardIconURL\" [title]=\"whiteboardTitle\"\n [buttonText]=\"whiteboardButtonText\"\n [subtitle]=\"whiteboardSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #documentBubble let-message>\n <cometchat-document-bubble [hideSeparator]=\"false\"\n [iconAlignment]=\"documentBubbleAlignment\"\n [documentStyle]=\"documentBubbleStyle\" [URL]=\"getWhiteboardDocument(message)\"\n [ccClicked]=\"launchCollaborativeWhiteboardDocument\"\n [iconURL]=\"documentIconURL\" [title]=\"documentTitle\"\n [buttonText]=\"documentButtonText\"\n [subtitle]=\"documentSubitle\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #directCalling let-message>\n <cometchat-document-bubble [hideSeparator]=\"true\"\n [iconAlignment]=\"callBubbleAlignment\"\n [documentStyle]=\"getCallBubbleStyle(message)\" [URL]=\"getSessionId(message)\"\n [ccClicked]=\"getStartCallFunction(message)\" [iconURL]=\"directCallIconURL\"\n [title]=\"getCallBubbleTitle(message)\" [buttonText]=\"joinCallButtonText\"\n *ngIf=\"message.category == 'custom'\"></cometchat-document-bubble>\n\n</ng-template>\n<ng-template #schedulerBubble let-message>\n <cometchat-scheduler-bubble [schedulerMessage]=\"message\"\n [loggedInUser]=\"loggedInUser\"\n [schedulerBubbleStyle]=\"getSchedulerBubbleStyle(message)\"></cometchat-scheduler-bubble>\n\n</ng-template>\n<ng-template #pollBubble let-message>\n <polls-bubble [pollStyle]=\"pollBubbleStyle\"\n [pollQuestion]=\"getPollBubbleData(message,'question')\"\n [pollId]=\"getPollBubbleData(message,'id')\" [loggedInUser]=\"loggedInUser\"\n [senderUid]=\"getPollBubbleData(message)\"\n [metadata]=\"message?.metadata\"></polls-bubble>\n\n</ng-template>\n\n<!-- thread bubble view -->\n<ng-template #threadMessageBubble let-message>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"showStatusInfo(message) ? statusInfoView : null\"\n [leadingView]=\" showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [footerView]=\"getFooterView(message)\" [contentView]=\"contentView\"\n [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"threadedAlignment\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #statusInfoView>\n <div class=\"cc-message-list__bubble-status-info\"\n [ngStyle]=\"getStatusInfoStyle(message)\">\n <div *ngIf=\"getStatusInfoView(message);else bubbleFooter\">\n <ng-container\n *ngTemplateOutlet=\"getStatusInfoView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #bubbleFooter>\n <div class=\"cc-message-list__bubble-date\"\n *ngIf=\"timestampAlignment == timestampEnum.bottom && message?.getCategory() != MessageCategory.action && message?.getCategory() != MessageCategory.call && message?.getSentAt()\">\n <cometchat-date [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\" [pattern]=\"datePattern\">\n </cometchat-date>\n </div>\n <div\n *ngIf=\"shouldShowMessage(message, disableReceipt, hideReceipt)\"\n class=\"cc-message-list__receipt\">\n <cometchat-receipt [receipt]=\"getMessageReceipt(message)\"\n [receiptStyle]=\"getReceiptStyle(message)\" [waitIcon]=\"waitIcon\"\n [sentIcon]=\"sentIcon\" [deliveredIcon]=\"\"\n [readIcon]=\"deliveredIcon\"\n [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n </cometchat-message-bubble>\n\n</ng-template>\n\n\n<!-- -->\n<cometchat-popover [popoverStyle]=\"popoverStyle\" #popoverRef\n [placement]=\"keyboardAlignment\" (cc-popover-outside-clicked)=\"onEmojiKeyboardClosed()\">\n <cometchat-emoji-keyboard (cc-emoji-clicked)=\"addReaction($event)\"\n slot=\"content\"\n [emojiKeyboardStyle]=\"emojiKeyboardStyle\"></cometchat-emoji-keyboard>\n</cometchat-popover>\n<cometchat-backdrop *ngIf=\"openConfirmDialog\" [backdropStyle]=\"backdropStyle\">\n <cometchat-confirm-dialog [title]=\"''\" [messageText]=\"warningText\"\n (cc-confirm-clicked)=\"onConfirmClick()\" [cancelButtonText]=\"cancelText\"\n [confirmButtonText]=\"confirmText\" (cc-cancel-clicked)=\"onCancelClick()\"\n [confirmDialogStyle]=\"confirmDialogStyle\">\n\n </cometchat-confirm-dialog>\n</cometchat-backdrop>\n<cometchat-full-screen-viewer (cc-close-clicked)=\"closeImageInFullScreen()\"\n *ngIf=\"openFullscreenView\" [URL]=\"imageurlToOpen\"\n [closeIconURL]=\"closeIconURL\" [fullScreenViewerStyle]=\"fullScreenViewerStyle\">\n\n</cometchat-full-screen-viewer>\n\n<!-- ongoing callscreen for direct call -->\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\"\n [callSettingsBuilder]=\"getCallBuilder()\" [ongoingCallStyle]=\"ongoingCallStyle\"\n [sessionID]=\"sessionId\"></cometchat-ongoing-call>\n<!-- message information view -->\n<!-- thread bubble view -->\n<ng-template #messageinfoBubble let-message>\n <div *ngIf=\"getBubbleWrapper(message)\">\n <ng-container\n *ngTemplateOutlet=\"getBubbleWrapper(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <cometchat-message-bubble *ngIf=\"!getBubbleWrapper(message)\"\n [bottomView]=\"getBottomView(message)\"\n [statusInfoView]=\"getStatusInfoView(message)\"\n [footerView]=\"getFooterView(message)\"\n [leadingView]=\"showAvatar ? leadingView : null\" [headerView]=\"bubbleHeader\"\n [contentView]=\"contentView\" [id]=\"message?.getId() || message?.getMuid()\"\n [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"messageInfoAlignment\">\n <ng-template #contentView>\n <ng-container\n *ngTemplateOutlet=\"getContentView(message);context:{ $implicit: message }\">\n </ng-container>\n </ng-template>\n <ng-template #leadingView>\n <div\n *ngIf=\" message?.getCategory() != MessageCategory.action && showHeaderTitle(message)\">\n <cometchat-avatar [name]=\"message?.getSender()?.getName()\"\n [avatarStyle]=\"avatarStyle\"\n [image]=\"message?.getSender()?.getAvatar()\">\n </cometchat-avatar>\n </div>\n </ng-template>\n <ng-template #bubbleHeader>\n <div *ngIf=\"getHeaderView(message);else defaultHeader\">\n <ng-container\n *ngTemplateOutlet=\"getHeaderView(message);context:{ $implicit: message }\">\n </ng-container>\n </div>\n <ng-template #defaultHeader>\n <div class=\"cc-message-list__bubble-header\"\n *ngIf=\"message?.getCategory() != MessageCategory.action && showHeaderTitle(message) && message?.getCategory() != MessageCategory.call\">\n <cometchat-label [text]=\"message?.getSender()?.getName()\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n <cometchat-date [pattern]=\"datePattern\"\n [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"getBubbleDateStyle(message)\"\n *ngIf=\"timestampAlignment == timestampEnum.top && message?.getSentAt()\"></cometchat-date>\n </div>\n </ng-template>\n </ng-template>\n </cometchat-message-bubble>\n\n</ng-template>\n<cometchat-backdrop *ngIf=\"openMessageInfoPage\" [backdropStyle]=\"backdropStyle\">\n <cometchat-message-information\n [closeIconURL]=\"messageInformationConfiguration.closeIconURL\"\n [loadingStateView]=\"messageInformationConfiguration.loadingStateView\"\n [errorStateView]=\"messageInformationConfiguration.errorStateView\"\n [listItemStyle]=\"messageInformationConfiguration.listItemStyle\"\n [emptyStateView]=\"messageInformationConfiguration.emptyStateView\"\n [loadingIconURL]=\"messageInformationConfiguration.loadingIconURL\"\n [readIcon]=\"messageInformationConfiguration.readIcon\"\n [deliveredIcon]=\"messageInformationConfiguration.deliveredIcon\"\n [onError]=\"messageInformationConfiguration.onError\"\n [SubtitleView]=\"messageInformationConfiguration.subtitleView\"\n [receiptDatePattern]=\"messageInformationConfiguration.receiptDatePattern\"\n [listItemView]=\"messageInformationConfiguration.listItemView \"\n [messageInformationStyle]=\"messageInformationConfiguration.messageInformationStyle\"\n [onClose]=\"messageInformationConfiguration.onClose ?? closeMessageInfoPage\"\n [bubbleView]=\"messageInformationConfiguration.bubbleView ?? messageinfoBubble\"\n [message]=\"messageInfoObject\">\n\n </cometchat-message-information>\n</cometchat-backdrop>\n", 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-status-info{display:flex;align-items:flex-end;width:100%;padding:0 8px 8px;box-sizing:border-box}cometchat-reactions{margin-top:-3px}cometchat-document-bubble{width:100%;overflow:hidden}.cc-message-list__unread-thread{margin-left:4px}.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%;padding-top:4px;display:flex}.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%}.cc-message-list__bubble-reactions{width:100%;box-sizing:border-box}\n"] }]
|
|
12595
12639
|
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: CometChatThemeService }]; }, propDecorators: { listScroll: [{
|
|
12596
12640
|
type: ViewChild,
|
|
12597
12641
|
args: ["listScroll", { static: false }]
|
|
@@ -13728,12 +13772,6 @@ class CometChatMessageComposerComponent {
|
|
|
13728
13772
|
? [...this.textFormatters]
|
|
13729
13773
|
: [];
|
|
13730
13774
|
this.mentionedUsers = [];
|
|
13731
|
-
this.acceptHandlers = {
|
|
13732
|
-
"image/*": this.onImageChange.bind(this),
|
|
13733
|
-
"video/*": this.onVideoChange.bind(this),
|
|
13734
|
-
"audio/*": this.onAudioChange.bind(this),
|
|
13735
|
-
"file/*": this.onFileChange.bind(this),
|
|
13736
|
-
};
|
|
13737
13775
|
this.enableStickerKeyboard = false;
|
|
13738
13776
|
this.toggleMediaRecorded = false;
|
|
13739
13777
|
this.showAiBotList = false;
|
|
@@ -13993,9 +14031,24 @@ class CometChatMessageComposerComponent {
|
|
|
13993
14031
|
}
|
|
13994
14032
|
};
|
|
13995
14033
|
this.inputChangeHandler = (event) => {
|
|
13996
|
-
const
|
|
13997
|
-
|
|
13998
|
-
|
|
14034
|
+
const files = event.target.files;
|
|
14035
|
+
if (!files || files.length === 0)
|
|
14036
|
+
return;
|
|
14037
|
+
Array.from(files).forEach((file) => {
|
|
14038
|
+
const fileType = file.type;
|
|
14039
|
+
if (fileType.startsWith("image/")) {
|
|
14040
|
+
this.onImageChange(event);
|
|
14041
|
+
}
|
|
14042
|
+
else if (fileType.startsWith("video/")) {
|
|
14043
|
+
this.onVideoChange(event);
|
|
14044
|
+
}
|
|
14045
|
+
else if (fileType.startsWith("audio/")) {
|
|
14046
|
+
this.onAudioChange(event);
|
|
14047
|
+
}
|
|
14048
|
+
else {
|
|
14049
|
+
this.onFileChange(event);
|
|
14050
|
+
}
|
|
14051
|
+
});
|
|
13999
14052
|
if (this.inputElementRef?.nativeElement && this.inputElementRef.nativeElement?.value) {
|
|
14000
14053
|
this.inputElementRef.nativeElement.value = "";
|
|
14001
14054
|
}
|
|
@@ -14037,6 +14090,7 @@ class CometChatMessageComposerComponent {
|
|
|
14037
14090
|
this.closePopovers();
|
|
14038
14091
|
};
|
|
14039
14092
|
this.openActionSheet = (event) => {
|
|
14093
|
+
this.triggerActivePopoverEvent();
|
|
14040
14094
|
if (event?.detail?.hasOwnProperty("isOpen")) {
|
|
14041
14095
|
this.showActionSheetItem = false;
|
|
14042
14096
|
this.ref.detectChanges();
|
|
@@ -14071,6 +14125,7 @@ class CometChatMessageComposerComponent {
|
|
|
14071
14125
|
return;
|
|
14072
14126
|
};
|
|
14073
14127
|
this.openAiFeatures = (event) => {
|
|
14128
|
+
this.triggerActivePopoverEvent();
|
|
14074
14129
|
if (this.aiFeaturesCloseCallback) {
|
|
14075
14130
|
this.aiFeaturesCloseCallback();
|
|
14076
14131
|
}
|
|
@@ -14101,6 +14156,7 @@ class CometChatMessageComposerComponent {
|
|
|
14101
14156
|
}
|
|
14102
14157
|
};
|
|
14103
14158
|
this.openEmojiKeyboard = (event) => {
|
|
14159
|
+
this.triggerActivePopoverEvent();
|
|
14104
14160
|
if (event?.detail?.hasOwnProperty("isOpen")) {
|
|
14105
14161
|
this.showEmojiKeyboard = false;
|
|
14106
14162
|
this.ref.detectChanges();
|
|
@@ -14128,6 +14184,7 @@ class CometChatMessageComposerComponent {
|
|
|
14128
14184
|
}
|
|
14129
14185
|
};
|
|
14130
14186
|
this.openMediaRecorded = (event) => {
|
|
14187
|
+
this.triggerActivePopoverEvent();
|
|
14131
14188
|
if (event?.detail?.hasOwnProperty("isOpen")) {
|
|
14132
14189
|
this.toggleMediaRecorded = false;
|
|
14133
14190
|
this.ref.detectChanges();
|
|
@@ -14160,6 +14217,7 @@ class CometChatMessageComposerComponent {
|
|
|
14160
14217
|
}
|
|
14161
14218
|
};
|
|
14162
14219
|
this.openStickerKeyboard = (event) => {
|
|
14220
|
+
this.triggerActivePopoverEvent();
|
|
14163
14221
|
if (event?.detail?.hasOwnProperty("isOpen")) {
|
|
14164
14222
|
this.showStickerKeyboard = false;
|
|
14165
14223
|
this.ref.detectChanges();
|
|
@@ -14455,7 +14513,25 @@ class CometChatMessageComposerComponent {
|
|
|
14455
14513
|
}
|
|
14456
14514
|
});
|
|
14457
14515
|
}
|
|
14516
|
+
closeComposerPopover() {
|
|
14517
|
+
if (this.showStickerKeyboard) {
|
|
14518
|
+
this.stickerButtonRef?.nativeElement?.click();
|
|
14519
|
+
this.showStickerKeyboard = false;
|
|
14520
|
+
}
|
|
14521
|
+
if (this.showAiFeatures) {
|
|
14522
|
+
this.aiButtonRef.nativeElement.click();
|
|
14523
|
+
this.showAiFeatures = false;
|
|
14524
|
+
}
|
|
14525
|
+
this.closeMediaRecorder();
|
|
14526
|
+
this.closePopovers();
|
|
14527
|
+
this.ref.detectChanges();
|
|
14528
|
+
}
|
|
14458
14529
|
subscribeToEvents() {
|
|
14530
|
+
this.ccActivePopover = CometChatUIEvents.ccActivePopover.subscribe((data) => {
|
|
14531
|
+
if (data == ActivePopover.messageList) {
|
|
14532
|
+
this.closeComposerPopover();
|
|
14533
|
+
}
|
|
14534
|
+
});
|
|
14459
14535
|
this.ccMessageEdit = CometChatMessageEvents.ccMessageEdited.subscribe((object) => {
|
|
14460
14536
|
let parentId = object?.message?.getParentMessageId();
|
|
14461
14537
|
if ((this.parentMessageId && parentId && parentId == this.parentMessageId) || (!this.parentMessageId && !parentId)) {
|
|
@@ -14465,7 +14541,7 @@ class CometChatMessageComposerComponent {
|
|
|
14465
14541
|
this.openEditPreview();
|
|
14466
14542
|
}
|
|
14467
14543
|
}
|
|
14468
|
-
if (object?.status === MessageStatus.success && object.message instanceof CometChat.TextMessage) {
|
|
14544
|
+
if ((object?.status === MessageStatus.success && object.message instanceof CometChat.TextMessage) || object?.status == MessageStatus.cancelled) {
|
|
14469
14545
|
this.closePreview();
|
|
14470
14546
|
}
|
|
14471
14547
|
}
|
|
@@ -15031,6 +15107,9 @@ class CometChatMessageComposerComponent {
|
|
|
15031
15107
|
this.showEmojiKeyboard = false;
|
|
15032
15108
|
this.ref.detectChanges();
|
|
15033
15109
|
}
|
|
15110
|
+
triggerActivePopoverEvent() {
|
|
15111
|
+
CometChatUIEvents.ccActivePopover.next(ActivePopover.composer);
|
|
15112
|
+
}
|
|
15034
15113
|
closePopovers() {
|
|
15035
15114
|
if (this.showEmojiKeyboard) {
|
|
15036
15115
|
this.emojiButtonRef.nativeElement.click();
|
|
@@ -15139,6 +15218,17 @@ class CometChatMessageComposerComponent {
|
|
|
15139
15218
|
borderRadius: this.messageComposerStyle?.borderRadius,
|
|
15140
15219
|
};
|
|
15141
15220
|
}
|
|
15221
|
+
isValidStyleValue(value) {
|
|
15222
|
+
return value != null && typeof value === 'string' && value.trim() !== '';
|
|
15223
|
+
}
|
|
15224
|
+
getThemeColors() {
|
|
15225
|
+
return {
|
|
15226
|
+
error: this.themeService.theme.palette.getError(),
|
|
15227
|
+
accent600: this.themeService.theme.palette.getAccent600(),
|
|
15228
|
+
background: this.themeService.theme.palette.getBackground(),
|
|
15229
|
+
accent400: this.themeService.theme.palette.getAccent400()
|
|
15230
|
+
};
|
|
15231
|
+
}
|
|
15142
15232
|
setTheme() {
|
|
15143
15233
|
this.emojiPopover.boxShadow = `0px 0px 32px ${this.themeService.theme.palette.getAccent50()}`;
|
|
15144
15234
|
this.stickerPopover.boxShadow = `0px 0px 32px ${this.themeService.theme.palette.getAccent50()}`;
|
|
@@ -15216,24 +15306,46 @@ class CometChatMessageComposerComponent {
|
|
|
15216
15306
|
borderRadius: "0",
|
|
15217
15307
|
background: "transparent",
|
|
15218
15308
|
};
|
|
15309
|
+
const themeColors = this.getThemeColors();
|
|
15310
|
+
const width = this.isValidStyleValue(this.mediaRecorderStyle?.width) &&
|
|
15311
|
+
!this.mediaRecorderStyle?.width?.includes("%")
|
|
15312
|
+
? this.mediaRecorderStyle.width
|
|
15313
|
+
: "250px";
|
|
15314
|
+
const height = this.isValidStyleValue(this.mediaRecorderStyle?.height) &&
|
|
15315
|
+
!this.mediaRecorderStyle?.height?.includes("%")
|
|
15316
|
+
? this.mediaRecorderStyle.height
|
|
15317
|
+
: "100px";
|
|
15219
15318
|
let defaultMediaRecorderStyle = new MediaRecorderStyle({
|
|
15220
|
-
startIconTint: this.
|
|
15221
|
-
|
|
15222
|
-
|
|
15223
|
-
|
|
15224
|
-
|
|
15225
|
-
|
|
15226
|
-
|
|
15227
|
-
|
|
15228
|
-
|
|
15229
|
-
|
|
15319
|
+
startIconTint: this.isValidStyleValue(this.mediaRecorderStyle?.startIconTint)
|
|
15320
|
+
? this.mediaRecorderStyle.startIconTint
|
|
15321
|
+
: themeColors.error,
|
|
15322
|
+
submitIconTint: this.isValidStyleValue(this.mediaRecorderStyle?.submitIconTint)
|
|
15323
|
+
? this.mediaRecorderStyle.submitIconTint
|
|
15324
|
+
: themeColors.accent600,
|
|
15325
|
+
stopIconTint: this.isValidStyleValue(this.mediaRecorderStyle?.stopIconTint)
|
|
15326
|
+
? this.mediaRecorderStyle.stopIconTint
|
|
15327
|
+
: themeColors.error,
|
|
15328
|
+
closeIconTint: this.isValidStyleValue(this.mediaRecorderStyle?.closeIconTint)
|
|
15329
|
+
? this.mediaRecorderStyle.closeIconTint
|
|
15330
|
+
: themeColors.accent600,
|
|
15331
|
+
height: height,
|
|
15332
|
+
width: width,
|
|
15333
|
+
background: this.isValidStyleValue(this.mediaRecorderStyle?.background)
|
|
15334
|
+
? this.mediaRecorderStyle.background
|
|
15335
|
+
: themeColors.background,
|
|
15336
|
+
timerTextFont: this.isValidStyleValue(this.mediaRecorderStyle?.timerTextFont)
|
|
15337
|
+
? this.mediaRecorderStyle.timerTextFont
|
|
15338
|
+
: fontHelper(this.themeService.theme.typography.subtitle2),
|
|
15339
|
+
timerTextColor: this.isValidStyleValue(this.mediaRecorderStyle?.timerTextColor)
|
|
15340
|
+
? this.mediaRecorderStyle.timerTextColor
|
|
15341
|
+
: themeColors.accent400,
|
|
15342
|
+
});
|
|
15343
|
+
this.mediaRecorderStyle = defaultMediaRecorderStyle;
|
|
15344
|
+
this.mediaRecordedPopover.width = width;
|
|
15345
|
+
this.mediaRecordedPopover.height = height;
|
|
15230
15346
|
this.mediaRecordedPopover.background =
|
|
15231
15347
|
this.themeService.theme.palette.getBackground();
|
|
15232
15348
|
this.mediaRecorderStyle.border = `1px solid ${this.themeService.theme.palette.getAccent100()}`;
|
|
15233
|
-
this.mediaRecorderStyle = {
|
|
15234
|
-
...defaultMediaRecorderStyle,
|
|
15235
|
-
...this.mediaRecorderStyle,
|
|
15236
|
-
};
|
|
15237
15349
|
this.emojiPopover.boxShadow = `0px 0px 8px ${this.themeService.theme.palette.getAccent50()}`;
|
|
15238
15350
|
this.stickerPopover.boxShadow = `0px 0px 8px ${this.themeService.theme.palette.getAccent50()}`;
|
|
15239
15351
|
this.mediaRecordedPopover.boxShadow = `0px 0px 8px ${this.themeService.theme.palette.getAccent50()}`;
|
|
@@ -15360,6 +15472,12 @@ class CometChatMessageComposerComponent {
|
|
|
15360
15472
|
};
|
|
15361
15473
|
}
|
|
15362
15474
|
}
|
|
15475
|
+
onPreviewClosed() {
|
|
15476
|
+
if (this.messageToBeEdited) {
|
|
15477
|
+
CometChatMessageEvents.ccMessageEdited.next({ message: this.messageToBeEdited, status: MessageStatus.cancelled });
|
|
15478
|
+
}
|
|
15479
|
+
this.closePreview();
|
|
15480
|
+
}
|
|
15363
15481
|
closePreview() {
|
|
15364
15482
|
this.showSendButton = false;
|
|
15365
15483
|
this.showListForMentions = false;
|
|
@@ -15373,10 +15491,10 @@ class CometChatMessageComposerComponent {
|
|
|
15373
15491
|
}
|
|
15374
15492
|
}
|
|
15375
15493
|
CometChatMessageComposerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatMessageComposerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15376
|
-
CometChatMessageComposerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatMessageComposerComponent, selector: "cometchat-message-composer", inputs: { user: "user", group: "group", disableSoundForMessages: "disableSoundForMessages", customSoundForMessage: "customSoundForMessage", customSoundForMessages: "customSoundForMessages", disableTypingEvents: "disableTypingEvents", text: "text", placeholderText: "placeholderText", headerView: "headerView", onTextChange: "onTextChange", attachmentIconURL: "attachmentIconURL", attachmentOptions: "attachmentOptions", secondaryButtonView: "secondaryButtonView", auxilaryButtonView: "auxilaryButtonView", auxiliaryButtonsAlignment: "auxiliaryButtonsAlignment", sendButtonView: "sendButtonView", parentMessageId: "parentMessageId", hideLiveReaction: "hideLiveReaction", LiveReactionIconURL: "LiveReactionIconURL", backButtonIconURL: "backButtonIconURL", mentionsWarningText: "mentionsWarningText", mentionsWarningStyle: "mentionsWarningStyle", messageComposerStyle: "messageComposerStyle", onSendButtonClick: "onSendButtonClick", onError: "onError", backdropStyle: "backdropStyle", actionSheetStyle: "actionSheetStyle", aiActionSheetStyle: "aiActionSheetStyle", hideVoiceRecording: "hideVoiceRecording", mediaRecorderStyle: "mediaRecorderStyle", aiOptionsStyle: "aiOptionsStyle", aiIconURL: "aiIconURL", voiceRecordingIconURL: "voiceRecordingIconURL", voiceRecordingCloseIconURL: "voiceRecordingCloseIconURL", voiceRecordingStartIconURL: "voiceRecordingStartIconURL", voiceRecordingStopIconURL: "voiceRecordingStopIconURL", voiceRecordingSubmitIconURL: "voiceRecordingSubmitIconURL", hideLayoutMode: "hideLayoutMode", emojiIconURL: "emojiIconURL", userMemberWrapperConfiguration: "userMemberWrapperConfiguration", disableMentions: "disableMentions", textFormatters: "textFormatters", sendButtonIconURL: "sendButtonIconURL" }, outputs: { childEvent: "childEvent" }, viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }, { propertyName: "emojiButtonRef", first: true, predicate: ["emojiButtonRef"], descendants: true }, { propertyName: "actionSheetRef", first: true, predicate: ["actionSheetRef"], descendants: true }, { propertyName: "stickerButtonRef", first: true, predicate: ["stickerButtonRef"], descendants: true }, { propertyName: "mediaRecordedRef", first: true, predicate: ["mediaRecordedRef"], descendants: true }, { propertyName: "aiButtonRef", first: true, predicate: ["aiButtonRef"], descendants: true }, { propertyName: "userMemberWrapperRef", first: true, predicate: ["userMemberWrapperRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-message-composer__wrapper\" [ngStyle]=\"composerWrapperStyle()\">\n <div class=\"cc-messagecomposer__mentions\" *ngIf=\"showListForMentions\"\n #userMemberWrapperRef>\n <cometchat-user-member-wrapper [userMemberListType]=\"userMemberListType\"\n [onItemClick]=\"userMemberWrapperConfiguration.onItemClick || defaultMentionsItemClickHandler\"\n [usersRequestBuilder]=\"usersRequestBuilder\"\n [searchKeyword]=\"mentionsSearchTerm\"\n [subtitleView]=\"userMemberWrapperConfiguration.subtitleView\"\n [disableUsersPresence]=\"userMemberWrapperConfiguration.disableUsersPresence\"\n [avatarStyle]=\"userMemberWrapperConfiguration.avatarStyle\"\n [listItemView]=\"userMemberWrapperConfiguration.listItemView\"\n [statusIndicatorStyle]=\"userMemberWrapperConfiguration.statusIndicatorStyle\"\n [userPresencePlacement]=\"userMemberWrapperConfiguration.userPresencePlacement\"\n [hideSeperator]=\"userMemberWrapperConfiguration.hideSeparator\"\n [loadingStateView]=\"userMemberWrapperConfiguration.loadingStateView\"\n [onEmpty]=\"defaultOnEmptyForMentions\"\n [loadingIconUrl]=\"userMemberWrapperConfiguration.loadingIconURL\"\n [group]=\"group\" [groupMemberRequestBuilder]=\"groupMembersRequestBuilder\"\n [disableLoadingState]=\"true\"\n [onError]=\"defaultOnEmptyForMentions\"></cometchat-user-member-wrapper>\n\n <div *ngIf=\"showMentionsCountWarning\"\n class=\"cc-messagecomposer__mentions-limit-exceeded\">\n <cometchat-icon-button\n [text]=\"mentionsWarningText || localize('MENTIONS_LIMIT_WARNING_MESSAGE')\"\n [iconURL]=\"InfoSimpleIcon\"\n [buttonStyle]=\"getMentionInfoIconStyle()\"></cometchat-icon-button>\n </div>\n\n </div>\n <div class=\"cc-message-composer__header-view\"\n *ngIf=\"headerView; else messagePreview\">\n <ng-container\n *ngTemplateOutlet=\"headerView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #messagePreview>\n <div class=\"cc-message-composer__header-view\" *ngIf=\"showPreview\">\n <cometchat-preview [previewStyle]=\"previewStyle\"\n [previewSubtitle]=\"editPreviewText\"\n (cc-preview-close-clicked)=\"closePreview()\"> </cometchat-preview>\n </div>\n </ng-template>\n <div class=\"cc-message-composer__input\">\n\n <cometchat-text-input (cc-text-input-entered)=\"sendMessageOnEnter($event)\"\n #inputRef [text]=\"text\"\n (cc-text-input-changed)=\"messageInputChanged($event)\"\n [textInputStyle]=\"textInputStyle\" [placeholderText]=\"placeholderText\"\n [auxiliaryButtonAlignment]=\"auxiliaryButtonsAlignment\"\n [textFormatters]=\"textFormatters\">\n\n <div data-slot=\"secondaryView\">\n <div *ngIf=\"secondaryButtonView;else secondaryButton\">\n <ng-container\n *ngTemplateOutlet=\"secondaryButtonView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #secondaryButton>\n <div class=\"cc-message-composer__attachbutton\">\n <cometchat-popover\n (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [placement]=\"auxilaryPlacement\" [popoverStyle]=\"popoverStyle\">\n <cometchat-action-sheet slot=\"content\"\n [title]=\"localize('ADD_TO_CHAT')\" [actions]=\"composerActions\"\n [actionSheetStyle]=\"actionSheetStyle\"\n (cc-actionsheet-clicked)=\"handleActions($event)\"\n [hideLayoutMode]=\"hideLayoutMode\"\n >\n </cometchat-action-sheet>\n <cometchat-button #actionSheetRef slot=\"children\"\n (cc-button-clicked)=\"openActionSheet($event)\"\n [iconURL]=\"!showActionSheetItem || (showEmojiKeyboard && !showActionSheetItem) ? attachmentIconURL : closeButtonIconURL\"\n [buttonStyle]=\"attachmentButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n </ng-template>\n </div>\n\n <div class=\"cc-message-composer__auxiliary\" data-slot=\"auxilaryView\">\n <div class=\"cc-message-composer__custom-auxiliary-view\"\n *ngIf=\"auxilaryButtonView\">\n <ng-container\n *ngTemplateOutlet=\"auxilaryButtonView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <!-- AI Cards -->\n <div class=\"cc-message-composer__stickerkeyboard\"\n *ngIf=\"!auxilaryButtonView\">\n <cometchat-popover (cc-popover-click)=\"openStickerKeyboard($event)\"\n [popoverStyle]=\"aiPopover\" [placement]=\"auxilaryPlacement\">\n <cometchat-ai-card [state]=\"smartReplyState\"\n *ngIf=\"showSmartReply && !showActionSheetItemAI && !showAiBotList\"\n slot=\"content\" [loadingStateText]=\"loadingStateText\"\n [emptyStateText]=\"emptyStateText\"\n [errorStateText]=\"errorStateText\">\n <div slot=\"loadedView\" class=\"smart-replies-wrapper\">\n\n <div class=\"cc-message-composer__smartreply-header\">\n <div class=\"cc-message-composer__back-button\">\n <cometchat-button\n *ngIf=\"repliesArray && repliesArray.length > 0 \"\n [iconURL]=\"backButtonIconURL\"\n (cc-button-clicked)=\"onAiBackButtonClick()\"\n [buttonStyle]=\"backButtonStyle()\">\n </cometchat-button>\n </div>\n <div class=\"cc-message-composer__smartreply-header-view\">\n <p>{{ localize(\"SUGGEST_A_REPLY\") }}</p>\n </div>\n </div>\n\n <div class=\"cc-message-composer__smartreply-content\">\n <smart-replies\n *ngIf=\"repliesArray && repliesArray.length > 0 \"\n [smartReplyStyle]=\"smartReplyStyle\" [replies]=\"repliesArray\"\n [closeIconURL]=\"''\" (cc-reply-clicked)=\"sendReply($event)\">\n </smart-replies>\n </div>\n\n\n\n\n\n </div>\n </cometchat-ai-card>\n\n <div *ngIf=\"showAiBotList && !showActionSheetItemAI\"\n slot=\"content\">\n <div class=\"cc-message-composer__aibotlist\">\n <cometchat-button *ngIf=\" aiBotList && aiBotList.length> 1 \"\n [iconURL]=\"backButtonIconURL\"\n (cc-button-clicked)=\"onAiBackButtonClick()\"\n [buttonStyle]=\"backButtonStyle()\">\n </cometchat-button>\n <p>{{ localize(\"COMETCHAT_ASK_AI_BOT\") }}</p>\n </div>\n <cometchat-action-sheet\n *ngIf=\"showAiBotList && !showActionSheetItemAI\" slot=\"content\"\n [actions]=\"aiActionButtons\" [title]=\"localize('AI')\"\n [actionSheetStyle]=\"aiActionSheetStyle\" [hideLayoutMode]=\"true\"\n (cc-actionsheet-clicked)=\"handleActions($event)\">\n </cometchat-action-sheet>\n </div>\n\n <cometchat-action-sheet *ngIf=\"showActionSheetItemAI\" slot=\"content\"\n [actions]=\"buttons\" [title]=\"localize('AI')\"\n [actionSheetStyle]=\"aiActionSheetStyle\" [hideLayoutMode]=\"true\"\n (cc-actionsheet-clicked)=\"handleActions($event)\">\n </cometchat-action-sheet>\n\n <cometchat-button *ngIf=\"isAiEnabled\" [hoverText]=\"localize('AI')\"\n slot=\"children\" #aiButtonRef\n (cc-button-clicked)=\"openAiFeatures($event)\"\n [iconURL]=\"!showAiFeatures ? aiIconURL : closeButtonIconURL\"\n [buttonStyle]=\"stickerButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n\n <div class=\"cc-message-composer__stickerkeyboard\"\n *ngIf=\"enableStickerKeyboard && !auxilaryButtonView\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [popoverStyle]=\"stickerPopover\" [placement]=\"auxilaryPlacement\">\n <stickers-keyboard slot=\"content\"\n [stickerStyle]=\"stickerKeyboardStyle\"\n (cc-sticker-clicked)=\"sendSticker($event)\">\n </stickers-keyboard>\n <cometchat-button [hoverText]=\"localize('STICKER')\" slot=\"children\"\n #stickerButtonRef\n (cc-button-clicked)=\"openStickerKeyboard($event)\"\n [iconURL]=\" !showStickerKeyboard ? stickerButtonIconURL : closeButtonIconURL\"\n [buttonStyle]=\"stickerButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n <div class=\"cc-message-composer__emojikeyboard\"\n *ngIf=\"!auxilaryButtonView\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [placement]=\"auxilaryPlacement\" [popoverStyle]=\"emojiPopover\">\n <cometchat-emoji-keyboard slot=\"content\"\n [emojiKeyboardStyle]=\"emojiKeyboardStyle\"\n (cc-emoji-clicked)=\"appendEmoji($event)\">\n </cometchat-emoji-keyboard>\n <cometchat-button #emojiButtonRef [hoverText]=\"localize('EMOJI')\"\n slot=\"children\" (cc-button-clicked)=\"openEmojiKeyboard($event)\"\n [iconURL]=\" !showEmojiKeyboard || (!showEmojiKeyboard && showActionSheetItem) ? emojiIconURL : closeButtonIconURL\"\n [buttonStyle]=\"emojiButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n <div class=\"cc-message-composer__mediarecorder\"\n *ngIf=\"!hideVoiceRecording\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [popoverStyle]=\"mediaRecordedPopover\"\n [placement]=\"auxilaryPlacement\">\n\n <cometchat-media-recorder *ngIf=\"toggleMediaRecorded\"\n [autoRecording]=\"true\" startIconText=\"\" stopIconText=\"\"\n submitButtonIconText=\"\"\n [submitButtonIconURL]=\"voiceRecordingSubmitIconURL\"\n [startIconURL]=\"voiceRecordingStartIconURL\"\n [stopIconURL]=\"voiceRecordingStopIconURL\"\n [closeIconURL]=\"voiceRecordingCloseIconURL\"\n (cc-media-recorder-submitted)=\"sendRecordedMedia($event)\"\n (cc-media-recorder-closed)=\"closeMediaRecorder($event)\"\n slot=\"content\"\n [mediaPlayerStyle]=\"mediaRecorderStyle\"></cometchat-media-recorder>\n <cometchat-icon-button [hoverText]=\"localize('VOICE_RECORDING')\"\n slot=\"children\" #mediaRecordedRef\n (cc-button-clicked)=\"openMediaRecorded($event)\"\n [iconURL]=\" !toggleMediaRecorded ? voiceRecordingIconURL : closeButtonIconURL\"\n [buttonStyle]=\"mediaRecorderButtonStyle\"></cometchat-icon-button>\n </cometchat-popover>\n </div>\n </div>\n <div data-slot=\"primaryView\">\n <div *ngIf=\"sendButtonView;else sendButton\">\n <ng-container\n *ngTemplateOutlet=\"sendButtonView;context:{ item: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #sendButton>\n <div class=\"cc-message-composer__sendbutton\"\n *ngIf=\"showSendButton || hideLiveReaction\">\n <cometchat-button [iconURL]=\"sendButtonIconURL\"\n [buttonStyle]=\"sendButtonStyle\"\n [hoverText]=\"localize('SEND_MESSAGE')\"\n [disabled]=\"!showSendButton\"\n (cc-button-clicked)=\"customSendMethod(messageText)\">\n </cometchat-button>\n </div>\n <div class=\"cc-message-composer__livereaction\"\n *ngIf=\"!hideLiveReaction && !showSendButton\">\n <cometchat-button [iconURL]=\"LiveReactionIconURL\"\n [hoverText]=\"localize('LIVE_REACTION')\"\n [buttonStyle]=\"liveReactionStyle\"\n (cc-button-clicked)=\"sendReaction()\"></cometchat-button>\n </div>\n </ng-template>\n </div>\n </cometchat-text-input>\n </div>\n</div>\n\n<input class=\"cc-message-composer__mediainput\" #inputElement\n (change)=\"inputChangeHandler($event)\" />\n<cometchat-backdrop *ngIf=\"showCreatePolls\" [backdropStyle]=\"backdropStyle\">\n <create-poll [user]=\"user\" [group]=\"group\"\n (cc-close-clicked)=\"closeCreatePolls()\"\n [createPollStyle]=\"createPollStyle\"></create-poll>\n</cometchat-backdrop>\n", styles: [".cc-message-composer__sendbutton,.cc-message-composer__livereaction{margin:0 5px}.cc-message-composer__wrapper{height:100%;width:100%;position:relative;padding:14px 16px}.cc-message-composer__header-view{height:-moz-fit-content;height:fit-content;width:100%;bottom:120%;padding:0 0 1px}.cc-message-composer__mediainput{display:none}.cc-message-composer__auxiliary{display:flex;gap:8px}.cc-message-composer__smartreply-header{width:100%;display:flex;align-items:center;position:absolute;padding:10px;top:0;z-index:1}.cc-message-composer__back-button{margin-left:2%}.cc-message-composer__smartreply-header-view{margin-left:14%}.cc-message-composer__smartreply-content{max-height:200px}.cc-message-composer__aibotlist{display:flex;padding:10px;align-items:center;gap:45px;font-size:medium}.cc-messagecomposer__mentions{max-height:196px;min-height:28px;overflow:hidden;position:absolute;width:100%;left:50%;transform:translate(-50%,-100%);z-index:2;display:flex;padding:0 16px 1px 14px;box-sizing:border-box}.cc-messagecomposer__mentions cometchat-user-member-wrapper{max-height:196px;min-height:28px;overflow:hidden;width:100%;box-sizing:border-box;min-height:45px}.cc-messagecomposer__mentions::-webkit-scrollbar{display:none}.cc-messagecomposer__mentions-limit-exceeded{margin-top:20px;left:2px;position:relative;padding-left:13px;background-color:#fff}*{box-sizing:border-box}cometchat-ai-card{height:100%;width:100%;display:flex;border-radius:8px;overflow-y:auto;justify-content:center;align-items:center}cometchat-popover{position:relative}\n"], components: [{ type: CometChatUserMemberWrapperComponent, selector: "cometchat-user-member-wrapper", inputs: ["userMemberListType", "onItemClick", "listItemView", "avatarStyle", "statusIndicatorStyle", "searchKeyword", "group", "subtitleView", "usersRequestBuilder", "disableUsersPresence", "userPresencePlacement", "hideSeperator", "loadingStateView", "onEmpty", "onError", "groupMemberRequestBuilder", "loadingIconUrl", "disableLoadingState"] }], 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 });
|
|
15494
|
+
CometChatMessageComposerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatMessageComposerComponent, selector: "cometchat-message-composer", inputs: { user: "user", group: "group", disableSoundForMessages: "disableSoundForMessages", customSoundForMessage: "customSoundForMessage", customSoundForMessages: "customSoundForMessages", disableTypingEvents: "disableTypingEvents", text: "text", placeholderText: "placeholderText", headerView: "headerView", onTextChange: "onTextChange", attachmentIconURL: "attachmentIconURL", attachmentOptions: "attachmentOptions", secondaryButtonView: "secondaryButtonView", auxilaryButtonView: "auxilaryButtonView", auxiliaryButtonsAlignment: "auxiliaryButtonsAlignment", sendButtonView: "sendButtonView", parentMessageId: "parentMessageId", hideLiveReaction: "hideLiveReaction", LiveReactionIconURL: "LiveReactionIconURL", backButtonIconURL: "backButtonIconURL", mentionsWarningText: "mentionsWarningText", mentionsWarningStyle: "mentionsWarningStyle", messageComposerStyle: "messageComposerStyle", onSendButtonClick: "onSendButtonClick", onError: "onError", backdropStyle: "backdropStyle", actionSheetStyle: "actionSheetStyle", aiActionSheetStyle: "aiActionSheetStyle", hideVoiceRecording: "hideVoiceRecording", mediaRecorderStyle: "mediaRecorderStyle", aiOptionsStyle: "aiOptionsStyle", aiIconURL: "aiIconURL", voiceRecordingIconURL: "voiceRecordingIconURL", voiceRecordingCloseIconURL: "voiceRecordingCloseIconURL", voiceRecordingStartIconURL: "voiceRecordingStartIconURL", voiceRecordingStopIconURL: "voiceRecordingStopIconURL", voiceRecordingSubmitIconURL: "voiceRecordingSubmitIconURL", hideLayoutMode: "hideLayoutMode", emojiIconURL: "emojiIconURL", userMemberWrapperConfiguration: "userMemberWrapperConfiguration", disableMentions: "disableMentions", textFormatters: "textFormatters", sendButtonIconURL: "sendButtonIconURL" }, outputs: { childEvent: "childEvent" }, viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }, { propertyName: "emojiButtonRef", first: true, predicate: ["emojiButtonRef"], descendants: true }, { propertyName: "actionSheetRef", first: true, predicate: ["actionSheetRef"], descendants: true }, { propertyName: "stickerButtonRef", first: true, predicate: ["stickerButtonRef"], descendants: true }, { propertyName: "mediaRecordedRef", first: true, predicate: ["mediaRecordedRef"], descendants: true }, { propertyName: "aiButtonRef", first: true, predicate: ["aiButtonRef"], descendants: true }, { propertyName: "userMemberWrapperRef", first: true, predicate: ["userMemberWrapperRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-message-composer__wrapper\" [ngStyle]=\"composerWrapperStyle()\">\n <div class=\"cc-messagecomposer__mentions\" *ngIf=\"showListForMentions\"\n #userMemberWrapperRef>\n <cometchat-user-member-wrapper [userMemberListType]=\"userMemberListType\"\n [onItemClick]=\"userMemberWrapperConfiguration.onItemClick || defaultMentionsItemClickHandler\"\n [usersRequestBuilder]=\"usersRequestBuilder\"\n [searchKeyword]=\"mentionsSearchTerm\"\n [subtitleView]=\"userMemberWrapperConfiguration.subtitleView\"\n [disableUsersPresence]=\"userMemberWrapperConfiguration.disableUsersPresence\"\n [avatarStyle]=\"userMemberWrapperConfiguration.avatarStyle\"\n [listItemView]=\"userMemberWrapperConfiguration.listItemView\"\n [statusIndicatorStyle]=\"userMemberWrapperConfiguration.statusIndicatorStyle\"\n [userPresencePlacement]=\"userMemberWrapperConfiguration.userPresencePlacement\"\n [hideSeperator]=\"userMemberWrapperConfiguration.hideSeparator\"\n [loadingStateView]=\"userMemberWrapperConfiguration.loadingStateView\"\n [onEmpty]=\"defaultOnEmptyForMentions\"\n [loadingIconUrl]=\"userMemberWrapperConfiguration.loadingIconURL\"\n [group]=\"group\" [groupMemberRequestBuilder]=\"groupMembersRequestBuilder\"\n [disableLoadingState]=\"true\"\n [onError]=\"defaultOnEmptyForMentions\"></cometchat-user-member-wrapper>\n\n <div *ngIf=\"showMentionsCountWarning\"\n class=\"cc-messagecomposer__mentions-limit-exceeded\">\n <cometchat-icon-button\n [text]=\"mentionsWarningText || localize('MENTIONS_LIMIT_WARNING_MESSAGE')\"\n [iconURL]=\"InfoSimpleIcon\"\n [buttonStyle]=\"getMentionInfoIconStyle()\"></cometchat-icon-button>\n </div>\n\n </div>\n <div class=\"cc-message-composer__header-view\"\n *ngIf=\"headerView; else messagePreview\">\n <ng-container\n *ngTemplateOutlet=\"headerView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #messagePreview>\n <div class=\"cc-message-composer__header-view\" *ngIf=\"showPreview\">\n <cometchat-preview [previewStyle]=\"previewStyle\"\n [previewSubtitle]=\"editPreviewText\"\n (cc-preview-close-clicked)=\"onPreviewClosed()\"> </cometchat-preview>\n </div>\n </ng-template>\n <div class=\"cc-message-composer__input\">\n\n <cometchat-text-input (cc-text-input-entered)=\"sendMessageOnEnter($event)\"\n #inputRef [text]=\"text\"\n (cc-text-input-changed)=\"messageInputChanged($event)\"\n [textInputStyle]=\"textInputStyle\" [placeholderText]=\"placeholderText\"\n [auxiliaryButtonAlignment]=\"auxiliaryButtonsAlignment\"\n [textFormatters]=\"textFormatters\">\n\n <div data-slot=\"secondaryView\">\n <div *ngIf=\"secondaryButtonView;else secondaryButton\">\n <ng-container\n *ngTemplateOutlet=\"secondaryButtonView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #secondaryButton>\n <div class=\"cc-message-composer__attachbutton\">\n <cometchat-popover\n (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [placement]=\"auxilaryPlacement\" [popoverStyle]=\"popoverStyle\">\n <cometchat-action-sheet slot=\"content\"\n [title]=\"localize('ADD_TO_CHAT')\" [actions]=\"composerActions\"\n [actionSheetStyle]=\"actionSheetStyle\"\n (cc-actionsheet-clicked)=\"handleActions($event)\"\n [hideLayoutMode]=\"hideLayoutMode\"\n >\n </cometchat-action-sheet>\n <cometchat-button #actionSheetRef slot=\"children\"\n (cc-button-clicked)=\"openActionSheet($event)\"\n [iconURL]=\"!showActionSheetItem || (showEmojiKeyboard && !showActionSheetItem) ? attachmentIconURL : closeButtonIconURL\"\n [buttonStyle]=\"attachmentButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n </ng-template>\n </div>\n\n <div class=\"cc-message-composer__auxiliary\" data-slot=\"auxilaryView\">\n <div class=\"cc-message-composer__custom-auxiliary-view\"\n *ngIf=\"auxilaryButtonView\">\n <ng-container\n *ngTemplateOutlet=\"auxilaryButtonView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <!-- AI Cards -->\n <div class=\"cc-message-composer__stickerkeyboard\"\n *ngIf=\"!auxilaryButtonView\">\n <cometchat-popover (cc-popover-click)=\"openStickerKeyboard($event)\"\n [popoverStyle]=\"aiPopover\" [placement]=\"auxilaryPlacement\">\n <cometchat-ai-card [state]=\"smartReplyState\"\n *ngIf=\"showSmartReply && !showActionSheetItemAI && !showAiBotList\"\n slot=\"content\" [loadingStateText]=\"loadingStateText\"\n [emptyStateText]=\"emptyStateText\"\n [errorStateText]=\"errorStateText\">\n <div slot=\"loadedView\" class=\"smart-replies-wrapper\">\n\n <div class=\"cc-message-composer__smartreply-header\">\n <div class=\"cc-message-composer__back-button\">\n <cometchat-button\n *ngIf=\"repliesArray && repliesArray.length > 0 \"\n [iconURL]=\"backButtonIconURL\"\n (cc-button-clicked)=\"onAiBackButtonClick()\"\n [buttonStyle]=\"backButtonStyle()\">\n </cometchat-button>\n </div>\n <div class=\"cc-message-composer__smartreply-header-view\">\n <p>{{ localize(\"SUGGEST_A_REPLY\") }}</p>\n </div>\n </div>\n\n <div class=\"cc-message-composer__smartreply-content\">\n <smart-replies\n *ngIf=\"repliesArray && repliesArray.length > 0 \"\n [smartReplyStyle]=\"smartReplyStyle\" [replies]=\"repliesArray\"\n [closeIconURL]=\"''\" (cc-reply-clicked)=\"sendReply($event)\">\n </smart-replies>\n </div>\n\n\n\n\n\n </div>\n </cometchat-ai-card>\n\n <div *ngIf=\"showAiBotList && !showActionSheetItemAI\"\n slot=\"content\">\n <div class=\"cc-message-composer__aibotlist\">\n <cometchat-button *ngIf=\" aiBotList && aiBotList.length> 1 \"\n [iconURL]=\"backButtonIconURL\"\n (cc-button-clicked)=\"onAiBackButtonClick()\"\n [buttonStyle]=\"backButtonStyle()\">\n </cometchat-button>\n <p>{{ localize(\"COMETCHAT_ASK_AI_BOT\") }}</p>\n </div>\n <cometchat-action-sheet\n *ngIf=\"showAiBotList && !showActionSheetItemAI\" slot=\"content\"\n [actions]=\"aiActionButtons\" [title]=\"localize('AI')\"\n [actionSheetStyle]=\"aiActionSheetStyle\" [hideLayoutMode]=\"true\"\n (cc-actionsheet-clicked)=\"handleActions($event)\">\n </cometchat-action-sheet>\n </div>\n\n <cometchat-action-sheet *ngIf=\"showActionSheetItemAI\" slot=\"content\"\n [actions]=\"buttons\" [title]=\"localize('AI')\"\n [actionSheetStyle]=\"aiActionSheetStyle\" [hideLayoutMode]=\"true\"\n (cc-actionsheet-clicked)=\"handleActions($event)\">\n </cometchat-action-sheet>\n\n <cometchat-button *ngIf=\"isAiEnabled\" [hoverText]=\"localize('AI')\"\n slot=\"children\" #aiButtonRef\n (cc-button-clicked)=\"openAiFeatures($event)\"\n [iconURL]=\"!showAiFeatures ? aiIconURL : closeButtonIconURL\"\n [buttonStyle]=\"stickerButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n\n <div class=\"cc-message-composer__stickerkeyboard\"\n *ngIf=\"enableStickerKeyboard && !auxilaryButtonView\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [popoverStyle]=\"stickerPopover\" [placement]=\"auxilaryPlacement\">\n <stickers-keyboard slot=\"content\"\n [stickerStyle]=\"stickerKeyboardStyle\"\n (cc-sticker-clicked)=\"sendSticker($event)\">\n </stickers-keyboard>\n <cometchat-button [hoverText]=\"localize('STICKER')\" slot=\"children\"\n #stickerButtonRef\n (cc-button-clicked)=\"openStickerKeyboard($event)\"\n [iconURL]=\" !showStickerKeyboard ? stickerButtonIconURL : closeButtonIconURL\"\n [buttonStyle]=\"stickerButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n <div class=\"cc-message-composer__emojikeyboard\"\n *ngIf=\"!auxilaryButtonView\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [placement]=\"auxilaryPlacement\" [popoverStyle]=\"emojiPopover\">\n <cometchat-emoji-keyboard slot=\"content\"\n [emojiKeyboardStyle]=\"emojiKeyboardStyle\"\n (cc-emoji-clicked)=\"appendEmoji($event)\">\n </cometchat-emoji-keyboard>\n <cometchat-button #emojiButtonRef [hoverText]=\"localize('EMOJI')\"\n slot=\"children\" (cc-button-clicked)=\"openEmojiKeyboard($event)\"\n [iconURL]=\" !showEmojiKeyboard || (!showEmojiKeyboard && showActionSheetItem) ? emojiIconURL : closeButtonIconURL\"\n [buttonStyle]=\"emojiButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n <div class=\"cc-message-composer__mediarecorder\"\n *ngIf=\"!hideVoiceRecording\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [popoverStyle]=\"mediaRecordedPopover\"\n [placement]=\"auxilaryPlacement\">\n\n <cometchat-media-recorder *ngIf=\"toggleMediaRecorded\"\n [autoRecording]=\"true\" startIconText=\"\" stopIconText=\"\"\n submitButtonIconText=\"\"\n [submitButtonIconURL]=\"voiceRecordingSubmitIconURL\"\n [startIconURL]=\"voiceRecordingStartIconURL\"\n [stopIconURL]=\"voiceRecordingStopIconURL\"\n [closeIconURL]=\"voiceRecordingCloseIconURL\"\n (cc-media-recorder-submitted)=\"sendRecordedMedia($event)\"\n (cc-media-recorder-closed)=\"closeMediaRecorder($event)\"\n slot=\"content\"\n [mediaPlayerStyle]=\"mediaRecorderStyle\"></cometchat-media-recorder>\n <cometchat-icon-button [hoverText]=\"localize('VOICE_RECORDING')\"\n slot=\"children\" #mediaRecordedRef\n (cc-button-clicked)=\"openMediaRecorded($event)\"\n [iconURL]=\" !toggleMediaRecorded ? voiceRecordingIconURL : closeButtonIconURL\"\n [buttonStyle]=\"mediaRecorderButtonStyle\"></cometchat-icon-button>\n </cometchat-popover>\n </div>\n </div>\n <div data-slot=\"primaryView\">\n <div *ngIf=\"sendButtonView;else sendButton\">\n <ng-container\n *ngTemplateOutlet=\"sendButtonView;context:{ item: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #sendButton>\n <div class=\"cc-message-composer__sendbutton\"\n *ngIf=\"showSendButton || hideLiveReaction\">\n <cometchat-button [iconURL]=\"sendButtonIconURL\"\n [buttonStyle]=\"sendButtonStyle\"\n [hoverText]=\"localize('SEND_MESSAGE')\"\n [disabled]=\"!showSendButton\"\n (cc-button-clicked)=\"customSendMethod(messageText)\">\n </cometchat-button>\n </div>\n <div class=\"cc-message-composer__livereaction\"\n *ngIf=\"!hideLiveReaction && !showSendButton\">\n <cometchat-button [iconURL]=\"LiveReactionIconURL\"\n [hoverText]=\"localize('LIVE_REACTION')\"\n [buttonStyle]=\"liveReactionStyle\"\n (cc-button-clicked)=\"sendReaction()\"></cometchat-button>\n </div>\n </ng-template>\n </div>\n </cometchat-text-input>\n </div>\n</div>\n\n<input class=\"cc-message-composer__mediainput\" #inputElement\n (change)=\"inputChangeHandler($event)\" />\n<cometchat-backdrop *ngIf=\"showCreatePolls\" [backdropStyle]=\"backdropStyle\">\n <create-poll [user]=\"user\" [group]=\"group\"\n (cc-close-clicked)=\"closeCreatePolls()\"\n [createPollStyle]=\"createPollStyle\"></create-poll>\n</cometchat-backdrop>\n", styles: [".cc-message-composer__sendbutton,.cc-message-composer__livereaction{margin:0 5px}.cc-message-composer__wrapper{height:100%;width:100%;position:relative;padding:14px 16px}.cc-message-composer__header-view{height:-moz-fit-content;height:fit-content;width:100%;bottom:120%;padding:0 0 1px}.cc-message-composer__mediainput{display:none}.cc-message-composer__auxiliary{display:flex;gap:8px}.cc-message-composer__smartreply-header{width:100%;display:flex;align-items:center;position:absolute;padding:10px;top:0;z-index:1}.cc-message-composer__back-button{margin-left:2%}.cc-message-composer__smartreply-header-view{margin-left:14%}.cc-message-composer__smartreply-content{max-height:200px}.cc-message-composer__aibotlist{display:flex;padding:10px;align-items:center;gap:45px;font-size:medium}.cc-messagecomposer__mentions{max-height:196px;min-height:28px;overflow:hidden;position:absolute;width:100%;left:50%;transform:translate(-50%,-100%);z-index:2;display:flex;padding:0 16px 1px 14px;box-sizing:border-box}.cc-messagecomposer__mentions cometchat-user-member-wrapper{max-height:196px;min-height:28px;overflow:hidden;width:100%;box-sizing:border-box;min-height:45px}.cc-messagecomposer__mentions::-webkit-scrollbar{display:none}.cc-messagecomposer__mentions-limit-exceeded{margin-top:20px;left:2px;position:relative;padding-left:13px;background-color:#fff}*{box-sizing:border-box}cometchat-ai-card{height:100%;width:100%;display:flex;border-radius:8px;overflow-y:auto;justify-content:center;align-items:center}cometchat-popover{position:relative}\n"], components: [{ type: CometChatUserMemberWrapperComponent, selector: "cometchat-user-member-wrapper", inputs: ["userMemberListType", "onItemClick", "listItemView", "avatarStyle", "statusIndicatorStyle", "searchKeyword", "group", "subtitleView", "usersRequestBuilder", "disableUsersPresence", "userPresencePlacement", "hideSeperator", "loadingStateView", "onEmpty", "onError", "groupMemberRequestBuilder", "loadingIconUrl", "disableLoadingState"] }], 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 });
|
|
15377
15495
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatMessageComposerComponent, decorators: [{
|
|
15378
15496
|
type: Component,
|
|
15379
|
-
args: [{ selector: "cometchat-message-composer", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-message-composer__wrapper\" [ngStyle]=\"composerWrapperStyle()\">\n <div class=\"cc-messagecomposer__mentions\" *ngIf=\"showListForMentions\"\n #userMemberWrapperRef>\n <cometchat-user-member-wrapper [userMemberListType]=\"userMemberListType\"\n [onItemClick]=\"userMemberWrapperConfiguration.onItemClick || defaultMentionsItemClickHandler\"\n [usersRequestBuilder]=\"usersRequestBuilder\"\n [searchKeyword]=\"mentionsSearchTerm\"\n [subtitleView]=\"userMemberWrapperConfiguration.subtitleView\"\n [disableUsersPresence]=\"userMemberWrapperConfiguration.disableUsersPresence\"\n [avatarStyle]=\"userMemberWrapperConfiguration.avatarStyle\"\n [listItemView]=\"userMemberWrapperConfiguration.listItemView\"\n [statusIndicatorStyle]=\"userMemberWrapperConfiguration.statusIndicatorStyle\"\n [userPresencePlacement]=\"userMemberWrapperConfiguration.userPresencePlacement\"\n [hideSeperator]=\"userMemberWrapperConfiguration.hideSeparator\"\n [loadingStateView]=\"userMemberWrapperConfiguration.loadingStateView\"\n [onEmpty]=\"defaultOnEmptyForMentions\"\n [loadingIconUrl]=\"userMemberWrapperConfiguration.loadingIconURL\"\n [group]=\"group\" [groupMemberRequestBuilder]=\"groupMembersRequestBuilder\"\n [disableLoadingState]=\"true\"\n [onError]=\"defaultOnEmptyForMentions\"></cometchat-user-member-wrapper>\n\n <div *ngIf=\"showMentionsCountWarning\"\n class=\"cc-messagecomposer__mentions-limit-exceeded\">\n <cometchat-icon-button\n [text]=\"mentionsWarningText || localize('MENTIONS_LIMIT_WARNING_MESSAGE')\"\n [iconURL]=\"InfoSimpleIcon\"\n [buttonStyle]=\"getMentionInfoIconStyle()\"></cometchat-icon-button>\n </div>\n\n </div>\n <div class=\"cc-message-composer__header-view\"\n *ngIf=\"headerView; else messagePreview\">\n <ng-container\n *ngTemplateOutlet=\"headerView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #messagePreview>\n <div class=\"cc-message-composer__header-view\" *ngIf=\"showPreview\">\n <cometchat-preview [previewStyle]=\"previewStyle\"\n [previewSubtitle]=\"editPreviewText\"\n (cc-preview-close-clicked)=\"closePreview()\"> </cometchat-preview>\n </div>\n </ng-template>\n <div class=\"cc-message-composer__input\">\n\n <cometchat-text-input (cc-text-input-entered)=\"sendMessageOnEnter($event)\"\n #inputRef [text]=\"text\"\n (cc-text-input-changed)=\"messageInputChanged($event)\"\n [textInputStyle]=\"textInputStyle\" [placeholderText]=\"placeholderText\"\n [auxiliaryButtonAlignment]=\"auxiliaryButtonsAlignment\"\n [textFormatters]=\"textFormatters\">\n\n <div data-slot=\"secondaryView\">\n <div *ngIf=\"secondaryButtonView;else secondaryButton\">\n <ng-container\n *ngTemplateOutlet=\"secondaryButtonView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #secondaryButton>\n <div class=\"cc-message-composer__attachbutton\">\n <cometchat-popover\n (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [placement]=\"auxilaryPlacement\" [popoverStyle]=\"popoverStyle\">\n <cometchat-action-sheet slot=\"content\"\n [title]=\"localize('ADD_TO_CHAT')\" [actions]=\"composerActions\"\n [actionSheetStyle]=\"actionSheetStyle\"\n (cc-actionsheet-clicked)=\"handleActions($event)\"\n [hideLayoutMode]=\"hideLayoutMode\"\n >\n </cometchat-action-sheet>\n <cometchat-button #actionSheetRef slot=\"children\"\n (cc-button-clicked)=\"openActionSheet($event)\"\n [iconURL]=\"!showActionSheetItem || (showEmojiKeyboard && !showActionSheetItem) ? attachmentIconURL : closeButtonIconURL\"\n [buttonStyle]=\"attachmentButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n </ng-template>\n </div>\n\n <div class=\"cc-message-composer__auxiliary\" data-slot=\"auxilaryView\">\n <div class=\"cc-message-composer__custom-auxiliary-view\"\n *ngIf=\"auxilaryButtonView\">\n <ng-container\n *ngTemplateOutlet=\"auxilaryButtonView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <!-- AI Cards -->\n <div class=\"cc-message-composer__stickerkeyboard\"\n *ngIf=\"!auxilaryButtonView\">\n <cometchat-popover (cc-popover-click)=\"openStickerKeyboard($event)\"\n [popoverStyle]=\"aiPopover\" [placement]=\"auxilaryPlacement\">\n <cometchat-ai-card [state]=\"smartReplyState\"\n *ngIf=\"showSmartReply && !showActionSheetItemAI && !showAiBotList\"\n slot=\"content\" [loadingStateText]=\"loadingStateText\"\n [emptyStateText]=\"emptyStateText\"\n [errorStateText]=\"errorStateText\">\n <div slot=\"loadedView\" class=\"smart-replies-wrapper\">\n\n <div class=\"cc-message-composer__smartreply-header\">\n <div class=\"cc-message-composer__back-button\">\n <cometchat-button\n *ngIf=\"repliesArray && repliesArray.length > 0 \"\n [iconURL]=\"backButtonIconURL\"\n (cc-button-clicked)=\"onAiBackButtonClick()\"\n [buttonStyle]=\"backButtonStyle()\">\n </cometchat-button>\n </div>\n <div class=\"cc-message-composer__smartreply-header-view\">\n <p>{{ localize(\"SUGGEST_A_REPLY\") }}</p>\n </div>\n </div>\n\n <div class=\"cc-message-composer__smartreply-content\">\n <smart-replies\n *ngIf=\"repliesArray && repliesArray.length > 0 \"\n [smartReplyStyle]=\"smartReplyStyle\" [replies]=\"repliesArray\"\n [closeIconURL]=\"''\" (cc-reply-clicked)=\"sendReply($event)\">\n </smart-replies>\n </div>\n\n\n\n\n\n </div>\n </cometchat-ai-card>\n\n <div *ngIf=\"showAiBotList && !showActionSheetItemAI\"\n slot=\"content\">\n <div class=\"cc-message-composer__aibotlist\">\n <cometchat-button *ngIf=\" aiBotList && aiBotList.length> 1 \"\n [iconURL]=\"backButtonIconURL\"\n (cc-button-clicked)=\"onAiBackButtonClick()\"\n [buttonStyle]=\"backButtonStyle()\">\n </cometchat-button>\n <p>{{ localize(\"COMETCHAT_ASK_AI_BOT\") }}</p>\n </div>\n <cometchat-action-sheet\n *ngIf=\"showAiBotList && !showActionSheetItemAI\" slot=\"content\"\n [actions]=\"aiActionButtons\" [title]=\"localize('AI')\"\n [actionSheetStyle]=\"aiActionSheetStyle\" [hideLayoutMode]=\"true\"\n (cc-actionsheet-clicked)=\"handleActions($event)\">\n </cometchat-action-sheet>\n </div>\n\n <cometchat-action-sheet *ngIf=\"showActionSheetItemAI\" slot=\"content\"\n [actions]=\"buttons\" [title]=\"localize('AI')\"\n [actionSheetStyle]=\"aiActionSheetStyle\" [hideLayoutMode]=\"true\"\n (cc-actionsheet-clicked)=\"handleActions($event)\">\n </cometchat-action-sheet>\n\n <cometchat-button *ngIf=\"isAiEnabled\" [hoverText]=\"localize('AI')\"\n slot=\"children\" #aiButtonRef\n (cc-button-clicked)=\"openAiFeatures($event)\"\n [iconURL]=\"!showAiFeatures ? aiIconURL : closeButtonIconURL\"\n [buttonStyle]=\"stickerButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n\n <div class=\"cc-message-composer__stickerkeyboard\"\n *ngIf=\"enableStickerKeyboard && !auxilaryButtonView\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [popoverStyle]=\"stickerPopover\" [placement]=\"auxilaryPlacement\">\n <stickers-keyboard slot=\"content\"\n [stickerStyle]=\"stickerKeyboardStyle\"\n (cc-sticker-clicked)=\"sendSticker($event)\">\n </stickers-keyboard>\n <cometchat-button [hoverText]=\"localize('STICKER')\" slot=\"children\"\n #stickerButtonRef\n (cc-button-clicked)=\"openStickerKeyboard($event)\"\n [iconURL]=\" !showStickerKeyboard ? stickerButtonIconURL : closeButtonIconURL\"\n [buttonStyle]=\"stickerButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n <div class=\"cc-message-composer__emojikeyboard\"\n *ngIf=\"!auxilaryButtonView\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [placement]=\"auxilaryPlacement\" [popoverStyle]=\"emojiPopover\">\n <cometchat-emoji-keyboard slot=\"content\"\n [emojiKeyboardStyle]=\"emojiKeyboardStyle\"\n (cc-emoji-clicked)=\"appendEmoji($event)\">\n </cometchat-emoji-keyboard>\n <cometchat-button #emojiButtonRef [hoverText]=\"localize('EMOJI')\"\n slot=\"children\" (cc-button-clicked)=\"openEmojiKeyboard($event)\"\n [iconURL]=\" !showEmojiKeyboard || (!showEmojiKeyboard && showActionSheetItem) ? emojiIconURL : closeButtonIconURL\"\n [buttonStyle]=\"emojiButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n <div class=\"cc-message-composer__mediarecorder\"\n *ngIf=\"!hideVoiceRecording\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [popoverStyle]=\"mediaRecordedPopover\"\n [placement]=\"auxilaryPlacement\">\n\n <cometchat-media-recorder *ngIf=\"toggleMediaRecorded\"\n [autoRecording]=\"true\" startIconText=\"\" stopIconText=\"\"\n submitButtonIconText=\"\"\n [submitButtonIconURL]=\"voiceRecordingSubmitIconURL\"\n [startIconURL]=\"voiceRecordingStartIconURL\"\n [stopIconURL]=\"voiceRecordingStopIconURL\"\n [closeIconURL]=\"voiceRecordingCloseIconURL\"\n (cc-media-recorder-submitted)=\"sendRecordedMedia($event)\"\n (cc-media-recorder-closed)=\"closeMediaRecorder($event)\"\n slot=\"content\"\n [mediaPlayerStyle]=\"mediaRecorderStyle\"></cometchat-media-recorder>\n <cometchat-icon-button [hoverText]=\"localize('VOICE_RECORDING')\"\n slot=\"children\" #mediaRecordedRef\n (cc-button-clicked)=\"openMediaRecorded($event)\"\n [iconURL]=\" !toggleMediaRecorded ? voiceRecordingIconURL : closeButtonIconURL\"\n [buttonStyle]=\"mediaRecorderButtonStyle\"></cometchat-icon-button>\n </cometchat-popover>\n </div>\n </div>\n <div data-slot=\"primaryView\">\n <div *ngIf=\"sendButtonView;else sendButton\">\n <ng-container\n *ngTemplateOutlet=\"sendButtonView;context:{ item: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #sendButton>\n <div class=\"cc-message-composer__sendbutton\"\n *ngIf=\"showSendButton || hideLiveReaction\">\n <cometchat-button [iconURL]=\"sendButtonIconURL\"\n [buttonStyle]=\"sendButtonStyle\"\n [hoverText]=\"localize('SEND_MESSAGE')\"\n [disabled]=\"!showSendButton\"\n (cc-button-clicked)=\"customSendMethod(messageText)\">\n </cometchat-button>\n </div>\n <div class=\"cc-message-composer__livereaction\"\n *ngIf=\"!hideLiveReaction && !showSendButton\">\n <cometchat-button [iconURL]=\"LiveReactionIconURL\"\n [hoverText]=\"localize('LIVE_REACTION')\"\n [buttonStyle]=\"liveReactionStyle\"\n (cc-button-clicked)=\"sendReaction()\"></cometchat-button>\n </div>\n </ng-template>\n </div>\n </cometchat-text-input>\n </div>\n</div>\n\n<input class=\"cc-message-composer__mediainput\" #inputElement\n (change)=\"inputChangeHandler($event)\" />\n<cometchat-backdrop *ngIf=\"showCreatePolls\" [backdropStyle]=\"backdropStyle\">\n <create-poll [user]=\"user\" [group]=\"group\"\n (cc-close-clicked)=\"closeCreatePolls()\"\n [createPollStyle]=\"createPollStyle\"></create-poll>\n</cometchat-backdrop>\n", styles: [".cc-message-composer__sendbutton,.cc-message-composer__livereaction{margin:0 5px}.cc-message-composer__wrapper{height:100%;width:100%;position:relative;padding:14px 16px}.cc-message-composer__header-view{height:-moz-fit-content;height:fit-content;width:100%;bottom:120%;padding:0 0 1px}.cc-message-composer__mediainput{display:none}.cc-message-composer__auxiliary{display:flex;gap:8px}.cc-message-composer__smartreply-header{width:100%;display:flex;align-items:center;position:absolute;padding:10px;top:0;z-index:1}.cc-message-composer__back-button{margin-left:2%}.cc-message-composer__smartreply-header-view{margin-left:14%}.cc-message-composer__smartreply-content{max-height:200px}.cc-message-composer__aibotlist{display:flex;padding:10px;align-items:center;gap:45px;font-size:medium}.cc-messagecomposer__mentions{max-height:196px;min-height:28px;overflow:hidden;position:absolute;width:100%;left:50%;transform:translate(-50%,-100%);z-index:2;display:flex;padding:0 16px 1px 14px;box-sizing:border-box}.cc-messagecomposer__mentions cometchat-user-member-wrapper{max-height:196px;min-height:28px;overflow:hidden;width:100%;box-sizing:border-box;min-height:45px}.cc-messagecomposer__mentions::-webkit-scrollbar{display:none}.cc-messagecomposer__mentions-limit-exceeded{margin-top:20px;left:2px;position:relative;padding-left:13px;background-color:#fff}*{box-sizing:border-box}cometchat-ai-card{height:100%;width:100%;display:flex;border-radius:8px;overflow-y:auto;justify-content:center;align-items:center}cometchat-popover{position:relative}\n"] }]
|
|
15497
|
+
args: [{ selector: "cometchat-message-composer", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-message-composer__wrapper\" [ngStyle]=\"composerWrapperStyle()\">\n <div class=\"cc-messagecomposer__mentions\" *ngIf=\"showListForMentions\"\n #userMemberWrapperRef>\n <cometchat-user-member-wrapper [userMemberListType]=\"userMemberListType\"\n [onItemClick]=\"userMemberWrapperConfiguration.onItemClick || defaultMentionsItemClickHandler\"\n [usersRequestBuilder]=\"usersRequestBuilder\"\n [searchKeyword]=\"mentionsSearchTerm\"\n [subtitleView]=\"userMemberWrapperConfiguration.subtitleView\"\n [disableUsersPresence]=\"userMemberWrapperConfiguration.disableUsersPresence\"\n [avatarStyle]=\"userMemberWrapperConfiguration.avatarStyle\"\n [listItemView]=\"userMemberWrapperConfiguration.listItemView\"\n [statusIndicatorStyle]=\"userMemberWrapperConfiguration.statusIndicatorStyle\"\n [userPresencePlacement]=\"userMemberWrapperConfiguration.userPresencePlacement\"\n [hideSeperator]=\"userMemberWrapperConfiguration.hideSeparator\"\n [loadingStateView]=\"userMemberWrapperConfiguration.loadingStateView\"\n [onEmpty]=\"defaultOnEmptyForMentions\"\n [loadingIconUrl]=\"userMemberWrapperConfiguration.loadingIconURL\"\n [group]=\"group\" [groupMemberRequestBuilder]=\"groupMembersRequestBuilder\"\n [disableLoadingState]=\"true\"\n [onError]=\"defaultOnEmptyForMentions\"></cometchat-user-member-wrapper>\n\n <div *ngIf=\"showMentionsCountWarning\"\n class=\"cc-messagecomposer__mentions-limit-exceeded\">\n <cometchat-icon-button\n [text]=\"mentionsWarningText || localize('MENTIONS_LIMIT_WARNING_MESSAGE')\"\n [iconURL]=\"InfoSimpleIcon\"\n [buttonStyle]=\"getMentionInfoIconStyle()\"></cometchat-icon-button>\n </div>\n\n </div>\n <div class=\"cc-message-composer__header-view\"\n *ngIf=\"headerView; else messagePreview\">\n <ng-container\n *ngTemplateOutlet=\"headerView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #messagePreview>\n <div class=\"cc-message-composer__header-view\" *ngIf=\"showPreview\">\n <cometchat-preview [previewStyle]=\"previewStyle\"\n [previewSubtitle]=\"editPreviewText\"\n (cc-preview-close-clicked)=\"onPreviewClosed()\"> </cometchat-preview>\n </div>\n </ng-template>\n <div class=\"cc-message-composer__input\">\n\n <cometchat-text-input (cc-text-input-entered)=\"sendMessageOnEnter($event)\"\n #inputRef [text]=\"text\"\n (cc-text-input-changed)=\"messageInputChanged($event)\"\n [textInputStyle]=\"textInputStyle\" [placeholderText]=\"placeholderText\"\n [auxiliaryButtonAlignment]=\"auxiliaryButtonsAlignment\"\n [textFormatters]=\"textFormatters\">\n\n <div data-slot=\"secondaryView\">\n <div *ngIf=\"secondaryButtonView;else secondaryButton\">\n <ng-container\n *ngTemplateOutlet=\"secondaryButtonView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #secondaryButton>\n <div class=\"cc-message-composer__attachbutton\">\n <cometchat-popover\n (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [placement]=\"auxilaryPlacement\" [popoverStyle]=\"popoverStyle\">\n <cometchat-action-sheet slot=\"content\"\n [title]=\"localize('ADD_TO_CHAT')\" [actions]=\"composerActions\"\n [actionSheetStyle]=\"actionSheetStyle\"\n (cc-actionsheet-clicked)=\"handleActions($event)\"\n [hideLayoutMode]=\"hideLayoutMode\"\n >\n </cometchat-action-sheet>\n <cometchat-button #actionSheetRef slot=\"children\"\n (cc-button-clicked)=\"openActionSheet($event)\"\n [iconURL]=\"!showActionSheetItem || (showEmojiKeyboard && !showActionSheetItem) ? attachmentIconURL : closeButtonIconURL\"\n [buttonStyle]=\"attachmentButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n </ng-template>\n </div>\n\n <div class=\"cc-message-composer__auxiliary\" data-slot=\"auxilaryView\">\n <div class=\"cc-message-composer__custom-auxiliary-view\"\n *ngIf=\"auxilaryButtonView\">\n <ng-container\n *ngTemplateOutlet=\"auxilaryButtonView;context:{ $implicit: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <!-- AI Cards -->\n <div class=\"cc-message-composer__stickerkeyboard\"\n *ngIf=\"!auxilaryButtonView\">\n <cometchat-popover (cc-popover-click)=\"openStickerKeyboard($event)\"\n [popoverStyle]=\"aiPopover\" [placement]=\"auxilaryPlacement\">\n <cometchat-ai-card [state]=\"smartReplyState\"\n *ngIf=\"showSmartReply && !showActionSheetItemAI && !showAiBotList\"\n slot=\"content\" [loadingStateText]=\"loadingStateText\"\n [emptyStateText]=\"emptyStateText\"\n [errorStateText]=\"errorStateText\">\n <div slot=\"loadedView\" class=\"smart-replies-wrapper\">\n\n <div class=\"cc-message-composer__smartreply-header\">\n <div class=\"cc-message-composer__back-button\">\n <cometchat-button\n *ngIf=\"repliesArray && repliesArray.length > 0 \"\n [iconURL]=\"backButtonIconURL\"\n (cc-button-clicked)=\"onAiBackButtonClick()\"\n [buttonStyle]=\"backButtonStyle()\">\n </cometchat-button>\n </div>\n <div class=\"cc-message-composer__smartreply-header-view\">\n <p>{{ localize(\"SUGGEST_A_REPLY\") }}</p>\n </div>\n </div>\n\n <div class=\"cc-message-composer__smartreply-content\">\n <smart-replies\n *ngIf=\"repliesArray && repliesArray.length > 0 \"\n [smartReplyStyle]=\"smartReplyStyle\" [replies]=\"repliesArray\"\n [closeIconURL]=\"''\" (cc-reply-clicked)=\"sendReply($event)\">\n </smart-replies>\n </div>\n\n\n\n\n\n </div>\n </cometchat-ai-card>\n\n <div *ngIf=\"showAiBotList && !showActionSheetItemAI\"\n slot=\"content\">\n <div class=\"cc-message-composer__aibotlist\">\n <cometchat-button *ngIf=\" aiBotList && aiBotList.length> 1 \"\n [iconURL]=\"backButtonIconURL\"\n (cc-button-clicked)=\"onAiBackButtonClick()\"\n [buttonStyle]=\"backButtonStyle()\">\n </cometchat-button>\n <p>{{ localize(\"COMETCHAT_ASK_AI_BOT\") }}</p>\n </div>\n <cometchat-action-sheet\n *ngIf=\"showAiBotList && !showActionSheetItemAI\" slot=\"content\"\n [actions]=\"aiActionButtons\" [title]=\"localize('AI')\"\n [actionSheetStyle]=\"aiActionSheetStyle\" [hideLayoutMode]=\"true\"\n (cc-actionsheet-clicked)=\"handleActions($event)\">\n </cometchat-action-sheet>\n </div>\n\n <cometchat-action-sheet *ngIf=\"showActionSheetItemAI\" slot=\"content\"\n [actions]=\"buttons\" [title]=\"localize('AI')\"\n [actionSheetStyle]=\"aiActionSheetStyle\" [hideLayoutMode]=\"true\"\n (cc-actionsheet-clicked)=\"handleActions($event)\">\n </cometchat-action-sheet>\n\n <cometchat-button *ngIf=\"isAiEnabled\" [hoverText]=\"localize('AI')\"\n slot=\"children\" #aiButtonRef\n (cc-button-clicked)=\"openAiFeatures($event)\"\n [iconURL]=\"!showAiFeatures ? aiIconURL : closeButtonIconURL\"\n [buttonStyle]=\"stickerButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n\n <div class=\"cc-message-composer__stickerkeyboard\"\n *ngIf=\"enableStickerKeyboard && !auxilaryButtonView\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [popoverStyle]=\"stickerPopover\" [placement]=\"auxilaryPlacement\">\n <stickers-keyboard slot=\"content\"\n [stickerStyle]=\"stickerKeyboardStyle\"\n (cc-sticker-clicked)=\"sendSticker($event)\">\n </stickers-keyboard>\n <cometchat-button [hoverText]=\"localize('STICKER')\" slot=\"children\"\n #stickerButtonRef\n (cc-button-clicked)=\"openStickerKeyboard($event)\"\n [iconURL]=\" !showStickerKeyboard ? stickerButtonIconURL : closeButtonIconURL\"\n [buttonStyle]=\"stickerButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n <div class=\"cc-message-composer__emojikeyboard\"\n *ngIf=\"!auxilaryButtonView\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [placement]=\"auxilaryPlacement\" [popoverStyle]=\"emojiPopover\">\n <cometchat-emoji-keyboard slot=\"content\"\n [emojiKeyboardStyle]=\"emojiKeyboardStyle\"\n (cc-emoji-clicked)=\"appendEmoji($event)\">\n </cometchat-emoji-keyboard>\n <cometchat-button #emojiButtonRef [hoverText]=\"localize('EMOJI')\"\n slot=\"children\" (cc-button-clicked)=\"openEmojiKeyboard($event)\"\n [iconURL]=\" !showEmojiKeyboard || (!showEmojiKeyboard && showActionSheetItem) ? emojiIconURL : closeButtonIconURL\"\n [buttonStyle]=\"emojiButtonStyle\"></cometchat-button>\n </cometchat-popover>\n </div>\n <div class=\"cc-message-composer__mediarecorder\"\n *ngIf=\"!hideVoiceRecording\">\n <cometchat-popover (cc-popover-outside-clicked)=\"handleOutsideClick()\"\n [popoverStyle]=\"mediaRecordedPopover\"\n [placement]=\"auxilaryPlacement\">\n\n <cometchat-media-recorder *ngIf=\"toggleMediaRecorded\"\n [autoRecording]=\"true\" startIconText=\"\" stopIconText=\"\"\n submitButtonIconText=\"\"\n [submitButtonIconURL]=\"voiceRecordingSubmitIconURL\"\n [startIconURL]=\"voiceRecordingStartIconURL\"\n [stopIconURL]=\"voiceRecordingStopIconURL\"\n [closeIconURL]=\"voiceRecordingCloseIconURL\"\n (cc-media-recorder-submitted)=\"sendRecordedMedia($event)\"\n (cc-media-recorder-closed)=\"closeMediaRecorder($event)\"\n slot=\"content\"\n [mediaPlayerStyle]=\"mediaRecorderStyle\"></cometchat-media-recorder>\n <cometchat-icon-button [hoverText]=\"localize('VOICE_RECORDING')\"\n slot=\"children\" #mediaRecordedRef\n (cc-button-clicked)=\"openMediaRecorded($event)\"\n [iconURL]=\" !toggleMediaRecorded ? voiceRecordingIconURL : closeButtonIconURL\"\n [buttonStyle]=\"mediaRecorderButtonStyle\"></cometchat-icon-button>\n </cometchat-popover>\n </div>\n </div>\n <div data-slot=\"primaryView\">\n <div *ngIf=\"sendButtonView;else sendButton\">\n <ng-container\n *ngTemplateOutlet=\"sendButtonView;context:{ item: user ?? group, composerId:composerId }\">\n </ng-container>\n </div>\n <ng-template #sendButton>\n <div class=\"cc-message-composer__sendbutton\"\n *ngIf=\"showSendButton || hideLiveReaction\">\n <cometchat-button [iconURL]=\"sendButtonIconURL\"\n [buttonStyle]=\"sendButtonStyle\"\n [hoverText]=\"localize('SEND_MESSAGE')\"\n [disabled]=\"!showSendButton\"\n (cc-button-clicked)=\"customSendMethod(messageText)\">\n </cometchat-button>\n </div>\n <div class=\"cc-message-composer__livereaction\"\n *ngIf=\"!hideLiveReaction && !showSendButton\">\n <cometchat-button [iconURL]=\"LiveReactionIconURL\"\n [hoverText]=\"localize('LIVE_REACTION')\"\n [buttonStyle]=\"liveReactionStyle\"\n (cc-button-clicked)=\"sendReaction()\"></cometchat-button>\n </div>\n </ng-template>\n </div>\n </cometchat-text-input>\n </div>\n</div>\n\n<input class=\"cc-message-composer__mediainput\" #inputElement\n (change)=\"inputChangeHandler($event)\" />\n<cometchat-backdrop *ngIf=\"showCreatePolls\" [backdropStyle]=\"backdropStyle\">\n <create-poll [user]=\"user\" [group]=\"group\"\n (cc-close-clicked)=\"closeCreatePolls()\"\n [createPollStyle]=\"createPollStyle\"></create-poll>\n</cometchat-backdrop>\n", styles: [".cc-message-composer__sendbutton,.cc-message-composer__livereaction{margin:0 5px}.cc-message-composer__wrapper{height:100%;width:100%;position:relative;padding:14px 16px}.cc-message-composer__header-view{height:-moz-fit-content;height:fit-content;width:100%;bottom:120%;padding:0 0 1px}.cc-message-composer__mediainput{display:none}.cc-message-composer__auxiliary{display:flex;gap:8px}.cc-message-composer__smartreply-header{width:100%;display:flex;align-items:center;position:absolute;padding:10px;top:0;z-index:1}.cc-message-composer__back-button{margin-left:2%}.cc-message-composer__smartreply-header-view{margin-left:14%}.cc-message-composer__smartreply-content{max-height:200px}.cc-message-composer__aibotlist{display:flex;padding:10px;align-items:center;gap:45px;font-size:medium}.cc-messagecomposer__mentions{max-height:196px;min-height:28px;overflow:hidden;position:absolute;width:100%;left:50%;transform:translate(-50%,-100%);z-index:2;display:flex;padding:0 16px 1px 14px;box-sizing:border-box}.cc-messagecomposer__mentions cometchat-user-member-wrapper{max-height:196px;min-height:28px;overflow:hidden;width:100%;box-sizing:border-box;min-height:45px}.cc-messagecomposer__mentions::-webkit-scrollbar{display:none}.cc-messagecomposer__mentions-limit-exceeded{margin-top:20px;left:2px;position:relative;padding-left:13px;background-color:#fff}*{box-sizing:border-box}cometchat-ai-card{height:100%;width:100%;display:flex;border-radius:8px;overflow-y:auto;justify-content:center;align-items:center}cometchat-popover{position:relative}\n"] }]
|
|
15380
15498
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: CometChatThemeService }]; }, propDecorators: { inputElementRef: [{
|
|
15381
15499
|
type: ViewChild,
|
|
15382
15500
|
args: ["inputElement", { static: false }]
|