@cometchat/chat-uikit-angular 4.0.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/AI/AIAssistBot/AIAssistBot.d.ts +7 -0
  2. package/AI/AIAssistBot/AIAssistBotDecorator.d.ts +11 -0
  3. package/AI/AIConversationStarter/AIConversationStarter.d.ts +2 -2
  4. package/AI/AIConversationStarter/AIConversationStarterDecorator.d.ts +3 -0
  5. package/AI/AIConversationSummary/AIConversationSummary.d.ts +7 -0
  6. package/AI/AIConversationSummary/AIConversationSummaryDecorator.d.ts +10 -0
  7. package/AI/AISmartReplies/AISmartReplies.d.ts +2 -2
  8. package/AI/AISmartReplies/AISmartRepliesDecorator.d.ts +3 -0
  9. package/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.d.ts +119 -0
  10. package/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.d.ts +14 -0
  11. package/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.d.ts +111 -0
  12. package/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.d.ts +10 -0
  13. package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.d.ts +76 -0
  14. package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.d.ts +10 -0
  15. package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.d.ts +90 -0
  16. package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.d.ts +10 -0
  17. package/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.d.ts +133 -0
  18. package/Calls/CometChatCallLogs/cometchat-call-logs.module.d.ts +12 -0
  19. package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.d.ts +54 -0
  20. package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.d.ts +12 -0
  21. package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +18 -7
  22. package/CometChatList/cometchat-list.component.d.ts +12 -9
  23. package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +65 -29
  24. package/CometChatMessageComposer/cometchat-message-composer.module.d.ts +3 -3
  25. package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +7 -6
  26. package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +6 -4
  27. package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +96 -55
  28. package/CometChatMessageList/cometchat-message-list.module.d.ts +1 -1
  29. package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +19 -16
  30. package/CometChatMessages/cometchat-messages.module.d.ts +3 -2
  31. package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +8 -5
  32. package/Shared/CometChatUIkit/CometChatUIKit.d.ts +13 -3
  33. package/Shared/Framework/AIExtensionDataSource.d.ts +5 -0
  34. package/Shared/Framework/DataSource.d.ts +3 -1
  35. package/Shared/Framework/DataSourceDecorator.d.ts +3 -1
  36. package/Shared/Utils/CallDetailUtils.d.ts +8 -0
  37. package/Shared/Utils/CallLogUtils.d.ts +8 -0
  38. package/Shared/Utils/MessageUtils.d.ts +2 -1
  39. package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.d.ts +71 -0
  40. package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.d.ts +11 -0
  41. package/assets/InfoIcon.svg +13 -0
  42. package/assets/greaterThanIcon.svg +3 -0
  43. package/assets/incomingAudioCallIconUrl.svg +5 -0
  44. package/assets/incomingVideoCallIconUrl.svg +6 -0
  45. package/assets/missedAudioCallIconUrl.svg +5 -0
  46. package/assets/missedVideoCallIconUrl.svg +6 -0
  47. package/assets/outgoingAudioCallIconUrl.svg +5 -0
  48. package/assets/outgoingVideoCallIconUrl.svg +6 -0
  49. package/esm2020/AI/AIAssistBot/AIAssistBot.mjs +21 -0
  50. package/esm2020/AI/AIAssistBot/AIAssistBotDecorator.mjs +68 -0
  51. package/esm2020/AI/AIConversationStarter/AIConversationStarter.mjs +7 -4
  52. package/esm2020/AI/AIConversationStarter/AIConversationStarterDecorator.mjs +22 -1
  53. package/esm2020/AI/AIConversationSummary/AIConversationSummary.mjs +21 -0
  54. package/esm2020/AI/AIConversationSummary/AIConversationSummaryDecorator.mjs +32 -0
  55. package/esm2020/AI/AISmartReplies/AISmartReplies.mjs +7 -4
  56. package/esm2020/AI/AISmartReplies/AISmartRepliesDecorator.mjs +22 -1
  57. package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +3 -3
  58. package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.mjs +351 -0
  59. package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.mjs +47 -0
  60. package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.mjs +352 -0
  61. package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.mjs +21 -0
  62. package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.mjs +189 -0
  63. package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.mjs +21 -0
  64. package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.mjs +246 -0
  65. package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.mjs +21 -0
  66. package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.mjs +585 -0
  67. package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs.module.mjs +36 -0
  68. package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.mjs +193 -0
  69. package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.mjs +39 -0
  70. package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +1 -1
  71. package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +72 -46
  72. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +3 -3
  73. package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +1 -1
  74. package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +1 -1
  75. package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +3 -3
  76. package/esm2020/CometChatList/cometchat-list.component.mjs +44 -28
  77. package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +312 -115
  78. package/esm2020/CometChatMessageComposer/cometchat-message-composer.module.mjs +7 -14
  79. package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +15 -17
  80. package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +19 -21
  81. package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +888 -300
  82. package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +5 -5
  83. package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +72 -51
  84. package/esm2020/CometChatMessages/cometchat-messages.module.mjs +10 -6
  85. package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +23 -23
  86. package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +1 -1
  87. package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +3 -3
  88. package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +173 -36
  89. package/esm2020/Shared/Framework/AIExtensionDataSource.mjs +3 -0
  90. package/esm2020/Shared/Framework/ChatConfigurator.mjs +2 -2
  91. package/esm2020/Shared/Framework/DataSource.mjs +1 -1
  92. package/esm2020/Shared/Framework/DataSourceDecorator.mjs +5 -2
  93. package/esm2020/Shared/Utils/CallDetailUtils.mjs +72 -0
  94. package/esm2020/Shared/Utils/CallLogUtils.mjs +122 -0
  95. package/esm2020/Shared/Utils/MessageUtils.mjs +31 -20
  96. package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.mjs +289 -0
  97. package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.mjs +22 -0
  98. package/esm2020/public-api.mjs +106 -91
  99. package/fesm2015/cometchat-chat-uikit-angular.mjs +4249 -817
  100. package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
  101. package/fesm2020/cometchat-chat-uikit-angular.mjs +4271 -836
  102. package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
  103. package/package.json +6 -6
  104. package/public-api.d.ts +105 -90
  105. package/AI/AIEnabler.d.ts +0 -8
  106. package/AI/AIEnablerDecorator.d.ts +0 -7
  107. package/LICENSE.md +0 -3
  108. package/Shared/Views/CometChatCardView/cometchat-card-view/cometchat-card-view.component.d.ts +0 -71
  109. package/Shared/Views/CometChatCardView/cometchat-card-view.module.d.ts +0 -8
  110. package/esm2020/AI/AIEnabler.mjs +0 -70
  111. package/esm2020/AI/AIEnablerDecorator.mjs +0 -10
  112. package/esm2020/Shared/Views/CometChatCardView/cometchat-card-view/cometchat-card-view.component.mjs +0 -117
  113. package/esm2020/Shared/Views/CometChatCardView/cometchat-card-view.module.mjs +0 -23
