@cometchat/chat-uikit-angular 4.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Calls/CallingExtension.d.ts +5 -0
- package/Calls/CallingExtensionDecorator.d.ts +17 -0
- package/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.d.ts +75 -0
- package/Calls/CometChatCallButtons/cometchat-call-buttons.module.d.ts +11 -0
- package/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.d.ts +80 -0
- package/Calls/CometChatIncomingCall/cometchat-incoming-call.module.d.ts +11 -0
- package/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.d.ts +26 -0
- package/Calls/CometChatOngoingCall/cometchat-ongoing-call.module.d.ts +9 -0
- package/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.d.ts +58 -0
- package/Calls/CometChatOutgoingCall/cometchat-outgoing-call.module.d.ts +10 -0
- package/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.d.ts +109 -0
- package/CometChatAddMembers/cometchat-add-members.module.d.ts +12 -0
- package/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.d.ts +140 -0
- package/CometChatBannedMembers/cometchat-banned-members.module.d.ts +13 -0
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +335 -0
- package/CometChatConversations/cometchat-conversations.module.d.ts +10 -0
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.d.ts +86 -0
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.d.ts +12 -0
- package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +149 -0
- package/CometChatDetails/cometchat-details.module.d.ts +12 -0
- package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +145 -0
- package/CometChatGroupMembers/cometchat-group-members.module.d.ts +13 -0
- package/CometChatGroups/cometchat-groups/cometchat-groups.component.d.ts +136 -0
- package/CometChatGroups/cometchat-groups.module.d.ts +10 -0
- package/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.d.ts +100 -0
- package/CometChatGroupsWithMessages/cometchat-groups-with-messages.module.d.ts +13 -0
- package/CometChatList/cometchat-list.component.d.ts +87 -0
- package/CometChatList/cometchat-list.module.d.ts +10 -0
- package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +62 -0
- package/CometChatMessageBubble/cometchat-message-bubble.module.d.ts +8 -0
- package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +165 -0
- package/CometChatMessageComposer/cometchat-message-composer.module.d.ts +9 -0
- package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +85 -0
- package/CometChatMessageHeader/cometchat-message-header.module.d.ts +9 -0
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +510 -0
- package/CometChatMessageList/cometchat-message-list.module.d.ts +11 -0
- package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +136 -0
- package/CometChatMessages/cometchat-messages.module.d.ts +15 -0
- package/CometChatTheme.service.d.ts +7 -0
- package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +73 -0
- package/CometChatThreadedMessages/cometchat-threaded-messages.module.d.ts +12 -0
- package/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.d.ts +88 -0
- package/CometChatTransferOwnership/cometchat-transfer-ownership.module.d.ts +10 -0
- package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +105 -0
- package/CometChatUsers/cometchat-users.module.d.ts +11 -0
- package/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.d.ts +71 -0
- package/CometChatUsersWithMessages/cometchat-users-with-messages.module.d.ts +12 -0
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.d.ts +9 -0
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +17 -0
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.d.ts +9 -0
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +17 -0
- package/Extensions/ImageModeration/ImageModerationExtension.d.ts +5 -0
- package/Extensions/ImageModeration/ImageModerationExtensionDecorator.d.ts +6 -0
- package/Extensions/LinkPreviewExtension/LinkPreviewExtension.d.ts +5 -0
- package/Extensions/LinkPreviewExtension/LinkPreviewExtensionDecorator.d.ts +6 -0
- package/Extensions/MessageTranslation/MessageTranslationExtension.d.ts +9 -0
- package/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.d.ts +12 -0
- package/Extensions/PollsExtension/PollsExtension.d.ts +5 -0
- package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +15 -0
- package/Extensions/Reactions/ReactionExtension.d.ts +5 -0
- package/Extensions/Reactions/ReactionExtensionDecorator.d.ts +10 -0
- package/Extensions/SmartReplies/SmartRepliesExtension.d.ts +9 -0
- package/Extensions/SmartReplies/SmartRepliesExtensionDecorator.d.ts +16 -0
- package/Extensions/Stickers/StickersExtension.d.ts +9 -0
- package/Extensions/Stickers/StickersExtensionDecorator.d.ts +27 -0
- package/Extensions/TextModerator/TextModeratorExtension.d.ts +5 -0
- package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +9 -0
- package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.d.ts +5 -0
- package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtensionDecorator.d.ts +6 -0
- package/README.md +60 -0
- package/Shared/CometChatUIkit/CometChatUIKit.d.ts +18 -0
- package/Shared/Framework/ChatConfigurator.d.ts +8 -0
- package/Shared/Framework/DataSource.d.ts +29 -0
- package/Shared/Framework/DataSourceDecorator.d.ts +32 -0
- package/Shared/Framework/ExtensionDataSource.d.ts +3 -0
- package/Shared/Utils/MessageUtils.d.ts +43 -0
- package/assets/.gitkeep +0 -0
- package/assets/Audio-Call.svg +11 -0
- package/assets/Audio-Call2x.svg +11 -0
- package/assets/Copy.svg +17 -0
- package/assets/Grid-layout.svg +1 -0
- package/assets/Heart.svg +11 -0
- package/assets/Imagemoderation.svg +14 -0
- package/assets/Info.svg +13 -0
- package/assets/Locked.svg +10 -0
- package/assets/More@2x.svg +9 -0
- package/assets/Plus.svg +13 -0
- package/assets/Private.svg +10 -0
- package/assets/Reactionsicon.svg +9 -0
- package/assets/Send.svg +12 -0
- package/assets/Spinner.svg +15 -0
- package/assets/Stickers.svg +16 -0
- package/assets/Stipop.svg +9 -0
- package/assets/Video-call.svg +12 -0
- package/assets/Video-call2x.svg +12 -0
- package/assets/activity.svg +22 -0
- package/assets/addreaction.svg +9 -0
- package/assets/animals.svg +15 -0
- package/assets/attachment-file.svg +14 -0
- package/assets/audio-file.svg +12 -0
- package/assets/back.png +0 -0
- package/assets/backbutton.svg +12 -0
- package/assets/call.svg +1 -0
- package/assets/chats.svg +1 -0
- package/assets/checkmark.svg +11 -0
- package/assets/close.svg +12 -0
- package/assets/close2x.svg +12 -0
- package/assets/collaborativedocument.svg +13 -0
- package/assets/collaborativewhiteboard.svg +12 -0
- package/assets/create-button.svg +12 -0
- package/assets/declaration.d.ts +3 -0
- package/assets/delete.svg +7 -0
- package/assets/deleteicon.svg +15 -0
- package/assets/down-arrow.svg +1 -0
- package/assets/download.svg +13 -0
- package/assets/editicon.svg +14 -0
- package/assets/emoji.svg +2693 -0
- package/assets/file-upload.svg +2693 -0
- package/assets/flags.svg +12 -0
- package/assets/food.svg +26 -0
- package/assets/group.svg +40 -0
- package/assets/heart-reaction.png +0 -0
- package/assets/heart.png +0 -0
- package/assets/image.svg +2693 -0
- package/assets/incomingcall.wav +0 -0
- package/assets/increase-size.svg +6 -0
- package/assets/location.svg +2693 -0
- package/assets/message-delivered.png +0 -0
- package/assets/message-delivered.svg +4 -0
- package/assets/message-read.png +0 -0
- package/assets/message-read.svg +4 -0
- package/assets/message-sent.png +0 -0
- package/assets/message-sent.svg +3 -0
- package/assets/moreicon.svg +9 -0
- package/assets/objects.svg +13 -0
- package/assets/open-thread.svg +11 -0
- package/assets/password-protected-group.svg +3 -0
- package/assets/photolibrary.svg +11 -0
- package/assets/placeholder.png +0 -0
- package/assets/plus-rotated.svg +13 -0
- package/assets/polls.svg +14 -0
- package/assets/privacy.svg +4 -0
- package/assets/private-group.svg +9 -0
- package/assets/public.svg +3 -0
- package/assets/reduce-size.svg +6 -0
- package/assets/right-arrow.svg +6 -0
- package/assets/search.png +0 -0
- package/assets/search.svg +4 -0
- package/assets/side-arrow.svg +1 -0
- package/assets/smileys.svg +16 -0
- package/assets/start-chat.svg +1 -0
- package/assets/symbols.svg +16 -0
- package/assets/thread-arrow.svg +1 -0
- package/assets/thread-icon.svg +38 -0
- package/assets/threadicon.svg +14 -0
- package/assets/translation.svg +16 -0
- package/assets/travel.svg +18 -0
- package/assets/unsafe-content.svg +23 -0
- package/assets/user.svg +31 -0
- package/assets/video-upload.svg +2693 -0
- package/assets/video.svg +12 -0
- package/assets/wait.png +0 -0
- package/assets/wait.svg +4 -0
- package/assets/warning-small.png +0 -0
- package/assets/warning-small.svg +5 -0
- package/cometchat-chat-uikit-angular.d.ts +5 -0
- package/esm2020/Calls/CallingExtension.mjs +11 -0
- package/esm2020/Calls/CallingExtensionDecorator.mjs +114 -0
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +358 -0
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons.module.mjs +32 -0
- package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.mjs +423 -0
- package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call.module.mjs +32 -0
- package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.mjs +54 -0
- package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call.module.mjs +27 -0
- package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.mjs +196 -0
- package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call.module.mjs +28 -0
- package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +353 -0
- package/esm2020/CometChatAddMembers/cometchat-add-members.module.mjs +23 -0
- package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +446 -0
- package/esm2020/CometChatBannedMembers/cometchat-banned-members.module.mjs +24 -0
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +1400 -0
- package/esm2020/CometChatConversations/cometchat-conversations.module.mjs +28 -0
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +272 -0
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.mjs +39 -0
- package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +696 -0
- package/esm2020/CometChatDetails/cometchat-details.module.mjs +27 -0
- package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +676 -0
- package/esm2020/CometChatGroupMembers/cometchat-group-members.module.mjs +24 -0
- package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +564 -0
- package/esm2020/CometChatGroups/cometchat-groups.module.mjs +28 -0
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +430 -0
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages.module.mjs +43 -0
- package/esm2020/CometChatList/cometchat-list.component.mjs +210 -0
- package/esm2020/CometChatList/cometchat-list.module.mjs +28 -0
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +157 -0
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble.module.mjs +23 -0
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +930 -0
- package/esm2020/CometChatMessageComposer/cometchat-message-composer.module.mjs +24 -0
- package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +420 -0
- package/esm2020/CometChatMessageHeader/cometchat-message-header.module.mjs +26 -0
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +2598 -0
- package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +34 -0
- package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +393 -0
- package/esm2020/CometChatMessages/cometchat-messages.module.mjs +48 -0
- package/esm2020/CometChatTheme.service.mjs +17 -0
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +304 -0
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages.module.mjs +36 -0
- package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +337 -0
- package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership.module.mjs +21 -0
- package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +447 -0
- package/esm2020/CometChatUsers/cometchat-users.module.mjs +32 -0
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +185 -0
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages.module.mjs +39 -0
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.mjs +11 -0
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +89 -0
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.mjs +11 -0
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +89 -0
- package/esm2020/Extensions/ImageModeration/ImageModerationExtension.mjs +10 -0
- package/esm2020/Extensions/ImageModeration/ImageModerationExtensionDecorator.mjs +10 -0
- package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtension.mjs +10 -0
- package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtensionDecorator.mjs +10 -0
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtension.mjs +11 -0
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.mjs +33 -0
- package/esm2020/Extensions/PollsExtension/PollsExtension.mjs +10 -0
- package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +75 -0
- package/esm2020/Extensions/Reactions/ReactionExtension.mjs +10 -0
- package/esm2020/Extensions/Reactions/ReactionExtensionDecorator.mjs +30 -0
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtension.mjs +11 -0
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtensionDecorator.mjs +117 -0
- package/esm2020/Extensions/Stickers/StickersExtension.mjs +15 -0
- package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +118 -0
- package/esm2020/Extensions/TextModerator/TextModeratorExtension.mjs +10 -0
- package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +32 -0
- package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.mjs +10 -0
- package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtensionDecorator.mjs +10 -0
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +180 -0
- package/esm2020/Shared/Framework/ChatConfigurator.mjs +20 -0
- package/esm2020/Shared/Framework/DataSource.mjs +3 -0
- package/esm2020/Shared/Framework/DataSourceDecorator.mjs +80 -0
- package/esm2020/Shared/Framework/ExtensionDataSource.mjs +4 -0
- package/esm2020/Shared/Utils/MessageUtils.mjs +342 -0
- package/esm2020/cometchat-chat-uikit-angular.mjs +5 -0
- package/esm2020/public-api.mjs +93 -0
- package/fesm2015/cometchat-chat-uikit-angular.mjs +13683 -0
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -0
- package/fesm2020/cometchat-chat-uikit-angular.mjs +13586 -0
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -0
- package/package.json +51 -0
- package/public-api.d.ts +79 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy } from "@angular/core";
|
|
2
|
+
import { CometChat } from "@cometchat-pro/chat";
|
|
3
|
+
import { AddMembersStyle, TitleAlignment, SelectionMode, UsersStyle, CometChatUIKitUtility } from '@cometchat/uikit-shared';
|
|
4
|
+
import '@cometchat/uikit-elements';
|
|
5
|
+
import { fontHelper, localize, CometChatGroupEvents, CometChatUIKitConstants } from '@cometchat/uikit-resources';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../CometChatTheme.service";
|
|
8
|
+
import * as i2 from "../../CometChatUsers/cometchat-users/cometchat-users.component";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* CometChatAddMembersComponentComponent is used to render group members to add
|
|
13
|
+
*
|
|
14
|
+
* @version 1.0.0
|
|
15
|
+
* @author CometChatTeam
|
|
16
|
+
* @copyright © 2022 CometChat Inc.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
export class CometChatAddMembersComponent {
|
|
20
|
+
constructor(ref, themeService) {
|
|
21
|
+
this.ref = ref;
|
|
22
|
+
this.themeService = themeService;
|
|
23
|
+
this.disableUsersPresence = false;
|
|
24
|
+
this.backButtonIconURL = "assets/backbutton.svg";
|
|
25
|
+
this.closeButtonIconURL = "assets/close2x.svg";
|
|
26
|
+
this.showBackButton = true;
|
|
27
|
+
this.hideSeparator = false;
|
|
28
|
+
this.selectionMode = SelectionMode.multiple;
|
|
29
|
+
this.searchPlaceholder = "Search Members";
|
|
30
|
+
this.hideError = false;
|
|
31
|
+
this.searchIconURL = "assets/search.svg";
|
|
32
|
+
this.hideSearch = false;
|
|
33
|
+
this.title = localize("ADD_MEMBERS");
|
|
34
|
+
this.onError = (error) => {
|
|
35
|
+
console.log(error);
|
|
36
|
+
};
|
|
37
|
+
this.buttonText = localize("ADD_MEMBERS");
|
|
38
|
+
this.loadingIconURL = "assets/Spinner.svg";
|
|
39
|
+
this.listItemStyle = {};
|
|
40
|
+
this.showSectionHeader = false;
|
|
41
|
+
this.sectionHeaderField = "name";
|
|
42
|
+
this.emptyStateText = localize("NO_GROUPS_FOUND");
|
|
43
|
+
this.errorStateText = localize("SOMETHING_WRONG");
|
|
44
|
+
this.titleAlignment = TitleAlignment.center;
|
|
45
|
+
this.titleAlignmentEnum = TitleAlignment;
|
|
46
|
+
this.selectionmodeEnum = SelectionMode;
|
|
47
|
+
this.addMembersStyle = {};
|
|
48
|
+
this.actionMessagesList = [];
|
|
49
|
+
this.addMemberButtonStyle = {
|
|
50
|
+
height: "100%",
|
|
51
|
+
width: "100%",
|
|
52
|
+
background: "rgb(51, 153, 255)",
|
|
53
|
+
padding: "8px",
|
|
54
|
+
buttonTextColor: "white",
|
|
55
|
+
buttonTextFont: "",
|
|
56
|
+
display: "flex",
|
|
57
|
+
justifyContent: "center",
|
|
58
|
+
alignItems: "center",
|
|
59
|
+
border: "none",
|
|
60
|
+
borderRadius: "8px"
|
|
61
|
+
};
|
|
62
|
+
this.searchKeyword = "";
|
|
63
|
+
this.usersList = [];
|
|
64
|
+
this.userListenerId = "userlist_" + new Date().getTime();
|
|
65
|
+
this.usersStyle = {
|
|
66
|
+
width: "100%",
|
|
67
|
+
height: "100%",
|
|
68
|
+
background: "",
|
|
69
|
+
border: "",
|
|
70
|
+
borderRadius: "",
|
|
71
|
+
searchBackground: "#efefef",
|
|
72
|
+
onlineStatusColor: "",
|
|
73
|
+
separatorColor: "rgb(222 222 222 / 46%)",
|
|
74
|
+
sectionHeaderTextFont: "",
|
|
75
|
+
sectionHeaderTextColor: ""
|
|
76
|
+
};
|
|
77
|
+
this.membersList = [];
|
|
78
|
+
this.addedMembers = [];
|
|
79
|
+
/**
|
|
80
|
+
* @param {string} uid
|
|
81
|
+
*/
|
|
82
|
+
this.addRemoveUsers = (user) => {
|
|
83
|
+
if (this.onSelect) {
|
|
84
|
+
this.onSelect(user);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
let key = this.membersList.findIndex((m) => m.getUid() === user.getUid());
|
|
88
|
+
if (key >= 0) {
|
|
89
|
+
this.membersList.splice(key, 1);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
let member = new CometChat.GroupMember(user.getUid(), CometChatUIKitConstants.groupMemberScope.participant);
|
|
93
|
+
member.setName(user.getName());
|
|
94
|
+
member.setGuid(this.group.getGuid());
|
|
95
|
+
this.membersList.push(member);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
this.ref.detectChanges();
|
|
99
|
+
};
|
|
100
|
+
this.addMembersToGroup = () => {
|
|
101
|
+
if (this.group && this.membersList.length > 0) {
|
|
102
|
+
if (this.onAddMembersButtonClick) {
|
|
103
|
+
this.onAddMembersButtonClick(this.group.getGuid(), this.membersList);
|
|
104
|
+
this.ref.detectChanges();
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
CometChat.addMembersToGroup(this.group.getGuid(), this.membersList, []).then((response) => {
|
|
109
|
+
for (const key in response) {
|
|
110
|
+
if (response.hasOwnProperty(key) && response[key] === "success") {
|
|
111
|
+
const matchingUser = this.membersList.find((user) => user.getUid() === key);
|
|
112
|
+
if (matchingUser) {
|
|
113
|
+
this.createActionMessage(matchingUser);
|
|
114
|
+
this.addedMembers.push(matchingUser);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
this.group.setMembersCount(this.group.getMembersCount() + this.addedMembers?.length || 0);
|
|
119
|
+
CometChatGroupEvents.ccGroupMemberAdded.next({
|
|
120
|
+
messages: this.actionMessagesList,
|
|
121
|
+
usersAdded: this.addedMembers,
|
|
122
|
+
userAddedIn: this.group,
|
|
123
|
+
userAddedBy: this.loggedInUser
|
|
124
|
+
});
|
|
125
|
+
this.membersList = [];
|
|
126
|
+
this.addedMembers = [];
|
|
127
|
+
this.actionMessagesList = [];
|
|
128
|
+
if (this.onBack) {
|
|
129
|
+
this.onBack();
|
|
130
|
+
}
|
|
131
|
+
this.ref.detectChanges();
|
|
132
|
+
})
|
|
133
|
+
.catch((err) => {
|
|
134
|
+
console.log(err);
|
|
135
|
+
this.membersList = [];
|
|
136
|
+
this.ref.detectChanges();
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
// styles
|
|
145
|
+
this.backButtonStyle = () => {
|
|
146
|
+
return {
|
|
147
|
+
height: "24px",
|
|
148
|
+
width: "24px",
|
|
149
|
+
border: "none",
|
|
150
|
+
borderRadius: "0",
|
|
151
|
+
background: "transparent",
|
|
152
|
+
buttonIconTint: this.addMembersStyle.backButtonIconTint || this.themeService.theme.palette.getPrimary()
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
this.closeButtonStyle = () => {
|
|
156
|
+
return {
|
|
157
|
+
height: "24px",
|
|
158
|
+
width: "24px",
|
|
159
|
+
border: "none",
|
|
160
|
+
borderRadius: "0",
|
|
161
|
+
background: "transparent",
|
|
162
|
+
buttonIconTint: this.addMembersStyle.closeButtonIconTint || this.themeService.theme.palette.getPrimary()
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
this.wrapperStyle = () => {
|
|
166
|
+
return {
|
|
167
|
+
height: this.addMembersStyle.height,
|
|
168
|
+
width: this.addMembersStyle.width,
|
|
169
|
+
background: this.addMembersStyle.background,
|
|
170
|
+
border: this.addMembersStyle.border,
|
|
171
|
+
borderRadius: this.addMembersStyle.borderRadius
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
this.addMembersStyles = () => {
|
|
175
|
+
return {
|
|
176
|
+
padding: this.addMembersStyle.padding
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
ngOnInit() {
|
|
181
|
+
this.setUsersStyle();
|
|
182
|
+
this.setAddMembersStyle();
|
|
183
|
+
this.membersList = [];
|
|
184
|
+
this.addedMembers = [];
|
|
185
|
+
this.actionMessagesList = [];
|
|
186
|
+
CometChat.getLoggedinUser().then((user) => {
|
|
187
|
+
this.loggedInUser = user;
|
|
188
|
+
}).catch((error) => {
|
|
189
|
+
if (this.onError) {
|
|
190
|
+
this.onError(error);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
closeClicked() {
|
|
195
|
+
if (this.onClose) {
|
|
196
|
+
this.onClose();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
backClicked() {
|
|
200
|
+
if (this.onBack) {
|
|
201
|
+
this.onBack();
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
createActionMessage(actionOn) {
|
|
205
|
+
let actionMessage = new CometChat.Action(this.group.getGuid(), CometChatUIKitConstants.MessageTypes.groupMember, CometChatUIKitConstants.MessageReceiverType.group, CometChatUIKitConstants.MessageCategory.action);
|
|
206
|
+
actionMessage.setAction(CometChatUIKitConstants.groupMemberAction.ADDED);
|
|
207
|
+
actionMessage.setActionBy(this.loggedInUser);
|
|
208
|
+
actionMessage.setActionFor(this.group);
|
|
209
|
+
actionMessage.setActionOn(actionOn);
|
|
210
|
+
actionMessage.setReceiver(this.group);
|
|
211
|
+
actionMessage.setSender(this.loggedInUser);
|
|
212
|
+
actionMessage.setConversationId("group_" + this.group.getGuid());
|
|
213
|
+
actionMessage.setMuid(CometChatUIKitUtility.ID());
|
|
214
|
+
actionMessage.setMessage(`${this.loggedInUser?.getName()} added ${actionOn.getUid()}`);
|
|
215
|
+
actionMessage.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
|
|
216
|
+
this.actionMessagesList.push(actionMessage);
|
|
217
|
+
}
|
|
218
|
+
setAddMembersStyle() {
|
|
219
|
+
let defaultStyle = new AddMembersStyle({
|
|
220
|
+
background: this.themeService.theme.palette.getBackground(),
|
|
221
|
+
border: `none`,
|
|
222
|
+
titleTextFont: fontHelper(this.themeService.theme.typography.title1),
|
|
223
|
+
titleTextColor: this.themeService.theme.palette.getAccent(),
|
|
224
|
+
emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),
|
|
225
|
+
emptyStateTextColor: this.themeService.theme.palette.getAccent600(),
|
|
226
|
+
errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),
|
|
227
|
+
errorStateTextColor: this.themeService.theme.palette.getAccent600(),
|
|
228
|
+
loadingIconTint: this.themeService.theme.palette.getAccent600(),
|
|
229
|
+
onlineStatusColor: this.themeService.theme.palette.getSuccess(),
|
|
230
|
+
separatorColor: this.themeService.theme.palette.getAccent400(),
|
|
231
|
+
width: "100%",
|
|
232
|
+
height: "100%",
|
|
233
|
+
borderRadius: "none",
|
|
234
|
+
searchPlaceholderTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
235
|
+
searchPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),
|
|
236
|
+
searchTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
|
|
237
|
+
searchTextColor: this.themeService.theme.palette.getAccent400(),
|
|
238
|
+
searchIconTint: this.themeService.theme.palette.getAccent600(),
|
|
239
|
+
searchBorder: `1px solid ${this.themeService.theme.palette.getAccent100()}`,
|
|
240
|
+
searchBorderRadius: "8px",
|
|
241
|
+
searchBackground: this.themeService.theme.palette.getAccent50(),
|
|
242
|
+
closeButtonIconTint: this.themeService.theme.palette.getPrimary(),
|
|
243
|
+
backButtonIconTint: this.themeService.theme.palette.getPrimary(),
|
|
244
|
+
addMembersButtonBackground: this.themeService.theme.palette.getPrimary(),
|
|
245
|
+
addMembersButtonTextColor: this.themeService.theme.palette.getAccent900("light"),
|
|
246
|
+
addMembersButtonTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
247
|
+
padding: "0 100px"
|
|
248
|
+
});
|
|
249
|
+
this.addMembersStyle = { ...defaultStyle, ...this.addMembersStyle };
|
|
250
|
+
this.addMemberButtonStyle.background = this.addMembersStyle.addMembersButtonBackground;
|
|
251
|
+
this.addMemberButtonStyle.buttonTextFont = this.addMembersStyle.addMembersButtonTextFont;
|
|
252
|
+
this.addMemberButtonStyle.buttonTextColor = this.addMembersStyle.addMembersButtonTextColor;
|
|
253
|
+
}
|
|
254
|
+
setUsersStyle() {
|
|
255
|
+
let defaultStyle = new UsersStyle({
|
|
256
|
+
background: this.themeService.theme.palette.getBackground(),
|
|
257
|
+
border: "none",
|
|
258
|
+
titleTextFont: fontHelper(this.themeService.theme.typography.title1),
|
|
259
|
+
titleTextColor: this.themeService.theme.palette.getAccent(),
|
|
260
|
+
emptyStateTextFont: fontHelper(this.themeService.theme.typography.title1),
|
|
261
|
+
emptyStateTextColor: this.themeService.theme.palette.getAccent600(),
|
|
262
|
+
errorStateTextFont: fontHelper(this.themeService.theme.typography.title1),
|
|
263
|
+
errorStateTextColor: this.themeService.theme.palette.getAccent600(),
|
|
264
|
+
loadingIconTint: this.themeService.theme.palette.getAccent600(),
|
|
265
|
+
separatorColor: this.themeService.theme.palette.getAccent400(),
|
|
266
|
+
onlineStatusColor: this.themeService.theme.palette.getSuccess(),
|
|
267
|
+
searchIconTint: this.themeService.theme.palette.getAccent600(),
|
|
268
|
+
searchPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),
|
|
269
|
+
searchBackground: this.themeService.theme.palette.getAccent100(),
|
|
270
|
+
searchPlaceholderTextFont: fontHelper(this.themeService.theme.typography.text3),
|
|
271
|
+
searchTextColor: this.themeService.theme.palette.getAccent600(),
|
|
272
|
+
searchTextFont: fontHelper(this.themeService.theme.typography.text3)
|
|
273
|
+
});
|
|
274
|
+
this.usersStyle = { ...defaultStyle, ...this.addMembersStyle };
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
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 });
|
|
278
|
+
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" }, 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 [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 });
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatAddMembersComponent, decorators: [{
|
|
280
|
+
type: Component,
|
|
281
|
+
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 [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"] }]
|
|
282
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.CometChatThemeService }]; }, propDecorators: { usersRequestBuilder: [{
|
|
283
|
+
type: Input
|
|
284
|
+
}], searchRequestBuilder: [{
|
|
285
|
+
type: Input
|
|
286
|
+
}], subtitleView: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], listItemView: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], disableUsersPresence: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}], menu: [{
|
|
293
|
+
type: Input
|
|
294
|
+
}], options: [{
|
|
295
|
+
type: Input
|
|
296
|
+
}], backButtonIconURL: [{
|
|
297
|
+
type: Input
|
|
298
|
+
}], closeButtonIconURL: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}], showBackButton: [{
|
|
301
|
+
type: Input
|
|
302
|
+
}], hideSeparator: [{
|
|
303
|
+
type: Input
|
|
304
|
+
}], selectionMode: [{
|
|
305
|
+
type: Input
|
|
306
|
+
}], searchPlaceholder: [{
|
|
307
|
+
type: Input
|
|
308
|
+
}], hideError: [{
|
|
309
|
+
type: Input
|
|
310
|
+
}], searchIconURL: [{
|
|
311
|
+
type: Input
|
|
312
|
+
}], hideSearch: [{
|
|
313
|
+
type: Input
|
|
314
|
+
}], title: [{
|
|
315
|
+
type: Input
|
|
316
|
+
}], onError: [{
|
|
317
|
+
type: Input
|
|
318
|
+
}], onBack: [{
|
|
319
|
+
type: Input
|
|
320
|
+
}], onClose: [{
|
|
321
|
+
type: Input
|
|
322
|
+
}], onSelect: [{
|
|
323
|
+
type: Input
|
|
324
|
+
}], buttonText: [{
|
|
325
|
+
type: Input
|
|
326
|
+
}], group: [{
|
|
327
|
+
type: Input
|
|
328
|
+
}], emptyStateView: [{
|
|
329
|
+
type: Input
|
|
330
|
+
}], errorStateView: [{
|
|
331
|
+
type: Input
|
|
332
|
+
}], loadingIconURL: [{
|
|
333
|
+
type: Input
|
|
334
|
+
}], listItemStyle: [{
|
|
335
|
+
type: Input
|
|
336
|
+
}], showSectionHeader: [{
|
|
337
|
+
type: Input
|
|
338
|
+
}], sectionHeaderField: [{
|
|
339
|
+
type: Input
|
|
340
|
+
}], loadingStateView: [{
|
|
341
|
+
type: Input
|
|
342
|
+
}], emptyStateText: [{
|
|
343
|
+
type: Input
|
|
344
|
+
}], errorStateText: [{
|
|
345
|
+
type: Input
|
|
346
|
+
}], onAddMembersButtonClick: [{
|
|
347
|
+
type: Input
|
|
348
|
+
}], titleAlignment: [{
|
|
349
|
+
type: Input
|
|
350
|
+
}], addMembersStyle: [{
|
|
351
|
+
type: Input
|
|
352
|
+
}] } });
|
|
353
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0QWRkTWVtYmVycy9jb21ldGNoYXQtYWRkLW1lbWJlcnMvY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0QWRkTWVtYmVycy9jb21ldGNoYXQtYWRkLW1lbWJlcnMvY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUFxQix1QkFBdUIsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBQyxjQUFjLEVBQUMsYUFBYSxFQUFzQixVQUFVLEVBQUMscUJBQXFCLEVBQUcsTUFBTSx5QkFBeUIsQ0FBQztBQUM5SSxPQUFPLDJCQUEyQixDQUFBO0FBQ2xDLE9BQU8sRUFBaUIsVUFBVSxFQUFFLFFBQVEsRUFBa0Isb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQTs7Ozs7QUFHOUk7Ozs7Ozs7O0VBUUU7QUFPRixNQUFNLE9BQU8sNEJBQTRCO0lBNkN2QyxZQUFvQixHQUFzQixFQUFTLFlBQWtDO1FBQWpFLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBdkM1RSx5QkFBb0IsR0FBVyxLQUFLLENBQUM7UUFHckMsc0JBQWlCLEdBQVUsdUJBQXVCLENBQUE7UUFDbEQsdUJBQWtCLEdBQVUsb0JBQW9CLENBQUE7UUFDaEQsbUJBQWMsR0FBUyxJQUFJLENBQUM7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VTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsICBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC1wcm8vY2hhdFwiO1xuaW1wb3J0IHsgQWRkTWVtYmVyc1N0eWxlLFRpdGxlQWxpZ25tZW50LFNlbGVjdGlvbk1vZGUsIFVzZXJzQ29uZmlndXJhdGlvbiwgVXNlcnNTdHlsZSxDb21ldENoYXRVSUtpdFV0aWxpdHkgIH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWQnO1xuaW1wb3J0ICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJ1xuaW1wb3J0IHtDb21ldENoYXRUaGVtZSwgZm9udEhlbHBlciwgbG9jYWxpemUsQ29tZXRDaGF0T3B0aW9uLCBDb21ldENoYXRHcm91cEV2ZW50cywgQ29tZXRDaGF0VUlLaXRDb25zdGFudHN9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzJ1xuaW1wb3J0ICB7IEF2YXRhclN0eWxlLCBMaXN0SXRlbVN0eWxlfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJ1xuaW1wb3J0IHsgQ29tZXRDaGF0VGhlbWVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL0NvbWV0Q2hhdFRoZW1lLnNlcnZpY2VcIjtcbi8qKlxuKlxuKiBDb21ldENoYXRBZGRNZW1iZXJzQ29tcG9uZW50Q29tcG9uZW50IGlzIHVzZWQgdG8gcmVuZGVyIGdyb3VwIG1lbWJlcnMgdG8gYWRkXG4qXG4qIEB2ZXJzaW9uIDEuMC4wXG4qIEBhdXRob3IgQ29tZXRDaGF0VGVhbVxuKiBAY29weXJpZ2h0IMKpIDIwMjIgQ29tZXRDaGF0IEluYy5cbipcbiovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY29tZXRjaGF0LWFkZC1tZW1iZXJzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jb21ldGNoYXQtYWRkLW1lbWJlcnMuY29tcG9uZW50LnNjc3NcIl0sXG4gIGNoYW5nZURldGVjdGlvbjpDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29tZXRDaGF0QWRkTWVtYmVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgdXNlcnNSZXF1ZXN0QnVpbGRlciE6IENvbWV0Q2hhdC5Vc2Vyc1JlcXVlc3RCdWlsZGVyO1xuICBASW5wdXQoKSBzZWFyY2hSZXF1ZXN0QnVpbGRlciE6IENvbWV0Q2hhdC5Vc2Vyc1JlcXVlc3RCdWlsZGVyO1xuICBASW5wdXQoKSBzdWJ0aXRsZVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBsaXN0SXRlbVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBkaXNhYmxlVXNlcnNQcmVzZW5jZTpib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lbnUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSAgIG9wdGlvbnMhOiAoKG1lbWJlcjpDb21ldENoYXQuVXNlcik9PkNvbWV0Q2hhdE9wdGlvbltdKSB8IG51bGw7XG4gIEBJbnB1dCgpIGJhY2tCdXR0b25JY29uVVJMOnN0cmluZyA9IFwiYXNzZXRzL2JhY2tidXR0b24uc3ZnXCJcbiAgQElucHV0KCkgY2xvc2VCdXR0b25JY29uVVJMOnN0cmluZyA9IFwiYXNzZXRzL2Nsb3NlMnguc3ZnXCJcbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b246Ym9vbGVhbj10cnVlO1xuICBASW5wdXQoKSBoaWRlU2VwYXJhdG9yOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGlvbk1vZGU6IFNlbGVjdGlvbk1vZGUgPSBTZWxlY3Rpb25Nb2RlLm11bHRpcGxlO1xuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nID0gXCJTZWFyY2ggTWVtYmVyc1wiO1xuICBASW5wdXQoKSBoaWRlRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvc2VhcmNoLnN2Z1wiO1xuICBASW5wdXQoKSBoaWRlU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSBsb2NhbGl6ZShcIkFERF9NRU1CRVJTXCIpO1xuICBASW5wdXQoKSBvbkVycm9yOigoZXJyb3I6YW55KT0+dm9pZCkgfCBudWxsID0gKGVycm9yOmFueSk9PntcbiAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgfVxuICBASW5wdXQoKSBvbkJhY2shOigpPT52b2lkO1xuICBASW5wdXQoKSBvbkNsb3NlITooKT0+dm9pZDtcbiAgQElucHV0KCkgb25TZWxlY3QhOiAodXNlcjpDb21ldENoYXQuVXNlcik9PnZvaWQ7XG5cbiAgQElucHV0KCkgYnV0dG9uVGV4dDpzdHJpbmcgPSBsb2NhbGl6ZShcIkFERF9NRU1CRVJTXCIpO1xuICBASW5wdXQoKSBncm91cCE6Q29tZXRDaGF0Lkdyb3VwO1xuICBASW5wdXQoKSBlbXB0eVN0YXRlVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGVycm9yU3RhdGVWaWV3ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgbG9hZGluZ0ljb25VUkw6IHN0cmluZyA9IFwiYXNzZXRzL1NwaW5uZXIuc3ZnXCI7XG4gIEBJbnB1dCgpIGxpc3RJdGVtU3R5bGU6TGlzdEl0ZW1TdHlsZSA9IHt9XG4gIEBJbnB1dCgpIHNob3dTZWN0aW9uSGVhZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlY3Rpb25IZWFkZXJGaWVsZDogc3RyaW5nID0gXCJuYW1lXCI7XG4gIEBJbnB1dCgpIGxvYWRpbmdTdGF0ZVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBlbXB0eVN0YXRlVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJOT19HUk9VUFNfRk9VTkRcIilcbiAgQElucHV0KCkgZXJyb3JTdGF0ZVRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiU09NRVRISU5HX1dST05HXCIpO1xuICBASW5wdXQoKSBvbkFkZE1lbWJlcnNCdXR0b25DbGljayE6KGd1aWQ6c3RyaW5nLCBtZW1iZXJzOkNvbWV0Q2hhdC5Vc2VyW10pPT52b2lkO1xuICBASW5wdXQoKSB0aXRsZUFsaWdubWVudDogVGl0bGVBbGlnbm1lbnQgPSBUaXRsZUFsaWdubWVudC5jZW50ZXI7XG4gIHRpdGxlQWxpZ25tZW50RW51bTp0eXBlb2YgVGl0bGVBbGlnbm1lbnQgPSBUaXRsZUFsaWdubWVudFxuICBzZWxlY3Rpb25tb2RlRW51bTogdHlwZW9mIFNlbGVjdGlvbk1vZGUgPSBTZWxlY3Rpb25Nb2RlO1xuICBASW5wdXQoKSBhZGRNZW1iZXJzU3R5bGU6IEFkZE1lbWJlcnNTdHlsZSA9IHt9O1xuXG4gIGxvZ2dlZEluVXNlciE6Q29tZXRDaGF0LlVzZXIgfCBudWxsO1xuICBhY3Rpb25NZXNzYWdlc0xpc3Q6Q29tZXRDaGF0LkFjdGlvbltdID0gW11cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgdGhlbWVTZXJ2aWNlOkNvbWV0Q2hhdFRoZW1lU2VydmljZSkgeyAgfVxuICBhZGRNZW1iZXJCdXR0b25TdHlsZTphbnkgPSB7XG4gICAgaGVpZ2h0OlwiMTAwJVwiLFxuICAgIHdpZHRoOlwiMTAwJVwiLFxuICAgIGJhY2tncm91bmQ6XCJyZ2IoNTEsIDE1MywgMjU1KVwiLFxuICAgIHBhZGRpbmc6XCI4cHhcIixcbiAgICBidXR0b25UZXh0Q29sb3I6XCJ3aGl0ZVwiLFxuICAgIGJ1dHRvblRleHRGb250OlwiXCIsXG4gICAgZGlzcGxheTpcImZsZXhcIixcbiAgICBqdXN0aWZ5Q29udGVudDpcImNlbnRlclwiLFxuICAgIGFsaWduSXRlbXM6XCJjZW50ZXJcIixcbiAgICBib3JkZXI6XCJub25lXCIsXG4gICAgYm9yZGVyUmFkaXVzOlwiOHB4XCJcbn1cbiAgc2VhcmNoS2V5d29yZDogc3RyaW5nID0gXCJcIjtcbiAgcHVibGljIHVzZXJzUmVxdWVzdDogYW55O1xuICBwdWJsaWMgdGltZW91dDogYW55O1xuICBwdWJsaWMgdXNlcnNMaXN0OiBDb21ldENoYXQuVXNlcltdID0gW107XG4gIHB1YmxpYyB1c2VyTGlzdGVuZXJJZDogc3RyaW5nID0gXCJ1c2VybGlzdF9cIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICB1c2Vyc1N0eWxlOiBVc2Vyc1N0eWxlID0ge1xuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIGJhY2tncm91bmQ6IFwiXCIsXG4gICAgYm9yZGVyOiBcIlwiLFxuICAgIGJvcmRlclJhZGl1czogXCJcIixcbiAgICBzZWFyY2hCYWNrZ3JvdW5kOiBcIiNlZmVmZWZcIixcbiAgICBvbmxpbmVTdGF0dXNDb2xvcjogXCJcIixcbiAgICBzZXBhcmF0b3JDb2xvcjogXCJyZ2IoMjIyIDIyMiAyMjIgLyA0NiUpXCIsXG4gICAgc2VjdGlvbkhlYWRlclRleHRGb250OiBcIlwiLFxuICAgIHNlY3Rpb25IZWFkZXJUZXh0Q29sb3I6IFwiXCJcbiAgfTtcbiAgbWVtYmVyc0xpc3Q6YW55W10gPSBbXTtcbiAgYWRkZWRNZW1iZXJzOkNvbWV0Q2hhdC5Hcm91cE1lbWJlcltdID0gW11cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRVc2Vyc1N0eWxlKClcbiAgICB0aGlzLnNldEFkZE1lbWJlcnNTdHlsZSgpO1xuICAgIHRoaXMubWVtYmVyc0xpc3QgPSBbXVxuICAgIHRoaXMuYWRkZWRNZW1iZXJzID0gW11cbiAgICB0aGlzLmFjdGlvbk1lc3NhZ2VzTGlzdCA9IFtdXG5cbiAgICBDb21ldENoYXQuZ2V0TG9nZ2VkaW5Vc2VyKCkudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIgfCBudWxsKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlZEluVXNlciA9IHVzZXI7XG4gICAgfSkuY2F0Y2goKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pPT57XG4gICAgICBpZih0aGlzLm9uRXJyb3Ipe1xuICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICAvKipcbiAgICogQHBhcmFtICB7c3RyaW5nfSB1aWRcbiAgICovXG4gIGFkZFJlbW92ZVVzZXJzID0gKHVzZXI6Q29tZXRDaGF0LlVzZXIpPT57XG4gaWYodGhpcy5vblNlbGVjdCl7XG4gICB0aGlzLm9uU2VsZWN0KHVzZXIpXG4gfVxuXG4gZWxzZXtcbiAgbGV0IGtleSA9ICB0aGlzLm1lbWJlcnNMaXN0LmZpbmRJbmRleChcbiAgICAobTphbnkpID0+IG0uZ2V0VWlkKCkgPT09IHVzZXIuZ2V0VWlkKClcbiAgKTtcbiAgaWYoa2V5ID49IDApe1xuICAgIHRoaXMubWVtYmVyc0xpc3Quc3BsaWNlKGtleSwxKVxuICB9XG4gIGVsc2V7XG4gICAgbGV0IG1lbWJlcjpDb21ldENoYXQuR3JvdXBNZW1iZXIgPSBuZXcgQ29tZXRDaGF0Lkdyb3VwTWVtYmVyKHVzZXIuZ2V0VWlkKCksIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyU2NvcGUucGFydGljaXBhbnQpXG4gICAgbWVtYmVyLnNldE5hbWUodXNlci5nZXROYW1lKCkpXG4gICAgbWVtYmVyLnNldEd1aWQodGhpcy5ncm91cC5nZXRHdWlkKCkpXG5cbiAgICB0aGlzLm1lbWJlcnNMaXN0LnB1c2gobWVtYmVyKVxuICB9XG4gfVxuIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGNsb3NlQ2xpY2tlZCgpe1xuICAgIGlmKHRoaXMub25DbG9zZSl7XG4gICAgICB0aGlzLm9uQ2xvc2UoKVxuICAgIH1cbiAgfVxuICBiYWNrQ2xpY2tlZCgpe1xuICAgIGlmKHRoaXMub25CYWNrKXtcbiAgICAgIHRoaXMub25CYWNrKClcbiAgICB9XG4gIH1cbiAgYWRkTWVtYmVyc1RvR3JvdXAgPSAoKT0+e1xuICAgIGlmKHRoaXMuZ3JvdXAgJiYgdGhpcy5tZW1iZXJzTGlzdC5sZW5ndGggPiAwKXtcbiAgICAgIGlmKHRoaXMub25BZGRNZW1iZXJzQnV0dG9uQ2xpY2spe1xuICAgICAgICB0aGlzLm9uQWRkTWVtYmVyc0J1dHRvbkNsaWNrKHRoaXMuZ3JvdXAuZ2V0R3VpZCgpLCB0aGlzLm1lbWJlcnNMaXN0KVxuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBlbHNle1xuICAgICAgICBDb21ldENoYXQuYWRkTWVtYmVyc1RvR3JvdXAodGhpcy5ncm91cC5nZXRHdWlkKCksIHRoaXMubWVtYmVyc0xpc3QsIFtdKS50aGVuKChyZXNwb25zZTphbnkpPT57XG4gICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIHJlc3BvbnNlW2tleV0gPT09IFwic3VjY2Vzc1wiKSB7XG5cbiAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdVc2VyOkNvbWV0Q2hhdC5Hcm91cE1lbWJlciA9IHRoaXMubWVtYmVyc0xpc3QuZmluZCgodXNlcjpDb21ldENoYXQuVXNlcikgPT4gdXNlci5nZXRVaWQoKSA9PT0ga2V5KTtcbiAgICAgICAgICAgICAgaWYgKG1hdGNoaW5nVXNlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uTWVzc2FnZShtYXRjaGluZ1VzZXIpXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRlZE1lbWJlcnMucHVzaChtYXRjaGluZ1VzZXIpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmdyb3VwLnNldE1lbWJlcnNDb3VudCh0aGlzLmdyb3VwLmdldE1lbWJlcnNDb3VudCgpICsgdGhpcy5hZGRlZE1lbWJlcnM/Lmxlbmd0aCB8fCAwKVxuICAgICAgICAgIENvbWV0Q2hhdEdyb3VwRXZlbnRzLmNjR3JvdXBNZW1iZXJBZGRlZC5uZXh0KFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXNzYWdlczp0aGlzLmFjdGlvbk1lc3NhZ2VzTGlzdCxcbiAgICAgICAgICAgICAgdXNlcnNBZGRlZDp0aGlzLmFkZGVkTWVtYmVycyxcbiAgICAgICAgICAgICAgdXNlckFkZGVkSW46dGhpcy5ncm91cCxcbiAgICAgICAgICAgICAgdXNlckFkZGVkQnk6dGhpcy5sb2dnZWRJblVzZXIhXG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgICAgdGhpcy5tZW1iZXJzTGlzdCA9IFtdXG4gICAgICAgICAgdGhpcy5hZGRlZE1lbWJlcnMgPSBbXVxuICAgICAgICAgIHRoaXMuYWN0aW9uTWVzc2FnZXNMaXN0ID0gW11cbiAgICAgICAgICBpZih0aGlzLm9uQmFjayl7XG4gICAgICAgICAgICB0aGlzLm9uQmFjaygpXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycjphbnkpPT57XG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKVxuICAgICAgICAgIHRoaXMubWVtYmVyc0xpc3QgPSBbXTtcbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuICBjcmVhdGVBY3Rpb25NZXNzYWdlKGFjdGlvbk9uOkNvbWV0Q2hhdC5Hcm91cE1lbWJlcil7XG4gICAgbGV0IGFjdGlvbk1lc3NhZ2U6Q29tZXRDaGF0LkFjdGlvbiAgPSBuZXcgQ29tZXRDaGF0LkFjdGlvbih0aGlzLmdyb3VwLmdldEd1aWQoKSxDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZ3JvdXBNZW1iZXIsQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cCxDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuYWN0aW9uIGFzIGFueSlcbiAgICBhY3Rpb25NZXNzYWdlLnNldEFjdGlvbihDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5BRERFRClcbiAgICBhY3Rpb25NZXNzYWdlLnNldEFjdGlvbkJ5KHRoaXMubG9nZ2VkSW5Vc2VyISlcbiAgICBhY3Rpb25NZXNzYWdlLnNldEFjdGlvbkZvcih0aGlzLmdyb3VwKVxuICAgIGFjdGlvbk1lc3NhZ2Uuc2V0QWN0aW9uT24oYWN0aW9uT24pXG4gICAgYWN0aW9uTWVzc2FnZS5zZXRSZWNlaXZlcih0aGlzLmdyb3VwKVxuICAgIGFjdGlvbk1lc3NhZ2Uuc2V0U2VuZGVyKHRoaXMubG9nZ2VkSW5Vc2VyISlcbiAgICBhY3Rpb25NZXNzYWdlLnNldENvbnZlcnNhdGlvbklkKFwiZ3JvdXBfXCIrIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpKVxuICAgIGFjdGlvbk1lc3NhZ2Uuc2V0TXVpZChDb21ldENoYXRVSUtpdFV0aWxpdHkuSUQoKSlcbiAgICBhY3Rpb25NZXNzYWdlLnNldE1lc3NhZ2UoYCR7dGhpcy5sb2dnZWRJblVzZXI/LmdldE5hbWUoKX0gYWRkZWQgJHthY3Rpb25Pbi5nZXRVaWQoKX1gKVxuICAgIGFjdGlvbk1lc3NhZ2Uuc2V0U2VudEF0KENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5nZXRVbml4VGltZXN0YW1wKCkpXG5cbiAgICB0aGlzLmFjdGlvbk1lc3NhZ2VzTGlzdC5wdXNoKGFjdGlvbk1lc3NhZ2UpXG4gIH1cblxuICBzZXRBZGRNZW1iZXJzU3R5bGUoKXtcblxuICAgIGxldCBkZWZhdWx0U3R5bGU6QWRkTWVtYmVyc1N0eWxlID0gbmV3IEFkZE1lbWJlcnNTdHlsZSh7XG4gICAgICBiYWNrZ3JvdW5kOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QmFja2dyb3VuZCgpLFxuICAgICAgYm9yZGVyOmBub25lYCxcbiAgICAgIHRpdGxlVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICB0aXRsZVRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudCgpLFxuICAgICAgZW1wdHlTdGF0ZVRleHRGb250OmZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTEpLFxuICAgICAgZW1wdHlTdGF0ZVRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgZXJyb3JTdGF0ZVRleHRGb250OmZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTEpLFxuICAgICAgZXJyb3JTdGF0ZVRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgbG9hZGluZ0ljb25UaW50OnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBvbmxpbmVTdGF0dXNDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFN1Y2Nlc3MoKSxcbiAgICAgIHNlcGFyYXRvckNvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NDAwKCksXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIm5vbmVcIixcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXJUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBzZWFyY2hUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMiksXG4gICAgICBzZWFyY2hUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NDAwKCksXG4gICAgICBzZWFyY2hJY29uVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIHNlYXJjaEJvcmRlcjogYDFweCBzb2xpZCAke3RoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCl9YCxcbiAgICAgIHNlYXJjaEJvcmRlclJhZGl1czogXCI4cHhcIixcbiAgICAgIHNlYXJjaEJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NTAoKSxcbiAgICAgIGNsb3NlQnV0dG9uSWNvblRpbnQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KCksXG4gICAgICBiYWNrQnV0dG9uSWNvblRpbnQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KCksXG4gICAgIGFkZE1lbWJlcnNCdXR0b25CYWNrZ3JvdW5kOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgICBhZGRNZW1iZXJzQnV0dG9uVGV4dENvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50OTAwKFwibGlnaHRcIiksXG4gICAgIGFkZE1lbWJlcnNCdXR0b25UZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgcGFkZGluZzpcIjAgMTAwcHhcIlxuICAgIH0pXG4gICAgdGhpcy5hZGRNZW1iZXJzU3R5bGUgPSB7Li4uZGVmYXVsdFN0eWxlLC4uLnRoaXMuYWRkTWVtYmVyc1N0eWxlfVxuICAgIHRoaXMuYWRkTWVtYmVyQnV0dG9uU3R5bGUuYmFja2dyb3VuZCA9IHRoaXMuYWRkTWVtYmVyc1N0eWxlLmFkZE1lbWJlcnNCdXR0b25CYWNrZ3JvdW5kO1xuICAgIHRoaXMuYWRkTWVtYmVyQnV0dG9uU3R5bGUuYnV0dG9uVGV4dEZvbnQgPSB0aGlzLmFkZE1lbWJlcnNTdHlsZS5hZGRNZW1iZXJzQnV0dG9uVGV4dEZvbnQ7XG4gICAgdGhpcy5hZGRNZW1iZXJCdXR0b25TdHlsZS5idXR0b25UZXh0Q29sb3IgPSB0aGlzLmFkZE1lbWJlcnNTdHlsZS5hZGRNZW1iZXJzQnV0dG9uVGV4dENvbG9yO1xuICB9XG4gIHNldFVzZXJzU3R5bGUoKXtcbiAgICBsZXQgZGVmYXVsdFN0eWxlOlVzZXJzU3R5bGUgPSBuZXcgVXNlcnNTdHlsZSh7XG4gICAgICBiYWNrZ3JvdW5kOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QmFja2dyb3VuZCgpLFxuICAgICAgYm9yZGVyOlwibm9uZVwiLFxuICAgICAgdGl0bGVUZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICAgIHRpdGxlVGV4dENvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KCksXG4gICAgICBlbXB0eVN0YXRlVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICBlbXB0eVN0YXRlVGV4dENvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBlcnJvclN0YXRlVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICBlcnJvclN0YXRlVGV4dENvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBsb2FkaW5nSWNvblRpbnQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIHNlcGFyYXRvckNvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NDAwKCksXG4gICAgICBvbmxpbmVTdGF0dXNDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFN1Y2Nlc3MoKSxcbiAgICAgIHNlYXJjaEljb25UaW50OnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlclRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgc2VhcmNoQmFja2dyb3VuZDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpLFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXJUZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGV4dDMpLFxuICAgICAgc2VhcmNoVGV4dENvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBzZWFyY2hUZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGV4dDMpXG4gICAgfSlcbiAgICB0aGlzLnVzZXJzU3R5bGUgPSB7Li4uZGVmYXVsdFN0eWxlLC4uLnRoaXMuYWRkTWVtYmVyc1N0eWxlfVxuICB9XG5cbiAgLy8gc3R5bGVzXG4gIGJhY2tCdXR0b25TdHlsZSA9ICgpPT4ge1xuICAgIHJldHVybiB7XG4gICAgIGhlaWdodDpcIjI0cHhcIixcbiAgICAgd2lkdGg6XCIyNHB4XCIsXG4gICAgIGJvcmRlcjpcIm5vbmVcIixcbiAgICAgYm9yZGVyUmFkaXVzOlwiMFwiLFxuICAgICBiYWNrZ3JvdW5kOlwidHJhbnNwYXJlbnRcIixcbiAgICAgIGJ1dHRvbkljb25UaW50OnRoaXMuYWRkTWVtYmVyc1N0eWxlLmJhY2tCdXR0b25JY29uVGludCB8fCB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKVxuICAgIH1cbiAgfVxuICBjbG9zZUJ1dHRvblN0eWxlID0gKCk9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodDpcIjI0cHhcIixcbiAgICAgIHdpZHRoOlwiMjRweFwiLFxuICAgICAgYm9yZGVyOlwibm9uZVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOlwiMFwiLFxuICAgICAgYmFja2dyb3VuZDpcInRyYW5zcGFyZW50XCIsXG4gICAgICBidXR0b25JY29uVGludDp0aGlzLmFkZE1lbWJlcnNTdHlsZS5jbG9zZUJ1dHRvbkljb25UaW50IHx8IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpXG4gICAgfVxuICB9XG5cbiAgd3JhcHBlclN0eWxlID0gKCk9PntcbiAgICByZXR1cm4ge1xuICAgICAgaGVpZ2h0OiB0aGlzLmFkZE1lbWJlcnNTdHlsZS5oZWlnaHQsXG4gICAgICB3aWR0aDogdGhpcy5hZGRNZW1iZXJzU3R5bGUud2lkdGgsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLmFkZE1lbWJlcnNTdHlsZS5iYWNrZ3JvdW5kLFxuICAgICAgYm9yZGVyOiB0aGlzLmFkZE1lbWJlcnNTdHlsZS5ib3JkZXIsXG4gICAgICBib3JkZXJSYWRpdXM6IHRoaXMuYWRkTWVtYmVyc1N0eWxlLmJvcmRlclJhZGl1c1xuICAgIH1cbiAgfVxuICBhZGRNZW1iZXJzU3R5bGVzID0gKCk9PntcbiAgICByZXR1cm4ge1xuICAgICAgcGFkZGluZzp0aGlzLmFkZE1lbWJlcnNTdHlsZS5wYWRkaW5nXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2MtYWRkLW1lbWJlcnNcIiBbbmdTdHlsZV09XCJ3cmFwcGVyU3R5bGUoKVwiPlxuICA8ZGl2IGNsYXNzPVwiY2MtYmFjay1idXR0b25cIj5cbiAgICA8Y29tZXRjaGF0LWJ1dHRvbiBbaWNvblVSTF09XCJiYWNrQnV0dG9uSWNvblVSTFwiIFtidXR0b25TdHlsZV09XCJiYWNrQnV0dG9uU3R5bGUoKVwiICAoY2MtYnV0dG9uLWNsaWNrZWQpPVwiYmFja0NsaWNrZWQoKVwiICpuZ0lmPVwic2hvd0JhY2tCdXR0b25cIj5cblxuICAgIDwvY29tZXRjaGF0LWJ1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYy1hZGQtbWVtYmVyc19fd3JhcHBlclwiIFtuZ1N0eWxlXT1cImFkZE1lbWJlcnNTdHlsZXMoKVwiPlxuICAgPGRpdiBjbGFzcz1cImNjLXVzZXJzXCI+XG4gICAgPGNvbWV0Y2hhdC11c2VycyBbc2VhcmNoUGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIiBbdXNlcnNSZXF1ZXN0QnVpbGRlcl09XCJ1c2Vyc1JlcXVlc3RCdWlsZGVyXCJcbiAgICBbaGlkZVNlYXJjaF09XCJoaWRlU2VhcmNoXCJcbiAgICBbc2VhcmNoSWNvblVSTF09XCJzZWFyY2hJY29uVVJMXCJcbiAgICBbc2VhcmNoUmVxdWVzdEJ1aWxkZXJdPVwic2VhcmNoUmVxdWVzdEJ1aWxkZXJcIlxuICAgIFt1c2Vyc1N0eWxlXT1cInVzZXJzU3R5bGVcIlxuICAgIFtzdWJ0aXRsZVZpZXddPVwic3VidGl0bGVWaWV3XCJcbiAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICBbdXNlcnNSZXF1ZXN0QnVpbGRlcl09XCJ1c2Vyc1JlcXVlc3RCdWlsZGVyXCJcbiAgICBbZW1wdHlTdGF0ZVZpZXddPVwiZW1wdHlTdGF0ZVZpZXdcIlxuICAgIFtvblNlbGVjdF09XCIgYWRkUmVtb3ZlVXNlcnNcIlxuICAgIFtzZWN0aW9uSGVhZGVyRmllbGRdPVwic2VjdGlvbkhlYWRlckZpZWxkXCJcbiAgICBbbG9hZGluZ0ljb25VUkxdPVwibG9hZGluZ0ljb25VUkxcIlxuICAgIFtlcnJvclN0YXRlVmlld109XCJlcnJvclN0YXRlVmlld1wiXG4gICAgW2xvYWRpbmdTdGF0ZVZpZXddPVwibG9hZGluZ1N0YXRlVmlld1wiXG4gICAgW3RpdGxlQWxpZ25tZW50XT1cInRpdGxlQWxpZ25tZW50XCJcbiAgICBbc2hvd1NlY3Rpb25IZWFkZXJdPVwic2hvd1NlY3Rpb25IZWFkZXJcIlxuICAgIFtsaXN0SXRlbVZpZXddPVwibGlzdEl0ZW1WaWV3XCJcbiAgICBbbWVudV09XCJtZW51XCJcbiAgICBbaGlkZVNlcGFyYXRvcl09XCJoaWRlU2VwYXJhdG9yXCJcbiAgICBbaGlkZUVycm9yXT1cImhpZGVFcnJvclwiXG4gICAgW3NlbGVjdGlvbk1vZGVdPVwiIHNlbGVjdGlvbk1vZGVcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiICA+XG5cbiAgICA8L2NvbWV0Y2hhdC11c2Vycz5cbiAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYy1hZGQtbWVtYmVyc19fYnV0dG9uc1wiPlxuICAgICAgPGNvbWV0Y2hhdC1idXR0b24gY2xhc3M9XCJjYy1hZGQtbWVtYmVyc19fYnV0dG9ucy0tYWRkXCIgW3RleHRdPVwiYnV0dG9uVGV4dFwiIFtidXR0b25TdHlsZV09XCJhZGRNZW1iZXJCdXR0b25TdHlsZVwiIChjbGljayk9XCJhZGRNZW1iZXJzVG9Hcm91cCgpXCIgPjwvY29tZXRjaGF0LWJ1dHRvbj5cblxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLWNsb3NlLWJ1dHRvblwiPlxuICAgIDxjb21ldGNoYXQtYnV0dG9uIFtpY29uVVJMXT1cImNsb3NlQnV0dG9uSWNvblVSTFwiIFtidXR0b25TdHlsZV09XCJjbG9zZUJ1dHRvblN0eWxlKClcIiAoY2MtYnV0dG9uLWNsaWNrZWQpPVwiY2xvc2VDbGlja2VkKClcIj5cblxuICAgIDwvY29tZXRjaGF0LWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { CometChatAddMembersComponent } from "./cometchat-add-members/cometchat-add-members.component";
|
|
4
|
+
import { FormsModule } from "@angular/forms";
|
|
5
|
+
import { CometChatMessageHeader } from "../CometChatMessageHeader/cometchat-message-header.module";
|
|
6
|
+
import { CometChatUsers } from "../CometChatUsers/cometchat-users.module";
|
|
7
|
+
import '@cometchat/uikit-elements';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class CometChatAddMembers {
|
|
10
|
+
}
|
|
11
|
+
CometChatAddMembers.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatAddMembers, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
CometChatAddMembers.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatAddMembers, declarations: [CometChatAddMembersComponent], imports: [CommonModule, FormsModule, CometChatMessageHeader, CometChatUsers], exports: [CometChatAddMembersComponent] });
|
|
13
|
+
CometChatAddMembers.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatAddMembers, imports: [[CommonModule, FormsModule, CometChatMessageHeader, CometChatUsers]] });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatAddMembers, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
declarations: [CometChatAddMembersComponent],
|
|
18
|
+
imports: [CommonModule, FormsModule, CometChatMessageHeader, CometChatUsers],
|
|
19
|
+
exports: [CometChatAddMembersComponent],
|
|
20
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWFkZC1tZW1iZXJzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0QWRkTWVtYmVycy9jb21ldGNoYXQtYWRkLW1lbWJlcnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDMUUsT0FBTywyQkFBMkIsQ0FBQTs7QUFPbEMsTUFBTSxPQUFPLG1CQUFtQjs7aUhBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGlCQUxmLDRCQUE0QixhQUNqQyxZQUFZLEVBQUMsV0FBVyxFQUFDLHNCQUFzQixFQUFDLGNBQWMsYUFDOUQsNEJBQTRCO2tIQUczQixtQkFBbUIsWUFKckIsQ0FBQyxZQUFZLEVBQUMsV0FBVyxFQUFDLHNCQUFzQixFQUFDLGNBQWMsQ0FBQzs0RkFJOUQsbUJBQW1CO2tCQU4vQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDRCQUE0QixDQUFDO29CQUM1QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUMsV0FBVyxFQUFDLHNCQUFzQixFQUFDLGNBQWMsQ0FBQztvQkFDekUsT0FBTyxFQUFFLENBQUMsNEJBQTRCLENBQUM7b0JBQ3ZDLE9BQU8sRUFBQyxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvbWV0Q2hhdEFkZE1lbWJlcnNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21ldGNoYXQtYWRkLW1lbWJlcnMvY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VIZWFkZXIgfSBmcm9tIFwiLi4vQ29tZXRDaGF0TWVzc2FnZUhlYWRlci9jb21ldGNoYXQtbWVzc2FnZS1oZWFkZXIubW9kdWxlXCI7XG5pbXBvcnQgeyBDb21ldENoYXRVc2VycyB9IGZyb20gXCIuLi9Db21ldENoYXRVc2Vycy9jb21ldGNoYXQtdXNlcnMubW9kdWxlXCI7XG5pbXBvcnQgJ0Bjb21ldGNoYXQvdWlraXQtZWxlbWVudHMnXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb21ldENoYXRBZGRNZW1iZXJzQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxGb3Jtc01vZHVsZSxDb21ldENoYXRNZXNzYWdlSGVhZGVyLENvbWV0Q2hhdFVzZXJzXSxcbiAgZXhwb3J0czogW0NvbWV0Q2hhdEFkZE1lbWJlcnNDb21wb25lbnRdLFxuICBzY2hlbWFzOltDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxufSlcbmV4cG9ydCBjbGFzcyBDb21ldENoYXRBZGRNZW1iZXJzIHt9XG4iXX0=
|