@cometchat/chat-uikit-angular 4.0.0-beta.1.4 → 4.0.0-beta.1.5

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 (131) hide show
  1. package/Calls/CallingExtension.d.ts +4 -3
  2. package/Calls/CallingExtensionDecorator.d.ts +0 -1
  3. package/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.d.ts +4 -3
  4. package/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.d.ts +4 -3
  5. package/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.d.ts +14 -6
  6. package/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.d.ts +0 -1
  7. package/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.d.ts +5 -5
  8. package/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.d.ts +6 -5
  9. package/CometChatContacts/cometchat-contacts/cometchat-contacts.component.d.ts +65 -0
  10. package/CometChatContacts/cometchat-contacts.module.d.ts +12 -0
  11. package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +21 -15
  12. package/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.d.ts +13 -4
  13. package/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.d.ts +2 -1
  14. package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +7 -7
  15. package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +14 -12
  16. package/CometChatGroups/cometchat-groups/cometchat-groups.component.d.ts +12 -6
  17. package/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.d.ts +6 -4
  18. package/CometChatList/cometchat-list.component.d.ts +2 -1
  19. package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +2 -2
  20. package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +23 -6
  21. package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +1 -1
  22. package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +95 -0
  23. package/CometChatMessageInformation/cometchat-message-information.module.d.ts +10 -0
  24. package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +45 -26
  25. package/CometChatMessageList/cometchat-message-list.module.d.ts +3 -1
  26. package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +5 -3
  27. package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +0 -1
  28. package/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.d.ts +3 -3
  29. package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +11 -5
  30. package/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.d.ts +2 -2
  31. package/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.d.ts +4 -8
  32. package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +1 -4
  33. package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.d.ts +4 -8
  34. package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +1 -4
  35. package/Extensions/ImageModeration/ImageModerationExtension.d.ts +4 -4
  36. package/Extensions/LinkPreviewExtension/LinkPreviewExtension.d.ts +4 -4
  37. package/Extensions/MessageTranslation/MessageTranslationExtension.d.ts +4 -8
  38. package/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.d.ts +1 -4
  39. package/Extensions/PollsExtension/PollsExtension.d.ts +4 -4
  40. package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +0 -1
  41. package/Extensions/Reactions/ReactionExtension.d.ts +4 -4
  42. package/Extensions/Reactions/ReactionExtensionDecorator.d.ts +0 -1
  43. package/Extensions/SmartReplies/SmartRepliesExtension.d.ts +4 -8
  44. package/Extensions/SmartReplies/SmartRepliesExtensionDecorator.d.ts +2 -2
  45. package/Extensions/Stickers/StickersExtension.d.ts +4 -8
  46. package/Extensions/Stickers/StickersExtensionDecorator.d.ts +2 -2
  47. package/Extensions/TextModerator/TextModeratorExtension.d.ts +4 -3
  48. package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +0 -1
  49. package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.d.ts +4 -4
  50. package/Shared/CometChatUIkit/CometChatUIKit.d.ts +10 -6
  51. package/Shared/Framework/DataSource.d.ts +0 -1
  52. package/Shared/Framework/DataSourceDecorator.d.ts +0 -1
  53. package/Shared/Utils/ComeChatException.d.ts +1 -2
  54. package/Shared/Utils/MessageUtils.d.ts +2 -1
  55. package/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.d.ts +38 -9
  56. package/Shared/Views/CometChatTabs/cometchat-tabs.module.d.ts +1 -5
  57. package/esm2020/Calls/CallingExtension.mjs +7 -4
  58. package/esm2020/Calls/CallingExtensionDecorator.mjs +4 -4
  59. package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +58 -21
  60. package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.mjs +48 -17
  61. package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.mjs +110 -9
  62. package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.mjs +9 -7
  63. package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +9 -6
  64. package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +12 -7
  65. package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +273 -0
  66. package/esm2020/CometChatContacts/cometchat-contacts.module.mjs +23 -0
  67. package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +122 -65
  68. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +105 -17
  69. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.mjs +6 -2
  70. package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +13 -11
  71. package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +45 -46
  72. package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +69 -28
  73. package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +60 -21
  74. package/esm2020/CometChatList/cometchat-list.component.mjs +8 -9
  75. package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +4 -5
  76. package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +200 -30
  77. package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +4 -5
  78. package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +288 -0
  79. package/esm2020/CometChatMessageInformation/cometchat-message-information.module.mjs +28 -0
  80. package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +401 -185
  81. package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +12 -4
  82. package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +28 -15
  83. package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +3 -4
  84. package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +14 -15
  85. package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +72 -45
  86. package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +21 -9
  87. package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.mjs +7 -6
  88. package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +3 -4
  89. package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.mjs +7 -6
  90. package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +3 -4
  91. package/esm2020/Extensions/ImageModeration/ImageModerationExtension.mjs +7 -5
  92. package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtension.mjs +7 -5
  93. package/esm2020/Extensions/MessageTranslation/MessageTranslationExtension.mjs +7 -6
  94. package/esm2020/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.mjs +2 -4
  95. package/esm2020/Extensions/PollsExtension/PollsExtension.mjs +7 -5
  96. package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +1 -1
  97. package/esm2020/Extensions/Reactions/ReactionExtension.mjs +7 -5
  98. package/esm2020/Extensions/Reactions/ReactionExtensionDecorator.mjs +3 -2
  99. package/esm2020/Extensions/SmartReplies/SmartRepliesExtension.mjs +7 -6
  100. package/esm2020/Extensions/SmartReplies/SmartRepliesExtensionDecorator.mjs +5 -7
  101. package/esm2020/Extensions/Stickers/StickersExtension.mjs +7 -10
  102. package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +5 -7
  103. package/esm2020/Extensions/TextModerator/TextModeratorExtension.mjs +16 -4
  104. package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +1 -1
  105. package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.mjs +7 -5
  106. package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +66 -32
  107. package/esm2020/Shared/Framework/DataSource.mjs +1 -1
  108. package/esm2020/Shared/Framework/DataSourceDecorator.mjs +1 -1
  109. package/esm2020/Shared/Utils/ComeChatException.mjs +2 -2
  110. package/esm2020/Shared/Utils/MessageUtils.mjs +36 -6
  111. package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.mjs +61 -25
  112. package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs.module.mjs +2 -18
  113. package/esm2020/public-api.mjs +8 -5
  114. package/fesm2015/cometchat-chat-uikit-angular.mjs +3658 -3185
  115. package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
  116. package/fesm2020/cometchat-chat-uikit-angular.mjs +3639 -3164
  117. package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
  118. package/package.json +5 -5
  119. package/public-api.d.ts +7 -4
  120. package/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.d.ts +0 -139
  121. package/Calls/CometChatCallDetails/cometchat-call-details.module.d.ts +0 -10
  122. package/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.d.ts +0 -125
  123. package/Calls/CometChatCallHistory/cometchat-call-history.module.d.ts +0 -10
  124. package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.d.ts +0 -59
  125. package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.d.ts +0 -12
  126. package/esm2020/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.mjs +0 -452
  127. package/esm2020/Calls/CometChatCallDetails/cometchat-call-details.module.mjs +0 -31
  128. package/esm2020/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.mjs +0 -397
  129. package/esm2020/Calls/CometChatCallHistory/cometchat-call-history.module.mjs +0 -28
  130. package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.mjs +0 -143
  131. package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.mjs +0 -39
