@cometchat/chat-uikit-angular 4.2.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/Calls/CallingExtensionDecorator.d.ts +1 -1
  2. package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +31 -26
  3. package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +3 -3
  4. package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +24 -14
  5. package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +3 -2
  6. package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +84 -5
  7. package/CometChatMessageComposer/cometchat-message-composer.module.d.ts +2 -1
  8. package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +254 -49
  9. package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +1 -0
  10. package/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.d.ts +41 -0
  11. package/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.d.ts +11 -0
  12. package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +22 -12
  13. package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +1 -1
  14. package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +1 -1
  15. package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +1 -1
  16. package/Extensions/Stickers/StickersExtensionDecorator.d.ts +3 -3
  17. package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +1 -1
  18. package/README.md +7 -8
  19. package/Shared/CometChatUIkit/CometChatUIKit.d.ts +5 -4
  20. package/Shared/Framework/DataSource.d.ts +11 -4
  21. package/Shared/Framework/DataSourceDecorator.d.ts +10 -3
  22. package/Shared/Utils/MessageUtils.d.ts +99 -2
  23. package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.d.ts +2 -2
  24. package/assets/InfoSimpleIcon.svg +4 -0
  25. package/assets/message-delivered.svg +4 -3
  26. package/assets/message-read.svg +4 -3
  27. package/assets/threadIndicatorIcon.svg +11 -0
  28. package/esm2020/Calls/CallingExtensionDecorator.mjs +26 -13
  29. package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +1 -1
  30. package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +3 -3
  31. package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +280 -129
  32. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +3 -3
  33. package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +6 -8
  34. package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +155 -58
  35. package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +3 -3
  36. package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +11 -5
  37. package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +354 -64
  38. package/esm2020/CometChatMessageComposer/cometchat-message-composer.module.mjs +5 -4
  39. package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +3 -3
  40. package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +2 -2
  41. package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +780 -287
  42. package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +10 -4
  43. package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +3 -3
  44. package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +1 -1
  45. package/esm2020/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.mjs +75 -0
  46. package/esm2020/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.mjs +21 -0
  47. package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +114 -36
  48. package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +1 -1
  49. package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +18 -13
  50. package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +19 -13
  51. package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +10 -8
  52. package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +22 -18
  53. package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +62 -7
  54. package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +24 -9
  55. package/esm2020/Shared/Framework/DataSource.mjs +1 -1
  56. package/esm2020/Shared/Framework/DataSourceDecorator.mjs +24 -3
  57. package/esm2020/Shared/Utils/MessageUtils.mjs +250 -11
  58. package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.mjs +5 -4
  59. package/esm2020/public-api.mjs +4 -4
  60. package/fesm2015/cometchat-chat-uikit-angular.mjs +4325 -2831
  61. package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
  62. package/fesm2020/cometchat-chat-uikit-angular.mjs +4328 -2809
  63. package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
  64. package/package.json +6 -6
  65. package/public-api.d.ts +3 -3
  66. package/Extensions/Reactions/ReactionExtension.d.ts +0 -5
  67. package/Extensions/Reactions/ReactionExtensionDecorator.d.ts +0 -9
  68. package/esm2020/Extensions/Reactions/ReactionExtension.mjs +0 -12
  69. package/esm2020/Extensions/Reactions/ReactionExtensionDecorator.mjs +0 -31
package/README.md CHANGED
@@ -4,17 +4,15 @@
4
4
  <br>
5
5
  <div align="center">Full-fledged Chat UIKit built with <a href="https://angular.io/">Angular</a>. </div>
6
6
  <div align="center">
7
- <a href="https://www.cometchat.com/docs/v4/angular-uikit/overview"><strong>Explore CometChat docs »</strong></a>
7
+ <a href="https://www.cometchat.com/docs/angular-uikit-beta/overview"><strong>Explore CometChat docs »</strong></a>
8
8
  </div>
9
9
  <br />
10
10
  <br />
11
11
 
12
12
 
13
-
14
-
15
13
  ## Table of contents