@@ -0,0 +1,351 @@
1
+ import { Component, Input, ChangeDetectionStrategy, } from "@angular/core";
2
+ import "@cometchat/uikit-elements";
3
+ import { AvatarStyle, DateStyle, ListItemStyle, } from "@cometchat/uikit-elements";
4
+ import { CallButtonsConfiguration, CallLogDetailsStyle, CallLogParticipantsConfiguration, CallLogHistoryConfiguration, CallLogRecordingsConfiguration, } from "@cometchat/uikit-shared";
5
+ import { fontHelper, localize, DatePatterns, } from "@cometchat/uikit-resources";
6
+ import { CometChat } from "@cometchat/chat-sdk-javascript";
7
+ import { CallDetailUtils } from "../../../Shared/Utils/CallDetailUtils";
8
+ import { CallLogUtils } from "../../../Shared/Utils/CallLogUtils";
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../../CometChatTheme.service";
11
+ import * as i2 from "../../CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component";
12
+ import * as i3 from "../../CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component";
13
+ import * as i4 from "../../CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component";
14
+ import * as i5 from "../../CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component";
15
+ import * as i6 from "@angular/common";
16
+ export class CometChatCallLogDetailsComponent {
17
+ constructor(ref, themeService) {
18
+ this.ref = ref;
19
+ this.themeService = themeService;
20
+ this.title = localize("CALL_DETAILS");
21
+ this.hideProfile = false;
22
+ this.backIconUrl = "assets/backbutton.svg";
23
+ this.greaterThanIconURL = "assets/greaterThanIcon.svg";
24
+ this.callButtonsConfiguration = new CallButtonsConfiguration({});
25
+ this.callLogParticipantsConfiguration = new CallLogParticipantsConfiguration({});
26
+ this.callLogHistoryConfiguration = new CallLogHistoryConfiguration({});
27
+ this.callLogRecordingsConfiguration = new CallLogRecordingsConfiguration({});
28
+ this.onError = (error) => {
29
+ console.log(error);
30
+ };
31
+ this.datePattern = DatePatterns.time;
32
+ this.datePattern2 = DatePatterns.DayDate;
33
+ this.data = [];
34
+ this.avatarStyle = {
35
+ borderRadius: "16px",
36
+ width: "28px",
37
+ height: "28px",
38
+ border: "none",
39
+ };
40
+ this.callDetailsStyle = {
41
+ width: "100%",
42
+ height: "100%",
43
+ };
44
+ this.listItemStyle = {};
45
+ this.dateStyle = {};
46
+ this.callButtonsStyle = {
47
+ width: "100%",
48
+ height: "100%",
49
+ border: "none",
50
+ borderRadius: "0",
51
+ background: "transparent",
52
+ };
53
+ this.iconStyle = {
54
+ height: "16px",
55
+ width: "16px",
56
+ iconTint: "RGBA(20, 20, 20, 0.68)",
57
+ };
58
+ this.defaultTemplate = [];
59
+ this.authToken = "";
60
+ this.loggedInUser = null;
61
+ this.showCallLogDetailOptionList = true;
62
+ this.showCometChatMessages = true;
63
+ this.showParticipantsList = false;
64
+ this.showCallRecordingList = false;
65
+ this.showCallHistory = false;
66
+ this.dividerStyle = {
67
+ background: "rgb(222 222 222 / 46%)",
68
+ height: "1px",
69
+ width: "100%",
70
+ };
71
+ this.userListenerId = "userlist_" + new Date().getTime();
72
+ this.limit = 5;
73
+ this.onItemClick = (call) => {
74
+ this.call = call;
75
+ this.showCallLogDetailOptionList = true;
76
+ this.showCallHistory = false;
77
+ this.ref.detectChanges();
78
+ };
79
+ this.types = [];
80
+ this.categories = [];
81
+ this.getTemplateOptions = (template) => {
82
+ if (template.options) {
83
+ return template.options(this.user, this.group, template.id);
84
+ }
85
+ else
86
+ return [];
87
+ };
88
+ this.onOptionClick = (option) => {
89
+ if (option?.onClick) {
90
+ option.onClick(this.call);
91
+ }
92
+ else {
93
+ switch (option.id) {
94
+ case "participants":
95
+ this.showCallLogDetailOptionList = false;
96
+ this.showParticipantsList = true;
97
+ this.ref.detectChanges();
98
+ break;
99
+ case "recordings":
100
+ this.showCallLogDetailOptionList = false;
101
+ this.showCallRecordingList = true;
102
+ this.ref.detectChanges();
103
+ break;
104
+ case "callHistory":
105
+ this.showCallLogDetailOptionList = false;
106
+ this.showCallHistory = true;
107
+ this.ref.detectChanges();
108
+ break;
109
+ default:
110
+ break;
111
+ }
112
+ }
113
+ };
114
+ this.handlePageOnBackClick = () => {
115
+ this.showCallHistory = false;
116
+ this.showCallRecordingList = false;
117
+ this.showParticipantsList = false;
118
+ this.showCometChatMessages = false;
119
+ this.showCallLogDetailOptionList = true;
120
+ this.ref.detectChanges();
121
+ };
122
+ this.wrapperStyle = () => {
123
+ return {
124
+ width: this.callDetailsStyle.width,
125
+ height: this.callDetailsStyle.height,
126
+ border: this.callDetailsStyle.border,
127
+ borderRadius: this.callDetailsStyle.borderRadius,
128
+ background: this.callDetailsStyle.background,
129
+ };
130
+ };
131
+ this.backButtonStyle = () => {
132
+ return {
133
+ height: "24px",
134
+ width: "24px",
135
+ border: "none",
136
+ borderRadius: "0",
137
+ background: "transparent",
138
+ buttonIconTint: this.themeService.theme.palette.getPrimary(),
139
+ };
140
+ };
141
+ }
142
+ getTitleStyle() {
143
+ return {
144
+ textFont: this.callDetailsStyle.titleFont ||
145
+ fontHelper(this.themeService.theme.typography.title1),
146
+ textColor: this.callDetailsStyle.titleColor ||
147
+ this.themeService.theme.palette.getAccent(),
148
+ };
149
+ }
150
+ ngOnChanges(changes) {
151
+ if (changes["user"] || changes["group"]) {
152
+ this.showCallLogDetailOptionList = true;
153
+ this.showParticipantsList = false;
154
+ this.showCallRecordingList = false;
155
+ this.showCallHistory = false;
156
+ this.showCometChatMessages = false;
157
+ }
158
+ }
159
+ removeListener() {
160
+ CometChat.removeUserListener(this.userListenerId);
161
+ }
162
+ ngOnInit() {
163
+ CometChat.getLoggedinUser()
164
+ .then((user) => {
165
+ this.loggedInUser = user;
166
+ this.authToken = this.loggedInUser.getAuthToken();
167
+ this.getTemplate();
168
+ })
169
+ .catch((error) => {
170
+ if (this.onError) {
171
+ this.onError(error);
172
+ }
173
+ });
174
+ this.setThemeStyle();
175
+ }
176
+ trackByFnOption(index, option) {
177
+ return option.id;
178
+ }
179
+ getTemplate() {
180
+ if (this.data && this.data?.length > 0) {
181
+ this.defaultTemplate = this.data;
182
+ this.ref.detectChanges();
183
+ }
184
+ else {
185
+ this.defaultTemplate = CallDetailUtils.getDefaultCallTemplate(this.call, this.loggedInUser, this.themeService.theme);
186
+ this.ref.detectChanges();
187
+ }
188
+ }
189
+ getCustomOptionView(option) {
190
+ return option?.customView;
191
+ }
192
+ getSectionHeaderStyle(template) {
193
+ return {
194
+ textFont: template.titleFont,
195
+ textColor: template.titleColor,
196
+ };
197
+ }
198
+ getButtonStyle(option) {
199
+ return {
200
+ height: "100%",
201
+ width: "100%",
202
+ border: "none",
203
+ borderRadius: "0",
204
+ buttonTextFont: option?.titleFont,
205
+ buttonTextColor: option?.titleColor,
206
+ background: option?.backgroundColor || "transparent",
207
+ };
208
+ }
209
+ subtitleStyle(template) {
210
+ return {
211
+ textFont: template.titleFont,
212
+ textColor: template.titleColor,
213
+ };
214
+ }
215
+ showDataSectionStyle(template) {
216
+ return {
217
+ textFont: template.titleFont,
218
+ textColor: template.titleColor,
219
+ };
220
+ }
221
+ setThemeStyle() {
222
+ this.setDetailsStyle();
223
+ this.setAvatarStyle();
224
+ this.setListItemStyle();
225
+ this.setDateStyle();
226
+ }
227
+ setListItemStyle() {
228
+ let defaultStyle = new ListItemStyle({
229
+ height: "45px",
230
+ width: "100%",
231
+ background: this.themeService.theme.palette.getAccent50() ||
232
+ this.themeService.theme.palette.getBackground(),
233
+ activeBackground: "transparent",
234
+ borderRadius: "5px",
235
+ titleFont: fontHelper(this.themeService.theme.typography.title2),
236
+ titleColor: this.themeService.theme.palette.getAccent(),
237
+ border: "none",
238
+ separatorColor: this.themeService.theme.palette.getAccent200(),
239
+ hoverBackground: this.themeService.theme.palette.getAccent100(),
240
+ });
241
+ this.listItemStyle = { ...defaultStyle, ...this.listItemStyle };
242
+ }
243
+ setAvatarStyle() {
244
+ let defaultStyle = new AvatarStyle({
245
+ borderRadius: "24px",
246
+ width: "46px",
247
+ height: "46px",
248
+ border: "none",
249
+ backgroundColor: this.themeService.theme.palette.getAccent700(),
250
+ nameTextColor: this.themeService.theme.palette.getAccent900(),
251
+ backgroundSize: "cover",
252
+ nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
253
+ outerViewBorderSpacing: "",
254
+ });
255
+ this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };
256
+ }
257
+ setDetailsStyle() {
258
+ let defaultStyle = new CallLogDetailsStyle({
259
+ background: this.themeService.theme.palette.getBackground(),
260
+ titleFont: fontHelper(this.themeService.theme.typography.title1),
261
+ titleColor: this.themeService.theme.palette.getAccent(),
262
+ backIconTint: this.themeService.theme.palette.getPrimary(),
263
+ width: "100%",
264
+ height: "100%",
265
+ borderRadius: "",
266
+ nameTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
267
+ });
268
+ this.callDetailsStyle = { ...defaultStyle, ...this.callDetailsStyle };
269
+ }
270
+ setDateStyle() {
271
+ let defaultStyle = new DateStyle({
272
+ textFont: fontHelper(this.themeService.theme.typography.caption2),
273
+ textColor: this.themeService.theme.palette.getAccent600(),
274
+ background: "transparent",
275
+ });
276
+ this.dateStyle = { ...defaultStyle, ...this.dateStyle };
277
+ }
278
+ getTailView(totalSeconds) {
279
+ return CallLogUtils.convertMinutesToHoursMinutesSeconds(totalSeconds);
280
+ }
281
+ getSubtitle(call) {
282
+ return CallLogUtils.getCallStatusWithType(call, this.loggedInUser);
283
+ }
284
+ getListItemStyle(option) {
285
+ return {
286
+ height: "auto",
287
+ width: "100%",
288
+ background: option?.backgroundColor ||
289
+ this.themeService.theme.palette.getBackground(),
290
+ borderRadius: "0",
291
+ titleFont: option?.titleFont ||
292
+ fontHelper(this.themeService.theme.typography.title2),
293
+ border: "none",
294
+ separatorColor: this.themeService.theme.palette.getAccent200(),
295
+ hoverBackground: this.themeService.theme.palette.getAccent100(),
296
+ };
297
+ }
298
+ }
299
+ CometChatCallLogDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatCallLogDetailsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
300
+ CometChatCallLogDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatCallLogDetailsComponent, selector: "cometchat-call-log-details", inputs: { call: "call", group: "group", user: "user", title: "title", onBackClick: "onBackClick", hideProfile: "hideProfile", subtitleView: "subtitleView", customProfileView: "customProfileView", backIconUrl: "backIconUrl", greaterThanIconURL: "greaterThanIconURL", callButtonsConfiguration: "callButtonsConfiguration", callLogParticipantsConfiguration: "callLogParticipantsConfiguration", callLogHistoryConfiguration: "callLogHistoryConfiguration", callLogRecordingsConfiguration: "callLogRecordingsConfiguration", onError: "onError", datePattern: "datePattern", datePattern2: "datePattern2", data: "data", avatarStyle: "avatarStyle", callDetailsStyle: "callDetailsStyle", listItemStyle: "listItemStyle", dateStyle: "dateStyle", callButtonsStyle: "callButtonsStyle" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-call-log-details__wrapper\" *ngIf=\"user || group\" [ngStyle]=\"wrapperStyle()\">\n\n <div class=\"cc-call-log-details__header\"\n *ngIf=\"onBackClick && !(showParticipantsList || showCallRecordingList || showCallHistory)\">\n <cometchat-button [iconURL]=\"backIconUrl\" class=\"cc-call-log-details__close-button\" [buttonStyle]=\"backButtonStyle()\"\n (cc-button-clicked)=\"onBackClick()\"></cometchat-button>\n <cometchat-label [text]=\"title\" [labelStyle]=\"getTitleStyle()\"></cometchat-label>\n </div>\n\n <div class=\"cc-call-log-details\">\n <div class=\"cc-call-log-details__profile\"\n *ngIf=\"!hideProfile && showCallLogDetailOptionList && !(showParticipantsList || showCallRecordingList || showCallHistory)\">\n\n\n <div class=\" cc-call-log-details__default-profile\" *ngIf=\"!customProfileView;else listitem\">\n <cometchat-avatar [name]=\"user?.getName() ?? group?.getName()\" [avatarStyle]=\"avatarStyle\"\n [image]=\"user?.getAvatar() ?? group?.getIcon()\">\n </cometchat-avatar>\n\n <cometchat-label [text]=\"user?.getName() ?? this.group?.getName()\"></cometchat-label>\n </div>\n </div>\n <div class=\"cc-call-log-details__section-list\"\n *ngIf=\"showCallLogDetailOptionList && defaultTemplate && defaultTemplate.length > 0\">\n <div class=\"cc-call-log-details__section\" *ngFor=\"let item of defaultTemplate\">\n <div class=\"cc-call-log-details__section-separator\" *ngIf=\"item.title\">\n <cometchat-label [text]=\"item.title\"></cometchat-label>\n </div>\n <div class=\"cc-call-log-details__options-wrapper\" *ngIf=\"getTemplateOptions(item)\">\n <div class=\"cc-call-log-details__options\" *ngFor=\"let option of getTemplateOptions(item); trackBy: trackByFnOption \">\n <div class=\"cc-call-log-details__option\" *ngIf=\"!getCustomOptionView(option);else customView\">\n <div class=\"cc-call-log-details__option-element\">\n\n <div class=\"cc-call-log-details__calling-default-option\" *ngIf=\"option.id=='calls'\">\n\n <cometchat-call-buttons [user]=\"user\" [group]=\"group\"\n [callButtonsStyle]=\"callButtonsConfiguration.callButtonsStyle\"\n [onVideoCallClick]=\"callButtonsConfiguration.onVideoCallClick\"\n [onVoiceCallClick]=\"callButtonsConfiguration.onVoiceCallClick\"\n [videoCallIconURL]=\"callButtonsConfiguration.videoCallIconURL\"\n [voiceCallIconURL]=\"callButtonsConfiguration.voiceCallIconURL\"></cometchat-call-buttons>\n </div>\n <cometchat-list-item *ngIf=\"option.id==='callStatus'\" [listItemStyle]=\"getListItemStyle(option)\"\n [hideSeparator]=\"true\">\n <div class=\"cc-call-log-details__call-Status\" slot=\"subtitleView\" >\n <div *ngIf=\"!subtitleView; else subtitle\" style=\"width: 100%;\">\n <div> <cometchat-date [dateStyle]=\"dateStyle\" [timestamp]=\"call?.getInitiatedAt()\"\n [pattern]=\"datePattern2\">\n </cometchat-date></div>\n\n <div\n class=\"cc-call-log-details__call-Status__subTitle\">\n <div>\n\n <cometchat-date [dateStyle]=\"dateStyle\" [timestamp]=\"call?.getInitiatedAt()\"\n [pattern]=\"datePattern\">\n </cometchat-date>\n <cometchat-label [text]=\"getSubtitle(call)\" [labelStyle]=\"subtitleStyle(option)\">\n </cometchat-label>\n </div>\n <div class=\"cc-call-log-details__call-Status__tailview\"> {{ getTailView(call?.getTotalDurationInMinutes()!) }}\n </div>\n\n </div>\n\n\n </div>\n\n <ng-template #subtitle>\n <ng-container *ngTemplateOutlet=\"subtitleView;context:{ $implicit: user ?? group }\">\n </ng-container>\n </ng-template>\n </div>\n\n\n </cometchat-list-item>\n <cometchat-list-item *ngIf=\"option.id!=='calls' && option.id!=='callStatus' \"\n (cc-listitem-clicked)=\"onOptionClick(option)\" [listItemStyle]=\"getListItemStyle(option)\"\n [title]=\"option.title\" [hideSeparator]=\"true\">\n \n <div slot=\"tailView\" class=\"cc-call-log-details__secondary-view__tail-view\"\n >\n {{option.tail}}\n <cometchat-icon [iconStyle]=\"iconStyle\" [URL]=\"greaterThanIconURL\"></cometchat-icon>\n </div>\n\n \n\n </cometchat-list-item>\n\n </div>\n <cometchat-divider [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n </div>\n <ng-template #customView>\n <ng-container *ngTemplateOutlet=\"getCustomOptionView(option)\">\n </ng-container>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n\n\n\n <div *ngIf=\"showParticipantsList || showCallRecordingList || showCallHistory\" style=\" height: 100%;\">\n\n <div *ngIf=\"showParticipantsList\" style=\"height: 100%;\">\n <cometchat-call-log-participants [call]=\"call\"\n [onBackClick]=\"callLogParticipantsConfiguration.onBackClick || handlePageOnBackClick\"\n [backIconUrl]=\"callLogParticipantsConfiguration.backIconUrl || backIconUrl\"\n [avatarStyle]=\"callLogParticipantsConfiguration.avatarStyle\"\n [onItemClick]=\"callLogParticipantsConfiguration.onItemClick!\"\n [datePattern]=\"callLogParticipantsConfiguration.datePattern\"\n [subtitleView]=\"callLogParticipantsConfiguration.subtitleView\"\n [listItemView]=\"callLogParticipantsConfiguration.listItemView\"\n\n [listItemStyle]=\"callLogParticipantsConfiguration.listItemStyle\" [callLogParticipantsStyle]=\"\n callLogParticipantsConfiguration.callLogParticipantsStyle\"\n \n [tailView]=\"callLogParticipantsConfiguration.tailView\"></cometchat-call-log-participants>\n </div>\n <div *ngIf=\"showCallRecordingList\" style=\"height:100%;\">\n <cometchat-call-log-recordings [call]=\"call\"\n [backIconUrl]=\"callLogRecordingsConfiguration.backIconUrl || backIconUrl\" [onBackClick]=\"\n callLogRecordingsConfiguration.onBackClick || handlePageOnBackClick\n \" [onItemClick]=\"callLogRecordingsConfiguration.onItemClick!\"\n [datePattern]=\"callLogRecordingsConfiguration.datePattern!\"\n [listItemStyle]=\"callLogRecordingsConfiguration.listItemStyle\" callLogRecordingsStyle=\"\n callLogRecordingsConfiguration.callLogRecordingsStyle\n callLogRecordingsConfiguration.hideDownloadButton || false\n \" [onDownloadClick]=\"callLogRecordingsConfiguration.onDownloadClick!\"\n [listItemView]=\"callLogRecordingsConfiguration.listItemView\"\n [subtitleView]=\"callLogRecordingsConfiguration.subtitleView\"\n [tailView]=\"callLogRecordingsConfiguration.tailView\"></cometchat-call-log-recordings>\n </div>\n <div *ngIf=\"showCallHistory\" style=\"height: 100%; \">\n <cometchat-call-log-history [call]=\"call\" [user]=\"user\" [group]=\"group\" [onBackClick]=\"handlePageOnBackClick\"\n [backIconUrl]=\"callLogHistoryConfiguration.backIconUrl || backIconUrl\"\n [emptyStateView]=\"callLogHistoryConfiguration.emptyStateView\"\n [errorStateView]=\"callLogHistoryConfiguration.errorStateView\"\n [loadingIconURL]=\"callLogHistoryConfiguration.loadingIconURL\"\n [loadingStateView]=\"callLogHistoryConfiguration.loadingStateView\"\n [tailView]=\"callLogHistoryConfiguration.tailView\" [callLogRequestBuilder]=\"\n callLogHistoryConfiguration.callLogRequestBuilder\n \" [onItemClick]=\"callLogHistoryConfiguration.onItemClick || onItemClick\" [onBackClick]=\"\n callLogHistoryConfiguration.onBackClick || handlePageOnBackClick\n \" [listItemStyle]=\"callLogHistoryConfiguration.listItemStyle\"\n [datePattern]=\"callLogHistoryConfiguration.datePattern\" [dateSeparatorPattern]=\"\n callLogHistoryConfiguration.dateSeparatorPattern\n \" [callLogHistoryStyle]=\"\n callLogHistoryConfiguration.callLogHistoryStyle\n \" [onError]=\"callLogHistoryConfiguration.onError!\"></cometchat-call-log-history>\n </div>\n\n </div>\n </div>\n</div>\n\n\n<ng-template #listitem>\n <ng-container *ngTemplateOutlet=\"customProfileView\">\n </ng-container>\n</ng-template>", styles: ["*{box-sizing:border-box;margin:0;padding:0}.cc-call-log-details__header{display:flex;gap:10px;align-items:center;height:3%}.cc-call-log-details{height:98%}.cc-call-log-details__profile{display:flex;align-items:center;justify-content:center}.cc-call-log-details__default-profile{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.cc-call-log-details__section{margin:10px 3px 3px}.cc-call-log-details__option{margin-top:5px}.cc-call-log-details__calling-default-option{display:flex;align-items:center;justify-content:center;margin:10px}.cc-call-log-details__call-Status{display:flex;justify-content:space-between}.cc-call-log-details__call-Status__subTitle{display:flex;justify-content:space-between;margin:10px 0;padding-right:8px;width:100%}.cc-call-log-details__call-Status__tailview{color:gray}.cc-call-log-details__secondary-view__tail-view{display:flex;align-items:center;justify-content:center;gap:5px;color:RGBA(20,20,20,.68)}\n"], components: [{ type: i2.CometChatCallButtonsComponent, selector: "cometchat-call-buttons", inputs: ["user", "group", "voiceCallIconURL", "voiceCallIconText", "voiceCallIconHoverText", "videoCallIconURL", "videoCallIconText", "videoCallIconHoverText", "onVoiceCallClick", "onVideoCallClick", "onError", "callButtonsStyle", "outgoingCallConfiguration", "ongoingCallConfiguration"] }, { type: i3.CometChatCallLogParticipantsComponent, selector: "cometchat-call-log-participants", inputs: ["title", "call", "backIconUrl", "onBackClick", "datePattern", "subtitleView", "listItemView", "onError", "hideSeparator", "avatarStyle", "dateStyle", "CallLogParticipantsStyle", "listItemStyle"] }, { type: i4.CometChatCallLogRecordingsComponent, selector: "cometchat-call-log-recordings", inputs: ["title", "call", "onBackClick", "backIconURL", "datePattern", "subtitleView", "listItemView", "downloadIconURL", "onDownloadClick", "hideDownloadButton", "onError", "avatarStyle", "dateStyle", "CallLogRecordingsStyle", "listItemStyle", "options"] }, { type: i5.CometChatCallLogHistoryComponent, selector: "cometchat-call-log-history", inputs: ["user", "group", "title", "emptyStateView", "errorStateView", "loadingStateView", "subtitleView", "listItemView", "menu", "emptyStateText", "errorStateText", "loadingIconURL", "backIconUrl", "onItemClick", "onBackClick", "callLogRequestBuilder", "DateSeparatorPattern", "hideSeparator", "dateSeparatorStyle", "hideError", "onError", "showSectionHeader", "sectionHeaderField", "datePattern", "avatarStyle", "dateStyle", "CallLogHistoryStyle", "listItemStyle"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatCallLogDetailsComponent, decorators: [{
302
+ type: Component,
303
+ args: [{ selector: "cometchat-call-log-details", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-call-log-details__wrapper\" *ngIf=\"user || group\" [ngStyle]=\"wrapperStyle()\">\n\n <div class=\"cc-call-log-details__header\"\n *ngIf=\"onBackClick && !(showParticipantsList || showCallRecordingList || showCallHistory)\">\n <cometchat-button [iconURL]=\"backIconUrl\" class=\"cc-call-log-details__close-button\" [buttonStyle]=\"backButtonStyle()\"\n (cc-button-clicked)=\"onBackClick()\"></cometchat-button>\n <cometchat-label [text]=\"title\" [labelStyle]=\"getTitleStyle()\"></cometchat-label>\n </div>\n\n <div class=\"cc-call-log-details\">\n <div class=\"cc-call-log-details__profile\"\n *ngIf=\"!hideProfile && showCallLogDetailOptionList && !(showParticipantsList || showCallRecordingList || showCallHistory)\">\n\n\n <div class=\" cc-call-log-details__default-profile\" *ngIf=\"!customProfileView;else listitem\">\n <cometchat-avatar [name]=\"user?.getName() ?? group?.getName()\" [avatarStyle]=\"avatarStyle\"\n [image]=\"user?.getAvatar() ?? group?.getIcon()\">\n </cometchat-avatar>\n\n <cometchat-label [text]=\"user?.getName() ?? this.group?.getName()\"></cometchat-label>\n </div>\n </div>\n <div class=\"cc-call-log-details__section-list\"\n *ngIf=\"showCallLogDetailOptionList && defaultTemplate && defaultTemplate.length > 0\">\n <div class=\"cc-call-log-details__section\" *ngFor=\"let item of defaultTemplate\">\n <div class=\"cc-call-log-details__section-separator\" *ngIf=\"item.title\">\n <cometchat-label [text]=\"item.title\"></cometchat-label>\n </div>\n <div class=\"cc-call-log-details__options-wrapper\" *ngIf=\"getTemplateOptions(item)\">\n <div class=\"cc-call-log-details__options\" *ngFor=\"let option of getTemplateOptions(item); trackBy: trackByFnOption \">\n <div class=\"cc-call-log-details__option\" *ngIf=\"!getCustomOptionView(option);else customView\">\n <div class=\"cc-call-log-details__option-element\">\n\n <div class=\"cc-call-log-details__calling-default-option\" *ngIf=\"option.id=='calls'\">\n\n <cometchat-call-buttons [user]=\"user\" [group]=\"group\"\n [callButtonsStyle]=\"callButtonsConfiguration.callButtonsStyle\"\n [onVideoCallClick]=\"callButtonsConfiguration.onVideoCallClick\"\n [onVoiceCallClick]=\"callButtonsConfiguration.onVoiceCallClick\"\n [videoCallIconURL]=\"callButtonsConfiguration.videoCallIconURL\"\n [voiceCallIconURL]=\"callButtonsConfiguration.voiceCallIconURL\"></cometchat-call-buttons>\n </div>\n <cometchat-list-item *ngIf=\"option.id==='callStatus'\" [listItemStyle]=\"getListItemStyle(option)\"\n [hideSeparator]=\"true\">\n <div class=\"cc-call-log-details__call-Status\" slot=\"subtitleView\" >\n <div *ngIf=\"!subtitleView; else subtitle\" style=\"width: 100%;\">\n <div> <cometchat-date [dateStyle]=\"dateStyle\" [timestamp]=\"call?.getInitiatedAt()\"\n [pattern]=\"datePattern2\">\n </cometchat-date></div>\n\n <div\n class=\"cc-call-log-details__call-Status__subTitle\">\n <div>\n\n <cometchat-date [dateStyle]=\"dateStyle\" [timestamp]=\"call?.getInitiatedAt()\"\n [pattern]=\"datePattern\">\n </cometchat-date>\n <cometchat-label [text]=\"getSubtitle(call)\" [labelStyle]=\"subtitleStyle(option)\">\n </cometchat-label>\n </div>\n <div class=\"cc-call-log-details__call-Status__tailview\"> {{ getTailView(call?.getTotalDurationInMinutes()!) }}\n </div>\n\n </div>\n\n\n </div>\n\n <ng-template #subtitle>\n <ng-container *ngTemplateOutlet=\"subtitleView;context:{ $implicit: user ?? group }\">\n </ng-container>\n </ng-template>\n </div>\n\n\n </cometchat-list-item>\n <cometchat-list-item *ngIf=\"option.id!=='calls' && option.id!=='callStatus' \"\n (cc-listitem-clicked)=\"onOptionClick(option)\" [listItemStyle]=\"getListItemStyle(option)\"\n [title]=\"option.title\" [hideSeparator]=\"true\">\n \n <div slot=\"tailView\" class=\"cc-call-log-details__secondary-view__tail-view\"\n >\n {{option.tail}}\n <cometchat-icon [iconStyle]=\"iconStyle\" [URL]=\"greaterThanIconURL\"></cometchat-icon>\n </div>\n\n \n\n </cometchat-list-item>\n\n </div>\n <cometchat-divider [dividerStyle]=\"dividerStyle\"></cometchat-divider>\n </div>\n <ng-template #customView>\n <ng-container *ngTemplateOutlet=\"getCustomOptionView(option)\">\n </ng-container>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n\n\n\n <div *ngIf=\"showParticipantsList || showCallRecordingList || showCallHistory\" style=\" height: 100%;\">\n\n <div *ngIf=\"showParticipantsList\" style=\"height: 100%;\">\n <cometchat-call-log-participants [call]=\"call\"\n [onBackClick]=\"callLogParticipantsConfiguration.onBackClick || handlePageOnBackClick\"\n [backIconUrl]=\"callLogParticipantsConfiguration.backIconUrl || backIconUrl\"\n [avatarStyle]=\"callLogParticipantsConfiguration.avatarStyle\"\n [onItemClick]=\"callLogParticipantsConfiguration.onItemClick!\"\n [datePattern]=\"callLogParticipantsConfiguration.datePattern\"\n [subtitleView]=\"callLogParticipantsConfiguration.subtitleView\"\n [listItemView]=\"callLogParticipantsConfiguration.listItemView\"\n\n [listItemStyle]=\"callLogParticipantsConfiguration.listItemStyle\" [callLogParticipantsStyle]=\"\n callLogParticipantsConfiguration.callLogParticipantsStyle\"\n \n [tailView]=\"callLogParticipantsConfiguration.tailView\"></cometchat-call-log-participants>\n </div>\n <div *ngIf=\"showCallRecordingList\" style=\"height:100%;\">\n <cometchat-call-log-recordings [call]=\"call\"\n [backIconUrl]=\"callLogRecordingsConfiguration.backIconUrl || backIconUrl\" [onBackClick]=\"\n callLogRecordingsConfiguration.onBackClick || handlePageOnBackClick\n \" [onItemClick]=\"callLogRecordingsConfiguration.onItemClick!\"\n [datePattern]=\"callLogRecordingsConfiguration.datePattern!\"\n [listItemStyle]=\"callLogRecordingsConfiguration.listItemStyle\" callLogRecordingsStyle=\"\n callLogRecordingsConfiguration.callLogRecordingsStyle\n callLogRecordingsConfiguration.hideDownloadButton || false\n \" [onDownloadClick]=\"callLogRecordingsConfiguration.onDownloadClick!\"\n [listItemView]=\"callLogRecordingsConfiguration.listItemView\"\n [subtitleView]=\"callLogRecordingsConfiguration.subtitleView\"\n [tailView]=\"callLogRecordingsConfiguration.tailView\"></cometchat-call-log-recordings>\n </div>\n <div *ngIf=\"showCallHistory\" style=\"height: 100%; \">\n <cometchat-call-log-history [call]=\"call\" [user]=\"user\" [group]=\"group\" [onBackClick]=\"handlePageOnBackClick\"\n [backIconUrl]=\"callLogHistoryConfiguration.backIconUrl || backIconUrl\"\n [emptyStateView]=\"callLogHistoryConfiguration.emptyStateView\"\n [errorStateView]=\"callLogHistoryConfiguration.errorStateView\"\n [loadingIconURL]=\"callLogHistoryConfiguration.loadingIconURL\"\n [loadingStateView]=\"callLogHistoryConfiguration.loadingStateView\"\n [tailView]=\"callLogHistoryConfiguration.tailView\" [callLogRequestBuilder]=\"\n callLogHistoryConfiguration.callLogRequestBuilder\n \" [onItemClick]=\"callLogHistoryConfiguration.onItemClick || onItemClick\" [onBackClick]=\"\n callLogHistoryConfiguration.onBackClick || handlePageOnBackClick\n \" [listItemStyle]=\"callLogHistoryConfiguration.listItemStyle\"\n [datePattern]=\"callLogHistoryConfiguration.datePattern\" [dateSeparatorPattern]=\"\n callLogHistoryConfiguration.dateSeparatorPattern\n \" [callLogHistoryStyle]=\"\n callLogHistoryConfiguration.callLogHistoryStyle\n \" [onError]=\"callLogHistoryConfiguration.onError!\"></cometchat-call-log-history>\n </div>\n\n </div>\n </div>\n</div>\n\n\n<ng-template #listitem>\n <ng-container *ngTemplateOutlet=\"customProfileView\">\n </ng-container>\n</ng-template>", styles: ["*{box-sizing:border-box;margin:0;padding:0}.cc-call-log-details__header{display:flex;gap:10px;align-items:center;height:3%}.cc-call-log-details{height:98%}.cc-call-log-details__profile{display:flex;align-items:center;justify-content:center}.cc-call-log-details__default-profile{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.cc-call-log-details__section{margin:10px 3px 3px}.cc-call-log-details__option{margin-top:5px}.cc-call-log-details__calling-default-option{display:flex;align-items:center;justify-content:center;margin:10px}.cc-call-log-details__call-Status{display:flex;justify-content:space-between}.cc-call-log-details__call-Status__subTitle{display:flex;justify-content:space-between;margin:10px 0;padding-right:8px;width:100%}.cc-call-log-details__call-Status__tailview{color:gray}.cc-call-log-details__secondary-view__tail-view{display:flex;align-items:center;justify-content:center;gap:5px;color:RGBA(20,20,20,.68)}\n"] }]
304
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.CometChatThemeService }]; }, propDecorators: { call: [{
305
+ type: Input
306
+ }], group: [{
307
+ type: Input
308
+ }], user: [{
309
+ type: Input
310
+ }], title: [{
311
+ type: Input
312
+ }], onBackClick: [{
313
+ type: Input
314
+ }], hideProfile: [{
315
+ type: Input
316
+ }], subtitleView: [{
317
+ type: Input
318
+ }], customProfileView: [{
319
+ type: Input
320
+ }], backIconUrl: [{
321
+ type: Input
322
+ }], greaterThanIconURL: [{
323
+ type: Input
324
+ }], callButtonsConfiguration: [{
325
+ type: Input
326
+ }], callLogParticipantsConfiguration: [{
327
+ type: Input
328
+ }], callLogHistoryConfiguration: [{
329
+ type: Input
330
+ }], callLogRecordingsConfiguration: [{
331
+ type: Input
332
+ }], onError: [{
333
+ type: Input
334
+ }], datePattern: [{
335
+ type: Input
336
+ }], datePattern2: [{
337
+ type: Input
338
+ }], data: [{
339
+ type: Input
340
+ }], avatarStyle: [{
341
+ type: Input
342
+ }], callDetailsStyle: [{
343
+ type: Input
344
+ }], listItemStyle: [{
345
+ type: Input
346
+ }], dateStyle: [{
347
+ type: Input
348
+ }], callButtonsStyle: [{
349
+ type: Input
350
+ }] } });
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWNhbGwtbG9nLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9DYWxscy9Db21ldENoYXRDYWxsTG9nRGV0YWlscy9jb21ldGNoYXQtY2FsbC1sb2ctZGV0YWlscy9jb21ldGNoYXQtY2FsbC1sb2ctZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NhbGxzL0NvbWV0Q2hhdENhbGxMb2dEZXRhaWxzL2NvbWV0Y2hhdC1jYWxsLWxvZy1kZXRhaWxzL2NvbWV0Y2hhdC1jYWxsLWxvZy1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLHVCQUF1QixHQUt4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUVULGFBQWEsR0FDZCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGdDQUFnQyxFQUNoQywyQkFBMkIsRUFDM0IsOEJBQThCLEdBQy9CLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLFVBQVUsRUFDVixRQUFRLEVBSVIsWUFBWSxHQUViLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7O0FBUWxFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFzRzNDLFlBQ1UsR0FBc0Is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LENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQzlELGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1NBQ2hFLENBQUM7SUFDSixDQUFDOzs4SEFyVlUsZ0NBQWdDO2tIQUFoQyxnQ0FBZ0MseTFCQzdDN0MsdXlSQWtLYzs0RkRySEQsZ0NBQWdDO2tCQU41QyxTQUFTOytCQUNFLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTTs0SUFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBR0csZ0NBQWdDO3NCQUF4QyxLQUFLO2dCQUdHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFHRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFNRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBUZW1wbGF0ZVJlZixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IFwiQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50c1wiO1xuaW1wb3J0IHtcbiAgQXZhdGFyU3R5bGUsXG4gIERhdGVTdHlsZSxcbiAgSWNvblN0eWxlLFxuICBMaXN0SXRlbVN0eWxlLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50c1wiO1xuaW1wb3J0IHtcbiAgQ2FsbEJ1dHRvbnNTdHlsZSxcbiAgQ2FsbEJ1dHRvbnNDb25maWd1cmF0aW9uLFxuICBDYWxsTG9nRGV0YWlsc1N0eWxlLFxuICBDYWxsTG9nUGFydGljaXBhbnRzQ29uZmlndXJhdGlvbixcbiAgQ2FsbExvZ0hpc3RvcnlDb25maWd1cmF0aW9uLFxuICBDYWxsTG9nUmVjb3JkaW5nc0NvbmZpZ3VyYXRpb24sXG59IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZFwiO1xuaW1wb3J0IHtcbiAgZm9udEhlbHBlcixcbiAgbG9jYWxpemUsXG4gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLFxuICBDb21ldENoYXREZXRhaWxzT3B0aW9uLFxuICBDb21ldENoYXREZXRhaWxzVGVtcGxhdGUsXG4gIERhdGVQYXR0ZXJucyxcbiAgQ29tZXRDaGF0Q2FsbERldGFpbHNPcHRpb24sXG59IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0VGhlbWVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL0NvbWV0Q2hhdFRoZW1lLnNlcnZpY2VcIjtcbmltcG9ydCB7IENhbGxEZXRhaWxVdGlscyB9IGZyb20gXCIuLi8uLi8uLi9TaGFyZWQvVXRpbHMvQ2FsbERldGFpbFV0aWxzXCJcbmltcG9ydCB7IENhbGxMb2dVdGlscyB9IGZyb20gXCIuLi8uLi8uLi9TaGFyZWQvVXRpbHMvQ2FsbExvZ1V0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb21ldGNoYXQtY2FsbC1sb2ctZGV0YWlsc1wiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbWV0Y2hhdC1jYWxsLWxvZy1kZXRhaWxzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jb21ldGNoYXQtY2FsbC1sb2ctZGV0YWlscy5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdENhbGxMb2dEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjYWxsITogYW55O1xuICBASW5wdXQoKSBncm91cCE6IENvbWV0Q2hhdC5Hcm91cDtcbiAgQElucHV0KCkgdXNlciE6IENvbWV0Q2hhdC5Vc2VyO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gbG9jYWxpemUoXCJDQUxMX0RFVEFJTFNcIik7XG4gIEBJbnB1dCgpIG9uQmFja0NsaWNrITogKCkgPT4gdm9pZDtcbiBcbiAgQElucHV0KCkgaGlkZVByb2ZpbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc3VidGl0bGVWaWV3ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgY3VzdG9tUHJvZmlsZVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpIGJhY2tJY29uVXJsOiBzdHJpbmcgPSBcImFzc2V0cy9iYWNrYnV0dG9uLnN2Z1wiO1xuICBASW5wdXQoKSBncmVhdGVyVGhhbkljb25VUkw6IHN0cmluZyA9IFwiYXNzZXRzL2dyZWF0ZXJUaGFuSWNvbi5zdmdcIjtcblxuICBASW5wdXQoKSBjYWxsQnV0dG9uc0NvbmZpZ3VyYXRpb246IENhbGxCdXR0b25zQ29uZmlndXJhdGlvbiA9XG4gICAgbmV3IENhbGxCdXR0b25zQ29uZmlndXJhdGlvbih7fSk7XG5cbiAgQElucHV0KCkgY2FsbExvZ1BhcnRpY2lwYW50c0NvbmZpZ3VyYXRpb246IENhbGxMb2dQYXJ0aWNpcGFudHNDb25maWd1cmF0aW9uID1cbiAgICBuZXcgQ2FsbExvZ1BhcnRpY2lwYW50c0NvbmZpZ3VyYXRpb24oe30pO1xuXG4gIEBJbnB1dCgpIGNhbGxMb2dIaXN0b3J5Q29uZmlndXJhdGlvbjogQ2FsbExvZ0hpc3RvcnlDb25maWd1cmF0aW9uID1cbiAgICBuZXcgQ2FsbExvZ0hpc3RvcnlDb25maWd1cmF0aW9uKHt9KTtcblxuICBASW5wdXQoKSBjYWxsTG9nUmVjb3JkaW5nc0NvbmZpZ3VyYXRpb246IENhbGxMb2dSZWNvcmRpbmdzQ29uZmlndXJhdGlvbiA9XG4gICAgbmV3IENhbGxMb2dSZWNvcmRpbmdzQ29uZmlndXJhdGlvbih7fSk7XG5cbiAgQElucHV0KCkgb25FcnJvcjogKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4gdm9pZCkgfCBudWxsID0gKFxuICAgIGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uXG4gICkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgfTtcbiAgQElucHV0KCkgZGF0ZVBhdHRlcm46IERhdGVQYXR0ZXJucyA9IERhdGVQYXR0ZXJucy50aW1lO1xuICBASW5wdXQoKSBkYXRlUGF0dGVybjI6IERhdGVQYXR0ZXJucyA9IERhdGVQYXR0ZXJucy5EYXlEYXRlO1xuXG4gIEBJbnB1dCgpIGRhdGE6IENvbWV0Q2hhdERldGFpbHNUZW1wbGF0ZVtdID0gW107XG5cbiAgQElucHV0KCkgYXZhdGFyU3R5bGU6IEF2YXRhclN0eWxlID0ge1xuICAgIGJvcmRlclJhZGl1czogXCIxNnB4XCIsXG4gICAgd2lkdGg6IFwiMjhweFwiLFxuICAgIGhlaWdodDogXCIyOHB4XCIsXG4gICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgfTtcbiAgQElucHV0KCkgY2FsbERldGFpbHNTdHlsZTogQ2FsbExvZ0RldGFpbHNTdHlsZSA9IHtcbiAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgfTtcblxuICBASW5wdXQoKSBsaXN0SXRlbVN0eWxlOiBMaXN0SXRlbVN0eWxlID0ge307XG5cbiAgQElucHV0KCkgZGF0ZVN0eWxlOiBEYXRlU3R5bGUgPSB7fTtcbiAgQElucHV0KCkgY2FsbEJ1dHRvbnNTdHlsZTogQ2FsbEJ1dHRvbnNTdHlsZSA9IHtcbiAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgIGJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgYmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiLFxuICB9O1xuXG4gIGljb25TdHlsZTogSWNvblN0eWxlID0ge1xuICAgIGhlaWdodDogXCIxNnB4XCIsXG4gICAgd2lkdGg6IFwiMTZweFwiLFxuICAgIGljb25UaW50OiBcIlJHQkEoMjAsIDIwLCAyMCwgMC42OClcIixcbiAgfTtcblxuICBkZWZhdWx0VGVtcGxhdGU6IENvbWV0Q2hhdERldGFpbHNUZW1wbGF0ZVtdID0gW107XG5cbiAgcHVibGljIGF1dGhUb2tlbjogc3RyaW5nID0gXCJcIjtcbiAgcHVibGljIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHNob3dDYWxsTG9nRGV0YWlsT3B0aW9uTGlzdDogQm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBzaG93Q29tZXRDaGF0TWVzc2FnZXM6IEJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgc2hvd1BhcnRpY2lwYW50c0xpc3Q6IEJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNob3dDYWxsUmVjb3JkaW5nTGlzdDogQm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0NhbGxIaXN0b3J5OiBCb29sZWFuID0gZmFsc2U7XG5cbiAgZGl2aWRlclN0eWxlOiBhbnkgPSB7XG4gICAgYmFja2dyb3VuZDogXCJyZ2IoMjIyIDIyMiAyMjIgLyA0NiUpXCIsXG4gICAgaGVpZ2h0OiBcIjFweFwiLFxuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgfTtcblxuICBnZXRUaXRsZVN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0Rm9udDpcbiAgICAgICAgdGhpcy5jYWxsRGV0YWlsc1N0eWxlLnRpdGxlRm9udCB8fFxuICAgICAgICBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICAgIHRleHRDb2xvcjpcbiAgICAgICAgdGhpcy5jYWxsRGV0YWlsc1N0eWxlLnRpdGxlQ29sb3IgfHxcbiAgICAgICAgdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoKSxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyB1c2VyTGlzdGVuZXJJZCA9IFwidXNlcmxpc3RfXCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgcHVibGljIHJlcXVlc3RCdWlsZGVyOiBhbnk7XG4gIHB1YmxpYyBsaW1pdDogbnVtYmVyID0gNTtcblxuICBwdWJsaWMgb25JdGVtQ2xpY2s6IChjYWxsOiBhbnkpID0+IHZvaWQgPSAoY2FsbDogYW55KSA9PiB7XG4gICAgdGhpcy5jYWxsID0gY2FsbDtcbiAgICB0aGlzLnNob3dDYWxsTG9nRGV0YWlsT3B0aW9uTGlzdCA9IHRydWU7XG4gICAgdGhpcy5zaG93Q2FsbEhpc3RvcnkgPSBmYWxzZTtcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH07XG4gIHR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuICBjYXRlZ29yaWVzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IENvbWV0Q2hhdFRoZW1lU2VydmljZVxuICApIHt9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcInVzZXJcIl0gfHwgY2hhbmdlc1tcImdyb3VwXCJdKSB7XG4gICAgICB0aGlzLnNob3dDYWxsTG9nRGV0YWlsT3B0aW9uTGlzdCA9IHRydWU7XG4gICAgICB0aGlzLnNob3dQYXJ0aWNpcGFudHNMaXN0ID0gZmFsc2U7XG4gICAgICB0aGlzLnNob3dDYWxsUmVjb3JkaW5nTGlzdCA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93Q2FsbEhpc3RvcnkgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd0NvbWV0Q2hhdE1lc3NhZ2VzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlTGlzdGVuZXIoKSB7XG4gICAgQ29tZXRDaGF0LnJlbW92ZVVzZXJMaXN0ZW5lcih0aGlzLnVzZXJMaXN0ZW5lcklkKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIENvbWV0Q2hhdC5nZXRMb2dnZWRpblVzZXIoKVxuICAgICAgLnRoZW4oKHVzZXI6IENvbWV0Q2hhdC5Vc2VyIHwgbnVsbCkgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlZEluVXNlciA9IHVzZXI7XG4gICAgICAgIHRoaXMuYXV0aFRva2VuID0gdGhpcy5sb2dnZWRJblVzZXIhLmdldEF1dGhUb2tlbigpO1xuICAgICAgICB0aGlzLmdldFRlbXBsYXRlKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAodGhpcy5vbkVycm9yKSB7XG4gICAgICAgICAgdGhpcy5vbkVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnNldFRoZW1lU3R5bGUoKTtcbiAgfVxuXG4gIHRyYWNrQnlGbk9wdGlvbihpbmRleDogbnVtYmVyLCBvcHRpb246IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG9wdGlvbi5pZDtcbiAgfVxuICBnZXRUZW1wbGF0ZSgpIHtcbiAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YT8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5kZWZhdWx0VGVtcGxhdGUgPSB0aGlzLmRhdGE7XG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmYXVsdFRlbXBsYXRlID0gQ2FsbERldGFpbFV0aWxzLmdldERlZmF1bHRDYWxsVGVtcGxhdGUoXG4gICAgICAgIHRoaXMuY2FsbCxcbiAgICAgICAgdGhpcy5sb2dnZWRJblVzZXIhLFxuICAgICAgICB0aGlzLnRoZW1lU2VydmljZS50aGVtZVxuICAgICAgKTtcblxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGdldFRlbXBsYXRlT3B0aW9ucyA9ICh0ZW1wbGF0ZTogQ29tZXRDaGF0RGV0YWlsc1RlbXBsYXRlKSA9PiB7XG4gICAgaWYgKHRlbXBsYXRlLm9wdGlvbnMpIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZS5vcHRpb25zKHRoaXMudXNlciwgdGhpcy5ncm91cCwgdGVtcGxhdGUuaWQgYXMgc3RyaW5nKTtcbiAgICB9IGVsc2UgcmV0dXJuIFtdO1xuICB9O1xuXG4gIGdldEN1c3RvbU9wdGlvblZpZXcob3B0aW9uOiBDb21ldENoYXREZXRhaWxzT3B0aW9uKSB7XG4gICAgcmV0dXJuIG9wdGlvbj8uY3VzdG9tVmlldztcbiAgfVxuXG4gIGdldFNlY3Rpb25IZWFkZXJTdHlsZSh0ZW1wbGF0ZTogQ29tZXRDaGF0RGV0YWlsc1RlbXBsYXRlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHRGb250OiB0ZW1wbGF0ZS50aXRsZUZvbnQsXG4gICAgICB0ZXh0Q29sb3I6IHRlbXBsYXRlLnRpdGxlQ29sb3IsXG4gICAgfTtcbiAgfVxuXG4gIG9uT3B0aW9uQ2xpY2sgPSAob3B0aW9uOiBDb21ldENoYXRDYWxsRGV0YWlsc09wdGlvbikgPT4ge1xuICAgIGlmIChvcHRpb24/Lm9uQ2xpY2spIHtcbiAgICAgIG9wdGlvbi5vbkNsaWNrKHRoaXMuY2FsbCEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKG9wdGlvbi5pZCkge1xuICAgICAgICBjYXNlIFwicGFydGljaXBhbnRzXCI6XG4gICAgICAgICAgdGhpcy5zaG93Q2FsbExvZ0RldGFpbE9wdGlvbkxpc3QgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNob3dQYXJ0aWNpcGFudHNMaXN0ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJlY29yZGluZ3NcIjpcbiAgICAgICAgICB0aGlzLnNob3dDYWxsTG9nRGV0YWlsT3B0aW9uTGlzdCA9IGZhbHNlO1xuXG4gICAgICAgICAgdGhpcy5zaG93Q2FsbFJlY29yZGluZ0xpc3QgPSB0cnVlO1xuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJjYWxsSGlzdG9yeVwiOlxuICAgICAgICAgIHRoaXMuc2hvd0NhbGxMb2dEZXRhaWxPcHRpb25MaXN0ID0gZmFsc2U7XG5cbiAgICAgICAgICB0aGlzLnNob3dDYWxsSGlzdG9yeSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgZ2V0QnV0dG9uU3R5bGUob3B0aW9uOiBDb21ldENoYXREZXRhaWxzT3B0aW9uKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIjBcIixcbiAgICAgIGJ1dHRvblRleHRGb250OiBvcHRpb24/LnRpdGxlRm9udCxcbiAgICAgIGJ1dHRvblRleHRDb2xvcjogb3B0aW9uPy50aXRsZUNvbG9yLFxuICAgICAgYmFja2dyb3VuZDogb3B0aW9uPy5iYWNrZ3JvdW5kQ29sb3IgfHwgXCJ0cmFuc3BhcmVudFwiLFxuICAgIH07XG4gIH1cblxuXG4gIGhhbmRsZVBhZ2VPbkJhY2tDbGljayA9ICgpID0+IHtcbiAgICB0aGlzLnNob3dDYWxsSGlzdG9yeSA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0NhbGxSZWNvcmRpbmdMaXN0ID0gZmFsc2U7XG4gICAgdGhpcy5zaG93UGFydGljaXBhbnRzTGlzdCA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0NvbWV0Q2hhdE1lc3NhZ2VzID0gZmFsc2U7XG4gICAgdGhpcy5zaG93Q2FsbExvZ0RldGFpbE9wdGlvbkxpc3QgPSB0cnVlO1xuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfTtcblxuICBzdWJ0aXRsZVN0eWxlKHRlbXBsYXRlOiBDb21ldENoYXREZXRhaWxzVGVtcGxhdGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dEZvbnQ6IHRlbXBsYXRlLnRpdGxlRm9udCxcbiAgICAgIHRleHRDb2xvcjogdGVtcGxhdGUudGl0bGVDb2xvcixcbiAgICB9O1xuICB9XG4gIHNob3dEYXRhU2VjdGlvblN0eWxlKHRlbXBsYXRlOiBDb21ldENoYXREZXRhaWxzVGVtcGxhdGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dEZvbnQ6IHRlbXBsYXRlLnRpdGxlRm9udCxcbiAgICAgIHRleHRDb2xvcjogdGVtcGxhdGUudGl0bGVDb2xvcixcbiAgICB9O1xuICB9XG5cbiAgc2V0VGhlbWVTdHlsZSgpIHtcbiAgICB0aGlzLnNldERldGFpbHNTdHlsZSgpO1xuICAgIHRoaXMuc2V0QXZhdGFyU3R5bGUoKTtcbiAgICB0aGlzLnNldExpc3RJdGVtU3R5bGUoKTtcbiAgICB0aGlzLnNldERhdGVTdHlsZSgpO1xuICB9XG4gIHNldExpc3RJdGVtU3R5bGUoKSB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogTGlzdEl0ZW1TdHlsZSA9IG5ldyBMaXN0SXRlbVN0eWxlKHtcbiAgICAgIGhlaWdodDogXCI0NXB4XCIsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDUwKCkgfHxcbiAgICAgICAgdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBhY3RpdmVCYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiNXB4XCIsXG4gICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTIpLFxuICAgICAgdGl0bGVDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoKSxcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBzZXBhcmF0b3JDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQyMDAoKSxcbiAgICAgIGhvdmVyQmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKSxcbiAgICB9KTtcbiAgICB0aGlzLmxpc3RJdGVtU3R5bGUgPSB7IC4uLmRlZmF1bHRTdHlsZSwgLi4udGhpcy5saXN0SXRlbVN0eWxlIH07XG4gIH1cbiAgc2V0QXZhdGFyU3R5bGUoKSB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogQXZhdGFyU3R5bGUgPSBuZXcgQXZhdGFyU3R5bGUoe1xuICAgICAgYm9yZGVyUmFkaXVzOiBcIjI0cHhcIixcbiAgICAgIHdpZHRoOiBcIjQ2cHhcIixcbiAgICAgIGhlaWdodDogXCI0NnB4XCIsXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDcwMCgpLFxuICAgICAgbmFtZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ5MDAoKSxcbiAgICAgIGJhY2tncm91bmRTaXplOiBcImNvdmVyXCIsXG4gICAgICBuYW1lVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuXG4gICAgICBvdXRlclZpZXdCb3JkZXJTcGFjaW5nOiBcIlwiLFxuICAgIH0pO1xuICAgIHRoaXMuYXZhdGFyU3R5bGUgPSB7IC4uLmRlZmF1bHRTdHlsZSwgLi4udGhpcy5hdmF0YXJTdHlsZSB9O1xuICB9XG5cbiAgc2V0RGV0YWlsc1N0eWxlKCkge1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IENhbGxMb2dEZXRhaWxzU3R5bGUgPSBuZXcgQ2FsbExvZ0RldGFpbHNTdHlsZSh7XG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICB0aXRsZUNvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudCgpLFxuICAgICAgYmFja0ljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiXCIsXG4gICAgICBuYW1lVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTIpLFxuICAgIH0pO1xuICAgIHRoaXMuY2FsbERldGFpbHNTdHlsZSA9IHsgLi4uZGVmYXVsdFN0eWxlLCAuLi50aGlzLmNhbGxEZXRhaWxzU3R5bGUgfTtcbiAgfVxuXG4gIHNldERhdGVTdHlsZSgpIHtcbiAgICBsZXQgZGVmYXVsdFN0eWxlOiBEYXRlU3R5bGUgPSBuZXcgRGF0ZVN0eWxlKHtcbiAgICAgIHRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuY2FwdGlvbjIpLFxuICAgICAgdGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgYmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pO1xuICAgIHRoaXMuZGF0ZVN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMuZGF0ZVN0eWxlIH07XG4gIH1cbiAgd3JhcHBlclN0eWxlID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogdGhpcy5jYWxsRGV0YWlsc1N0eWxlLndpZHRoLFxuICAgICAgaGVpZ2h0OiB0aGlzLmNhbGxEZXRhaWxzU3R5bGUuaGVpZ2h0LFxuICAgICAgYm9yZGVyOiB0aGlzLmNhbGxEZXRhaWxzU3R5bGUuYm9yZGVyLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLmNhbGxEZXRhaWxzU3R5bGUuYm9yZGVyUmFkaXVzLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy5jYWxsRGV0YWlsc1N0eWxlLmJhY2tncm91bmQsXG4gICAgfTtcbiAgfTtcblxuICBnZXRUYWlsVmlldyh0b3RhbFNlY29uZHM6IG51bWJlcikge1xuICAgIHJldHVybiBDYWxsTG9nVXRpbHMuY29udmVydE1pbnV0ZXNUb0hvdXJzTWludXRlc1NlY29uZHModG90YWxTZWNvbmRzKTtcbiAgfVxuXG4gIGdldFN1YnRpdGxlKGNhbGw6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIENhbGxMb2dVdGlscy5nZXRDYWxsU3RhdHVzV2l0aFR5cGUoY2FsbCwgdGhpcy5sb2dnZWRJblVzZXIhKTtcbiAgfVxuXG4gIGJhY2tCdXR0b25TdHlsZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVpZ2h0OiBcIjI0cHhcIixcbiAgICAgIHdpZHRoOiBcIjI0cHhcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiMFwiLFxuICAgICAgYmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgYnV0dG9uSWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgIH07XG4gIH07XG4gIGdldExpc3RJdGVtU3R5bGUob3B0aW9uOiBDb21ldENoYXREZXRhaWxzT3B0aW9uKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICBvcHRpb24/LmJhY2tncm91bmRDb2xvciB8fFxuICAgICAgICB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgICB0aXRsZUZvbnQ6XG4gICAgICAgIG9wdGlvbj8udGl0bGVGb250IHx8XG4gICAgICAgIGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTIpLFxuXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgc2VwYXJhdG9yQ29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MjAwKCksXG4gICAgICBob3ZlckJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCksXG4gICAgfTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNjLWNhbGwtbG9nLWRldGFpbHNfX3dyYXBwZXJcIiAqbmdJZj1cInVzZXIgfHwgZ3JvdXBcIiBbbmdTdHlsZV09XCJ3cmFwcGVyU3R5bGUoKVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJjYy1jYWxsLWxvZy1kZXRhaWxzX19oZWFkZXJcIlxuICAgICpuZ0lmPVwib25CYWNrQ2xpY2sgJiYgIShzaG93UGFydGljaXBhbnRzTGlzdCB8fCBzaG93Q2FsbFJlY29yZGluZ0xpc3QgfHwgc2hvd0NhbGxIaXN0b3J5KVwiPlxuICAgIDxjb21ldGNoYXQtYnV0dG9uIFtpY29uVVJMXT1cImJhY2tJY29uVXJsXCIgY2xhc3M9XCJjYy1jYWxsLWxvZy1kZXRhaWxzX19jbG9zZS1idXR0b25cIiBbYnV0dG9uU3R5bGVdPVwiYmFja0J1dHRvblN0eWxlKClcIlxuICAgICAgKGNjLWJ1dHRvbi1jbGlja2VkKT1cIm9uQmFja0NsaWNrKClcIj48L2NvbWV0Y2hhdC1idXR0b24+XG4gICAgPGNvbWV0Y2hhdC1sYWJlbCBbdGV4dF09XCJ0aXRsZVwiIFtsYWJlbFN0eWxlXT1cImdldFRpdGxlU3R5bGUoKVwiPjwvY29tZXRjaGF0LWxhYmVsPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY2MtY2FsbC1sb2ctZGV0YWlsc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjYy1jYWxsLWxvZy1kZXRhaWxzX19wcm9maWxlXCJcbiAgICAgICpuZ0lmPVwiIWhpZGVQcm9maWxlICYmIHNob3dDYWxsTG9nRGV0YWlsT3B0aW9uTGlzdCAmJiAhKHNob3dQYXJ0aWNpcGFudHNMaXN0IHx8IHNob3dDYWxsUmVjb3JkaW5nTGlzdCB8fCBzaG93Q2FsbEhpc3RvcnkpXCI+XG5cblxuICAgICAgPGRpdiBjbGFzcz1cIiBjYy1jYWxsLWxvZy1kZXRhaWxzX19kZWZhdWx0LXByb2ZpbGVcIiAqbmdJZj1cIiFjdXN0b21Qcm9maWxlVmlldztlbHNlIGxpc3RpdGVtXCI+XG4gICAgICAgIDxjb21ldGNoYXQtYXZhdGFyIFtuYW1lXT1cInVzZXI/LmdldE5hbWUoKSA/PyBncm91cD8uZ2V0TmFtZSgpXCIgW2F2YXRhclN0eWxlXT1cImF2YXRhclN0eWxlXCJcbiAgICAgICAgICBbaW1hZ2VdPVwidXNlcj8uZ2V0QXZhdGFyKCkgPz8gZ3JvdXA/LmdldEljb24oKVwiPlxuICAgICAgICA8L2NvbWV0Y2hhdC1hdmF0YXI+XG5cbiAgICAgICAgPGNvbWV0Y2hhdC1sYWJlbCBbdGV4dF09XCJ1c2VyPy5nZXROYW1lKCkgPz8gdGhpcy5ncm91cD8uZ2V0TmFtZSgpXCI+PC9jb21ldGNoYXQtbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2MtY2FsbC1sb2ctZGV0YWlsc19fc2VjdGlvbi1saXN0XCJcbiAgICAgICpuZ0lmPVwic2hvd0NhbGxMb2dEZXRhaWxPcHRpb25MaXN0ICYmIGRlZmF1bHRUZW1wbGF0ZSAmJiBkZWZhdWx0VGVtcGxhdGUubGVuZ3RoID4gMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNjLWNhbGwtbG9nLWRldGFpbHNfX3NlY3Rpb25cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkZWZhdWx0VGVtcGxhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNjLWNhbGwtbG9nLWRldGFpbHNfX3NlY3Rpb24tc2VwYXJhdG9yXCIgKm5nSWY9XCJpdGVtLnRpdGxlXCI+XG4gICAgICAgICAgPGNvbWV0Y2hhdC1sYWJlbCBbdGV4dF09XCJpdGVtLnRpdGxlXCI+PC9jb21ldGNoYXQtbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtY2FsbC1sb2ctZGV0YWlsc19fb3B0aW9ucy13cmFwcGVyXCIgKm5nSWY9XCJnZXRUZW1wbGF0ZU9wdGlvbnMoaXRlbSlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtY2FsbC1sb2ctZGV0YWlsc19fb3B0aW9uc1wiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZ2V0VGVtcGxhdGVPcHRpb25zKGl0ZW0pOyAgdHJhY2tCeTogdHJhY2tCeUZuT3B0aW9uIFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWNhbGwtbG9nLWRldGFpbHNfX29wdGlvblwiICpuZ0lmPVwiIWdldEN1c3RvbU9wdGlvblZpZXcob3B0aW9uKTtlbHNlIGN1c3RvbVZpZXdcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWNhbGwtbG9nLWRldGFpbHNfX29wdGlvbi1lbGVtZW50XCI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtY2FsbC1sb2ctZGV0YWlsc19fY2FsbGluZy1kZWZhdWx0LW9wdGlvblwiICpuZ0lmPVwib3B0aW9uLmlkPT0nY2FsbHMnXCI+XG5cbiAgICAgICAgICAgICAgICAgIDxjb21ldGNoYXQtY2FsbC1idXR0b25zIFt1c2VyXT1cInVzZXJcIiBbZ3JvdXBdPVwiZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbEJ1dHRvbnNTdHlsZV09XCJjYWxsQnV0dG9uc0NvbmZpZ3VyYXRpb24uY2FsbEJ1dHRvbnNTdHlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtvblZpZGVvQ2FsbENsaWNrXT1cImNhbGxCdXR0b25zQ29uZmlndXJhdGlvbi5vblZpZGVvQ2FsbENsaWNrXCJcbiAgICAgICAgICAgICAgICAgICAgW29uVm9pY2VDYWxsQ2xpY2tdPVwiY2FsbEJ1dHRvbnNDb25maWd1cmF0aW9uLm9uVm9pY2VDYWxsQ2xpY2tcIlxuICAgICAgICAgICAgICAgICAgICBbdmlkZW9DYWxsSWNvblVSTF09XCJjYWxsQnV0dG9uc0NvbmZpZ3VyYXRpb24udmlkZW9DYWxsSWNvblVSTFwiXG4gICAgICAgICAgICAgICAgICAgIFt2b2ljZUNhbGxJY29uVVJMXT1cImNhbGxCdXR0b25zQ29uZmlndXJhdGlvbi52b2ljZUNhbGxJY29uVVJMXCI+PC9jb21ldGNoYXQtY2FsbC1idXR0b25zPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxjb21ldGNoYXQtbGlzdC1pdGVtICpuZ0lmPVwib3B0aW9uLmlkPT09J2NhbGxTdGF0dXMnXCIgW2xpc3RJdGVtU3R5bGVdPVwiZ2V0TGlzdEl0ZW1TdHlsZShvcHRpb24pXCJcbiAgICAgICAgICAgICAgICAgIFtoaWRlU2VwYXJhdG9yXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1jYWxsLWxvZy1kZXRhaWxzX19jYWxsLVN0YXR1c1wiIHNsb3Q9XCJzdWJ0aXRsZVZpZXdcIiA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc3VidGl0bGVWaWV3OyBlbHNlIHN1YnRpdGxlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiA8Y29tZXRjaGF0LWRhdGUgW2RhdGVTdHlsZV09XCJkYXRlU3R5bGVcIiBbdGltZXN0YW1wXT1cImNhbGw/LmdldEluaXRpYXRlZEF0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCJkYXRlUGF0dGVybjJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvY29tZXRjaGF0LWRhdGU+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYy1jYWxsLWxvZy1kZXRhaWxzX19jYWxsLVN0YXR1c19fc3ViVGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbWV0Y2hhdC1kYXRlIFtkYXRlU3R5bGVdPVwiZGF0ZVN0eWxlXCIgW3RpbWVzdGFtcF09XCJjYWxsPy5nZXRJbml0aWF0ZWRBdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCJkYXRlUGF0dGVyblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbWV0Y2hhdC1kYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29tZXRjaGF0LWxhYmVsIFt0ZXh0XT1cImdldFN1YnRpdGxlKGNhbGwpXCIgW2xhYmVsU3R5bGVdPVwic3VidGl0bGVTdHlsZShvcHRpb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29tZXRjaGF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtY2FsbC1sb2ctZGV0YWlsc19fY2FsbC1TdGF0dXNfX3RhaWx2aWV3XCI+IHt7IGdldFRhaWxWaWV3KGNhbGw/LmdldFRvdGFsRHVyYXRpb25Jbk1pbnV0ZXMoKSEpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VidGl0bGVWaWV3O2NvbnRleHQ6eyAkaW1wbGljaXQ6IHVzZXIgPz8gZ3JvdXAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgICAgIDwvY29tZXRjaGF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICA8Y29tZXRjaGF0LWxpc3QtaXRlbSAqbmdJZj1cIm9wdGlvbi5pZCE9PSdjYWxscycgJiYgb3B0aW9uLmlkIT09J2NhbGxTdGF0dXMnIFwiXG4gICAgICAgICAgICAgICAgICAoY2MtbGlzdGl0ZW0tY2xpY2tlZCk9XCJvbk9wdGlvbkNsaWNrKG9wdGlvbilcIiBbbGlzdEl0ZW1TdHlsZV09XCJnZXRMaXN0SXRlbVN0eWxlKG9wdGlvbilcIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIm9wdGlvbi50aXRsZVwiIFtoaWRlU2VwYXJhdG9yXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc2xvdD1cInRhaWxWaWV3XCIgY2xhc3M9XCJjYy1jYWxsLWxvZy1kZXRhaWxzX19zZWNvbmRhcnktdmlld19fdGFpbC12aWV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tvcHRpb24udGFpbH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y29tZXRjaGF0LWljb24gW2ljb25TdHlsZV09XCJpY29uU3R5bGVcIiBbVVJMXT1cImdyZWF0ZXJUaGFuSWNvblVSTFwiPjwvY29tZXRjaGF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgPC9jb21ldGNoYXQtbGlzdC1pdGVtPlxuXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8Y29tZXRjaGF0LWRpdmlkZXIgW2RpdmlkZXJTdHlsZV09XCJkaXZpZGVyU3R5bGVcIj48L2NvbWV0Y2hhdC1kaXZpZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2N1c3RvbVZpZXc+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnZXRDdXN0b21PcHRpb25WaWV3KG9wdGlvbilcIj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG5cblxuICAgIDxkaXYgKm5nSWY9XCJzaG93UGFydGljaXBhbnRzTGlzdCB8fCBzaG93Q2FsbFJlY29yZGluZ0xpc3QgfHwgc2hvd0NhbGxIaXN0b3J5XCIgc3R5bGU9XCIgaGVpZ2h0OiAxMDAlO1wiPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd1BhcnRpY2lwYW50c0xpc3RcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cbiAgICAgICAgPGNvbWV0Y2hhdC1jYWxsLWxvZy1wYXJ0aWNpcGFudHMgW2NhbGxdPVwiY2FsbFwiXG4gICAgICAgICAgW29uQmFja0NsaWNrXT1cImNhbGxMb2dQYXJ0aWNpcGFudHNDb25maWd1cmF0aW9uLm9uQmFja0NsaWNrIHx8IGhhbmRsZVBhZ2VPbkJhY2tDbGlja1wiXG4gICAgICAgICAgW2JhY2tJY29uVXJsXT1cImNhbGxMb2dQYXJ0aWNpcGFudHNDb25maWd1cmF0aW9uLmJhY2tJY29uVXJsIHx8IGJhY2tJY29uVXJsXCJcbiAgICAgICAgICBbYXZhdGFyU3R5bGVdPVwiY2FsbExvZ1BhcnRpY2lwYW50c0NvbmZpZ3VyYXRpb24uYXZhdGFyU3R5bGVcIlxuICAgICAgICAgIFtvbkl0ZW1DbGlja109XCJjYWxsTG9nUGFydGljaXBhbnRzQ29uZmlndXJhdGlvbi5vbkl0ZW1DbGljayFcIlxuICAgICAgICAgIFtkYXRlUGF0dGVybl09XCJjYWxsTG9nUGFydGljaXBhbnRzQ29uZmlndXJhdGlvbi5kYXRlUGF0dGVyblwiXG4gICAgICAgICAgW3N1YnRpdGxlVmlld109XCJjYWxsTG9nUGFydGljaXBhbnRzQ29uZmlndXJhdGlvbi5zdWJ0aXRsZVZpZXdcIlxuICAgICAgICAgIFtsaXN0SXRlbVZpZXddPVwiY2FsbExvZ1BhcnRpY2lwYW50c0NvbmZpZ3VyYXRpb24ubGlzdEl0ZW1WaWV3XCJcblxuICAgICAgICAgIFtsaXN0SXRlbVN0eWxlXT1cImNhbGxMb2dQYXJ0aWNpcGFudHNDb25maWd1cmF0aW9uLmxpc3RJdGVtU3R5bGVcIiBbY2FsbExvZ1BhcnRpY2lwYW50c1N0eWxlXT1cIlxuICAgICAgICBjYWxsTG9nUGFydGljaXBhbnRzQ29uZmlndXJhdGlvbi5jYWxsTG9nUGFydGljaXBhbnRzU3R5bGVcIlxuICAgICAgIFxuICAgICAgICAgIFt0YWlsVmlld109XCJjYWxsTG9nUGFydGljaXBhbnRzQ29uZmlndXJhdGlvbi50YWlsVmlld1wiPjwvY29tZXRjaGF0LWNhbGwtbG9nLXBhcnRpY2lwYW50cz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dDYWxsUmVjb3JkaW5nTGlzdFwiIHN0eWxlPVwiaGVpZ2h0OjEwMCU7XCI+XG4gICAgICAgIDxjb21ldGNoYXQtY2FsbC1sb2ctcmVjb3JkaW5ncyBbY2FsbF09XCJjYWxsXCJcbiAgICAgICAgICBbYmFja0ljb25VcmxdPVwiY2FsbExvZ1JlY29yZGluZ3NDb25maWd1cmF0aW9uLmJhY2tJY29uVXJsIHx8IGJhY2tJY29uVXJsXCIgW29uQmFja0NsaWNrXT1cIlxuICAgICAgICBjYWxsTG9nUmVjb3JkaW5nc0NvbmZpZ3VyYXRpb24ub25CYWNrQ2xpY2sgfHwgaGFuZGxlUGFnZU9uQmFja0NsaWNrXG4gICAgICBcIiBbb25JdGVtQ2xpY2tdPVwiY2FsbExvZ1JlY29yZGluZ3NDb25maWd1cmF0aW9uLm9uSXRlbUNsaWNrIVwiXG4gICAgICAgICAgW2RhdGVQYXR0ZXJuXT1cImNhbGxMb2dSZWNvcmRpbmdzQ29uZmlndXJhdGlvbi5kYXRlUGF0dGVybiFcIlxuICAgICAgICAgIFtsaXN0SXRlbVN0eWxlXT1cImNhbGxMb2dSZWNvcmRpbmdzQ29uZmlndXJhdGlvbi5saXN0SXRlbVN0eWxlXCIgY2FsbExvZ1JlY29yZGluZ3NTdHlsZT1cIlxuICAgICAgICBjYWxsTG9nUmVjb3JkaW5nc0NvbmZpZ3VyYXRpb24uY2FsbExvZ1JlY29yZGluZ3NTdHlsZVxuICAgICAgICBjYWxsTG9nUmVjb3JkaW5nc0NvbmZpZ3VyYXRpb24uaGlkZURvd25sb2FkQnV0dG9uIHx8IGZhbHNlXG4gICAgICBcIiBbb25Eb3dubG9hZENsaWNrXT1cImNhbGxMb2dSZWNvcmRpbmdzQ29uZmlndXJhdGlvbi5vbkRvd25sb2FkQ2xpY2shXCJcbiAgICAgICAgICBbbGlzdEl0ZW1WaWV3XT1cImNhbGxMb2dSZWNvcmRpbmdzQ29uZmlndXJhdGlvbi5saXN0SXRlbVZpZXdcIlxuICAgICAgICAgIFtzdWJ0aXRsZVZpZXddPVwiY2FsbExvZ1JlY29yZGluZ3NDb25maWd1cmF0aW9uLnN1YnRpdGxlVmlld1wiXG4gICAgICAgICAgW3RhaWxWaWV3XT1cImNhbGxMb2dSZWNvcmRpbmdzQ29uZmlndXJhdGlvbi50YWlsVmlld1wiPjwvY29tZXRjaGF0LWNhbGwtbG9nLXJlY29yZGluZ3M+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q2FsbEhpc3RvcnlcIiBzdHlsZT1cImhlaWdodDogMTAwJTsgXCI+XG4gICAgICAgIDxjb21ldGNoYXQtY2FsbC1sb2ctaGlzdG9yeSBbY2FsbF09XCJjYWxsXCIgW3VzZXJdPVwidXNlclwiIFtncm91cF09XCJncm91cFwiIFtvbkJhY2tDbGlja109XCJoYW5kbGVQYWdlT25CYWNrQ2xpY2tcIlxuICAgICAgICAgIFtiYWNrSWNvblVybF09XCJjYWxsTG9nSGlzdG9yeUNvbmZpZ3VyYXRpb24uYmFja0ljb25VcmwgfHwgYmFja0ljb25VcmxcIlxuICAgICAgICAgIFtlbXB0eVN0YXRlVmlld109XCJjYWxsTG9nSGlzdG9yeUNvbmZpZ3VyYXRpb24uZW1wdHlTdGF0ZVZpZXdcIlxuICAgICAgICAgIFtlcnJvclN0YXRlVmlld109XCJjYWxsTG9nSGlzdG9yeUNvbmZpZ3VyYXRpb24uZXJyb3JTdGF0ZVZpZXdcIlxuICAgICAgICAgIFtsb2FkaW5nSWNvblVSTF09XCJjYWxsTG9nSGlzdG9yeUNvbmZpZ3VyYXRpb24ubG9hZGluZ0ljb25VUkxcIlxuICAgICAgICAgIFtsb2FkaW5nU3RhdGVWaWV3XT1cImNhbGxMb2dIaXN0b3J5Q29uZmlndXJhdGlvbi5sb2FkaW5nU3RhdGVWaWV3XCJcbiAgICAgICAgICBbdGFpbFZpZXddPVwiY2FsbExvZ0hpc3RvcnlDb25maWd1cmF0aW9uLnRhaWxWaWV3XCIgW2NhbGxMb2dSZXF1ZXN0QnVpbGRlcl09XCJcbiAgICAgICAgICAgIGNhbGxMb2dIaXN0b3J5Q29uZmlndXJhdGlvbi5jYWxsTG9nUmVxdWVzdEJ1aWxkZXJcbiAgICAgICAgICBcIiBbb25JdGVtQ2xpY2tdPVwiY2FsbExvZ0hpc3RvcnlDb25maWd1cmF0aW9uLm9uSXRlbUNsaWNrIHx8IG9uSXRlbUNsaWNrXCIgW29uQmFja0NsaWNrXT1cIlxuICAgICAgICAgICAgY2FsbExvZ0hpc3RvcnlDb25maWd1cmF0aW9uLm9uQmFja0NsaWNrIHx8IGhhbmRsZVBhZ2VPbkJhY2tDbGlja1xuICAgICAgICAgIFwiIFtsaXN0SXRlbVN0eWxlXT1cImNhbGxMb2dIaXN0b3J5Q29uZmlndXJhdGlvbi5saXN0SXRlbVN0eWxlXCJcbiAgICAgICAgICBbZGF0ZVBhdHRlcm5dPVwiY2FsbExvZ0hpc3RvcnlDb25maWd1cmF0aW9uLmRhdGVQYXR0ZXJuXCIgW2RhdGVTZXBhcmF0b3JQYXR0ZXJuXT1cIlxuICAgICAgICAgICAgY2FsbExvZ0hpc3RvcnlDb25maWd1cmF0aW9uLmRhdGVTZXBhcmF0b3JQYXR0ZXJuXG4gICAgICAgICAgXCIgW2NhbGxMb2dIaXN0b3J5U3R5bGVdPVwiXG4gICAgICAgICAgICBjYWxsTG9nSGlzdG9yeUNvbmZpZ3VyYXRpb24uY2FsbExvZ0hpc3RvcnlTdHlsZVxuICAgICAgICAgIFwiIFtvbkVycm9yXT1cImNhbGxMb2dIaXN0b3J5Q29uZmlndXJhdGlvbi5vbkVycm9yIVwiPjwvY29tZXRjaGF0LWNhbGwtbG9nLWhpc3Rvcnk+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cbjxuZy10ZW1wbGF0ZSAjbGlzdGl0ZW0+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21Qcm9maWxlVmlld1wiPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -0,0 +1,47 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { CometChatCallLogDetailsComponent } from "./cometchat-call-log-details/cometchat-call-log-details.component";
4
+ import { CometChatCallButtons } from "../CometChatCallButtons/cometchat-call-buttons.module";
5
+ import { CometChatList } from "../../CometChatList/cometchat-list.module";
6
+ import { CometChatCallLogParticipants } from "../CometChatCallLogParticipants/cometchat-call-log-participants.module";
7
+ import { CometChatCallLogRecordings } from "../CometChatCallLogRecordings/cometchat-call-log-recordings.module";
8
+ import { CometChatCallLogs } from "../CometChatCallLogs/cometchat-call-logs.module";
9
+ import { CometChatCallLogHistory } from "../CometChatCallLogHistory/cometchat-call-log-history.module";
10
+ import * as i0 from "@angular/core";
11
+ export class CometChatCallLogDetails {
12
+ }
13
+ CometChatCallLogDetails.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatCallLogDetails, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ CometChatCallLogDetails.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatCallLogDetails, declarations: [CometChatCallLogDetailsComponent], imports: [CommonModule,
15
+ CometChatCallButtons,
16
+ CometChatList,
17
+ CometChatCallLogParticipants,
18
+ CometChatCallLogRecordings,
19
+ CometChatCallLogHistory,
20
+ CometChatCallLogs], exports: [CometChatCallLogDetailsComponent] });
21
+ CometChatCallLogDetails.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatCallLogDetails, imports: [[
22
+ CommonModule,
23
+ CometChatCallButtons,
24
+ CometChatList,
25
+ CometChatCallLogParticipants,
26
+ CometChatCallLogRecordings,
27
+ CometChatCallLogHistory,
28
+ CometChatCallLogs,
29
+ ]] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatCallLogDetails, decorators: [{
31
+ type: NgModule,
32
+ args: [{
33
+ declarations: [CometChatCallLogDetailsComponent],
34
+ imports: [
35
+ CommonModule,
36
+ CometChatCallButtons,
37
+ CometChatList,
38
+ CometChatCallLogParticipants,
39
+ CometChatCallLogRecordings,
40
+ CometChatCallLogHistory,
41
+ CometChatCallLogs,
42
+ ],
43
+ exports: [CometChatCallLogDetailsComponent],
44
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
45
+ }]
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWNhbGwtbG9nLWRldGFpbHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9DYWxscy9Db21ldENoYXRDYWxsTG9nRGV0YWlscy9jb21ldGNoYXQtY2FsbC1sb2ctZGV0YWlscy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDckgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3RILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOztBQWdCdkcsTUFBTSxPQUFPLHVCQUF1Qjs7cUhBQXZCLHVCQUF1QjtzSEFBdkIsdUJBQXVCLGlCQWJuQixnQ0FBZ0MsYUFFN0MsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixhQUFhO1FBQ2IsNEJBQTRCO1FBQzVCLDBCQUEwQjtRQUMxQix1QkFBdUI7UUFDdkIsaUJBQWlCLGFBRVQsZ0NBQWdDO3NIQUcvQix1QkFBdUIsWUFaekI7WUFDUCxZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYiw0QkFBNEI7WUFDNUIsMEJBQTBCO1lBQzFCLHVCQUF1QjtZQUN2QixpQkFBaUI7U0FDbEI7NEZBSVUsdUJBQXVCO2tCQWRuQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdDQUFnQyxDQUFDO29CQUNoRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsNEJBQTRCO3dCQUM1QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0Q2FsbExvZ0RldGFpbHNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21ldGNoYXQtY2FsbC1sb2ctZGV0YWlscy9jb21ldGNoYXQtY2FsbC1sb2ctZGV0YWlscy5jb21wb25lbnRcIjtcbmltcG9ydCB7IENvbWV0Q2hhdENhbGxCdXR0b25zIH0gZnJvbSBcIi4uL0NvbWV0Q2hhdENhbGxCdXR0b25zL2NvbWV0Y2hhdC1jYWxsLWJ1dHRvbnMubW9kdWxlXCI7XG5pbXBvcnQgeyBDb21ldENoYXRMaXN0IH0gZnJvbSBcIi4uLy4uL0NvbWV0Q2hhdExpc3QvY29tZXRjaGF0LWxpc3QubW9kdWxlXCI7XG5pbXBvcnQgeyBDb21ldENoYXRDYWxsTG9nUGFydGljaXBhbnRzIH0gZnJvbSBcIi4uL0NvbWV0Q2hhdENhbGxMb2dQYXJ0aWNpcGFudHMvY29tZXRjaGF0LWNhbGwtbG9nLXBhcnRpY2lwYW50cy5tb2R1bGVcIjtcbmltcG9ydCB7IENvbWV0Q2hhdENhbGxMb2dSZWNvcmRpbmdzIH0gZnJvbSBcIi4uL0NvbWV0Q2hhdENhbGxMb2dSZWNvcmRpbmdzL2NvbWV0Y2hhdC1jYWxsLWxvZy1yZWNvcmRpbmdzLm1vZHVsZVwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0Q2FsbExvZ3MgfSBmcm9tIFwiLi4vQ29tZXRDaGF0Q2FsbExvZ3MvY29tZXRjaGF0LWNhbGwtbG9ncy5tb2R1bGVcIjtcbmltcG9ydCB7IENvbWV0Q2hhdENhbGxMb2dIaXN0b3J5IH0gZnJvbSBcIi4uL0NvbWV0Q2hhdENhbGxMb2dIaXN0b3J5L2NvbWV0Y2hhdC1jYWxsLWxvZy1oaXN0b3J5Lm1vZHVsZVwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb21ldENoYXRDYWxsTG9nRGV0YWlsc0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29tZXRDaGF0Q2FsbEJ1dHRvbnMsXG4gICAgQ29tZXRDaGF0TGlzdCxcbiAgICBDb21ldENoYXRDYWxsTG9nUGFydGljaXBhbnRzLFxuICAgIENvbWV0Q2hhdENhbGxMb2dSZWNvcmRpbmdzLFxuICAgIENvbWV0Q2hhdENhbGxMb2dIaXN0b3J5LFxuICAgIENvbWV0Q2hhdENhbGxMb2dzLFxuICBdLFxuICBleHBvcnRzOiBbQ29tZXRDaGF0Q2FsbExvZ0RldGFpbHNDb21wb25lbnRdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdENhbGxMb2dEZXRhaWxzIHt9XG4iXX0=