@@ -0,0 +1,273 @@
1
+ import { Component, Input, ChangeDetectionStrategy, ViewChild } from "@angular/core";
2
+ import { CometChat } from "@cometchat/chat-sdk-javascript";
3
+ import { GroupsConfiguration, UsersConfiguration, TabItemStyle, ContactsStyle } from '@cometchat/uikit-shared';
4
+ import '@cometchat/uikit-elements';
5
+ import { fontHelper, localize, TabsVisibility, SelectionMode } from '@cometchat/uikit-resources';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../CometChatTheme.service";
8
+ import * as i2 from "../../Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component";
9
+ import * as i3 from "../../CometChatUsers/cometchat-users/cometchat-users.component";
10
+ import * as i4 from "../../CometChatGroups/cometchat-groups/cometchat-groups.component";
11
+ import * as i5 from "@angular/common";
12
+ /**
13
+ *
14
+ * CometChatContactsComponent is used to render group members to add
15
+ *
16
+ * @version 1.0.0
17
+ * @author CometChatTeam
18
+ * @copyright © 2022 CometChat Inc.
19
+ *
20
+ */
21
+ export class CometChatContactsComponent {
22
+ constructor(ref, themeService) {
23
+ this.ref = ref;
24
+ this.themeService = themeService;
25
+ this.title = localize("NEW_CHAT");
26
+ this.usersTabTitle = localize("USERS");
27
+ this.groupsTabTitle = localize("GROUPS");
28
+ this.usersConfiguration = new UsersConfiguration({});
29
+ this.groupsConfiguration = new GroupsConfiguration({});
30
+ this.closeIconURL = "assets/close2x.svg";
31
+ this.contactsStyle = {};
32
+ this.selectionMode = SelectionMode.multiple;
33
+ this.tabVisibility = TabsVisibility.usersAndGroups;
34
+ this.selectionLimit = 5;
35
+ this.tabs = [];
36
+ this.hideSubmitButton = true;
37
+ this.submitButtonText = "Submit";
38
+ // public properties
39
+ this.usersRequestBuilder = new CometChat.UsersRequestBuilder().setLimit(30).hideBlockedUsers(true);
40
+ this.usersSearchRequestBuilder = new CometChat.UsersRequestBuilder().setLimit(30).hideBlockedUsers(true);
41
+ this.groupsRequestBuilder = new CometChat.GroupsRequestBuilder().setLimit(30).joinedOnly(true);
42
+ this.groupsSearchRequestBuilder = new CometChat.GroupsRequestBuilder().setLimit(30).joinedOnly(true);
43
+ this.tabItemStyle = {};
44
+ this.usersList = [];
45
+ this.groupsList = [];
46
+ this.submitButtonStyle = {
47
+ height: "100%",
48
+ width: "100%",
49
+ background: "rgb(51, 153, 255)",
50
+ padding: "8px",
51
+ buttonTextColor: "white",
52
+ buttonTextFont: "",
53
+ display: "flex",
54
+ justifyContent: "center",
55
+ alignItems: "center",
56
+ border: "none",
57
+ borderRadius: "8px"
58
+ };
59
+ this.titleStyle = {};
60
+ this.errorStyle = {};
61
+ this.isLimitReached = false;
62
+ this.tabsStyle = {};
63
+ this.onGroupSelected = (group) => {
64
+ var key = this.groupsList.findIndex((m) => m?.getGuid() === group.getGuid());
65
+ if (key >= 0) {
66
+ this.groupsList.splice(key, 1);
67
+ }
68
+ else {
69
+ this.groupsList.push(group);
70
+ }
71
+ this.isLimitReached = this.groupsList.length + this.usersList.length >= this.selectionLimit;
72
+ this.ref.detectChanges();
73
+ };
74
+ this.onUserSelected = (user) => {
75
+ const key = this.usersList.findIndex((m) => m?.getUid() === user.getUid());
76
+ if (key >= 0) {
77
+ this.usersList.splice(key, 1);
78
+ }
79
+ else {
80
+ this.usersList.push(user);
81
+ }
82
+ this.isLimitReached = this.groupsList.length + this.usersList.length >= this.selectionLimit;
83
+ this.ref.detectChanges();
84
+ };
85
+ this.userClicked = (user) => {
86
+ if (this.onItemClick) {
87
+ this.onItemClick(user);
88
+ }
89
+ };
90
+ this.groupClicked = (group) => {
91
+ if (this.onItemClick) {
92
+ this.onItemClick(undefined, group);
93
+ }
94
+ };
95
+ }
96
+ ngOnInit() {
97
+ this.setcontactsStyle();
98
+ this.usersList = [];
99
+ this.groupsList = [];
100
+ }
101
+ ngAfterViewInit() {
102
+ if (this.tabs?.length <= 0) {
103
+ if (this.tabVisibility == TabsVisibility.usersAndGroups) {
104
+ this.tabs = [
105
+ {
106
+ childView: this.usersRef,
107
+ title: this.usersTabTitle,
108
+ id: "users",
109
+ style: this.tabItemStyle
110
+ },
111
+ {
112
+ childView: this.groupsRef,
113
+ title: this.groupsTabTitle,
114
+ id: "groups",
115
+ style: this.tabItemStyle
116
+ }
117
+ ];
118
+ }
119
+ else {
120
+ if (this.tabVisibility == TabsVisibility.users) {
121
+ this.tabs = [
122
+ {
123
+ childView: this.usersRef,
124
+ title: this.usersTabTitle,
125
+ id: "users",
126
+ style: this.tabItemStyle
127
+ }
128
+ ];
129
+ }
130
+ else {
131
+ this.tabs = [
132
+ {
133
+ childView: this.groupsRef,
134
+ title: this.groupsTabTitle,
135
+ id: "groups",
136
+ style: this.tabItemStyle
137
+ }
138
+ ];
139
+ }
140
+ }
141
+ this.ref.detectChanges();
142
+ }
143
+ }
144
+ closeClicked() {
145
+ if (this.onClose) {
146
+ this.onClose();
147
+ }
148
+ }
149
+ submitClicked() {
150
+ if (this.onSubmitButtonClick) {
151
+ this.onSubmitButtonClick(this.usersList, this.groupsList);
152
+ }
153
+ }
154
+ setcontactsStyle() {
155
+ let defaultStyle = new ContactsStyle({
156
+ background: this.themeService.theme.palette.getBackground(),
157
+ border: `none`,
158
+ titleTextFont: fontHelper(this.themeService.theme.typography.title1),
159
+ titleTextColor: this.themeService.theme.palette.getAccent(),
160
+ errorStateTextColor: this.themeService.theme.palette.getError(),
161
+ errorStateTextFont: fontHelper(this.themeService.theme.typography.title2),
162
+ width: "100%",
163
+ height: "100%",
164
+ borderRadius: "none",
165
+ closeIconTint: this.themeService.theme.palette.getPrimary(),
166
+ submitButtonBackground: this.themeService.theme.palette.getPrimary(),
167
+ submitButtonTextColor: this.themeService.theme.palette.getAccent900("light"),
168
+ submitButtonTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
169
+ padding: "0 100px",
170
+ tabBackground: "transparent",
171
+ tabTitleTextFont: fontHelper(this.themeService.theme.typography.text2),
172
+ tabTitleTextColor: this.themeService.theme.palette.getAccent(),
173
+ activeTabTitleTextFont: fontHelper(this.themeService.theme.typography.text2),
174
+ activeTabTitleTextColor: this.themeService.theme.palette.getAccent("light"),
175
+ activeTabBackground: this.themeService.theme.palette.getAccent900("light"),
176
+ activeTabBorder: "none",
177
+ tabHeight: "fit-content",
178
+ tabWidth: "100%"
179
+ });
180
+ this.contactsStyle = { ...defaultStyle, ...this.contactsStyle };
181
+ this.submitButtonStyle.background = this.contactsStyle.submitButtonBackground;
182
+ this.submitButtonStyle.buttonTextFont = this.contactsStyle.submitButtonTextFont;
183
+ this.submitButtonStyle.buttonTextColor = this.contactsStyle.submitButtonTextColor;
184
+ this.tabsStyle = {
185
+ background: this.themeService.theme.palette.getAccent100(),
186
+ borderRadius: "8px",
187
+ border: `1px solid ${this.themeService.theme.palette.getAccent50()}`
188
+ };
189
+ this.tabItemStyle = new TabItemStyle({
190
+ height: this.contactsStyle.tabHeight,
191
+ width: this.contactsStyle.tabWidth,
192
+ background: this.contactsStyle.tabBackground,
193
+ activeBackground: this.contactsStyle.activeTabBackground,
194
+ titleTextColor: this.contactsStyle.tabTitleTextColor,
195
+ titleTextFont: this.contactsStyle.tabTitleTextFont,
196
+ activeIconTint: this.themeService.theme.palette.getPrimary(),
197
+ activeTitleTextColor: this.contactsStyle.activeTabTitleTextColor,
198
+ activeTitleTextFont: this.contactsStyle.activeTabTitleTextFont,
199
+ borderRadius: "8px"
200
+ });
201
+ this.closeButtonStyle = {
202
+ height: "24px",
203
+ width: "24px",
204
+ border: "none",
205
+ borderRadius: "0",
206
+ background: "transparent",
207
+ buttonIconTint: this.contactsStyle.closeIconTint || this.themeService.theme.palette.getPrimary()
208
+ };
209
+ this.wrapperStyle = {
210
+ height: this.contactsStyle.height,
211
+ width: this.contactsStyle.width,
212
+ background: this.contactsStyle.background,
213
+ border: this.contactsStyle.border,
214
+ borderRadius: this.contactsStyle.borderRadius
215
+ };
216
+ this.contactsPadding = {
217
+ padding: this.contactsStyle.padding
218
+ };
219
+ this.titleStyle = {
220
+ textFont: this.contactsStyle.titleTextFont,
221
+ textColor: this.contactsStyle.titleTextColor
222
+ };
223
+ this.errorStyle = {
224
+ textFont: this.contactsStyle.errorStateTextFont,
225
+ textColor: this.contactsStyle.errorStateTextColor
226
+ };
227
+ }
228
+ }
229
+ CometChatContactsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatContactsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
230
+ CometChatContactsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatContactsComponent, selector: "cometchat-contacts", inputs: { title: "title", usersTabTitle: "usersTabTitle", groupsTabTitle: "groupsTabTitle", usersConfiguration: "usersConfiguration", groupsConfiguration: "groupsConfiguration", onSubmitButtonClick: "onSubmitButtonClick", closeIconURL: "closeIconURL", contactsStyle: "contactsStyle", selectionMode: "selectionMode", onClose: "onClose", onItemClick: "onItemClick", tabVisibility: "tabVisibility", selectionLimit: "selectionLimit", tabs: "tabs", hideSubmitButton: "hideSubmitButton", submitButtonText: "submitButtonText" }, viewQueries: [{ propertyName: "usersRef", first: true, predicate: ["usersRef"], descendants: true }, { propertyName: "groupsRef", first: true, predicate: ["groupsRef"], descendants: true }], ngImport: i0, template: "<div class=\"cc-contacts\" [ngStyle]=\"wrapperStyle\">\n <div class=\"cc-contacts-title\">\n <cometchat-label [text]=\"title\" [labelStyle]=\"titleStyle\" ></cometchat-label>\n </div>\n <div class=\"cc-contacts-error\" *ngIf=\"isLimitReached\">\n <cometchat-label [text]=\"'max limit has reached'\" [labelStyle]=\"errorStyle\" ></cometchat-label>\n </div>\n <div class=\"cc-contacts__wrapper\" [ngStyle]=\"contactsPadding\">\n <div class=\"cc-tabs\">\n <cometchat-tabs [tabs]=\"tabs\" [tabsStyle]=\"tabsStyle\" [keepAlive]=\"true\">\n <ng-template #usersRef>\n <cometchat-users [onItemClick]=\"userClicked\" [usersRequestBuilder]=\"usersConfiguration.usersRequestBuilder || usersRequestBuilder\"\n [hideSearch]=\"usersConfiguration.hideSearch\"\n [StatusIndicatorStyle]=\"usersConfiguration.statusIndicatorStyle\"\n [avatarStyle]=\"usersConfiguration.avatarStyle\"\n [searchIconURL]=\"usersConfiguration.searchIconURL\"\n [searchRequestBuilder]=\"usersConfiguration.searchRequestBuilder || usersSearchRequestBuilder\"\n [usersStyle]=\"usersConfiguration.usersStyle\"\n [subtitleView]=\"usersConfiguration.subtitleView\"\n [options]=\"usersConfiguration.options\"\n [emptyStateView]=\"usersConfiguration.emptyStateView\"\n [onSelect]=\"usersConfiguration.onSelect || onUserSelected\"\n [loadingIconURL]=\"usersConfiguration.loadingIconURL\"\n [errorStateView]=\"usersConfiguration.errorStateView\"\n [loadingStateView]=\"usersConfiguration.loadingStateView\"\n [listItemView]=\"usersConfiguration.listItemView\"\n [menu]=\"usersConfiguration.menu\"\n [hideSeparator]=\"usersConfiguration.hideSeparator\"\n [hideError]=\"usersConfiguration.hideError\"\n [selectionMode]=\" selectionMode\"\n [title]=\"''\" ></cometchat-users>\n </ng-template>\n <ng-template #groupsRef>\n <cometchat-groups [onItemClick]=\"groupClicked\" [groupsRequestBuilder]=\"groupsConfiguration.groupsRequestBuilder || groupsRequestBuilder\"\n [hideSearch]=\"groupsConfiguration.hideSearch\"\n [StatusIndicatorStyle]=\"groupsConfiguration.statusIndicatorStyle\"\n [avatarStyle]=\"groupsConfiguration.avatarStyle\"\n [searchIconURL]=\"groupsConfiguration.searchIconURL\"\n [searchRequestBuilder]=\"groupsConfiguration.searchRequestBuilder || groupsSearchRequestBuilder\"\n [groupsStyle]=\"groupsConfiguration.groupsStyle\"\n [subtitleView]=\"groupsConfiguration.subtitleView\"\n [options]=\"groupsConfiguration.options\"\n [emptyStateView]=\"groupsConfiguration.emptyStateView\"\n [onSelect]=\"groupsConfiguration.onSelect || onGroupSelected\"\n [loadingIconURL]=\"groupsConfiguration.loadingIconURL\"\n [errorStateView]=\"groupsConfiguration.errorStateView\"\n [loadingStateView]=\"groupsConfiguration.loadingStateView\"\n [listItemView]=\"groupsConfiguration.listItemView\"\n [menu]=\"groupsConfiguration.menu\"\n [hideSeparator]=\"groupsConfiguration.hideSeparator\"\n [hideError]=\"groupsConfiguration.hideError\"\n [selectionMode]=\"selectionMode\"\n [title]=\"''\" ></cometchat-groups>\n </ng-template>\n </cometchat-tabs>\n </div>\n <div class=\"cc-contacts__buttons\">\n <cometchat-button [disabled]=\"isLimitReached\" class=\"cc-contacts__buttons--add\" [text]=\"submitButtonText\" [buttonStyle]=\"submitButtonStyle\" (click)=\"submitClicked()\" ></cometchat-button>\n </div>\n </div>\n <div class=\"cc-close-button\">\n <cometchat-button [iconURL]=\"closeIconURL\" [buttonStyle]=\"closeButtonStyle\" (cc-button-clicked)=\"closeClicked()\">\n </cometchat-button>\n </div>\n</div>\n", styles: [".cc-contacts{display:flex;height:100%;width:100%;overflow:hidden;flex-direction:column}.cc-back-button{position:absolute;left:8px;padding:12px 8px 8px}.cc-contacts__wrapper{height:100%;padding:8px;overflow:hidden;display:flex;flex-direction:column}.cc-close-button{position:absolute;right:8px;padding:8px}.cc-contacts__buttons{height:10%;width:100%;display:flex;align-items:center;justify-content:center}.button__icon{display:flex;justify-content:flex-end}.cc-contacts__buttons--add{height:42px;width:100%}.cc-tabs{display:flex;height:100%;width:100%;overflow:hidden}cometchat-tabs{height:100%;width:100%}.cc-contacts-title,.cc-contacts-error{display:flex;align-items:center;justify-content:center;height:-moz-fit-content;height:fit-content;width:100%;padding:8px 0}\n"], components: [{ type: i2.CometChatTabsComponent, selector: "cometchat-tabs", inputs: ["tabAlignment", "disableDragging", "tabsStyle", "tabs", "keepAlive"] }, { type: i3.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"] }, { type: i4.CometChatGroupsComponent, selector: "cometchat-groups", inputs: ["groupsRequestBuilder", "searchRequestBuilder", "subtitleView", "listItemView", "menu", "options", "activeGroup", "hideSeparator", "selectionMode", "searchPlaceholder", "hideError", "searchIconURL", "hideSearch", "title", "onError", "onSelect", "emptyStateView", "errorStateView", "loadingIconURL", "privateGroupIcon", "protectedGroupIcon", "loadingStateView", "emptyStateText", "errorStateText", "titleAlignment", "statusIndicatorStyle", "avatarStyle", "groupsStyle", "listItemStyle", "onItemClick"] }], directives: [{ type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatContactsComponent, decorators: [{
232
+ type: Component,
233
+ args: [{ selector: "cometchat-contacts", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-contacts\" [ngStyle]=\"wrapperStyle\">\n <div class=\"cc-contacts-title\">\n <cometchat-label [text]=\"title\" [labelStyle]=\"titleStyle\" ></cometchat-label>\n </div>\n <div class=\"cc-contacts-error\" *ngIf=\"isLimitReached\">\n <cometchat-label [text]=\"'max limit has reached'\" [labelStyle]=\"errorStyle\" ></cometchat-label>\n </div>\n <div class=\"cc-contacts__wrapper\" [ngStyle]=\"contactsPadding\">\n <div class=\"cc-tabs\">\n <cometchat-tabs [tabs]=\"tabs\" [tabsStyle]=\"tabsStyle\" [keepAlive]=\"true\">\n <ng-template #usersRef>\n <cometchat-users [onItemClick]=\"userClicked\" [usersRequestBuilder]=\"usersConfiguration.usersRequestBuilder || usersRequestBuilder\"\n [hideSearch]=\"usersConfiguration.hideSearch\"\n [StatusIndicatorStyle]=\"usersConfiguration.statusIndicatorStyle\"\n [avatarStyle]=\"usersConfiguration.avatarStyle\"\n [searchIconURL]=\"usersConfiguration.searchIconURL\"\n [searchRequestBuilder]=\"usersConfiguration.searchRequestBuilder || usersSearchRequestBuilder\"\n [usersStyle]=\"usersConfiguration.usersStyle\"\n [subtitleView]=\"usersConfiguration.subtitleView\"\n [options]=\"usersConfiguration.options\"\n [emptyStateView]=\"usersConfiguration.emptyStateView\"\n [onSelect]=\"usersConfiguration.onSelect || onUserSelected\"\n [loadingIconURL]=\"usersConfiguration.loadingIconURL\"\n [errorStateView]=\"usersConfiguration.errorStateView\"\n [loadingStateView]=\"usersConfiguration.loadingStateView\"\n [listItemView]=\"usersConfiguration.listItemView\"\n [menu]=\"usersConfiguration.menu\"\n [hideSeparator]=\"usersConfiguration.hideSeparator\"\n [hideError]=\"usersConfiguration.hideError\"\n [selectionMode]=\" selectionMode\"\n [title]=\"''\" ></cometchat-users>\n </ng-template>\n <ng-template #groupsRef>\n <cometchat-groups [onItemClick]=\"groupClicked\" [groupsRequestBuilder]=\"groupsConfiguration.groupsRequestBuilder || groupsRequestBuilder\"\n [hideSearch]=\"groupsConfiguration.hideSearch\"\n [StatusIndicatorStyle]=\"groupsConfiguration.statusIndicatorStyle\"\n [avatarStyle]=\"groupsConfiguration.avatarStyle\"\n [searchIconURL]=\"groupsConfiguration.searchIconURL\"\n [searchRequestBuilder]=\"groupsConfiguration.searchRequestBuilder || groupsSearchRequestBuilder\"\n [groupsStyle]=\"groupsConfiguration.groupsStyle\"\n [subtitleView]=\"groupsConfiguration.subtitleView\"\n [options]=\"groupsConfiguration.options\"\n [emptyStateView]=\"groupsConfiguration.emptyStateView\"\n [onSelect]=\"groupsConfiguration.onSelect || onGroupSelected\"\n [loadingIconURL]=\"groupsConfiguration.loadingIconURL\"\n [errorStateView]=\"groupsConfiguration.errorStateView\"\n [loadingStateView]=\"groupsConfiguration.loadingStateView\"\n [listItemView]=\"groupsConfiguration.listItemView\"\n [menu]=\"groupsConfiguration.menu\"\n [hideSeparator]=\"groupsConfiguration.hideSeparator\"\n [hideError]=\"groupsConfiguration.hideError\"\n [selectionMode]=\"selectionMode\"\n [title]=\"''\" ></cometchat-groups>\n </ng-template>\n </cometchat-tabs>\n </div>\n <div class=\"cc-contacts__buttons\">\n <cometchat-button [disabled]=\"isLimitReached\" class=\"cc-contacts__buttons--add\" [text]=\"submitButtonText\" [buttonStyle]=\"submitButtonStyle\" (click)=\"submitClicked()\" ></cometchat-button>\n </div>\n </div>\n <div class=\"cc-close-button\">\n <cometchat-button [iconURL]=\"closeIconURL\" [buttonStyle]=\"closeButtonStyle\" (cc-button-clicked)=\"closeClicked()\">\n </cometchat-button>\n </div>\n</div>\n", styles: [".cc-contacts{display:flex;height:100%;width:100%;overflow:hidden;flex-direction:column}.cc-back-button{position:absolute;left:8px;padding:12px 8px 8px}.cc-contacts__wrapper{height:100%;padding:8px;overflow:hidden;display:flex;flex-direction:column}.cc-close-button{position:absolute;right:8px;padding:8px}.cc-contacts__buttons{height:10%;width:100%;display:flex;align-items:center;justify-content:center}.button__icon{display:flex;justify-content:flex-end}.cc-contacts__buttons--add{height:42px;width:100%}.cc-tabs{display:flex;height:100%;width:100%;overflow:hidden}cometchat-tabs{height:100%;width:100%}.cc-contacts-title,.cc-contacts-error{display:flex;align-items:center;justify-content:center;height:-moz-fit-content;height:fit-content;width:100%;padding:8px 0}\n"] }]
234
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.CometChatThemeService }]; }, propDecorators: { usersRef: [{
235
+ type: ViewChild,
236
+ args: ["usersRef"]
237
+ }], groupsRef: [{
238
+ type: ViewChild,
239
+ args: ["groupsRef"]
240
+ }], title: [{
241
+ type: Input
242
+ }], usersTabTitle: [{
243
+ type: Input
244
+ }], groupsTabTitle: [{
245
+ type: Input
246
+ }], usersConfiguration: [{
247
+ type: Input
248
+ }], groupsConfiguration: [{
249
+ type: Input
250
+ }], onSubmitButtonClick: [{
251
+ type: Input
252
+ }], closeIconURL: [{
253
+ type: Input
254
+ }], contactsStyle: [{
255
+ type: Input
256
+ }], selectionMode: [{
257
+ type: Input
258
+ }], onClose: [{
259
+ type: Input
260
+ }], onItemClick: [{
261
+ type: Input
262
+ }], tabVisibility: [{
263
+ type: Input
264
+ }], selectionLimit: [{
265
+ type: Input
266
+ }], tabs: [{
267
+ type: Input
268
+ }], hideSubmitButton: [{
269
+ type: Input
270
+ }], submitButtonText: [{
271
+ type: Input
272
+ }] } });
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWNvbnRhY3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0Q29udGFjdHMvY29tZXRjaGF0LWNvbnRhY3RzL2NvbWV0Y2hhdC1jb250YWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NvbWV0Q2hhdENvbnRhY3RzL2NvbWV0Y2hhdC1jb250YWN0cy9jb21ldGNoYXQtY29udGFjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxLQUFLLEVBQXFCLHVCQUF1QixFQUFlLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFHLE1BQU0seUJBQXlCLENBQUM7QUFDN0gsT0FBTywyQkFBMkIsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBbUIsY0FBYyxFQUFDLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFBOzs7Ozs7O0FBRS9HOzs7Ozs7OztFQVFFO0FBT0YsTUFBTSxPQUFPLDBCQUEwQjtJQXdCckMsWUFBb0IsR0FBc0IsRUFBUyxZQUFrQztRQUFqRSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQXJCNUUsVUFBSyxHQUFXLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFXLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxtQkFBYyxHQUFXLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1Qyx1QkFB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LGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgICBCYXNlU3R5bGUsIEdyb3Vwc0NvbmZpZ3VyYXRpb24sIFVzZXJzQ29uZmlndXJhdGlvbiwgVGFiSXRlbVN0eWxlLCBDb250YWN0c1N0eWxlICB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJztcbmltcG9ydCAnQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50cydcbmltcG9ydCB7IGZvbnRIZWxwZXIsIGxvY2FsaXplLCBDb21ldENoYXRUYWJJdGVtLFRhYnNWaXNpYmlsaXR5LFNlbGVjdGlvbk1vZGV9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzJ1xuaW1wb3J0IHsgQ29tZXRDaGF0VGhlbWVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL0NvbWV0Q2hhdFRoZW1lLnNlcnZpY2VcIjtcbi8qKlxuKlxuKiBDb21ldENoYXRDb250YWN0c0NvbXBvbmVudCBpcyB1c2VkIHRvIHJlbmRlciBncm91cCBtZW1iZXJzIHRvIGFkZFxuKlxuKiBAdmVyc2lvbiAxLjAuMFxuKiBAYXV0aG9yIENvbWV0Q2hhdFRlYW1cbiogQGNvcHlyaWdodCDCqSAyMDIyIENvbWV0Q2hhdCBJbmMuXG4qXG4qL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNvbWV0Y2hhdC1jb250YWN0c1wiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbWV0Y2hhdC1jb250YWN0cy5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vY29tZXRjaGF0LWNvbnRhY3RzLmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29tZXRDaGF0Q29udGFjdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoXCJ1c2Vyc1JlZlwiKSB1c2Vyc1JlZiE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoXCJncm91cHNSZWZcIikgZ3JvdXBzUmVmITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IGxvY2FsaXplKFwiTkVXX0NIQVRcIik7XG4gIEBJbnB1dCgpIHVzZXJzVGFiVGl0bGU6IHN0cmluZyA9IGxvY2FsaXplKFwiVVNFUlNcIik7XG4gIEBJbnB1dCgpIGdyb3Vwc1RhYlRpdGxlOiBzdHJpbmcgPSBsb2NhbGl6ZShcIkdST1VQU1wiKTtcbiAgQElucHV0KCkgdXNlcnNDb25maWd1cmF0aW9uOiBVc2Vyc0NvbmZpZ3VyYXRpb24gPSBuZXcgVXNlcnNDb25maWd1cmF0aW9uKHt9KTtcbiAgQElucHV0KCkgZ3JvdXBzQ29uZmlndXJhdGlvbjogR3JvdXBzQ29uZmlndXJhdGlvbiA9IG5ldyBHcm91cHNDb25maWd1cmF0aW9uKHt9KTtcbiAgQElucHV0KCkgb25TdWJtaXRCdXR0b25DbGljayE6KHVzZXJzPzpDb21ldENoYXQuVXNlcltdLCBncm91cHM/OkNvbWV0Q2hhdC5Hcm91cFtdKT0+dm9pZDtcbiAgQElucHV0KCkgY2xvc2VJY29uVVJMOnN0cmluZyA9IFwiYXNzZXRzL2Nsb3NlMnguc3ZnXCJcbiAgQElucHV0KCkgY29udGFjdHNTdHlsZTogQ29udGFjdHNTdHlsZSA9IHt9O1xuICBASW5wdXQoKSBzZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25Nb2RlID0gU2VsZWN0aW9uTW9kZS5tdWx0aXBsZTtcbiAgQElucHV0KCkgb25DbG9zZSE6KCk9PnZvaWQ7XG4gIEBJbnB1dCgpIG9uSXRlbUNsaWNrIToodXNlcj86Q29tZXRDaGF0LlVzZXIsZ3JvdXA/OkNvbWV0Q2hhdC5Hcm91cCk9PiB2b2lkO1xuICBASW5wdXQoKSB0YWJWaXNpYmlsaXR5OlRhYnNWaXNpYmlsaXR5ID0gVGFic1Zpc2liaWxpdHkudXNlcnNBbmRHcm91cHNcbiAgQElucHV0KCkgc2VsZWN0aW9uTGltaXQ6bnVtYmVyID0gNTtcbiAgQElucHV0KCkgdGFiczpDb21ldENoYXRUYWJJdGVtW10gPSBbXVxuICBASW5wdXQoKSBoaWRlU3VibWl0QnV0dG9uOmJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzdWJtaXRCdXR0b25UZXh0OnN0cmluZyA9IFwiU3VibWl0XCI7XG4vLyBwdWJsaWMgcHJvcGVydGllc1xuICBwdWJsaWMgdXNlcnNSZXF1ZXN0QnVpbGRlcjogQ29tZXRDaGF0LlVzZXJzUmVxdWVzdEJ1aWxkZXIgPSBuZXcgQ29tZXRDaGF0LlVzZXJzUmVxdWVzdEJ1aWxkZXIoKS5zZXRMaW1pdCgzMCkuaGlkZUJsb2NrZWRVc2Vycyh0cnVlKTtcbiAgcHVibGljIHVzZXJzU2VhcmNoUmVxdWVzdEJ1aWxkZXI6IENvbWV0Q2hhdC5Vc2Vyc1JlcXVlc3RCdWlsZGVyID0gbmV3IENvbWV0Q2hhdC5Vc2Vyc1JlcXVlc3RCdWlsZGVyKCkuc2V0TGltaXQoMzApLmhpZGVCbG9ja2VkVXNlcnModHJ1ZSk7XG4gIHB1YmxpYyBncm91cHNSZXF1ZXN0QnVpbGRlcjogQ29tZXRDaGF0Lkdyb3Vwc1JlcXVlc3RCdWlsZGVyID0gbmV3IENvbWV0Q2hhdC5Hcm91cHNSZXF1ZXN0QnVpbGRlcigpLnNldExpbWl0KDMwKS5qb2luZWRPbmx5KHRydWUpO1xuICBwdWJsaWMgZ3JvdXBzU2VhcmNoUmVxdWVzdEJ1aWxkZXI6IENvbWV0Q2hhdC5Hcm91cHNSZXF1ZXN0QnVpbGRlciA9IG5ldyBDb21ldENoYXQuR3JvdXBzUmVxdWVzdEJ1aWxkZXIoKS5zZXRMaW1pdCgzMCkuam9pbmVkT25seSh0cnVlKTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgdGhlbWVTZXJ2aWNlOkNvbWV0Q2hhdFRoZW1lU2VydmljZSkge1xuICB9XG4gIHB1YmxpYyB0YWJJdGVtU3R5bGU6VGFiSXRlbVN0eWxlID0ge307XG4gIHB1YmxpYyB1c2Vyc0xpc3Q6IENvbWV0Q2hhdC5Vc2VyW10gPSBbXTtcbiAgcHVibGljIGdyb3Vwc0xpc3Q6Q29tZXRDaGF0Lkdyb3VwW10gPSBbXTtcbiAgcHVibGljIHN1Ym1pdEJ1dHRvblN0eWxlOmFueSA9IHtcbiAgICBoZWlnaHQ6XCIxMDAlXCIsXG4gICAgd2lkdGg6XCIxMDAlXCIsXG4gICAgYmFja2dyb3VuZDpcInJnYig1MSwgMTUzLCAyNTUpXCIsXG4gICAgcGFkZGluZzpcIjhweFwiLFxuICAgIGJ1dHRvblRleHRDb2xvcjpcIndoaXRlXCIsXG4gICAgYnV0dG9uVGV4dEZvbnQ6XCJcIixcbiAgICBkaXNwbGF5OlwiZmxleFwiLFxuICAgIGp1c3RpZnlDb250ZW50OlwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczpcImNlbnRlclwiLFxuICAgIGJvcmRlcjpcIm5vbmVcIixcbiAgICBib3JkZXJSYWRpdXM6XCI4cHhcIlxufVxuICBwdWJsaWMgY2xvc2VCdXR0b25TdHlsZTphbnk7XG4gIHB1YmxpYyB3cmFwcGVyU3R5bGU6YW55O1xuICBwdWJsaWMgY29udGFjdHNQYWRkaW5nOmFueTtcbiAgcHVibGljIHRpdGxlU3R5bGU6YW55ID0ge307XG4gIHB1YmxpYyBlcnJvclN0eWxlOmFueSA9IHt9O1xuICBwdWJsaWMgaXNMaW1pdFJlYWNoZWQ6Ym9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgdGFic1N0eWxlOkJhc2VTdHlsZSA9IHt9O1xuICBvbkdyb3VwU2VsZWN0ZWQgPSAoZ3JvdXA6IENvbWV0Q2hhdC5Hcm91cCkgPT4ge1xuICAgIHZhciBrZXkgPSB0aGlzLmdyb3Vwc0xpc3QuZmluZEluZGV4KChtOiBhbnkpID0+IG0/LmdldEd1aWQoKSA9PT0gZ3JvdXAuZ2V0R3VpZCgpKTtcbiAgICBpZiAoa2V5ID49IDApIHtcbiAgICAgIHRoaXMuZ3JvdXBzTGlzdC5zcGxpY2Uoa2V5LCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ncm91cHNMaXN0LnB1c2goZ3JvdXApO1xuICAgIH1cbiAgICB0aGlzLmlzTGltaXRSZWFjaGVkID0gdGhpcy5ncm91cHNMaXN0Lmxlbmd0aCArIHRoaXMudXNlcnNMaXN0Lmxlbmd0aCA+PSB0aGlzLnNlbGVjdGlvbkxpbWl0O1xuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfTtcbiAgb25Vc2VyU2VsZWN0ZWQgPSAodXNlcjogQ29tZXRDaGF0LlVzZXIpID0+IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLnVzZXJzTGlzdC5maW5kSW5kZXgoKG06IGFueSkgPT4gbT8uZ2V0VWlkKCkgPT09IHVzZXIuZ2V0VWlkKCkpO1xuICAgIGlmIChrZXkgPj0gMCkge1xuICAgICAgdGhpcy51c2Vyc0xpc3Quc3BsaWNlKGtleSwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXNlcnNMaXN0LnB1c2godXNlcik7XG4gICAgfVxuICAgIHRoaXMuaXNMaW1pdFJlYWNoZWQgPSB0aGlzLmdyb3Vwc0xpc3QubGVuZ3RoICsgdGhpcy51c2Vyc0xpc3QubGVuZ3RoID49IHRoaXMuc2VsZWN0aW9uTGltaXQ7XG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9O1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldGNvbnRhY3RzU3R5bGUoKTtcbiAgICB0aGlzLnVzZXJzTGlzdCA9IFtdXG4gICAgdGhpcy5ncm91cHNMaXN0ID0gW11cbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKXtcbiBpZih0aGlzLnRhYnM/Lmxlbmd0aCA8PSAwKXtcbmlmKHRoaXMudGFiVmlzaWJpbGl0eSA9PSBUYWJzVmlzaWJpbGl0eS51c2Vyc0FuZEdyb3Vwcyl7XG4gIHRoaXMudGFicyA9IFtcbiAgICB7XG4gICAgY2hpbGRWaWV3OnRoaXMudXNlcnNSZWYsXG4gICAgdGl0bGU6dGhpcy51c2Vyc1RhYlRpdGxlLFxuICAgIGlkOlwidXNlcnNcIixcbiAgICBzdHlsZTp0aGlzLnRhYkl0ZW1TdHlsZVxuICAgIH0sXG4gICAge1xuICAgIGNoaWxkVmlldzp0aGlzLmdyb3Vwc1JlZixcbiAgICB0aXRsZTp0aGlzLmdyb3Vwc1RhYlRpdGxlLFxuICAgIGlkOlwiZ3JvdXBzXCIsXG4gICAgc3R5bGU6dGhpcy50YWJJdGVtU3R5bGVcbiAgICB9XVxufVxuZWxzZXtcbiAgaWYodGhpcy50YWJWaXNpYmlsaXR5ID09IFRhYnNWaXNpYmlsaXR5LnVzZXJzKXtcbiAgICB0aGlzLnRhYnMgPSBbXG4gICAgICB7XG4gICAgICBjaGlsZFZpZXc6dGhpcy51c2Vyc1JlZixcbiAgICAgIHRpdGxlOnRoaXMudXNlcnNUYWJUaXRsZSxcbiAgICAgIGlkOlwidXNlcnNcIixcbiAgICAgIHN0eWxlOnRoaXMudGFiSXRlbVN0eWxlXG4gICAgICB9XVxuICB9XG4gIGVsc2V7XG4gICAgdGhpcy50YWJzID0gW1xuICAgICAge1xuICAgICAgY2hpbGRWaWV3OnRoaXMuZ3JvdXBzUmVmLFxuICAgICAgdGl0bGU6dGhpcy5ncm91cHNUYWJUaXRsZSxcbiAgICAgIGlkOlwiZ3JvdXBzXCIsXG4gICAgICBzdHlsZTp0aGlzLnRhYkl0ZW1TdHlsZVxuICAgICAgfV1cbiAgfVxufVxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuIH1cbiAgfVxuICB1c2VyQ2xpY2tlZCA9ICh1c2VyOkNvbWV0Q2hhdC5Vc2VyKT0+e1xuICAgIGlmKHRoaXMub25JdGVtQ2xpY2spe1xuICAgICAgdGhpcy5vbkl0ZW1DbGljayh1c2VyKVxuICAgIH1cbiAgfVxuICBncm91cENsaWNrZWQgPSAoZ3JvdXA6Q29tZXRDaGF0Lkdyb3VwKT0+e1xuICAgIGlmKHRoaXMub25JdGVtQ2xpY2spe1xuICAgICAgdGhpcy5vbkl0ZW1DbGljayh1bmRlZmluZWQsZ3JvdXApXG4gICAgfVxuICB9XG4gICBjbG9zZUNsaWNrZWQoKXtcbiAgICBpZih0aGlzLm9uQ2xvc2Upe1xuICAgICAgdGhpcy5vbkNsb3NlKClcbiAgICB9XG4gIH1cbiAgc3VibWl0Q2xpY2tlZCgpe1xuICAgaWYodGhpcy5vblN1Ym1pdEJ1dHRvbkNsaWNrKXtcbiAgICB0aGlzLm9uU3VibWl0QnV0dG9uQ2xpY2sodGhpcy51c2Vyc0xpc3QsdGhpcy5ncm91cHNMaXN0KVxuICAgfVxuICB9XG4gIHNldGNvbnRhY3RzU3R5bGUoKXtcbiAgICBsZXQgZGVmYXVsdFN0eWxlOkNvbnRhY3RzU3R5bGUgPSBuZXcgQ29udGFjdHNTdHlsZSh7XG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGJvcmRlcjogYG5vbmVgLFxuICAgICAgdGl0bGVUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICB0aXRsZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoKSxcbiAgICAgIGVycm9yU3RhdGVUZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRFcnJvcigpLFxuICAgICAgZXJyb3JTdGF0ZVRleHRGb250OmZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTIpLFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgIGJvcmRlclJhZGl1czogXCJub25lXCIsXG4gICAgICBjbG9zZUljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgIHN1Ym1pdEJ1dHRvbkJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgICAgc3VibWl0QnV0dG9uVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDkwMChcImxpZ2h0XCIpLFxuICAgICAgc3VibWl0QnV0dG9uVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgcGFkZGluZzogXCIwIDEwMHB4XCIsXG4gICAgICB0YWJCYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICB0YWJUaXRsZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGV4dDIpLFxuICAgICAgdGFiVGl0bGVUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KCksXG4gICAgICBhY3RpdmVUYWJUaXRsZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGV4dDIpLFxuICAgICAgYWN0aXZlVGFiVGl0bGVUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KFwibGlnaHRcIiksXG4gICAgICBhY3RpdmVUYWJCYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDkwMChcImxpZ2h0XCIpLFxuICAgICAgYWN0aXZlVGFiQm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIHRhYkhlaWdodDogXCJmaXQtY29udGVudFwiLFxuICAgICAgdGFiV2lkdGg6IFwiMTAwJVwiXG4gICAgfSlcbiAgICB0aGlzLmNvbnRhY3RzU3R5bGUgPSB7Li4uZGVmYXVsdFN0eWxlLC4uLnRoaXMuY29udGFjdHNTdHlsZX1cbiAgICB0aGlzLnN1Ym1pdEJ1dHRvblN0eWxlLmJhY2tncm91bmQgPSB0aGlzLmNvbnRhY3RzU3R5bGUuc3VibWl0QnV0dG9uQmFja2dyb3VuZDtcbiAgICB0aGlzLnN1Ym1pdEJ1dHRvblN0eWxlLmJ1dHRvblRleHRGb250ID0gdGhpcy5jb250YWN0c1N0eWxlLnN1Ym1pdEJ1dHRvblRleHRGb250O1xuICAgIHRoaXMuc3VibWl0QnV0dG9uU3R5bGUuYnV0dG9uVGV4dENvbG9yID0gdGhpcy5jb250YWN0c1N0eWxlLnN1Ym1pdEJ1dHRvblRleHRDb2xvcjtcbiAgICB0aGlzLnRhYnNTdHlsZSA9IHtcbiAgICAgIGJhY2tncm91bmQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKSxcbiAgICAgIGJvcmRlclJhZGl1czpcIjhweFwiLFxuICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ1MCgpfWBcbiAgICAgfVxuICAgdGhpcy50YWJJdGVtU3R5bGUgPSBuZXcgVGFiSXRlbVN0eWxlKHtcbiAgICBoZWlnaHQ6dGhpcy5jb250YWN0c1N0eWxlLnRhYkhlaWdodCxcbiAgICB3aWR0aDp0aGlzLmNvbnRhY3RzU3R5bGUudGFiV2lkdGgsXG4gICAgYmFja2dyb3VuZDp0aGlzLmNvbnRhY3RzU3R5bGUudGFiQmFja2dyb3VuZCxcbiAgICBhY3RpdmVCYWNrZ3JvdW5kOnRoaXMuY29udGFjdHNTdHlsZS5hY3RpdmVUYWJCYWNrZ3JvdW5kLFxuICAgIHRpdGxlVGV4dENvbG9yOnRoaXMuY29udGFjdHNTdHlsZS50YWJUaXRsZVRleHRDb2xvcixcbiAgICB0aXRsZVRleHRGb250OnRoaXMuY29udGFjdHNTdHlsZS50YWJUaXRsZVRleHRGb250LFxuICAgIGFjdGl2ZUljb25UaW50OnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgIGFjdGl2ZVRpdGxlVGV4dENvbG9yOnRoaXMuY29udGFjdHNTdHlsZS5hY3RpdmVUYWJUaXRsZVRleHRDb2xvcixcbiAgICBhY3RpdmVUaXRsZVRleHRGb250OnRoaXMuY29udGFjdHNTdHlsZS5hY3RpdmVUYWJUaXRsZVRleHRGb250LFxuICAgIGJvcmRlclJhZGl1czpcIjhweFwiXG4gICAgIH0pXG4gICAgdGhpcy5jbG9zZUJ1dHRvblN0eWxlID0ge1xuICAgICAgaGVpZ2h0OlwiMjRweFwiLFxuICAgICAgd2lkdGg6XCIyNHB4XCIsXG4gICAgICBib3JkZXI6XCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6XCIwXCIsXG4gICAgICBiYWNrZ3JvdW5kOlwidHJhbnNwYXJlbnRcIixcbiAgICAgIGJ1dHRvbkljb25UaW50OnRoaXMuY29udGFjdHNTdHlsZS5jbG9zZUljb25UaW50IHx8IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpXG4gICAgfVxuICAgdGhpcy53cmFwcGVyU3R5bGUgPSB7XG4gICAgICBoZWlnaHQ6IHRoaXMuY29udGFjdHNTdHlsZS5oZWlnaHQsXG4gICAgICB3aWR0aDogdGhpcy5jb250YWN0c1N0eWxlLndpZHRoLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy5jb250YWN0c1N0eWxlLmJhY2tncm91bmQsXG4gICAgICBib3JkZXI6IHRoaXMuY29udGFjdHNTdHlsZS5ib3JkZXIsXG4gICAgICBib3JkZXJSYWRpdXM6IHRoaXMuY29udGFjdHNTdHlsZS5ib3JkZXJSYWRpdXNcbiAgICB9XG4gICAgdGhpcy5jb250YWN0c1BhZGRpbmcgPSB7XG4gICAgICBwYWRkaW5nOnRoaXMuY29udGFjdHNTdHlsZS5wYWRkaW5nXG4gICAgfVxuICAgIHRoaXMudGl0bGVTdHlsZSA9IHtcbiAgICAgIHRleHRGb250OiB0aGlzLmNvbnRhY3RzU3R5bGUudGl0bGVUZXh0Rm9udCxcbiAgICAgIHRleHRDb2xvcjp0aGlzLmNvbnRhY3RzU3R5bGUudGl0bGVUZXh0Q29sb3JcbiAgICB9XG4gICAgdGhpcy5lcnJvclN0eWxlID0ge1xuICAgICAgdGV4dEZvbnQ6IHRoaXMuY29udGFjdHNTdHlsZS5lcnJvclN0YXRlVGV4dEZvbnQsXG4gICAgICB0ZXh0Q29sb3I6dGhpcy5jb250YWN0c1N0eWxlLmVycm9yU3RhdGVUZXh0Q29sb3JcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYy1jb250YWN0c1wiIFtuZ1N0eWxlXT1cIndyYXBwZXJTdHlsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY2MtY29udGFjdHMtdGl0bGVcIj5cbiAgIDxjb21ldGNoYXQtbGFiZWwgW3RleHRdPVwidGl0bGVcIiBbbGFiZWxTdHlsZV09XCJ0aXRsZVN0eWxlXCIgPjwvY29tZXRjaGF0LWxhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLWNvbnRhY3RzLWVycm9yXCIgKm5nSWY9XCJpc0xpbWl0UmVhY2hlZFwiPlxuICAgIDxjb21ldGNoYXQtbGFiZWwgW3RleHRdPVwiJ21heCBsaW1pdCBoYXMgcmVhY2hlZCdcIiBbbGFiZWxTdHlsZV09XCJlcnJvclN0eWxlXCIgPjwvY29tZXRjaGF0LWxhYmVsPlxuICAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYy1jb250YWN0c19fd3JhcHBlclwiIFtuZ1N0eWxlXT1cImNvbnRhY3RzUGFkZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjYy10YWJzXCI+XG4gICAgICA8Y29tZXRjaGF0LXRhYnMgW3RhYnNdPVwidGFic1wiIFt0YWJzU3R5bGVdPVwidGFic1N0eWxlXCIgW2tlZXBBbGl2ZV09XCJ0cnVlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdXNlcnNSZWY+XG4gICAgICAgICAgPGNvbWV0Y2hhdC11c2VycyBbb25JdGVtQ2xpY2tdPVwidXNlckNsaWNrZWRcIiAgW3VzZXJzUmVxdWVzdEJ1aWxkZXJdPVwidXNlcnNDb25maWd1cmF0aW9uLnVzZXJzUmVxdWVzdEJ1aWxkZXIgfHwgdXNlcnNSZXF1ZXN0QnVpbGRlclwiXG4gICAgICAgICAgW2hpZGVTZWFyY2hdPVwidXNlcnNDb25maWd1cmF0aW9uLmhpZGVTZWFyY2hcIlxuICAgICAgICAgIFtTdGF0dXNJbmRpY2F0b3JTdHlsZV09XCJ1c2Vyc0NvbmZpZ3VyYXRpb24uc3RhdHVzSW5kaWNhdG9yU3R5bGVcIlxuICAgICAgICAgIFthdmF0YXJTdHlsZV09XCJ1c2Vyc0NvbmZpZ3VyYXRpb24uYXZhdGFyU3R5bGVcIlxuICAgICAgICAgIFtzZWFyY2hJY29uVVJMXT1cInVzZXJzQ29uZmlndXJhdGlvbi5zZWFyY2hJY29uVVJMXCJcbiAgICAgICAgICBbc2VhcmNoUmVxdWVzdEJ1aWxkZXJdPVwidXNlcnNDb25maWd1cmF0aW9uLnNlYXJjaFJlcXVlc3RCdWlsZGVyIHx8IHVzZXJzU2VhcmNoUmVxdWVzdEJ1aWxkZXJcIlxuICAgICAgICAgIFt1c2Vyc1N0eWxlXT1cInVzZXJzQ29uZmlndXJhdGlvbi51c2Vyc1N0eWxlXCJcbiAgICAgICAgICBbc3VidGl0bGVWaWV3XT1cInVzZXJzQ29uZmlndXJhdGlvbi5zdWJ0aXRsZVZpZXdcIlxuICAgICAgICAgIFtvcHRpb25zXT1cInVzZXJzQ29uZmlndXJhdGlvbi5vcHRpb25zXCJcbiAgICAgICAgICBbZW1wdHlTdGF0ZVZpZXddPVwidXNlcnNDb25maWd1cmF0aW9uLmVtcHR5U3RhdGVWaWV3XCJcbiAgICAgICAgICBbb25TZWxlY3RdPVwidXNlcnNDb25maWd1cmF0aW9uLm9uU2VsZWN0IHx8IG9uVXNlclNlbGVjdGVkXCJcbiAgICAgICAgICBbbG9hZGluZ0ljb25VUkxdPVwidXNlcnNDb25maWd1cmF0aW9uLmxvYWRpbmdJY29uVVJMXCJcbiAgICAgICAgICBbZXJyb3JTdGF0ZVZpZXddPVwidXNlcnNDb25maWd1cmF0aW9uLmVycm9yU3RhdGVWaWV3XCJcbiAgICAgICAgICBbbG9hZGluZ1N0YXRlVmlld109XCJ1c2Vyc0NvbmZpZ3VyYXRpb24ubG9hZGluZ1N0YXRlVmlld1wiXG4gICAgICAgICAgW2xpc3RJdGVtVmlld109XCJ1c2Vyc0NvbmZpZ3VyYXRpb24ubGlzdEl0ZW1WaWV3XCJcbiAgICAgICAgICBbbWVudV09XCJ1c2Vyc0NvbmZpZ3VyYXRpb24ubWVudVwiXG4gICAgICAgICAgW2hpZGVTZXBhcmF0b3JdPVwidXNlcnNDb25maWd1cmF0aW9uLmhpZGVTZXBhcmF0b3JcIlxuICAgICAgICAgIFtoaWRlRXJyb3JdPVwidXNlcnNDb25maWd1cmF0aW9uLmhpZGVFcnJvclwiXG4gICAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiIHNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgIFt0aXRsZV09XCInJ1wiICA+PC9jb21ldGNoYXQtdXNlcnM+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlICNncm91cHNSZWY+XG4gICAgICAgIDxjb21ldGNoYXQtZ3JvdXBzIFtvbkl0ZW1DbGlja109XCJncm91cENsaWNrZWRcIiAgICBbZ3JvdXBzUmVxdWVzdEJ1aWxkZXJdPVwiZ3JvdXBzQ29uZmlndXJhdGlvbi5ncm91cHNSZXF1ZXN0QnVpbGRlciB8fCBncm91cHNSZXF1ZXN0QnVpbGRlclwiXG4gICAgICAgIFtoaWRlU2VhcmNoXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uaGlkZVNlYXJjaFwiXG4gICAgICAgIFtTdGF0dXNJbmRpY2F0b3JTdHlsZV09XCJncm91cHNDb25maWd1cmF0aW9uLnN0YXR1c0luZGljYXRvclN0eWxlXCJcbiAgICAgICAgW2F2YXRhclN0eWxlXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uYXZhdGFyU3R5bGVcIlxuICAgICAgICBbc2VhcmNoSWNvblVSTF09XCJncm91cHNDb25maWd1cmF0aW9uLnNlYXJjaEljb25VUkxcIlxuICAgICAgICBbc2VhcmNoUmVxdWVzdEJ1aWxkZXJdPVwiZ3JvdXBzQ29uZmlndXJhdGlvbi5zZWFyY2hSZXF1ZXN0QnVpbGRlciB8fCBncm91cHNTZWFyY2hSZXF1ZXN0QnVpbGRlclwiXG4gICAgICAgIFtncm91cHNTdHlsZV09XCJncm91cHNDb25maWd1cmF0aW9uLmdyb3Vwc1N0eWxlXCJcbiAgICAgICAgW3N1YnRpdGxlVmlld109XCJncm91cHNDb25maWd1cmF0aW9uLnN1YnRpdGxlVmlld1wiXG4gICAgICAgIFtvcHRpb25zXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24ub3B0aW9uc1wiXG4gICAgICAgIFtlbXB0eVN0YXRlVmlld109XCJncm91cHNDb25maWd1cmF0aW9uLmVtcHR5U3RhdGVWaWV3XCJcbiAgICAgICAgW29uU2VsZWN0XT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24ub25TZWxlY3QgfHwgb25Hcm91cFNlbGVjdGVkXCJcbiAgICAgICAgW2xvYWRpbmdJY29uVVJMXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24ubG9hZGluZ0ljb25VUkxcIlxuICAgICAgICBbZXJyb3JTdGF0ZVZpZXddPVwiZ3JvdXBzQ29uZmlndXJhdGlvbi5lcnJvclN0YXRlVmlld1wiXG4gICAgICAgIFtsb2FkaW5nU3RhdGVWaWV3XT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24ubG9hZGluZ1N0YXRlVmlld1wiXG4gICAgICAgIFtsaXN0SXRlbVZpZXddPVwiZ3JvdXBzQ29uZmlndXJhdGlvbi5saXN0SXRlbVZpZXdcIlxuICAgICAgICBbbWVudV09XCJncm91cHNDb25maWd1cmF0aW9uLm1lbnVcIlxuICAgICAgICBbaGlkZVNlcGFyYXRvcl09XCJncm91cHNDb25maWd1cmF0aW9uLmhpZGVTZXBhcmF0b3JcIlxuICAgICAgICBbaGlkZUVycm9yXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uaGlkZUVycm9yXCJcbiAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZVwiXG4gICAgICAgIFt0aXRsZV09XCInJ1wiID48L2NvbWV0Y2hhdC1ncm91cHM+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9jb21ldGNoYXQtdGFicz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2MtY29udGFjdHNfX2J1dHRvbnNcIj5cbiAgICAgIDxjb21ldGNoYXQtYnV0dG9uIFtkaXNhYmxlZF09XCJpc0xpbWl0UmVhY2hlZFwiIGNsYXNzPVwiY2MtY29udGFjdHNfX2J1dHRvbnMtLWFkZFwiIFt0ZXh0XT1cInN1Ym1pdEJ1dHRvblRleHRcIiBbYnV0dG9uU3R5bGVdPVwic3VibWl0QnV0dG9uU3R5bGVcIiAoY2xpY2spPVwic3VibWl0Q2xpY2tlZCgpXCIgPjwvY29tZXRjaGF0LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYy1jbG9zZS1idXR0b25cIj5cbiAgICA8Y29tZXRjaGF0LWJ1dHRvbiBbaWNvblVSTF09XCJjbG9zZUljb25VUkxcIiBbYnV0dG9uU3R5bGVdPVwiY2xvc2VCdXR0b25TdHlsZVwiIChjYy1idXR0b24tY2xpY2tlZCk9XCJjbG9zZUNsaWNrZWQoKVwiPlxuICAgIDwvY29tZXRjaGF0LWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { CometChatContactsComponent } from "./cometchat-contacts/cometchat-contacts.component";
4
+ import { FormsModule } from "@angular/forms";
5
+ import { CometChatUsers } from "../CometChatUsers/cometchat-users.module";
6
+ import { CometChatTabs } from "../Shared/Views/CometChatTabs/cometchat-tabs.module";
7
+ import { CometChatGroups } from "../CometChatGroups/cometchat-groups.module";
8
+ import * as i0 from "@angular/core";
9
+ export class CometChatContacts {
10
+ }
11
+ CometChatContacts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatContacts, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ CometChatContacts.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatContacts, declarations: [CometChatContactsComponent], imports: [CommonModule, FormsModule, CometChatUsers, CometChatTabs, CometChatGroups], exports: [CometChatContactsComponent] });
13
+ CometChatContacts.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatContacts, imports: [[CommonModule, FormsModule, CometChatUsers, CometChatTabs, CometChatGroups]] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatContacts, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [CometChatContactsComponent],
18
+ imports: [CommonModule, FormsModule, CometChatUsers, CometChatTabs, CometChatGroups],
19
+ exports: [CometChatContactsComponent],
20
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWNvbnRhY3RzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0Q29udGFjdHMvY29tZXRjaGF0LWNvbnRhY3RzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBTzdFLE1BQU0sT0FBTyxpQkFBaUI7OytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFMYiwwQkFBMEIsYUFDL0IsWUFBWSxFQUFDLFdBQVcsRUFBQyxjQUFjLEVBQUMsYUFBYSxFQUFDLGVBQWUsYUFDckUsMEJBQTBCO2dIQUd6QixpQkFBaUIsWUFKbkIsQ0FBQyxZQUFZLEVBQUMsV0FBVyxFQUFDLGNBQWMsRUFBQyxhQUFhLEVBQUMsZUFBZSxDQUFDOzRGQUlyRSxpQkFBaUI7a0JBTjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBQyxXQUFXLEVBQUMsY0FBYyxFQUFDLGFBQWEsRUFBQyxlQUFlLENBQUM7b0JBQ2hGLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUNyQyxPQUFPLEVBQUMsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDb21ldENoYXRDb250YWN0c0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbWV0Y2hhdC1jb250YWN0cy9jb21ldGNoYXQtY29udGFjdHMuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQ29tZXRDaGF0VXNlcnMgfSBmcm9tIFwiLi4vQ29tZXRDaGF0VXNlcnMvY29tZXRjaGF0LXVzZXJzLm1vZHVsZVwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0VGFicyB9IGZyb20gXCIuLi9TaGFyZWQvVmlld3MvQ29tZXRDaGF0VGFicy9jb21ldGNoYXQtdGFicy5tb2R1bGVcIjtcbmltcG9ydCB7IENvbWV0Q2hhdEdyb3VwcyB9IGZyb20gXCIuLi9Db21ldENoYXRHcm91cHMvY29tZXRjaGF0LWdyb3Vwcy5tb2R1bGVcIjtcbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NvbWV0Q2hhdENvbnRhY3RzQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxGb3Jtc01vZHVsZSxDb21ldENoYXRVc2VycyxDb21ldENoYXRUYWJzLENvbWV0Q2hhdEdyb3Vwc10sXG4gIGV4cG9ydHM6IFtDb21ldENoYXRDb250YWN0c0NvbXBvbmVudF0sXG4gIHNjaGVtYXM6W0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdENvbnRhY3RzIHt9XG4iXX0=