16
14
  - [About the project](#about-the-project)
17
- - [Built With](#built-with)
15
+ - [Prerequisites](#prerequisites)
18
16
  - [Getting Started](#getting-started)
19
17
  - [Dependencies](#dependencies)
20
18
  - [Versioning](#versioning)
@@ -27,15 +25,16 @@
27
25
  ## About the project
28
26
  CometChat Angular UIKit provides pre-built user interface kit that developers can use to quickly integrate a reliable & fully featured chat experience into an existing or a new app.<br />
29
27
 
30
- ### Built With
31
- - Angular 13.3.3
28
+ ### Prerequisites
29
+ - npm >= 7.
30
+ - Angular >= 12.
32
31
 
33
32
  ## Getting Started
34
33
  To set up Angular Chat UIKit and utilize CometChat for your chat functionality, you'll need to follow these steps:
35
34
  - Registration: Go to the CometChat website (https://www.cometchat.com/) and sign up for an account.
36
35
  - Create an App: After registering, log in to your CometChat account and create a new app. Provide the necessary details such as the app name, platform (Angular), and other relevant information. Once you've created the app, CometChat will generate an Auth Key and App ID for you. Make sure to keep these credentials secure, as you'll need them later.
37
- - Make sure you've read the [key concepts](https://www.cometchat.com/docs/v4/angular-uikit/key-concepts)
38
- - Follow the steps provided in the integration section [here](https://www.cometchat.com/docs/v4/angular-uikit/integration#getting-started)
36
+ - Make sure you've read the [key concepts](https://www.cometchat.com/docs/angular-uikit-beta/key-concepts)
37
+ - Follow the steps provided in the integration section [here](https://www.cometchat.com/docs/angular-uikit-beta/integration#getting-started)
39
38
 
40
39
 
41
40
  ## Versioning
@@ -7,6 +7,7 @@ export declare class CometChatUIKit {
7
7
  static uiKitSettings: UIKitSettings;
8
8
  static SoundManager: typeof CometChatSoundManager;
9
9
  static Localize: typeof CometChatLocalize;
10
+ static loggedInUser?: CometChat.User;
10
11
  static getDataSource(): import("@cometchat/chat-uikit-angular").DataSource;
11
12
  static init(uiKitSettings: UIKitSettings): Promise<Object> | undefined;
12
13
  static getLoggedinUser(): Promise<CometChat.User> | undefined;
@@ -34,9 +35,9 @@ export declare class CometChatUIKit {
34
35
  static sendTextMessage(message: CometChat.TextMessage): Promise<CometChat.BaseMessage>;
35
36
  static sendMediaMessage(message: CometChat.MediaMessage): Promise<CometChat.BaseMessage>;
36
37
  /**
37
- * Sends a scheduler message and emits events based on the message status.
38
- * @param message - The scheduler message to be sent.
39
- * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.
40
- */
38
+ * Sends a scheduler message and emits events based on the message status.
39
+ * @param message - The scheduler message to be sent.
40
+ * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.
41
+ */
41
42
  static sendSchedulerMessage(message: SchedulerMessage, disableLocalEvents?: boolean): void;
42
43
  }
@@ -1,6 +1,6 @@
1
- import { CometChatActionsView, CometChatMessageComposerAction, CometChatMessageOption, CometChatMessageTemplate, CometChatTheme } from "@cometchat/uikit-resources";
1
+ import { CometChatActionsView, CometChatMessageComposerAction, CometChatMessageOption, CometChatMessageTemplate, CometChatTheme, MentionsTargetElement } from "@cometchat/uikit-resources";
2
2
  import { ComposerId } from "../Utils/MessageUtils";
3
- import { AIOptionsStyle } from "@cometchat/uikit-shared";
3
+ import { AIOptionsStyle, CometChatMentionsTextFormatter, CometChatTextFormatter, CometChatUrlTextFormatter } from "@cometchat/uikit-shared";
4
4
  export declare abstract class DataSource {
5
5
  abstract getTextMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group): Array<CometChatMessageOption>;
6
6
  abstract getImageMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group): Array<CometChatMessageOption>;
@@ -12,9 +12,9 @@ export declare abstract class DataSource {
12
12
  abstract getVideoMessageTemplate(): CometChatMessageTemplate;
13
13
  abstract getAudioMessageTemplate(): CometChatMessageTemplate;
14
14
  abstract getFileMessageTemplate(): CometChatMessageTemplate;
15
- abstract getGroupActionTemplate(): CometChatMessageTemplate;
16
15
  abstract getFormMessageTemplate(): CometChatMessageTemplate;
17
16
  abstract getCardMessageTemplate(): CometChatMessageTemplate;
17
+ abstract getGroupActionTemplate(): CometChatMessageTemplate;
18
18
  abstract getSchedulerMessageTemplate(): CometChatMessageTemplate;
19
19
  abstract getAllMessageTemplates(theme?: CometChatTheme): Array<CometChatMessageTemplate>;
20
20
  abstract getMessageTemplate(messageType: string, messageCategory: string): CometChatMessageTemplate | null;
@@ -25,9 +25,16 @@ export declare abstract class DataSource {
25
25
  abstract getAllMessageCategories(): Array<string>;
26
26
  abstract getAuxiliaryOptions(id: ComposerId, user?: CometChat.User, group?: CometChat.Group): any;
27
27
  abstract getId(): string;
28
- abstract getLastConversationMessage(conversation: CometChat.Conversation, loggedInUser: CometChat.User): string;
28
+ abstract getLastConversationMessage(conversation: CometChat.Conversation, loggedInUser: CometChat.User, additionalParams?: any): string;
29
29
  abstract getDeleteOption(theme: CometChatTheme): CometChatMessageOption;
30
30
  abstract getReplyInThreadOption(theme: CometChatTheme): CometChatMessageOption;
31
31
  abstract getEditOption(theme: CometChatTheme): CometChatMessageOption;
32
32
  abstract getAIOptions(theme: CometChatTheme, id?: Map<String, any>, aiOptionsStyles?: AIOptionsStyle): (CometChatMessageComposerAction | CometChatActionsView)[];
33
+ abstract getAllTextFormatters(formatterParams: any): CometChatTextFormatter[];
34
+ abstract getMentionsTextFormatter(formatterParams: any): CometChatMentionsTextFormatter;
35
+ abstract getUrlTextFormatter(formatterParams: any): CometChatUrlTextFormatter;
36
+ abstract getMentionsFormattedText(message: CometChat.TextMessage, subtitle: string, mentionsFormatterParams: {
37
+ mentionsTargetElement: MentionsTargetElement;
38
+ theme: CometChatTheme;
39
+ }): string;
33
40
  }
@@ -1,7 +1,7 @@
1
- import { CometChatActionsView, CometChatMessageComposerAction, CometChatMessageOption, CometChatMessageTemplate, CometChatTheme } from "@cometchat/uikit-resources";
1
+ import { CometChatActionsView, CometChatMessageComposerAction, CometChatMessageOption, CometChatMessageTemplate, CometChatTheme, MentionsTargetElement } from "@cometchat/uikit-resources";
2
2
  import { DataSource } from "./DataSource";
3
3
  import { ComposerId } from "../Utils/MessageUtils";
4
- import { AIOptionsStyle } from "@cometchat/uikit-shared";
4
+ import { AIOptionsStyle, CometChatMentionsTextFormatter, CometChatTextFormatter, CometChatUrlTextFormatter } from "@cometchat/uikit-shared";
5
5
  export declare abstract class DataSourceDecorator implements DataSource {
6
6
  dataSource: DataSource;
7
7
  constructor(dataSource: DataSource);
@@ -31,6 +31,13 @@ export declare abstract class DataSourceDecorator implements DataSource {
31
31
  getAllMessageCategories(): string[];
32
32
  getAuxiliaryOptions(id: ComposerId, user?: CometChat.User, group?: CometChat.Group): any;
33
33
  getId(): string;
34
- getLastConversationMessage(conversation: CometChat.Conversation, loggedInUser: CometChat.User): string;
34
+ getLastConversationMessage(conversation: CometChat.Conversation, loggedInUser: CometChat.User, additionalParams?: any): string;
35
35
  getAIOptions(theme: CometChatTheme, id?: Map<String, any>, aiOptionsStyles?: AIOptionsStyle): (CometChatMessageComposerAction | CometChatActionsView)[];
36
+ getAllTextFormatters(formatterParams: any): CometChatTextFormatter[];
37
+ getMentionsTextFormatter(formatterParams: any): CometChatMentionsTextFormatter;
38
+ getUrlTextFormatter(formatterParams: any): CometChatUrlTextFormatter;
39
+ getMentionsFormattedText(message: CometChat.TextMessage, subtitle: string, mentionsFormatterParams: {
40
+ mentionsTargetElement: MentionsTargetElement;
41
+ theme: CometChatTheme;
42
+ }): string;
36
43
  }
@@ -1,17 +1,100 @@
1
- import { CometChatMessageOption, MessageBubbleAlignment, CometChatMessageTemplate, CometChatMessageComposerAction, CometChatTheme, CometChatActionsView } from "@cometchat/uikit-resources";
1
+ import { CometChatMessageOption, MessageBubbleAlignment, CometChatMessageTemplate, CometChatMessageComposerAction, CometChatTheme, CometChatActionsView, MentionsTargetElement } from "@cometchat/uikit-resources";
2
+ import { CometChatMentionsTextFormatter, CometChatTextFormatter, CometChatUrlTextFormatter } from "@cometchat/uikit-shared";
2
3
  import { DataSource } from "../Framework/DataSource";
3
4
  export declare class MessageUtils implements DataSource {
5
+ /**
6
+ * Creates an option to edit message.
7
+ * @param {CometChatTheme} theme - The theme object.
8
+ * @return {CometChatMessageOption} - Returns a new message option.
9
+ */
4
10
  getEditOption(theme: CometChatTheme): CometChatMessageOption;
11
+ /**
12
+ * Creates an option to react to a message.
13
+ * @param {CometChatTheme} theme - The theme object.
14
+ * @return {CometChatMessageOption} - Returns a new message option.
15
+ */
16
+ getReactionOption(theme: CometChatTheme): CometChatMessageOption;
17
+ /**
18
+ * Creates an option to get info about a message.
19
+ * @param {CometChatTheme} theme - The theme object.
20
+ * @return {CometChatMessageOption} - Returns a new message option.
21
+ */
5
22
  getMessageInfoOption(theme: CometChatTheme): CometChatMessageOption;
23
+ /**
24
+ * Creates an option to send a private message.
25
+ * @param {CometChatTheme} theme - The theme object.
26
+ * @return {CometChatMessageOption} - Returns a new message option.
27
+ */
6
28
  getMessagePrivatelyOption(theme: CometChatTheme): CometChatMessageOption;
29
+ /**
30
+ * Creates an option to delete a message.
31
+ * @param {CometChatTheme} theme - The theme object.
32
+ * @return {CometChatMessageOption} - Returns a new message option.
33
+ */
7
34
  getDeleteOption(theme: CometChatTheme): CometChatMessageOption;
35
+ /**
36
+ * Creates an option to reply to a message in a thread.
37
+ * @param {CometChatTheme} theme - The theme object.
38
+ * @return {CometChatMessageOption} - Returns a new message option.
39
+ */
8
40
  getReplyInThreadOption(theme: CometChatTheme): CometChatMessageOption;
41
+ /**
42
+ * Creates an option to copy a message.
43
+ * @param {CometChatTheme} theme - The theme object.
44
+ * @return {CometChatMessageOption} - Returns a new message option.
45
+ */
9
46
  getCopyOption(theme: CometChatTheme): CometChatMessageOption;
47
+ /**
48
+ * Checks if a message is sent by current logged in user.
49
+ * @param {CometChat.User} loggedInUser - The current logged in user.
50
+ * @param {CometChat.BaseMessage} message - The message to check.
51
+ * @return {boolean} - Returns true if message is sent by current logged in user, otherwise false.
52
+ */
10
53
  isSentByMe(loggedInUser: CometChat.User, message: CometChat.BaseMessage): boolean;
54
+ /**
55
+ * Fetches options for text messages.
56
+ * @param {CometChat.User} loggedInUser - The current logged in user.
57
+ * @param {CometChat.BaseMessage} messageObject - The message object.
58
+ * @param {CometChatTheme} theme - The theme object.
59
+ * @param {CometChat.Group} group - The group object.
60
+ * @return {Array<CometChatMessageOption>} - Returns an array of message options.
61
+ */
11
62
  getTextMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group): Array<CometChatMessageOption>;
63
+ /**
64
+ * Fetches options for image messages.
65
+ * @param {CometChat.User} loggedInUser - The current logged in user.
66
+ * @param {CometChat.BaseMessage} messageObject - The message object.
67
+ * @param {CometChatTheme} theme - The theme object.
68
+ * @param {CometChat.Group} group - The group object.
69
+ * @return {Array<CometChatMessageOption>} - Returns an array of message options.
70
+ */
12
71
  getImageMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group): Array<CometChatMessageOption>;
72
+ /**
73
+ * Fetches options for video messages.
74
+ * @param {CometChat.User} loggedInUser - The current logged in user.
75
+ * @param {CometChat.BaseMessage} messageObject - The message object.
76
+ * @param {CometChatTheme} theme - The theme object.
77
+ * @param {CometChat.Group} group - (Optional) The group object.
78
+ * @return {Array<CometChatMessageOption>} - Returns an array of message options.
79
+ */
13
80
  getVideoMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group): Array<CometChatMessageOption>;
81
+ /**
82
+ * Fetches options for audio messages.
83
+ * @param {CometChat.User} loggedInUser - The current logged in user.
84
+ * @param {CometChat.BaseMessage} messageObject - The message object.
85
+ * @param {CometChatTheme} theme - The theme object.
86
+ * @param {CometChat.Group} group - (Optional) The group object.
87
+ * @return {Array<CometChatMessageOption>} - Returns an array of message options.
88
+ */
14
89
  getAudioMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group): Array<CometChatMessageOption>;
90
+ /**
91
+ * Fetches options for file messages.
92
+ * @param {CometChat.User} loggedInUser - The current logged in user.
93
+ * @param {CometChat.BaseMessage} messageObject - The message object.
94
+ * @param {CometChatTheme} theme - The theme object.
95
+ * @param {CometChat.Group} group - (Optional) The group object.
96
+ * @return {Array<CometChatMessageOption>} - Returns an array of message options.
97
+ */
15
98
  getFileMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group): Array<CometChatMessageOption>;
16
99
  getBottomView(_messageObject: CometChat.BaseMessage, _alignment: MessageBubbleAlignment): null;
17
100
  getSchedulerMessageTemplate(): CometChatMessageTemplate;
@@ -38,8 +121,22 @@ export declare class MessageUtils implements DataSource {
38
121
  audioAttachmentOption(theme: CometChatTheme): CometChatMessageComposerAction;
39
122
  fileAttachmentOption(theme: CometChatTheme): CometChatMessageComposerAction;
40
123
  getAttachmentOptions(theme: CometChatTheme, user?: CometChat.User, group?: CometChat.Group, id?: ComposerId): CometChatMessageComposerAction[];
41
- getLastConversationMessage(conversation: CometChat.Conversation, loggedInUser: CometChat.User): string;
124
+ getLastConversationMessage(conversation: CometChat.Conversation, loggedInUser: CometChat.User, additionalConfigurations: any): string;
125
+ /**
126
+ * Adds styled @ for every mention in the text by matching uid
127
+ *
128
+ * @param {CometChat.TextMessage} message
129
+ * @param {string} subtitle
130
+ * @returns {void}
131
+ */
132
+ getMentionsFormattedText(message: CometChat.TextMessage, subtitle: string, mentionsFormatterParams: {
133
+ mentionsTargetElement: MentionsTargetElement;
134
+ theme: CometChatTheme;
135
+ }): string;
42
136
  getAIOptions(theme: CometChatTheme, id?: Map<String, any>): Array<CometChatMessageComposerAction | CometChatActionsView>;
137
+ getAllTextFormatters(formatterParams: any): CometChatTextFormatter[];
138
+ getMentionsTextFormatter(params: any): CometChatMentionsTextFormatter;
139
+ getUrlTextFormatter(params?: any): CometChatUrlTextFormatter;
43
140
  }
44
141
  export declare type ComposerId = {
45
142
  parentMessageId: number | null;
@@ -1,7 +1,7 @@
1
1
  import { CometChatThemeService } from "./../../../../CometChatTheme.service";
2
2
  import { CometChatException } from "@cometchat/chat-sdk-javascript";
3
3
  import { OnInit, TemplateRef, ChangeDetectorRef, ElementRef } from "@angular/core";
4
- import { AvatarStyle, MessageInputStyle, DateStyle } from "@cometchat/uikit-elements";
4
+ import { AvatarStyle, TextInputStyle, DateStyle } from "@cometchat/uikit-elements";
5
5
  import { CometChatMessageTemplate, MessageListAlignment, MessageBubbleAlignment, DatePatterns } from "@cometchat/uikit-resources";
6
6
  import { BaseStyle } from "@cometchat/uikit-shared";
7
7
  import { Subscription } from "rxjs";
@@ -51,7 +51,7 @@ export declare class AIAssistBotMessageListComponent implements OnInit {
51
51
  handleClick(): void;
52
52
  setMessageBubbleStyle(msg: CometChat.BaseMessage): BaseStyle;
53
53
  getBubbleAlignment(message: CometChat.BaseMessage): MessageBubbleAlignment.left | MessageBubbleAlignment.right;
54
- messageInputStyle: MessageInputStyle;
54
+ textInputStyle: TextInputStyle;
55
55
  sendButtonStyle: any;
56
56
  messageInputChanged: (event: any) => void;
57
57
  closeButtonStyle: any;
@@ -0,0 +1,4 @@
1
+ <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M30.0001 0.666626C46.2004 0.666626 59.3334 13.7996 59.3334 30C59.3334 46.2003 46.2004 59.3333 30.0001 59.3333C13.7997 59.3333 0.666748 46.2003 0.666748 30C0.666748 13.7996 13.7997 0.666626 30.0001 0.666626ZM30.0001 5.99996C16.7452 5.99996 6.00008 16.7451 6.00008 30C6.00008 43.2548 16.7452 54 30.0001 54C43.2549 54 54.0001 43.2548 54.0001 30C54.0001 16.7451 43.2549 5.99996 30.0001 5.99996ZM31.6667 27.3333C32.219 27.3333 32.6667 27.781 32.6667 28.3333V42.3333C32.6667 42.8856 32.219 43.3333 31.6667 43.3333H28.3334C27.7811 43.3333 27.3334 42.8856 27.3334 42.3333V28.3333C27.3334 27.781 27.7811 27.3333 28.3334 27.3333H31.6667ZM30.0001 19.3333C31.4728 19.3333 32.6667 20.5272 32.6667 22C32.6667 23.4727 31.4728 24.6666 30.0001 24.6666C28.5273 24.6666 27.3334 23.4727 27.3334 22C27.3334 20.5272 28.5273 19.3333 30.0001 19.3333Z" fill="black"/>
3
+ </svg>
4
+
@@ -1,4 +1,5 @@
1
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <line y1="-0.75" x2="12.5391" y2="-0.75" transform="matrix(-0.641971 0.766729 -0.836709 -0.547648 19 7.38586)" stroke="#808080" stroke-width="1.5"/>
3
- <path d="M16.6377 7L8.87922 16.3095L5 13.3697" stroke="#808080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1
+ <svg width="14" height="12" viewBox="0 0 14 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g opacity="0.8">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M9.15147 3.15262C9.32528 2.93804 9.29224 2.62319 9.07766 2.44938C8.86308 2.27557 8.54822 2.30861 8.37441 2.52319L3.61414 8.39998L1.626 6.42494C1.4301 6.23032 1.11352 6.23137 0.918901 6.42727C0.724285 6.62318 0.725331 6.93976 0.921238 7.13438L3.30197 9.49942C3.40229 9.59908 3.54012 9.6516 3.68131 9.64398C3.82251 9.63635 3.95388 9.5693 4.04289 9.45942L9.15147 3.15262ZM13.0814 3.16663C13.263 2.95855 13.2415 2.6427 13.0334 2.46115C12.8253 2.27961 12.5095 2.30111 12.3279 2.50919L7.17358 8.41667L6.74794 7.99934C6.55077 7.80601 6.2342 7.80912 6.04087 8.0063C5.84754 8.20348 5.85066 8.52004 6.04783 8.71337L6.85187 9.50172C6.95016 9.59809 7.08383 9.64968 7.22138 9.64433C7.35892 9.63897 7.48818 9.57715 7.57868 9.47343L13.0814 3.16663Z" fill="#9C9CA3"/>
4
+ </g>
4
5
  </svg>
@@ -1,4 +1,5 @@
1
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <line y1="-0.75" x2="12.5391" y2="-0.75" transform="matrix(-0.641971 0.766729 -0.836709 -0.547648 19 7.38586)" stroke="#39f" stroke-width="1.5"/>
3
- <path d="M16.6377 7L8.87922 16.3095L5 13.3697" stroke="#39f" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1
+ <svg width="14" height="12" viewBox="0 0 14 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g opacity="0.8">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M9.15147 3.15262C9.32528 2.93804 9.29224 2.62319 9.07766 2.44938C8.86308 2.27557 8.54822 2.30861 8.37441 2.52319L3.61414 8.39998L1.626 6.42494C1.4301 6.23032 1.11352 6.23137 0.918901 6.42727C0.724285 6.62318 0.725331 6.93976 0.921238 7.13438L3.30197 9.49942C3.40229 9.59908 3.54012 9.6516 3.68131 9.64398C3.82251 9.63635 3.95388 9.5693 4.04289 9.45942L9.15147 3.15262ZM13.0814 3.16663C13.263 2.95855 13.2415 2.6427 13.0334 2.46115C12.8253 2.27961 12.5095 2.30111 12.3279 2.50919L7.17358 8.41667L6.74794 7.99934C6.55077 7.80601 6.2342 7.80912 6.04087 8.0063C5.84754 8.20348 5.85066 8.52004 6.04783 8.71337L6.85187 9.50172C6.95016 9.59809 7.08383 9.64968 7.22138 9.64433C7.35892 9.63897 7.48818 9.57715 7.57868 9.47343L13.0814 3.16663Z" fill="#9C9CA3"/>
4
+ </g>
4
5
  </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_10800_33331)">
3
+ <path d="M1.0094 1.69617C1.17601 4.12358 2.25988 6.39667 4.04108 8.05423C5.82227 9.71179 8.16737 10.6296 10.6005 10.6215C10.7625 10.6215 11.1504 10.6297 11.312 10.6215H13.9636" stroke="#A1A5AC" stroke-width="1.875" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M10.7959 7.43042L13.9906 10.6251L10.7959 13.8198" stroke="#A1A5AC" stroke-width="1.875" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </g>
6
+ <defs>
7
+ <clipPath id="clip0_10800_33331">
8
+ <rect width="15" height="15" fill="white"/>
9
+ </clipPath>
10
+ </defs>
11
+ </svg>
@@ -1,6 +1,6 @@
1
1
  import { CometChat } from "@cometchat/chat-sdk-javascript";
2
- import { CometChatUIKitConstants, CometChatMessageTemplate, localize } from "@cometchat/uikit-resources";
3
- import { CallingDetailsUtils } from "@cometchat/uikit-shared";
2
+ import { CometChatUIKitConstants, CometChatMessageTemplate, localize, } from "@cometchat/uikit-resources";
3
+ import { CallingDetailsUtils, } from "@cometchat/uikit-shared";
4
4
  import { ChatConfigurator } from "../Shared/Framework/ChatConfigurator";
5
5
  import { DataSourceDecorator } from "../Shared/Framework/DataSourceDecorator";
6
6
  export class CallingExtensionDecorator extends DataSourceDecorator {
@@ -23,7 +23,7 @@ export class CallingExtensionDecorator extends DataSourceDecorator {
23
23
  },
24
24
  logoutFailure: (error) => {
25
25
  console.log("LoginListener :: logoutFailure", error);
26
- }
26
+ },
27
27
  }));
28
28
  }
29
29
  getAllMessageTypes() {
@@ -53,10 +53,10 @@ export class CallingExtensionDecorator extends DataSourceDecorator {
53
53
  return categories;
54
54
  }
55
55
  checkIfTemplateTypeExist(template, type) {
56
- return template.some(obj => obj.type === type);
56
+ return template.some((obj) => obj.type === type);
57
57
  }
58
58
  checkIfTemplateCategoryExist(template, category) {
59
- return template.some(obj => obj.category === category);
59
+ return template.some((obj) => obj.category === category);
60
60
  }
61
61
  getAllMessageTemplates() {
62
62
  const templates = super.getAllMessageTemplates();
@@ -74,7 +74,7 @@ export class CallingExtensionDecorator extends DataSourceDecorator {
74
74
  category: CometChatUIKitConstants.MessageCategory.custom,
75
75
  options: (loggedInUser, messageObject, theme, group) => {
76
76
  return ChatConfigurator.getDataSource().getCommonOptions(loggedInUser, messageObject, theme, group);
77
- }
77
+ },
78
78
  });
79
79
  }
80
80
  getDefaultCallTemplate() {
@@ -86,29 +86,42 @@ export class CallingExtensionDecorator extends DataSourceDecorator {
86
86
  new CometChatMessageTemplate({
87
87
  type: CometChatUIKitConstants.MessageTypes.video,
88
88
  category: CometChatUIKitConstants.MessageCategory.call,
89
- })
89
+ }),
90
90
  ];
91
91
  return templates;
92
92
  }
93
- getLastConversationMessage(conversation, loggedInUser) {
93
+ getLastConversationMessage(conversation, loggedInUser, additionalParams) {
94
94
  let actionMessage = "";
95
- if (conversation.getLastMessage() && conversation.getLastMessage().category == CometChatUIKitConstants.MessageCategory.call) {
95
+ if (conversation.getLastMessage() &&
96
+ conversation.getLastMessage().category ==
97
+ CometChatUIKitConstants.MessageCategory.call) {
96
98
  let call = conversation.getLastMessage();
97
99
  actionMessage = CallingDetailsUtils.getCallStatus(call, loggedInUser);
98
100
  }
99
- else if (conversation?.getLastMessage() && conversation.getLastMessage().type == CometChatUIKitConstants.calls.meeting) {
101
+ else if (conversation?.getLastMessage() &&
102
+ conversation.getLastMessage().type ==
103
+ CometChatUIKitConstants.calls.meeting) {
100
104
  let message = conversation.getLastMessage();
101
- if (!message.getSender() || message?.getSender()?.getUid() == loggedInUser.getUid()) {
105
+ if (!message.getSender() ||
106
+ message?.getSender()?.getUid() == loggedInUser.getUid()) {
102
107
  actionMessage = localize("YOU_INITIATED_GROUP_CALL");
103
108
  }
104
109
  else {
105
110
  actionMessage = `${message.getSender().getName()} ${localize("INITIATED_GROUP_CALL")}`;
106
111
  }
112
+ let messageObject = conversation.getLastMessage();
113
+ if (messageObject &&
114
+ messageObject.getMentionedUsers().length &&
115
+ messageObject instanceof CometChat.TextMessage &&
116
+ additionalParams &&
117
+ !additionalParams.disableMentions) {
118
+ actionMessage = this.getMentionsFormattedText(messageObject, actionMessage, additionalParams);
119
+ }
107
120
  }
108
121
  else {
109
- actionMessage = super.getLastConversationMessage(conversation, loggedInUser);
122
+ actionMessage = super.getLastConversationMessage(conversation, loggedInUser, additionalParams);
110
123
  }
111
124
  return actionMessage;
112
125
  }
113
126
  }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFrRCxRQUFRLEVBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUNySyxPQUFPLEVBQUUsbUJBQW1CLEVBQXNFLE1BQU0seUJBQXlCLENBQUM7QUFDbEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHOUUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG1CQUFtQjtJQUM5RCxZQUFZLFVBQXNCO1FBQzlCLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbEIsQ0FBQztJQUNELHFDQUFxQztJQUNyQyxRQUFRO1FBQ04sSUFBSSxVQUFVLEdBQVcsaUJBQWlCLENBQUM7UUFDM0MsU0FBUyxDQUFDLGdCQUFnQixDQUMxQixVQUFVLEVBQ1YsSUFBSSxTQUFTLENBQUMsYUFBYSxDQUFDO1lBQzFCLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ25CLElBQUksSUFBSSxHQUFtQixTQUFTLENBQUMsYUFBYSxFQUFFLENBQUE7Z0JBQ2pELElBQUcsSUFBSSxFQUFDO29CQUNOLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7aUJBRXZDO3FCQUNHO29CQUNGLE9BQU07aUJBQ1A7WUFDTCxDQUFDO1lBQ0QsYUFBYSxFQUFFLENBQUMsS0FBbUMsRUFBRSxFQUFF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LE9BQU8sRUFBQztZQUN0SCxJQUFJLE9BQU8sR0FBMkIsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQ25FLElBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBQztnQkFDakYsYUFBYSxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO2FBQ3JEO2lCQUNJO2dCQUNILGFBQWEsR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFBO2FBQ3hGO1NBRUY7YUFDRztZQUNGLGFBQWEsR0FBRyxLQUFLLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsT0FBTyxhQUFhLENBQUE7SUFFckIsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSwgQ29tZXRDaGF0VGhlbWUsIENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiwgbG9jYWxpemUsIGZvbnRIZWxwZXIgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENhbGxpbmdEZXRhaWxzVXRpbHMsIENvbGxhYm9yYXRpdmVEb2N1bWVudENvbmZpZ3VyYXRpb24sIENvbGxhYm9yYXRpdmVEb2N1bWVudENvbnN0YW50cyB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZFwiO1xuaW1wb3J0IHsgQ2hhdENvbmZpZ3VyYXRvciB9IGZyb20gXCIuLi9TaGFyZWQvRnJhbWV3b3JrL0NoYXRDb25maWd1cmF0b3JcIjtcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vU2hhcmVkL0ZyYW1ld29yay9EYXRhU291cmNlXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlRGVjb3JhdG9yIH0gZnJvbSBcIi4uL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZURlY29yYXRvclwiO1xuaW1wb3J0IHsgIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5cbmV4cG9ydCBjbGFzcyBDYWxsaW5nRXh0ZW5zaW9uRGVjb3JhdG9yIGV4dGVuZHMgRGF0YVNvdXJjZURlY29yYXRvciB7XG4gICAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkge1xuICAgICAgICBzdXBlcihkYXRhU291cmNlKTtcbiAgICAgICB0aGlzLm9uTG9nb3V0KClcbiAgICB9XG4gICAgLy8gZW5kIGFjdGl2ZSBjYWxsIHdoZW4gdXNlciBsb2dzIG91dFxuICAgIG9uTG9nb3V0KCl7XG4gICAgICB2YXIgbGlzdGVuZXJJRDogc3RyaW5nID0gXCJsb2dvdXRfbGlzdGVuZXJcIjtcbiAgICAgIENvbWV0Q2hhdC5hZGRMb2dpbkxpc3RlbmVyKFxuICAgICAgbGlzdGVuZXJJRCxcbiAgICAgIG5ldyBDb21ldENoYXQuTG9naW5MaXN0ZW5lcih7XG4gICAgICAgIGxvZ291dFN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgIGxldCBjYWxsOkNvbWV0Q2hhdC5DYWxsID0gIENvbWV0Q2hhdC5nZXRBY3RpdmVDYWxsKClcbiAgICAgICAgICAgIGlmKGNhbGwpe1xuICAgICAgICAgICAgICBDb21ldENoYXQuZW5kQ2FsbChjYWxsLmdldFNlc3Npb25JZCgpKVxuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9nb3V0RmFpbHVyZTogKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkxvZ2luTGlzdGVuZXIgOjogbG9nb3V0RmFpbHVyZVwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9KVxuKTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0QWxsTWVzc2FnZVR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgdHlwZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlVHlwZXMoKTtcbiAgICAgICAgaWYgKCF0eXBlcy5pbmNsdWRlcyggQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMubWVldGluZykpIHtcbiAgICAgICAgICAgIHR5cGVzLnB1c2goIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZXMuaW5jbHVkZXMoQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmF1ZGlvKSkge1xuICAgICAgICAgICAgdHlwZXMucHVzaChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZXMuaW5jbHVkZXMoQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvKSkge1xuICAgICAgICAgICAgdHlwZXMucHVzaChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW8pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiY2FsbGluZ1wiO1xuICAgICAgfVxuICAgIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VDYXRlZ29yaWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IHN1cGVyLmdldEFsbE1lc3NhZ2VDYXRlZ29yaWVzKCk7XG4gICAgICAgIGlmICghY2F0ZWdvcmllcy5pbmNsdWRlcyhDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbCkpIHtcbiAgICAgICAgICAgIGNhdGVnb3JpZXMucHVzaChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjYXRlZ29yaWVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pKSB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmN1c3RvbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhdGVnb3JpZXM7XG4gICAgfVxuICAgIGNoZWNrSWZUZW1wbGF0ZVR5cGVFeGlzdCh0ZW1wbGF0ZTpDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXSwgdHlwZTpzdHJpbmcpOmJvb2xlYW57XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5zb21lKG9iaiA9PiBvYmoudHlwZSA9PT0gdHlwZSlcbiAgICAgIH1cbiAgICAgIGNoZWNrSWZUZW1wbGF0ZUNhdGVnb3J5RXhpc3QodGVtcGxhdGU6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10sIGNhdGVnb3J5OnN0cmluZyk6Ym9vbGVhbntcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlLnNvbWUob2JqID0+IG9iai5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkpXG4gICAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0QWxsTWVzc2FnZVRlbXBsYXRlcygpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXSB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IHN1cGVyLmdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTtcbiAgICAgICAgaWYoIXRoaXMuY2hlY2tJZlRlbXBsYXRlVHlwZUV4aXN0KHRlbXBsYXRlcywgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMubWVldGluZykpe1xuICAgICAgICAgICAgIHRlbXBsYXRlcy5wdXNoKHRoaXMuZ2V0RGlyZWN0Q2FsbFRlbXBsYXRlKCkpXG4gICAgICAgICAgIH1cbiAgICAgICAgICAgaWYoIXRoaXMuY2hlY2tJZlRlbXBsYXRlQ2F0ZWdvcnlFeGlzdCh0ZW1wbGF0ZXMsQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpKXtcbiAgICAgICAgICAgIHRlbXBsYXRlcy5wdXNoKC4uLnRoaXMuZ2V0RGVmYXVsdENhbGxUZW1wbGF0ZSgpKVxuICAgICAgICAgIH1cbiAgICAgICAgICAgICByZXR1cm4gdGVtcGxhdGVzXG5cbiAgICB9XG4gICAgZ2V0RGlyZWN0Q2FsbFRlbXBsYXRlKCk6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRle1xuICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcsXG4gICAgICBjYXRlZ29yeTpDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY3VzdG9tLFxuICAgICAgb3B0aW9uczogKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk9PntcbiAgICAgICAgcmV0dXJuIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldENvbW1vbk9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApXG4gICAgICAgfVxuICAgIH0pXG4gICAgfVxuICAgIGdldERlZmF1bHRDYWxsVGVtcGxhdGUoKTpDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXXtcbiAgICAgIGxldCB0ZW1wbGF0ZXM6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10gPSBbXG4gICAgICAgIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTpDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8gLFxuICAgICAgICAgICAgY2F0ZWdvcnk6Q29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICAgICAgICB0eXBlOkNvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbyxcbiAgICAgICAgICAgIGNhdGVnb3J5OkNvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsLFxuICAgICAgICAgIH0pXG5cbiAgICAgIF1cbiAgICAgIHJldHVybiB0ZW1wbGF0ZXNcbiAgICB9XG4gICBwdWJsaWMgb3ZlcnJpZGUgZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uLCBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyKTogc3RyaW5nIHtcbiAgICAgbGV0IGFjdGlvbk1lc3NhZ2U6c3RyaW5nID0gXCJcIjtcblxuICAgIGlmKGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpLmNhdGVnb3J5ID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsKXtcbiAgICAgIGxldCBjYWxsOkNvbWV0Q2hhdC5DYWxsID1jb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKTtcblxuICAgICAgYWN0aW9uTWVzc2FnZSA9IENhbGxpbmdEZXRhaWxzVXRpbHMuZ2V0Q2FsbFN0YXR1cyhjYWxsLGxvZ2dlZEluVXNlcilcbiAgICB9XG4gICAgZWxzZSBpZiAoY29udmVyc2F0aW9uPy5nZXRMYXN0TWVzc2FnZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpLnR5cGUgPT0gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpe1xuICAgICAgbGV0IG1lc3NhZ2U6Q29tZXRDaGF0LkN1c3RvbU1lc3NhZ2UgPSBjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKVxuICAgICAgaWYoIW1lc3NhZ2UuZ2V0U2VuZGVyKCkgfHwgbWVzc2FnZT8uZ2V0U2VuZGVyKCk/LmdldFVpZCgpID09IGxvZ2dlZEluVXNlci5nZXRVaWQoKSl7XG4gICAgICAgIGFjdGlvbk1lc3NhZ2UgPSBsb2NhbGl6ZShcIllPVV9JTklUSUFURURfR1JPVVBfQ0FMTFwiKVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGFjdGlvbk1lc3NhZ2UgPSBgJHttZXNzYWdlLmdldFNlbmRlcigpLmdldE5hbWUoKX0gICR7bG9jYWxpemUoXCJJTklUSUFURURfR1JPVVBfQ0FMTFwiKX1gXG4gICAgICB9XG5cbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIGFjdGlvbk1lc3NhZ2UgPSBzdXBlci5nZXRMYXN0Q29udmVyc2F0aW9uTWVzc2FnZShjb252ZXJzYXRpb24sbG9nZ2VkSW5Vc2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjdGlvbk1lc3NhZ2VcblxuICAgfVxufSJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFHeEIsUUFBUSxHQUVULE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLG1CQUFtQixHQUdwQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzlFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxtQkFBbUI7SUFDaEUsWUFBWSxVQUFzQjtRQUNoQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxxQ0FBcUM7SUFDckMsUUFBUTtRQUNOLElBQUksVUFBVSxHQUFXLGlCQUFpQixDQUFDO1FBQzNDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FDeEIsVUFBVSxFQUNWLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQztZQUMxQixhQUFhLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixJQUFJLElBQUksR0FBbUIsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLElBQUksRUFBRTtvQkFDUixTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2lCQUN4QztxQkFBTTtvQkFDTCxPQUFPO2lCQUNSO1lBQ0gsQ0FBQztZQUNELGFBQWEsRUFBRSxDQUFDLEtBQW1DLEVBQUUsRUFB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RSxDQUFDLElBQUk7Z0JBQ2hDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQ3ZDO1lBQ0EsSUFBSSxPQUFPLEdBQTRCLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyRSxJQUNFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtnQkFDcEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFDdkQ7Z0JBQ0EsYUFBYSxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2FBQ3REO2lCQUFNO2dCQUNMLGFBQWEsR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQzNELHNCQUFzQixDQUN2QixFQUFFLENBQUM7YUFDTDtZQUVELElBQUksYUFBYSxHQUFHLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNsRCxJQUNFLGFBQWE7Z0JBQ2IsYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUMsTUFBTTtnQkFDeEMsYUFBYSxZQUFZLFNBQVMsQ0FBQyxXQUFXO2dCQUM5QyxnQkFBZ0I7Z0JBQ2hCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUNqQztnQkFDQSxhQUFhLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUMzQyxhQUFhLEVBQ2IsYUFBYSxFQUNiLGdCQUFnQixDQUNqQixDQUFDO2FBQ0g7U0FDRjthQUFNO1lBQ0wsYUFBYSxHQUFHLEtBQUssQ0FBQywwQkFBMEIsQ0FDOUMsWUFBWSxFQUNaLFlBQVksRUFDWixnQkFBZ0IsQ0FDakIsQ0FBQztTQUNIO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHtcbiAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsXG4gIENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSxcbiAgQ29tZXRDaGF0VGhlbWUsXG4gIENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbixcbiAgbG9jYWxpemUsXG4gIGZvbnRIZWxwZXIsXG59IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlc1wiO1xuaW1wb3J0IHtcbiAgQ2FsbGluZ0RldGFpbHNVdGlscyxcbiAgQ29sbGFib3JhdGl2ZURvY3VtZW50Q29uZmlndXJhdGlvbixcbiAgQ29sbGFib3JhdGl2ZURvY3VtZW50Q29uc3RhbnRzLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7IENoYXRDb25maWd1cmF0b3IgfSBmcm9tIFwiLi4vU2hhcmVkL0ZyYW1ld29yay9DaGF0Q29uZmlndXJhdG9yXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSBcIi4uL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZURlY29yYXRvciB9IGZyb20gXCIuLi9TaGFyZWQvRnJhbWV3b3JrL0RhdGFTb3VyY2VEZWNvcmF0b3JcIjtcbmltcG9ydCB7fSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcblxuZXhwb3J0IGNsYXNzIENhbGxpbmdFeHRlbnNpb25EZWNvcmF0b3IgZXh0ZW5kcyBEYXRhU291cmNlRGVjb3JhdG9yIHtcbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkge1xuICAgIHN1cGVyKGRhdGFTb3VyY2UpO1xuICAgIHRoaXMub25Mb2dvdXQoKTtcbiAgfVxuICAvLyBlbmQgYWN0aXZlIGNhbGwgd2hlbiB1c2VyIGxvZ3Mgb3V0XG4gIG9uTG9nb3V0KCkge1xuICAgIHZhciBsaXN0ZW5lcklEOiBzdHJpbmcgPSBcImxvZ291dF9saXN0ZW5lclwiO1xuICAgIENvbWV0Q2hhdC5hZGRMb2dpbkxpc3RlbmVyKFxuICAgICAgbGlzdGVuZXJJRCxcbiAgICAgIG5ldyBDb21ldENoYXQuTG9naW5MaXN0ZW5lcih7XG4gICAgICAgIGxvZ291dFN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICBsZXQgY2FsbDogQ29tZXRDaGF0LkNhbGwgPSBDb21ldENoYXQuZ2V0QWN0aXZlQ2FsbCgpO1xuICAgICAgICAgIGlmIChjYWxsKSB7XG4gICAgICAgICAgICBDb21ldENoYXQuZW5kQ2FsbChjYWxsLmdldFNlc3Npb25JZCgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9nb3V0RmFpbHVyZTogKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJMb2dpbkxpc3RlbmVyIDo6IGxvZ291dEZhaWx1cmVcIiwgZXJyb3IpO1xuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9XG4gIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VUeXBlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgdHlwZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlVHlwZXMoKTtcbiAgICBpZiAoIXR5cGVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpKSB7XG4gICAgICB0eXBlcy5wdXNoKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpO1xuICAgIH1cbiAgICBpZiAoIXR5cGVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbykpIHtcbiAgICAgIHR5cGVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmF1ZGlvKTtcbiAgICB9XG4gICAgaWYgKCF0eXBlcy5pbmNsdWRlcyhDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW8pKSB7XG4gICAgICB0eXBlcy5wdXNoKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbyk7XG4gICAgfVxuICAgIHJldHVybiB0eXBlcztcbiAgfVxuICBvdmVycmlkZSBnZXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImNhbGxpbmdcIjtcbiAgfVxuICBvdmVycmlkZSBnZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IHN1cGVyLmdldEFsbE1lc3NhZ2VDYXRlZ29yaWVzKCk7XG4gICAgaWYgKCFjYXRlZ29yaWVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsKSkge1xuICAgICAgY2F0ZWdvcmllcy5wdXNoKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsKTtcbiAgICB9XG4gICAgaWYgKCFjYXRlZ29yaWVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pKSB7XG4gICAgICBjYXRlZ29yaWVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmN1c3RvbSk7XG4gICAgfVxuICAgIHJldHVybiBjYXRlZ29yaWVzO1xuICB9XG4gIGNoZWNrSWZUZW1wbGF0ZVR5cGVFeGlzdChcbiAgICB0ZW1wbGF0ZTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10sXG4gICAgdHlwZTogc3RyaW5nXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0ZW1wbGF0ZS5zb21lKChvYmopID0+IG9iai50eXBlID09PSB0eXBlKTtcbiAgfVxuICBjaGVja0lmVGVtcGxhdGVDYXRlZ29yeUV4aXN0KFxuICAgIHRlbXBsYXRlOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXSxcbiAgICBjYXRlZ29yeTogc3RyaW5nXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0ZW1wbGF0ZS5zb21lKChvYmopID0+IG9iai5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkpO1xuICB9XG4gIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10ge1xuICAgIGNvbnN0IHRlbXBsYXRlcyA9IHN1cGVyLmdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5jaGVja0lmVGVtcGxhdGVUeXBlRXhpc3QoXG4gICAgICAgIHRlbXBsYXRlcyxcbiAgICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMubWVldGluZ1xuICAgICAgKVxuICAgICkge1xuICAgICAgdGVtcGxhdGVzLnB1c2godGhpcy5nZXREaXJlY3RDYWxsVGVtcGxhdGUoKSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICF0aGlzLmNoZWNrSWZUZW1wbGF0ZUNhdGVnb3J5RXhpc3QoXG4gICAgICAgIHRlbXBsYXRlcyxcbiAgICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRlbXBsYXRlcy5wdXNoKC4uLnRoaXMuZ2V0RGVmYXVsdENhbGxUZW1wbGF0ZSgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlcztcbiAgfVxuICBnZXREaXJlY3RDYWxsVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICB0eXBlOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5tZWV0aW5nLFxuICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20sXG4gICAgICBvcHRpb25zOiAoXG4gICAgICAgIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsXG4gICAgICAgIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSxcbiAgICAgICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgICAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cFxuICAgICAgKSA9PiB7XG4gICAgICAgIHJldHVybiBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKFxuICAgICAgICAgIGxvZ2dlZEluVXNlcixcbiAgICAgICAgICBtZXNzYWdlT2JqZWN0LFxuICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgIGdyb3VwXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldERlZmF1bHRDYWxsVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10ge1xuICAgIGxldCB0ZW1wbGF0ZXM6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZVtdID0gW1xuICAgICAgbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbyxcbiAgICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsLFxuICAgICAgfSksXG4gICAgICBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvLFxuICAgICAgICBjYXRlZ29yeTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwsXG4gICAgICB9KSxcbiAgICBdO1xuICAgIHJldHVybiB0ZW1wbGF0ZXM7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKFxuICAgIGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbixcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIGFkZGl0aW9uYWxQYXJhbXM/OiBhbnlcbiAgKTogc3RyaW5nIHtcbiAgICBsZXQgYWN0aW9uTWVzc2FnZTogc3RyaW5nID0gXCJcIjtcblxuICAgIGlmIChcbiAgICAgIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpICYmXG4gICAgICBjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKS5jYXRlZ29yeSA9PVxuICAgICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbFxuICAgICkge1xuICAgICAgbGV0IGNhbGw6IENvbWV0Q2hhdC5DYWxsID0gY29udmVyc2F0aW9uLmdldExhc3RNZXNzYWdlKCk7XG5cbiAgICAgIGFjdGlvbk1lc3NhZ2UgPSBDYWxsaW5nRGV0YWlsc1V0aWxzLmdldENhbGxTdGF0dXMoY2FsbCwgbG9nZ2VkSW5Vc2VyKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgY29udmVyc2F0aW9uPy5nZXRMYXN0TWVzc2FnZSgpICYmXG4gICAgICBjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKS50eXBlID09XG4gICAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmdcbiAgICApIHtcbiAgICAgIGxldCBtZXNzYWdlOiBDb21ldENoYXQuQ3VzdG9tTWVzc2FnZSA9IGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpO1xuICAgICAgaWYgKFxuICAgICAgICAhbWVzc2FnZS5nZXRTZW5kZXIoKSB8fFxuICAgICAgICBtZXNzYWdlPy5nZXRTZW5kZXIoKT8uZ2V0VWlkKCkgPT0gbG9nZ2VkSW5Vc2VyLmdldFVpZCgpXG4gICAgICApIHtcbiAgICAgICAgYWN0aW9uTWVzc2FnZSA9IGxvY2FsaXplKFwiWU9VX0lOSVRJQVRFRF9HUk9VUF9DQUxMXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0aW9uTWVzc2FnZSA9IGAke21lc3NhZ2UuZ2V0U2VuZGVyKCkuZ2V0TmFtZSgpfSAgJHtsb2NhbGl6ZShcbiAgICAgICAgICBcIklOSVRJQVRFRF9HUk9VUF9DQUxMXCJcbiAgICAgICAgKX1gO1xuICAgICAgfVxuXG4gICAgICBsZXQgbWVzc2FnZU9iamVjdCA9IGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpO1xuICAgICAgaWYgKFxuICAgICAgICBtZXNzYWdlT2JqZWN0ICYmXG4gICAgICAgIG1lc3NhZ2VPYmplY3QuZ2V0TWVudGlvbmVkVXNlcnMoKS5sZW5ndGggJiZcbiAgICAgICAgbWVzc2FnZU9iamVjdCBpbnN0YW5jZW9mIENvbWV0Q2hhdC5UZXh0TWVzc2FnZSAmJlxuICAgICAgICBhZGRpdGlvbmFsUGFyYW1zICYmXG4gICAgICAgICFhZGRpdGlvbmFsUGFyYW1zLmRpc2FibGVNZW50aW9uc1xuICAgICAgKSB7XG4gICAgICAgIGFjdGlvbk1lc3NhZ2UgPSB0aGlzLmdldE1lbnRpb25zRm9ybWF0dGVkVGV4dChcbiAgICAgICAgICBtZXNzYWdlT2JqZWN0LFxuICAgICAgICAgIGFjdGlvbk1lc3NhZ2UsXG4gICAgICAgICAgYWRkaXRpb25hbFBhcmFtc1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhY3Rpb25NZXNzYWdlID0gc3VwZXIuZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoXG4gICAgICAgIGNvbnZlcnNhdGlvbixcbiAgICAgICAgbG9nZ2VkSW5Vc2VyLFxuICAgICAgICBhZGRpdGlvbmFsUGFyYW1zXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYWN0aW9uTWVzc2FnZTtcbiAgfVxufVxuIl19
@@ -280,7 +280,7 @@ export class CometChatAddMembersComponent {
280
280
  }
281
281
  }
282
282
  CometChatAddMembersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatAddMembersComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
283
- CometChatAddMembersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatAddMembersComponent, selector: "cometchat-add-members", inputs: { usersRequestBuilder: "usersRequestBuilder", searchRequestBuilder: "searchRequestBuilder", subtitleView: "subtitleView", listItemView: "listItemView", disableUsersPresence: "disableUsersPresence", menu: "menu", options: "options", backButtonIconURL: "backButtonIconURL", closeButtonIconURL: "closeButtonIconURL", showBackButton: "showBackButton", hideSeparator: "hideSeparator", selectionMode: "selectionMode", searchPlaceholder: "searchPlaceholder", hideError: "hideError", searchIconURL: "searchIconURL", hideSearch: "hideSearch", title: "title", onError: "onError", onBack: "onBack", onClose: "onClose", onSelect: "onSelect", buttonText: "buttonText", group: "group", emptyStateView: "emptyStateView", errorStateView: "errorStateView", loadingIconURL: "loadingIconURL", listItemStyle: "listItemStyle", showSectionHeader: "showSectionHeader", sectionHeaderField: "sectionHeaderField", loadingStateView: "loadingStateView", emptyStateText: "emptyStateText", errorStateText: "errorStateText", onAddMembersButtonClick: "onAddMembersButtonClick", titleAlignment: "titleAlignment", addMembersStyle: "addMembersStyle", StatusIndicatorStyle: "StatusIndicatorStyle", avatarStyle: "avatarStyle" }, ngImport: i0, template: "<div class=\"cc-add-members\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-back-button\">\n <cometchat-button [iconURL]=\"backButtonIconURL\" [buttonStyle]=\"backButtonStyle()\" (cc-button-clicked)=\"backClicked()\" *ngIf=\"showBackButton\">\n\n </cometchat-button>\n </div>\n <div class=\"cc-add-members__wrapper\" [ngStyle]=\"addMembersStyles()\">\n <div class=\"cc-users\">\n <cometchat-users [searchPlaceholder]=\"searchPlaceholder\" [usersRequestBuilder]=\"usersRequestBuilder\"\n [hideSearch]=\"hideSearch\"\n [StatusIndicatorStyle]=\"StatusIndicatorStyle\"\n [avatarStyle]=\"avatarStyle\"\n [searchIconURL]=\"searchIconURL\"\n [searchRequestBuilder]=\"searchRequestBuilder\"\n [usersStyle]=\"usersStyle\"\n [subtitleView]=\"subtitleView\"\n [options]=\"options\"\n [usersRequestBuilder]=\"usersRequestBuilder\"\n [emptyStateView]=\"emptyStateView\"\n [onSelect]=\" addRemoveUsers\"\n [sectionHeaderField]=\"sectionHeaderField\"\n [loadingIconURL]=\"loadingIconURL\"\n [errorStateView]=\"errorStateView\"\n [loadingStateView]=\"loadingStateView\"\n [titleAlignment]=\"titleAlignment\"\n [showSectionHeader]=\"showSectionHeader\"\n [listItemView]=\"listItemView\"\n [menu]=\"menu\"\n [hideSeparator]=\"hideSeparator\"\n [hideError]=\"hideError\"\n [selectionMode]=\" selectionMode\"\n [title]=\"title\" >\n\n </cometchat-users>\n </div>\n <div class=\"cc-add-members__buttons\">\n <cometchat-button class=\"cc-add-members__buttons--add\" [text]=\"buttonText\" [buttonStyle]=\"addMemberButtonStyle\" (click)=\"addMembersToGroup()\" ></cometchat-button>\n\n </div>\n </div>\n <div class=\"cc-close-button\">\n <cometchat-button [iconURL]=\"closeButtonIconURL\" [buttonStyle]=\"closeButtonStyle()\" (cc-button-clicked)=\"closeClicked()\">\n\n </cometchat-button>\n </div>\n</div>", styles: [".cc-add-members{display:flex;height:100%;width:100%;overflow:hidden}.cc-back-button{position:absolute;left:8px;padding:12px 8px 8px}.cc-add-members__wrapper{height:100%;width:100%;padding:8px}.cc-close-button{position:absolute;right:8px;padding:12px 8px 8px}.cc-users{height:90%}.cc-add-members__buttons{height:10%;width:100%;display:flex;align-items:center;justify-content:center}.button__icon{display:flex;justify-content:flex-end}.cc-add-members__buttons--add{height:42px;width:100%}\n"], components: [{ type: i2.CometChatUsersComponent, selector: "cometchat-users", inputs: ["usersRequestBuilder", "searchRequestBuilder", "subtitleView", "disableUsersPresence", "listItemView", "menu", "options", "activeUser", "hideSeparator", "searchPlaceholder", "hideError", "selectionMode", "searchIconURL", "hideSearch", "title", "onError", "emptyStateView", "onSelect", "errorStateView", "loadingIconURL", "showSectionHeader", "sectionHeaderField", "loadingStateView", "emptyStateText", "errorStateText", "titleAlignment", "usersStyle", "listItemStyle", "statusIndicatorStyle", "avatarStyle", "onItemClick"] }], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
283
+ CometChatAddMembersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatAddMembersComponent, selector: "cometchat-add-members", inputs: { usersRequestBuilder: "usersRequestBuilder", searchRequestBuilder: "searchRequestBuilder", subtitleView: "subtitleView", listItemView: "listItemView", disableUsersPresence: "disableUsersPresence", menu: "menu", options: "options", backButtonIconURL: "backButtonIconURL", closeButtonIconURL: "closeButtonIconURL", showBackButton: "showBackButton", hideSeparator: "hideSeparator", selectionMode: "selectionMode", searchPlaceholder: "searchPlaceholder", hideError: "hideError", searchIconURL: "searchIconURL", hideSearch: "hideSearch", title: "title", onError: "onError", onBack: "onBack", onClose: "onClose", onSelect: "onSelect", buttonText: "buttonText", group: "group", emptyStateView: "emptyStateView", errorStateView: "errorStateView", loadingIconURL: "loadingIconURL", listItemStyle: "listItemStyle", showSectionHeader: "showSectionHeader", sectionHeaderField: "sectionHeaderField", loadingStateView: "loadingStateView", emptyStateText: "emptyStateText", errorStateText: "errorStateText", onAddMembersButtonClick: "onAddMembersButtonClick", titleAlignment: "titleAlignment", addMembersStyle: "addMembersStyle", StatusIndicatorStyle: "StatusIndicatorStyle", avatarStyle: "avatarStyle" }, ngImport: i0, template: "<div class=\"cc-add-members\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-back-button\">\n <cometchat-button [iconURL]=\"backButtonIconURL\" [buttonStyle]=\"backButtonStyle()\" (cc-button-clicked)=\"backClicked()\" *ngIf=\"showBackButton\">\n\n </cometchat-button>\n </div>\n <div class=\"cc-add-members__wrapper\" [ngStyle]=\"addMembersStyles()\">\n <div class=\"cc-users\">\n <cometchat-users [searchPlaceholder]=\"searchPlaceholder\" [usersRequestBuilder]=\"usersRequestBuilder\"\n [hideSearch]=\"hideSearch\"\n [StatusIndicatorStyle]=\"StatusIndicatorStyle\"\n [avatarStyle]=\"avatarStyle\"\n [searchIconURL]=\"searchIconURL\"\n [searchRequestBuilder]=\"searchRequestBuilder\"\n [usersStyle]=\"usersStyle\"\n [subtitleView]=\"subtitleView\"\n [options]=\"options\"\n [usersRequestBuilder]=\"usersRequestBuilder\"\n [emptyStateView]=\"emptyStateView\"\n [onSelect]=\" addRemoveUsers\"\n [sectionHeaderField]=\"sectionHeaderField\"\n [loadingIconURL]=\"loadingIconURL\"\n [errorStateView]=\"errorStateView\"\n [loadingStateView]=\"loadingStateView\"\n [titleAlignment]=\"titleAlignment\"\n [showSectionHeader]=\"showSectionHeader\"\n [listItemView]=\"listItemView\"\n [menu]=\"menu\"\n [hideSeparator]=\"hideSeparator\"\n [hideError]=\"hideError\"\n [selectionMode]=\" selectionMode\"\n [title]=\"title\" >\n\n </cometchat-users>\n </div>\n <div class=\"cc-add-members__buttons\">\n <cometchat-button class=\"cc-add-members__buttons--add\" [text]=\"buttonText\" [buttonStyle]=\"addMemberButtonStyle\" (click)=\"addMembersToGroup()\" ></cometchat-button>\n\n </div>\n </div>\n <div class=\"cc-close-button\">\n <cometchat-button [iconURL]=\"closeButtonIconURL\" [buttonStyle]=\"closeButtonStyle()\" (cc-button-clicked)=\"closeClicked()\">\n\n </cometchat-button>\n </div>\n</div>", styles: [".cc-add-members{display:flex;height:100%;width:100%;overflow:hidden}.cc-back-button{position:absolute;left:8px;padding:12px 8px 8px}.cc-add-members__wrapper{height:100%;width:100%;padding:8px}.cc-close-button{position:absolute;right:8px;padding:12px 8px 8px}.cc-users{height:90%}.cc-add-members__buttons{height:10%;width:100%;display:flex;align-items:center;justify-content:center}.button__icon{display:flex;justify-content:flex-end}.cc-add-members__buttons--add{height:42px;width:100%}\n"], components: [{ type: i2.CometChatUsersComponent, selector: "cometchat-users", inputs: ["usersRequestBuilder", "searchRequestBuilder", "subtitleView", "disableUsersPresence", "listItemView", "menu", "options", "activeUser", "hideSeparator", "searchPlaceholder", "hideError", "selectionMode", "searchIconURL", "hideSearch", "title", "onError", "emptyStateView", "onSelect", "errorStateView", "loadingIconURL", "showSectionHeader", "sectionHeaderField", "loadingStateView", "emptyStateText", "errorStateText", "titleAlignment", "usersStyle", "listItemStyle", "statusIndicatorStyle", "avatarStyle", "onItemClick", "searchKeyword", "onEmpty", "userPresencePlacement", "disableLoadingState"] }], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
284
284
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatAddMembersComponent, decorators: [{
285
285
  type: Component,
286
286
  args: [{ selector: "cometchat-add-members", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-add-members\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-back-button\">\n <cometchat-button [iconURL]=\"backButtonIconURL\" [buttonStyle]=\"backButtonStyle()\" (cc-button-clicked)=\"backClicked()\" *ngIf=\"showBackButton\">\n\n </cometchat-button>\n </div>\n <div class=\"cc-add-members__wrapper\" [ngStyle]=\"addMembersStyles()\">\n <div class=\"cc-users\">\n <cometchat-users [searchPlaceholder]=\"searchPlaceholder\" [usersRequestBuilder]=\"usersRequestBuilder\"\n [hideSearch]=\"hideSearch\"\n [StatusIndicatorStyle]=\"StatusIndicatorStyle\"\n [avatarStyle]=\"avatarStyle\"\n [searchIconURL]=\"searchIconURL\"\n [searchRequestBuilder]=\"searchRequestBuilder\"\n [usersStyle]=\"usersStyle\"\n [subtitleView]=\"subtitleView\"\n [options]=\"options\"\n [usersRequestBuilder]=\"usersRequestBuilder\"\n [emptyStateView]=\"emptyStateView\"\n [onSelect]=\" addRemoveUsers\"\n [sectionHeaderField]=\"sectionHeaderField\"\n [loadingIconURL]=\"loadingIconURL\"\n [errorStateView]=\"errorStateView\"\n [loadingStateView]=\"loadingStateView\"\n [titleAlignment]=\"titleAlignment\"\n [showSectionHeader]=\"showSectionHeader\"\n [listItemView]=\"listItemView\"\n [menu]=\"menu\"\n [hideSeparator]=\"hideSeparator\"\n [hideError]=\"hideError\"\n [selectionMode]=\" selectionMode\"\n [title]=\"title\" >\n\n </cometchat-users>\n </div>\n <div class=\"cc-add-members__buttons\">\n <cometchat-button class=\"cc-add-members__buttons--add\" [text]=\"buttonText\" [buttonStyle]=\"addMemberButtonStyle\" (click)=\"addMembersToGroup()\" ></cometchat-button>\n\n </div>\n </div>\n <div class=\"cc-close-button\">\n <cometchat-button [iconURL]=\"closeButtonIconURL\" [buttonStyle]=\"closeButtonStyle()\" (cc-button-clicked)=\"closeClicked()\">\n\n </cometchat-button>\n </div>\n</div>", styles: [".cc-add-members{display:flex;height:100%;width:100%;overflow:hidden}.cc-back-button{position:absolute;left:8px;padding:12px 8px 8px}.cc-add-members__wrapper{height:100%;width:100%;padding:8px}.cc-close-button{position:absolute;right:8px;padding:12px 8px 8px}.cc-users{height:90%}.cc-add-members__buttons{height:10%;width:100%;display:flex;align-items:center;justify-content:center}.button__icon{display:flex;justify-content:flex-end}.cc-add-members__buttons--add{height:42px;width:100%}\n"] }]