stream-chat-angular 6.0.0-beta.5 → 6.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/assets/i18n/en.d.ts +0 -1
- package/assets/version.d.ts +1 -1
- package/{esm2022 → esm2020}/assets/i18n/en.mjs +1 -2
- package/{esm2022 → esm2020}/assets/version.mjs +2 -2
- package/esm2020/lib/attachment-configuration.service.mjs +182 -0
- package/esm2020/lib/attachment-list/attachment-list.component.mjs +232 -0
- package/esm2020/lib/attachment-preview-list/attachment-preview-list.component.mjs +55 -0
- package/esm2020/lib/attachment.service.mjs +481 -0
- package/esm2020/lib/avatar/avatar.component.mjs +160 -0
- package/esm2020/lib/avatar-placeholder/avatar-placeholder.component.mjs +66 -0
- package/esm2020/lib/channel/channel.component.mjs +45 -0
- package/esm2020/lib/channel-header/channel-header.component.mjs +72 -0
- package/esm2020/lib/channel-list/channel-list.component.mjs +47 -0
- package/esm2020/lib/channel-preview/channel-preview.component.mjs +155 -0
- package/esm2020/lib/channel-query.mjs +77 -0
- package/esm2020/lib/channel.service.mjs +1561 -0
- package/esm2020/lib/chat-client.service.mjs +233 -0
- package/esm2020/lib/custom-templates.service.mjs +244 -0
- package/{esm2022 → esm2020}/lib/date-parser.service.mjs +5 -5
- package/esm2020/lib/file-utils.mjs +35 -0
- package/{esm2022 → esm2020}/lib/get-channel-display-text.mjs +1 -1
- package/esm2020/lib/get-message-translation.mjs +12 -0
- package/esm2020/lib/icon/icon-placeholder/icon-placeholder.component.mjs +28 -0
- package/{esm2022 → esm2020}/lib/icon/icon.component.mjs +5 -5
- package/{esm2022 → esm2020}/lib/icon/icon.module.mjs +11 -11
- package/{esm2022 → esm2020}/lib/icon/loading-indicator/loading-indicator.component.mjs +5 -5
- package/esm2020/lib/icon/loading-indicator-placeholder/loading-indicator-placeholder.component.mjs +20 -0
- package/{esm2022 → esm2020}/lib/list-users.mjs +1 -1
- package/esm2020/lib/message/message.component.mjs +486 -0
- package/esm2020/lib/message-actions-box/message-actions-box.component.mjs +123 -0
- package/esm2020/lib/message-actions.service.mjs +187 -0
- package/esm2020/lib/message-bounce-prompt/message-bounce-prompt.component.mjs +71 -0
- package/esm2020/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.mjs +333 -0
- package/{esm2022 → esm2020}/lib/message-input/emoji-input.service.mjs +7 -7
- package/esm2020/lib/message-input/message-input-config.service.mjs +50 -0
- package/esm2020/lib/message-input/message-input.component.mjs +507 -0
- package/{esm2022 → esm2020}/lib/message-input/textarea/textarea.component.mjs +6 -6
- package/{esm2022 → esm2020}/lib/message-input/textarea.directive.mjs +5 -5
- package/{esm2022 → esm2020}/lib/message-input/voice-recorder.service.mjs +5 -5
- package/{esm2022 → esm2020}/lib/message-list/group-styles.mjs +1 -1
- package/esm2020/lib/message-list/message-list.component.mjs +717 -0
- package/esm2020/lib/message-preview.mjs +21 -0
- package/esm2020/lib/message-reactions/message-reactions.component.mjs +168 -0
- package/esm2020/lib/message-reactions-selector/message-reactions-selector.component.mjs +61 -0
- package/{esm2022 → esm2020}/lib/message-reactions.service.mjs +6 -6
- package/esm2020/lib/message-text/message-text.component.mjs +143 -0
- package/esm2020/lib/message.service.mjs +43 -0
- package/{esm2022 → esm2020}/lib/modal/modal.component.mjs +6 -6
- package/esm2020/lib/notification/notification.component.mjs +20 -0
- package/esm2020/lib/notification-list/notification-list.component.mjs +36 -0
- package/{esm2022 → esm2020}/lib/notification.service.mjs +6 -6
- package/esm2020/lib/paginated-list/paginated-list.component.mjs +94 -0
- package/{esm2022 → esm2020}/lib/parse-date.mjs +1 -1
- package/esm2020/lib/read-by.mjs +12 -0
- package/esm2020/lib/stream-autocomplete-textarea.module.mjs +33 -0
- package/{esm2022 → esm2020}/lib/stream-avatar.module.mjs +5 -5
- package/{esm2022 → esm2020}/lib/stream-chat.module.mjs +59 -59
- package/{esm2022 → esm2020}/lib/stream-i18n.service.mjs +6 -6
- package/esm2020/lib/stream-textarea.module.mjs +31 -0
- package/{esm2022 → esm2020}/lib/theme.service.mjs +6 -6
- package/esm2020/lib/thread/thread.component.mjs +51 -0
- package/{esm2022 → esm2020}/lib/transliteration.service.mjs +5 -5
- package/esm2020/lib/types-custom.mjs +2 -0
- package/esm2020/lib/types.mjs +2 -0
- package/esm2020/lib/user-list/user-list.component.mjs +47 -0
- package/esm2020/lib/virtualized-list.service.mjs +271 -0
- package/{esm2022 → esm2020}/lib/virtualized-message-list.service.mjs +1 -1
- package/{esm2022 → esm2020}/lib/voice-recorder/amplitude-recorder.service.mjs +5 -5
- package/{esm2022 → esm2020}/lib/voice-recorder/audio-recorder.service.mjs +5 -5
- package/{esm2022 → esm2020}/lib/voice-recorder/media-recorder.mjs +1 -1
- package/esm2020/lib/voice-recorder/mp3-transcoder.mjs +61 -0
- package/esm2020/lib/voice-recorder/transcoder.service.mjs +121 -0
- package/esm2020/lib/voice-recorder/voice-recorder-wavebar/voice-recorder-wavebar.component.mjs +35 -0
- package/esm2020/lib/voice-recorder/voice-recorder.component.mjs +80 -0
- package/{esm2022 → esm2020}/lib/voice-recorder/voice-recorder.module.mjs +9 -9
- package/esm2020/lib/voice-recording/voice-recording-wavebar/voice-recording-wavebar.component.mjs +112 -0
- package/esm2020/lib/voice-recording/voice-recording.component.mjs +91 -0
- package/{esm2022 → esm2020}/lib/voice-recording/voice-recording.module.mjs +5 -5
- package/{esm2022 → esm2020}/lib/wave-form-sampler.mjs +1 -1
- package/esm2020/public-api.mjs +86 -0
- package/esm2020/stream-chat.mjs +2 -0
- package/fesm2015/stream-chat-angular.mjs +9171 -0
- package/fesm2015/stream-chat-angular.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/stream-chat-angular.mjs +1251 -961
- package/fesm2020/stream-chat-angular.mjs.map +1 -0
- package/lib/attachment-configuration.service.d.ts +12 -12
- package/lib/attachment-list/attachment-list.component.d.ts +15 -10
- package/lib/attachment-preview-list/attachment-preview-list.component.d.ts +1 -1
- package/lib/attachment.service.d.ts +12 -10
- package/lib/avatar/avatar.component.d.ts +7 -7
- package/lib/avatar-placeholder/avatar-placeholder.component.d.ts +5 -5
- package/lib/channel/channel.component.d.ts +1 -1
- package/lib/channel-header/channel-header.component.d.ts +2 -2
- package/lib/channel-list/channel-list.component.d.ts +3 -4
- package/lib/channel-preview/channel-preview.component.d.ts +6 -6
- package/lib/channel-query.d.ts +26 -0
- package/lib/channel.service.d.ts +146 -154
- package/lib/chat-client.service.d.ts +17 -15
- package/lib/custom-templates.service.d.ts +50 -50
- package/lib/get-channel-display-text.d.ts +1 -2
- package/lib/get-message-translation.d.ts +3 -3
- package/lib/icon/icon-placeholder/icon-placeholder.component.d.ts +2 -2
- package/lib/icon/icon.component.d.ts +2 -2
- package/lib/icon/loading-indicator-placeholder/loading-indicator-placeholder.component.d.ts +1 -1
- package/lib/message/message.component.d.ts +6 -6
- package/lib/message-actions-box/message-actions-box.component.d.ts +5 -4
- package/lib/message-actions.service.d.ts +10 -10
- package/lib/message-bounce-prompt/message-bounce-prompt.component.d.ts +1 -1
- package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +5 -5
- package/lib/message-input/emoji-input.service.d.ts +2 -2
- package/lib/message-input/message-input-config.service.d.ts +3 -3
- package/lib/message-input/message-input.component.d.ts +10 -33
- package/lib/message-input/textarea/textarea.component.d.ts +3 -3
- package/lib/message-input/textarea.directive.d.ts +1 -1
- package/lib/message-list/group-styles.d.ts +1 -1
- package/lib/message-list/message-list.component.d.ts +3 -2
- package/lib/message-preview.d.ts +2 -3
- package/lib/message-reactions/message-reactions.component.d.ts +9 -8
- package/lib/message-reactions-selector/message-reactions-selector.component.d.ts +6 -5
- package/lib/message-reactions.service.d.ts +4 -4
- package/lib/message-text/message-text.component.d.ts +5 -5
- package/lib/message.service.d.ts +6 -7
- package/lib/modal/modal.component.d.ts +1 -1
- package/lib/notification/notification.component.d.ts +2 -2
- package/lib/notification-list/notification-list.component.d.ts +1 -0
- package/lib/notification.service.d.ts +1 -1
- package/lib/paginated-list/paginated-list.component.d.ts +2 -5
- package/lib/read-by.d.ts +1 -2
- package/lib/stream-i18n.service.d.ts +1 -1
- package/lib/theme.service.d.ts +1 -1
- package/lib/thread/thread.component.d.ts +3 -3
- package/lib/types-custom.d.ts +15 -0
- package/lib/types.d.ts +116 -155
- package/lib/user-list/user-list.component.d.ts +2 -3
- package/lib/virtualized-message-list.service.d.ts +1 -1
- package/lib/voice-recorder/amplitude-recorder.service.d.ts +2 -2
- package/lib/voice-recorder/media-recorder.d.ts +2 -2
- package/lib/voice-recorder/transcoder.service.d.ts +4 -4
- package/lib/voice-recorder/voice-recorder-wavebar/voice-recorder-wavebar.component.d.ts +1 -0
- package/lib/voice-recorder/voice-recorder.component.d.ts +2 -2
- package/lib/voice-recording/voice-recording-wavebar/voice-recording-wavebar.component.d.ts +3 -3
- package/lib/voice-recording/voice-recording.component.d.ts +2 -3
- package/package.json +21 -15
- package/public-api.d.ts +3 -0
- package/src/assets/i18n/en.ts +0 -1
- package/src/assets/version.ts +1 -1
- package/esm2022/lib/attachment-configuration.service.mjs +0 -185
- package/esm2022/lib/attachment-list/attachment-list.component.mjs +0 -212
- package/esm2022/lib/attachment-preview-list/attachment-preview-list.component.mjs +0 -55
- package/esm2022/lib/attachment.service.mjs +0 -479
- package/esm2022/lib/avatar/avatar.component.mjs +0 -157
- package/esm2022/lib/avatar-placeholder/avatar-placeholder.component.mjs +0 -66
- package/esm2022/lib/channel/channel.component.mjs +0 -45
- package/esm2022/lib/channel-header/channel-header.component.mjs +0 -72
- package/esm2022/lib/channel-list/channel-list.component.mjs +0 -50
- package/esm2022/lib/channel-preview/channel-preview.component.mjs +0 -150
- package/esm2022/lib/channel.service.mjs +0 -1393
- package/esm2022/lib/chat-client.service.mjs +0 -227
- package/esm2022/lib/custom-templates.service.mjs +0 -244
- package/esm2022/lib/file-utils.mjs +0 -35
- package/esm2022/lib/get-message-translation.mjs +0 -12
- package/esm2022/lib/icon/icon-placeholder/icon-placeholder.component.mjs +0 -28
- package/esm2022/lib/icon/loading-indicator-placeholder/loading-indicator-placeholder.component.mjs +0 -20
- package/esm2022/lib/message/message.component.mjs +0 -486
- package/esm2022/lib/message-actions-box/message-actions-box.component.mjs +0 -120
- package/esm2022/lib/message-actions.service.mjs +0 -187
- package/esm2022/lib/message-bounce-prompt/message-bounce-prompt.component.mjs +0 -71
- package/esm2022/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.mjs +0 -333
- package/esm2022/lib/message-input/message-input-config.service.mjs +0 -50
- package/esm2022/lib/message-input/message-input.component.mjs +0 -507
- package/esm2022/lib/message-list/message-list.component.mjs +0 -715
- package/esm2022/lib/message-preview.mjs +0 -21
- package/esm2022/lib/message-reactions/message-reactions.component.mjs +0 -165
- package/esm2022/lib/message-reactions-selector/message-reactions-selector.component.mjs +0 -57
- package/esm2022/lib/message-text/message-text.component.mjs +0 -143
- package/esm2022/lib/message.service.mjs +0 -43
- package/esm2022/lib/notification/notification.component.mjs +0 -20
- package/esm2022/lib/notification-list/notification-list.component.mjs +0 -33
- package/esm2022/lib/paginated-list/paginated-list.component.mjs +0 -94
- package/esm2022/lib/read-by.mjs +0 -12
- package/esm2022/lib/stream-autocomplete-textarea.module.mjs +0 -33
- package/esm2022/lib/stream-textarea.module.mjs +0 -31
- package/esm2022/lib/thread/thread.component.mjs +0 -51
- package/esm2022/lib/types.mjs +0 -2
- package/esm2022/lib/user-list/user-list.component.mjs +0 -47
- package/esm2022/lib/virtualized-list.service.mjs +0 -273
- package/esm2022/lib/voice-recorder/mp3-transcoder.mjs +0 -61
- package/esm2022/lib/voice-recorder/transcoder.service.mjs +0 -121
- package/esm2022/lib/voice-recorder/voice-recorder-wavebar/voice-recorder-wavebar.component.mjs +0 -32
- package/esm2022/lib/voice-recorder/voice-recorder.component.mjs +0 -80
- package/esm2022/lib/voice-recording/voice-recording-wavebar/voice-recording-wavebar.component.mjs +0 -112
- package/esm2022/lib/voice-recording/voice-recording.component.mjs +0 -91
- package/esm2022/public-api.mjs +0 -82
- package/fesm2022/stream-chat-angular.mjs.map +0 -1
- /package/{esm2022 → esm2020}/lib/format-duration.mjs +0 -0
- /package/{esm2022 → esm2020}/lib/injection-tokens.mjs +0 -0
- /package/{esm2022 → esm2020}/lib/is-image-attachment.mjs +0 -0
- /package/{esm2022 → esm2020}/lib/is-on-separate-date.mjs +0 -0
- /package/{esm2022 → esm2020}/lib/is-safari.mjs +0 -0
- /package/{esm2022 → esm2020}/lib/message-input/textarea.interface.mjs +0 -0
- /package/{esm2022 → esm2020}/stream-chat-angular.mjs +0 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, ReplaySubject } from 'rxjs';
|
|
3
|
+
import { StreamChat } from 'stream-chat';
|
|
4
|
+
import { version } from '../assets/version';
|
|
5
|
+
import { take } from 'rxjs/operators';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./notification.service";
|
|
8
|
+
/**
|
|
9
|
+
* The `ChatClient` service connects the user to the Stream chat.
|
|
10
|
+
*/
|
|
11
|
+
export class ChatClientService {
|
|
12
|
+
constructor(ngZone, notificationService) {
|
|
13
|
+
this.ngZone = ngZone;
|
|
14
|
+
this.notificationService = notificationService;
|
|
15
|
+
this.notificationSubject = new ReplaySubject(1);
|
|
16
|
+
this.connectionStateSubject = new ReplaySubject(1);
|
|
17
|
+
this.appSettingsSubject = new BehaviorSubject(undefined);
|
|
18
|
+
this.pendingInvitesSubject = new BehaviorSubject([]);
|
|
19
|
+
this.userSubject = new ReplaySubject(1);
|
|
20
|
+
this.subscriptions = [];
|
|
21
|
+
this.trackPendingChannelInvites = true;
|
|
22
|
+
this.events$ = this.notificationSubject.asObservable();
|
|
23
|
+
this.connectionState$ = this.connectionStateSubject.asObservable();
|
|
24
|
+
this.appSettings$ = this.appSettingsSubject.asObservable();
|
|
25
|
+
this.pendingInvites$ = this.pendingInvitesSubject.asObservable();
|
|
26
|
+
this.user$ = this.userSubject.asObservable();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Creates a [`StreamChat`](https://github.com/GetStream/stream-chat-js/blob/668b3e5521339f4e14fc657834531b4c8bf8176b/src/client.ts#L124) instance using the provided `apiKey`, and connects a user with the given meta data and token. More info about [connecting users](/chat/docs/javascript/init_and_users/) can be found in the platform documentation.
|
|
30
|
+
* @param apiKey
|
|
31
|
+
* @param userOrId you can emit this for anonymous logins
|
|
32
|
+
* @param userTokenOrProvider You can provide:<ul>
|
|
33
|
+
* <li> a token, </li>
|
|
34
|
+
* <li> a token provider, a method that returns `Promise<string>`, which can be called when the previous token expires (recommended setup for production applications)</li>
|
|
35
|
+
* <li> the keyword 'guest' to connect as [guest user](/chat/docs/javascript/authless_users/#guest-users) </li>
|
|
36
|
+
* <li> the keyword 'anonymous' to connect as [anonymous user](/chat/docs/javascript/authless_users/#anonymous-users) </li>
|
|
37
|
+
* </ul>
|
|
38
|
+
* @param clientOptions Setting to provide to the Stream client instance
|
|
39
|
+
*/
|
|
40
|
+
async init(apiKey, userOrId, userTokenOrProvider, clientOptions) {
|
|
41
|
+
if (this.chatClient && this.chatClient.key !== apiKey) {
|
|
42
|
+
this.appSettingsSubject.next(undefined);
|
|
43
|
+
this.appSettingsPromise = undefined;
|
|
44
|
+
}
|
|
45
|
+
this.trackPendingChannelInvites =
|
|
46
|
+
clientOptions?.trackPendingChannelInvites === true;
|
|
47
|
+
this.chatClient = StreamChat.getInstance(apiKey, clientOptions);
|
|
48
|
+
this.chatClient.sdkIdentifier = {
|
|
49
|
+
name: 'angular',
|
|
50
|
+
version,
|
|
51
|
+
};
|
|
52
|
+
this.chatClient.recoverStateOnReconnect = false;
|
|
53
|
+
this.chatClient.devToken;
|
|
54
|
+
let result;
|
|
55
|
+
await this.ngZone.runOutsideAngular(async () => {
|
|
56
|
+
const user = typeof userOrId === 'string' ? { id: userOrId } : userOrId;
|
|
57
|
+
try {
|
|
58
|
+
result = await ({
|
|
59
|
+
guest: () => this.chatClient.setGuestUser(user),
|
|
60
|
+
anonymous: () => this.chatClient.connectAnonymousUser(),
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
62
|
+
}[`${userTokenOrProvider}`] ??
|
|
63
|
+
(() => this.chatClient.connectUser(user, userTokenOrProvider)))();
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
this.notificationService.addPermanentNotification('streamChat.Error connecting to chat, refresh the page to try again.', 'error');
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
this.userSubject.next(this.chatClient.user ? { ...this.chatClient.user } : undefined);
|
|
70
|
+
});
|
|
71
|
+
if (this.chatClient.user?.id && this.trackPendingChannelInvites) {
|
|
72
|
+
const channels = await this.chatClient.queryChannels({
|
|
73
|
+
invite: 'pending',
|
|
74
|
+
members: { $in: [this.chatClient.user?.id] },
|
|
75
|
+
} // TODO: find out why we need this typecast
|
|
76
|
+
);
|
|
77
|
+
this.pendingInvitesSubject.next(channels);
|
|
78
|
+
}
|
|
79
|
+
this.subscriptions.push(this.chatClient.on((e) => {
|
|
80
|
+
this.updateUser(e);
|
|
81
|
+
this.updatePendingInvites(e);
|
|
82
|
+
this.notificationSubject.next({
|
|
83
|
+
eventType: e.type,
|
|
84
|
+
event: e,
|
|
85
|
+
});
|
|
86
|
+
}));
|
|
87
|
+
let removeNotification;
|
|
88
|
+
this.subscriptions.push(this.chatClient.on('connection.changed', (e) => {
|
|
89
|
+
this.ngZone.run(() => {
|
|
90
|
+
const isOnline = e.online;
|
|
91
|
+
if (isOnline) {
|
|
92
|
+
if (removeNotification) {
|
|
93
|
+
removeNotification();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
removeNotification =
|
|
98
|
+
this.notificationService.addPermanentNotification('streamChat.Connection failure, reconnecting now...');
|
|
99
|
+
}
|
|
100
|
+
this.connectionStateSubject.next(isOnline ? 'online' : 'offline');
|
|
101
|
+
});
|
|
102
|
+
}));
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Disconnects the current user, and closes the WebSocket connection. Useful when disconnecting a chat user, use in combination with [`reset`](/chat/docs/sdk/angular/v6-rc/services/ChannelService/#reset/).
|
|
107
|
+
*/
|
|
108
|
+
async disconnectUser() {
|
|
109
|
+
this.pendingInvitesSubject.next([]);
|
|
110
|
+
await this.chatClient.disconnectUser();
|
|
111
|
+
this.userSubject.next(undefined);
|
|
112
|
+
this.subscriptions.forEach((s) => s.unsubscribe());
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Loads the current [application settings](/chat/docs/javascript/app_setting_overview/), if the application settings have already been loaded, it does nothing.
|
|
116
|
+
*/
|
|
117
|
+
async getAppSettings() {
|
|
118
|
+
if (this.appSettingsPromise) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (this.appSettingsSubject.getValue()) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
this.appSettingsPromise = this.chatClient.getAppSettings();
|
|
125
|
+
void this.appSettingsPromise.finally(() => {
|
|
126
|
+
this.appSettingsPromise = undefined;
|
|
127
|
+
});
|
|
128
|
+
const settings = await this.appSettingsPromise;
|
|
129
|
+
this.appSettingsSubject.next(settings.app || {});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Flag the message with the given ID. If you want to know [more about flags](/chat/docs/javascript/moderation/) check out the platform documentation.
|
|
133
|
+
* @param messageId
|
|
134
|
+
*/
|
|
135
|
+
async flagMessage(messageId) {
|
|
136
|
+
await this.chatClient.flagMessage(messageId);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Searches for users in the application that have ID or name matching the provided search term
|
|
140
|
+
* @param searchTerm
|
|
141
|
+
* @returns The users matching the search
|
|
142
|
+
*/
|
|
143
|
+
async autocompleteUsers(searchTerm) {
|
|
144
|
+
if (!searchTerm) {
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
const result = await this.chatClient.queryUsers({
|
|
148
|
+
$or: [
|
|
149
|
+
{ id: { $autocomplete: searchTerm } },
|
|
150
|
+
{ name: { $autocomplete: searchTerm } },
|
|
151
|
+
],
|
|
152
|
+
}); // TODO: find out why we need this typecast
|
|
153
|
+
return result.users.filter((u) => u.id !== this.chatClient?.user?.id);
|
|
154
|
+
}
|
|
155
|
+
updatePendingInvites(e) {
|
|
156
|
+
if (!this.trackPendingChannelInvites) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (e.member?.user?.id === this.chatClient.user?.id && e.channel) {
|
|
160
|
+
const pendingInvites = this.pendingInvitesSubject.getValue();
|
|
161
|
+
if (e.type === 'notification.invited') {
|
|
162
|
+
const channel = this.chatClient.channel(e.channel?.type, e.channel?.id);
|
|
163
|
+
this.pendingInvitesSubject.next([...pendingInvites, channel]);
|
|
164
|
+
}
|
|
165
|
+
else if (e.type === 'notification.invite_accepted' ||
|
|
166
|
+
e.type === 'notification.invite_rejected') {
|
|
167
|
+
const index = pendingInvites.findIndex((i) => i?.cid === e.channel?.cid);
|
|
168
|
+
if (index !== -1) {
|
|
169
|
+
pendingInvites.splice(index, 1);
|
|
170
|
+
this.pendingInvitesSubject.next([...pendingInvites]);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
updateUser(e) {
|
|
176
|
+
if (typeof e.total_unread_count !== 'undefined') {
|
|
177
|
+
let user;
|
|
178
|
+
this.userSubject.pipe(take(1)).subscribe((u) => {
|
|
179
|
+
user = u;
|
|
180
|
+
});
|
|
181
|
+
if (user &&
|
|
182
|
+
'total_unread_count' in user &&
|
|
183
|
+
user.total_unread_count !== e.total_unread_count) {
|
|
184
|
+
this.userSubject.next({
|
|
185
|
+
...user,
|
|
186
|
+
total_unread_count: e.total_unread_count,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (typeof e.unread_channels !== 'undefined') {
|
|
191
|
+
let user;
|
|
192
|
+
this.userSubject.pipe(take(1)).subscribe((u) => {
|
|
193
|
+
user = u;
|
|
194
|
+
});
|
|
195
|
+
if (user &&
|
|
196
|
+
'unread_channels' in user &&
|
|
197
|
+
user.unread_channels !== e.unread_channels) {
|
|
198
|
+
this.userSubject.next({
|
|
199
|
+
...user,
|
|
200
|
+
unread_channels: e.unread_channels,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (typeof e.unread_count !== 'undefined') {
|
|
205
|
+
let user;
|
|
206
|
+
this.userSubject.pipe(take(1)).subscribe((u) => {
|
|
207
|
+
user = u;
|
|
208
|
+
});
|
|
209
|
+
if (user &&
|
|
210
|
+
'unread_count' in user &&
|
|
211
|
+
user.unread_count !== e.unread_count) {
|
|
212
|
+
this.userSubject.next({
|
|
213
|
+
...user,
|
|
214
|
+
unread_count: e.unread_count,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (e.type === 'user.updated' &&
|
|
219
|
+
this.chatClient.user &&
|
|
220
|
+
e.user?.id === this.chatClient.user.id) {
|
|
221
|
+
this.userSubject.next({ ...this.chatClient.user });
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
ChatClientService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChatClientService, deps: [{ token: i0.NgZone }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
226
|
+
ChatClientService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChatClientService, providedIn: 'root' });
|
|
227
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChatClientService, decorators: [{
|
|
228
|
+
type: Injectable,
|
|
229
|
+
args: [{
|
|
230
|
+
providedIn: 'root',
|
|
231
|
+
}]
|
|
232
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.NotificationService }]; } });
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGF0LWNsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFXbEUsT0FBTyxFQUFzQixVQUFVLEVBQW1CLE1BQU0sYUFBYSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU90Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUF5QzVCLFlBQ1UsTUFBYyxFQUNkLG1CQUF3QztRQUR4QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWYxQyx3QkFBbUIsR0FBRyxJQUFJLGFBQWEsQ0FBYyxDQUFDLENBQUMsQ0FBQztRQUN4RCwyQkFBc0IsR0FBRyxJQUFJLGFBQWEsQ0FBdUIsQ0FBQyxDQUFDLENBQUM7UUFDcEUsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQzlDLFNBQVMsQ0FDVixDQUFDO1FBQ00sMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQVksRUFBRSxDQUFDLENBQUM7UUFDM0QsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsQ0FFckMsQ0FBQyxDQUFDLENBQUM7UUFDRyxrQkFBYSxHQUFrQyxFQUFFLENBQUM7UUFDbEQsK0JBQTBCLEdBQUcsSUFBSSxDQUFDO1FBT3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJ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Q0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDOzs4R0EzUlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFwcFNldHRpbmdzQVBJUmVzcG9uc2UsXG4gIENoYW5uZWwsXG4gIENoYW5uZWxGaWx0ZXJzLFxuICBDb25uZWN0QVBJUmVzcG9uc2UsXG4gIE93blVzZXJSZXNwb25zZSxcbiAgU3RyZWFtQ2hhdE9wdGlvbnMsXG4gIFVzZXJGaWx0ZXJzLFxuICBVc2VyUmVzcG9uc2UsXG59IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IEFwcFNldHRpbmdzLCBFdmVudCwgU3RyZWFtQ2hhdCwgVG9rZW5PclByb3ZpZGVyIH0gZnJvbSAnc3RyZWFtLWNoYXQnO1xuaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gJy4uL2Fzc2V0cy92ZXJzaW9uJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIENsaWVudEV2ZW50ID0ge1xuICBldmVudFR5cGU6IHN0cmluZztcbiAgZXZlbnQ6IEV2ZW50O1xufTtcblxuLyoqXG4gKiBUaGUgYENoYXRDbGllbnRgIHNlcnZpY2UgY29ubmVjdHMgdGhlIHVzZXIgdG8gdGhlIFN0cmVhbSBjaGF0LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdENsaWVudFNlcnZpY2Uge1xuICAvKipcbiAgICogVGhlIFtTdHJlYW1DaGF0IGNsaWVudF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1qcy9ibG9iL21hc3Rlci9zcmMvY2xpZW50LnRzKSBpbnN0YW5jZS4gSW4gZ2VuZXJhbCB5b3Ugc2hvdWxkbid0IG5lZWQgdG8gYWNjZXNzIHRoZSBjbGllbnQsIGJ1dCBpdCdzIHRoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBpdC5cbiAgICovXG4gIGNoYXRDbGllbnQhOiBTdHJlYW1DaGF0O1xuICAvKipcbiAgICogRW1pdHMgW2BDbGllbnRFdmVudGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvY2hhdC1jbGllbnQuc2VydmljZS50cykgZXZlbnRzLiBUaGUgcGxhdGZvcm0gZG9jdW1lbnRhdGlvbiBjb3ZlcnMgW3RoZSBsaXN0IG9mIGNsaWVudCwgdXNlciBwcmVzZW5jZSBhbmQgbm90aWZpY2F0aW9uIGV2ZW50c10oL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2V2ZW50X29iamVjdC8pLlxuICAgKiA6OjppbXBvcnRhbnRcbiAgICogRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgdGhpcyBPYnNlcnZhYmxlIG9wZXJhdGVzIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgY2hhbmdlIGRldGVjdGlvbiB6b25lLiBJZiB5b3Ugc3Vic2NyaWJlIHRvIGl0LCB5b3UgbmVlZCB0byBtYW51YWxseSByZWVudGVyIEFuZ3VsYXIncyBjaGFuZ2UgZGV0ZWN0aW9uIHpvbmUsIG91ciBbQ2hhbmdlIGRldGVjdGlvbiBndWlkZV0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb25jZXB0cy9jaGFuZ2UtZGV0ZWN0aW9uLykgZXhwbGFpbnMgdGhpcyBpbiBkZXRhaWwuXG4gICAqIDo6OlxuICAgKi9cbiAgZXZlbnRzJDogT2JzZXJ2YWJsZTxDbGllbnRFdmVudD47XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY3VycmVudCBbYXBwbGljYXRpb24gc2V0dGluZ3NdKC9jaGF0L2RvY3MvamF2YXNjcmlwdC9hcHBfc2V0dGluZ19vdmVydmlldy8pLiBTaW5jZSBnZXR0aW5nIHRoZSBhcHBsaWNhdGlvbiBzZXR0aW5ncyBpcyBhbiBleHBlbnNpdmUgQVBJIGNhbGwgYW5kIHdlIGRvbid0IGFsd2F5cyBuZWVkIHRoZSByZXN1bHQsIHRoaXMgaXMgbm90IGluaXRpYWxpemVkIGJ5IGRlZmF1bHQsIHlvdSBuZWVkIHRvIGNhbGwgYGdldEFwcGxpY2F0aW9uU2V0dGluZ3NgIHRvIGxvYWQgdGhlbS5cbiAgICovXG4gIGFwcFNldHRpbmdzJDogT2JzZXJ2YWJsZTxBcHBTZXR0aW5ncyB8IHVuZGVmaW5lZD47XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY3VycmVudCBjb25uZWN0aW9uIHN0YXRlIG9mIHRoZSB1c2VyIChgb25saW5lYCBvciBgb2ZmbGluZWApXG4gICAqL1xuICBjb25uZWN0aW9uU3RhdGUkOiBPYnNlcnZhYmxlPCdvZmZsaW5lJyB8ICdvbmxpbmUnPjtcbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBsaXN0IG9mIHBlbmRpbmcgaW52aXRlcyBvZiB0aGUgdXNlci4gSXQgZW1pdHMgZXZlcnkgcGVuZGluZyBpbnZpdGF0aW9uIGR1cmluZyBpbml0aWFsaXphdGlvbiBhbmQgdGhlbiBleHRlbmRzIHRoZSBsaXN0IHdoZW4gYSBuZXcgaW52aXRlIGlzIHJlY2VpdmVkLiBNb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgW2NoYW5uZWwgaW52aXRhdGlvbnNdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29kZS1leGFtcGxlcy9jaGFubmVsLWludml0ZXMvKSBndWlkZS5cbiAgICovXG4gIHBlbmRpbmdJbnZpdGVzJDogT2JzZXJ2YWJsZTxDaGFubmVsW10+O1xuICAvKipcbiAgICogRW1pdHMgdGhlIGN1cnJlbnQgY2hhdCB1c2VyXG4gICAqL1xuICB1c2VyJDogT2JzZXJ2YWJsZTxPd25Vc2VyUmVzcG9uc2UgfCBVc2VyUmVzcG9uc2UgfCB1bmRlZmluZWQ+O1xuICBwcml2YXRlIG5vdGlmaWNhdGlvblN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxDbGllbnRFdmVudD4oMSk7XG4gIHByaXZhdGUgY29ubmVjdGlvblN0YXRlU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PCdvZmZsaW5lJyB8ICdvbmxpbmUnPigxKTtcbiAgcHJpdmF0ZSBhcHBTZXR0aW5nc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFwcFNldHRpbmdzIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgcHJpdmF0ZSBwZW5kaW5nSW52aXRlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENoYW5uZWxbXT4oW10pO1xuICBwcml2YXRlIHVzZXJTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8XG4gICAgT3duVXNlclJlc3BvbnNlIHwgVXNlclJlc3BvbnNlIHwgdW5kZWZpbmVkXG4gID4oMSk7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogeyB1bnN1YnNjcmliZTogKCkgPT4gdm9pZCB9W10gPSBbXTtcbiAgcHJpdmF0ZSB0cmFja1BlbmRpbmdDaGFubmVsSW52aXRlcyA9IHRydWU7XG4gIHByaXZhdGUgYXBwU2V0dGluZ3NQcm9taXNlPzogUHJvbWlzZTxBcHBTZXR0aW5nc0FQSVJlc3BvbnNlPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZVxuICApIHtcbiAgICB0aGlzLmV2ZW50cyQgPSB0aGlzLm5vdGlmaWNhdGlvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5jb25uZWN0aW9uU3RhdGUkID0gdGhpcy5jb25uZWN0aW9uU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuYXBwU2V0dGluZ3MkID0gdGhpcy5hcHBTZXR0aW5nc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wZW5kaW5nSW52aXRlcyQgPSB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnVzZXIkID0gdGhpcy51c2VyU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgW2BTdHJlYW1DaGF0YF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1qcy9ibG9iLzY2OGIzZTU1MjEzMzlmNGUxNGZjNjU3ODM0NTMxYjRjOGJmODE3NmIvc3JjL2NsaWVudC50cyNMMTI0KSBpbnN0YW5jZSB1c2luZyB0aGUgcHJvdmlkZWQgYGFwaUtleWAsIGFuZCBjb25uZWN0cyBhIHVzZXIgd2l0aCB0aGUgZ2l2ZW4gbWV0YSBkYXRhIGFuZCB0b2tlbi4gTW9yZSBpbmZvIGFib3V0IFtjb25uZWN0aW5nIHVzZXJzXSgvY2hhdC9kb2NzL2phdmFzY3JpcHQvaW5pdF9hbmRfdXNlcnMvKSBjYW4gYmUgZm91bmQgaW4gdGhlIHBsYXRmb3JtIGRvY3VtZW50YXRpb24uXG4gICAqIEBwYXJhbSBhcGlLZXlcbiAgICogQHBhcmFtIHVzZXJPcklkIHlvdSBjYW4gZW1pdCB0aGlzIGZvciBhbm9ueW1vdXMgbG9naW5zXG4gICAqIEBwYXJhbSB1c2VyVG9rZW5PclByb3ZpZGVyIFlvdSBjYW4gcHJvdmlkZTo8dWw+XG4gICAqICA8bGk+IGEgdG9rZW4sIDwvbGk+XG4gICAqICA8bGk+IGEgdG9rZW4gcHJvdmlkZXIsIGEgbWV0aG9kIHRoYXQgcmV0dXJucyBgUHJvbWlzZTxzdHJpbmc+YCwgd2hpY2ggY2FuIGJlIGNhbGxlZCB3aGVuIHRoZSBwcmV2aW91cyB0b2tlbiBleHBpcmVzIChyZWNvbW1lbmRlZCBzZXR1cCBmb3IgcHJvZHVjdGlvbiBhcHBsaWNhdGlvbnMpPC9saT5cbiAgICogIDxsaT4gdGhlIGtleXdvcmQgJ2d1ZXN0JyB0byBjb25uZWN0IGFzIFtndWVzdCB1c2VyXSgvY2hhdC9kb2NzL2phdmFzY3JpcHQvYXV0aGxlc3NfdXNlcnMvI2d1ZXN0LXVzZXJzKSA8L2xpPlxuICAgKiAgPGxpPiB0aGUga2V5d29yZCAnYW5vbnltb3VzJyB0byBjb25uZWN0IGFzIFthbm9ueW1vdXMgdXNlcl0oL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2F1dGhsZXNzX3VzZXJzLyNhbm9ueW1vdXMtdXNlcnMpIDwvbGk+XG4gICAqICA8L3VsPlxuICAgKiBAcGFyYW0gY2xpZW50T3B0aW9ucyBTZXR0aW5nIHRvIHByb3ZpZGUgdG8gdGhlIFN0cmVhbSBjbGllbnQgaW5zdGFuY2VcbiAgICovXG4gIGFzeW5jIGluaXQoXG4gICAgYXBpS2V5OiBzdHJpbmcsXG4gICAgdXNlck9ySWQ6IHN0cmluZyB8IE93blVzZXJSZXNwb25zZSB8IFVzZXJSZXNwb25zZSB8IHVuZGVmaW5lZCxcbiAgICB1c2VyVG9rZW5PclByb3ZpZGVyOiBUb2tlbk9yUHJvdmlkZXIsXG4gICAgY2xpZW50T3B0aW9ucz86IFN0cmVhbUNoYXRPcHRpb25zICYge1xuICAgICAgdHJhY2tQZW5kaW5nQ2hhbm5lbEludml0ZXM/OiBib29sZWFuO1xuICAgIH1cbiAgKTogQ29ubmVjdEFQSVJlc3BvbnNlIHtcbiAgICBpZiAodGhpcy5jaGF0Q2xpZW50ICYmIHRoaXMuY2hhdENsaWVudC5rZXkgIT09IGFwaUtleSkge1xuICAgICAgdGhpcy5hcHBTZXR0aW5nc1N1YmplY3QubmV4dCh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5hcHBTZXR0aW5nc1Byb21pc2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMudHJhY2tQZW5kaW5nQ2hhbm5lbEludml0ZXMgPVxuICAgICAgY2xpZW50T3B0aW9ucz8udHJhY2tQZW5kaW5nQ2hhbm5lbEludml0ZXMgPT09IHRydWU7XG4gICAgdGhpcy5jaGF0Q2xpZW50ID0gU3RyZWFtQ2hhdC5nZXRJbnN0YW5jZShhcGlLZXksIGNsaWVudE9wdGlvbnMpO1xuICAgIHRoaXMuY2hhdENsaWVudC5zZGtJZGVudGlmaWVyID0ge1xuICAgICAgbmFtZTogJ2FuZ3VsYXInLFxuICAgICAgdmVyc2lvbixcbiAgICB9O1xuICAgIHRoaXMuY2hhdENsaWVudC5yZWNvdmVyU3RhdGVPblJlY29ubmVjdCA9IGZhbHNlO1xuICAgIHRoaXMuY2hhdENsaWVudC5kZXZUb2tlbjtcbiAgICBsZXQgcmVzdWx0O1xuICAgIGF3YWl0IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB0eXBlb2YgdXNlck9ySWQgPT09ICdzdHJpbmcnID8geyBpZDogdXNlck9ySWQgfSA6IHVzZXJPcklkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGd1ZXN0OiAoKSA9PiB0aGlzLmNoYXRDbGllbnQuc2V0R3Vlc3RVc2VyKHVzZXIhKSxcbiAgICAgICAgICAgIGFub255bW91czogKCkgPT4gdGhpcy5jaGF0Q2xpZW50LmNvbm5lY3RBbm9ueW1vdXNVc2VyKCksXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXRlbXBsYXRlLWV4cHJlc3Npb25zXG4gICAgICAgICAgfVtgJHt1c2VyVG9rZW5PclByb3ZpZGVyfWBdID8/XG4gICAgICAgICAgKCgpID0+IHRoaXMuY2hhdENsaWVudC5jb25uZWN0VXNlcih1c2VyISwgdXNlclRva2VuT3JQcm92aWRlcikpXG4gICAgICAgICkoKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5hZGRQZXJtYW5lbnROb3RpZmljYXRpb24oXG4gICAgICAgICAgJ3N0cmVhbUNoYXQuRXJyb3IgY29ubmVjdGluZyB0byBjaGF0LCByZWZyZXNoIHRoZSBwYWdlIHRvIHRyeSBhZ2Fpbi4nLFxuICAgICAgICAgICdlcnJvcidcbiAgICAgICAgKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICB0aGlzLnVzZXJTdWJqZWN0Lm5leHQoXG4gICAgICAgIHRoaXMuY2hhdENsaWVudC51c2VyID8geyAuLi50aGlzLmNoYXRDbGllbnQudXNlciB9IDogdW5kZWZpbmVkXG4gICAgICApO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLmNoYXRDbGllbnQudXNlcj8uaWQgJiYgdGhpcy50cmFja1BlbmRpbmdDaGFubmVsSW52aXRlcykge1xuICAgICAgY29uc3QgY2hhbm5lbHMgPSBhd2FpdCB0aGlzLmNoYXRDbGllbnQucXVlcnlDaGFubmVscyhcbiAgICAgICAge1xuICAgICAgICAgIGludml0ZTogJ3BlbmRpbmcnLFxuICAgICAgICAgIG1lbWJlcnM6IHsgJGluOiBbdGhpcy5jaGF0Q2xpZW50LnVzZXI/LmlkXSB9LFxuICAgICAgICB9IGFzIHVua25vd24gYXMgQ2hhbm5lbEZpbHRlcnMgLy8gVE9ETzogZmluZCBvdXQgd2h5IHdlIG5lZWQgdGhpcyB0eXBlY2FzdFxuICAgICAgKTtcbiAgICAgIHRoaXMucGVuZGluZ0ludml0ZXNTdWJqZWN0Lm5leHQoY2hhbm5lbHMpO1xuICAgIH1cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuY2hhdENsaWVudC5vbigoZSkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVVzZXIoZSk7XG4gICAgICAgIHRoaXMudXBkYXRlUGVuZGluZ0ludml0ZXMoZSk7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICBldmVudFR5cGU6IGUudHlwZSxcbiAgICAgICAgICBldmVudDogZSxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgbGV0IHJlbW92ZU5vdGlmaWNhdGlvbjogdW5kZWZpbmVkIHwgKCgpID0+IHZvaWQpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jaGF0Q2xpZW50Lm9uKCdjb25uZWN0aW9uLmNoYW5nZWQnLCAoZSkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzT25saW5lID0gZS5vbmxpbmU7XG4gICAgICAgICAgaWYgKGlzT25saW5lKSB7XG4gICAgICAgICAgICBpZiAocmVtb3ZlTm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICAgIHJlbW92ZU5vdGlmaWNhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZW1vdmVOb3RpZmljYXRpb24gPVxuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuYWRkUGVybWFuZW50Tm90aWZpY2F0aW9uKFxuICAgICAgICAgICAgICAgICdzdHJlYW1DaGF0LkNvbm5lY3Rpb24gZmFpbHVyZSwgcmVjb25uZWN0aW5nIG5vdy4uLidcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdGVTdWJqZWN0Lm5leHQoaXNPbmxpbmUgPyAnb25saW5lJyA6ICdvZmZsaW5lJyk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogRGlzY29ubmVjdHMgdGhlIGN1cnJlbnQgdXNlciwgYW5kIGNsb3NlcyB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24uIFVzZWZ1bCB3aGVuIGRpc2Nvbm5lY3RpbmcgYSBjaGF0IHVzZXIsIHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIFtgcmVzZXRgXSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL3NlcnZpY2VzL0NoYW5uZWxTZXJ2aWNlLyNyZXNldC8pLlxuICAgKi9cbiAgYXN5bmMgZGlzY29ubmVjdFVzZXIoKSB7XG4gICAgdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QubmV4dChbXSk7XG4gICAgYXdhaXQgdGhpcy5jaGF0Q2xpZW50LmRpc2Nvbm5lY3RVc2VyKCk7XG4gICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGN1cnJlbnQgW2FwcGxpY2F0aW9uIHNldHRpbmdzXSgvY2hhdC9kb2NzL2phdmFzY3JpcHQvYXBwX3NldHRpbmdfb3ZlcnZpZXcvKSwgaWYgdGhlIGFwcGxpY2F0aW9uIHNldHRpbmdzIGhhdmUgYWxyZWFkeSBiZWVuIGxvYWRlZCwgaXQgZG9lcyBub3RoaW5nLlxuICAgKi9cbiAgYXN5bmMgZ2V0QXBwU2V0dGluZ3MoKSB7XG4gICAgaWYgKHRoaXMuYXBwU2V0dGluZ3NQcm9taXNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmFwcFNldHRpbmdzU3ViamVjdC5nZXRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYXBwU2V0dGluZ3NQcm9taXNlID0gdGhpcy5jaGF0Q2xpZW50LmdldEFwcFNldHRpbmdzKCk7XG4gICAgdm9pZCB0aGlzLmFwcFNldHRpbmdzUHJvbWlzZS5maW5hbGx5KCgpID0+IHtcbiAgICAgIHRoaXMuYXBwU2V0dGluZ3NQcm9taXNlID0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldHRpbmdzID0gYXdhaXQgdGhpcy5hcHBTZXR0aW5nc1Byb21pc2U7XG4gICAgdGhpcy5hcHBTZXR0aW5nc1N1YmplY3QubmV4dCgoc2V0dGluZ3MuYXBwIGFzIEFwcFNldHRpbmdzKSB8fCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyB0aGUgbWVzc2FnZSB3aXRoIHRoZSBnaXZlbiBJRC4gSWYgeW91IHdhbnQgdG8ga25vdyBbbW9yZSBhYm91dCBmbGFnc10oL2NoYXQvZG9jcy9qYXZhc2NyaXB0L21vZGVyYXRpb24vKSBjaGVjayBvdXQgdGhlIHBsYXRmb3JtIGRvY3VtZW50YXRpb24uXG4gICAqIEBwYXJhbSBtZXNzYWdlSWRcbiAgICovXG4gIGFzeW5jIGZsYWdNZXNzYWdlKG1lc3NhZ2VJZDogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy5jaGF0Q2xpZW50LmZsYWdNZXNzYWdlKG1lc3NhZ2VJZCk7XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoZXMgZm9yIHVzZXJzIGluIHRoZSBhcHBsaWNhdGlvbiB0aGF0IGhhdmUgSUQgb3IgbmFtZSBtYXRjaGluZyB0aGUgcHJvdmlkZWQgc2VhcmNoIHRlcm1cbiAgICogQHBhcmFtIHNlYXJjaFRlcm1cbiAgICogQHJldHVybnMgVGhlIHVzZXJzIG1hdGNoaW5nIHRoZSBzZWFyY2hcbiAgICovXG4gIGFzeW5jIGF1dG9jb21wbGV0ZVVzZXJzKHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgIGlmICghc2VhcmNoVGVybSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNoYXRDbGllbnQucXVlcnlVc2Vycyh7XG4gICAgICAkb3I6IFtcbiAgICAgICAgeyBpZDogeyAkYXV0b2NvbXBsZXRlOiBzZWFyY2hUZXJtIH0gfSxcbiAgICAgICAgeyBuYW1lOiB7ICRhdXRvY29tcGxldGU6IHNlYXJjaFRlcm0gfSB9LFxuICAgICAgXSxcbiAgICB9IGFzIFVzZXJGaWx0ZXJzKTsgLy8gVE9ETzogZmluZCBvdXQgd2h5IHdlIG5lZWQgdGhpcyB0eXBlY2FzdFxuICAgIHJldHVybiByZXN1bHQudXNlcnMuZmlsdGVyKCh1KSA9PiB1LmlkICE9PSB0aGlzLmNoYXRDbGllbnQ/LnVzZXI/LmlkKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGVuZGluZ0ludml0ZXMoZTogRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMudHJhY2tQZW5kaW5nQ2hhbm5lbEludml0ZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGUubWVtYmVyPy51c2VyPy5pZCA9PT0gdGhpcy5jaGF0Q2xpZW50LnVzZXI/LmlkICYmIGUuY2hhbm5lbCkge1xuICAgICAgY29uc3QgcGVuZGluZ0ludml0ZXMgPSB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgICAgaWYgKGUudHlwZSA9PT0gJ25vdGlmaWNhdGlvbi5pbnZpdGVkJykge1xuICAgICAgICBjb25zdCBjaGFubmVsID0gdGhpcy5jaGF0Q2xpZW50LmNoYW5uZWwoZS5jaGFubmVsPy50eXBlLCBlLmNoYW5uZWw/LmlkKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QubmV4dChbLi4ucGVuZGluZ0ludml0ZXMsIGNoYW5uZWxdKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGUudHlwZSA9PT0gJ25vdGlmaWNhdGlvbi5pbnZpdGVfYWNjZXB0ZWQnIHx8XG4gICAgICAgIGUudHlwZSA9PT0gJ25vdGlmaWNhdGlvbi5pbnZpdGVfcmVqZWN0ZWQnXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBwZW5kaW5nSW52aXRlcy5maW5kSW5kZXgoXG4gICAgICAgICAgKGkpID0+IGk/LmNpZCA9PT0gZS5jaGFubmVsPy5jaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHBlbmRpbmdJbnZpdGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QubmV4dChbLi4ucGVuZGluZ0ludml0ZXNdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVXNlcihlOiBFdmVudCkge1xuICAgIGlmICh0eXBlb2YgZS50b3RhbF91bnJlYWRfY291bnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXNlcjogT3duVXNlclJlc3BvbnNlIHwgVXNlclJlc3BvbnNlIHwgdW5kZWZpbmVkO1xuICAgICAgdGhpcy51c2VyU3ViamVjdC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgodSkgPT4ge1xuICAgICAgICB1c2VyID0gdTtcbiAgICAgIH0pO1xuICAgICAgaWYgKFxuICAgICAgICB1c2VyICYmXG4gICAgICAgICd0b3RhbF91bnJlYWRfY291bnQnIGluIHVzZXIgJiZcbiAgICAgICAgdXNlci50b3RhbF91bnJlYWRfY291bnQgIT09IGUudG90YWxfdW5yZWFkX2NvdW50XG4gICAgICApIHtcbiAgICAgICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgIHRvdGFsX3VucmVhZF9jb3VudDogZS50b3RhbF91bnJlYWRfY291bnQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGUudW5yZWFkX2NoYW5uZWxzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVzZXI6IE93blVzZXJSZXNwb25zZSB8IFVzZXJSZXNwb25zZSB8IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudXNlclN1YmplY3QucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHUpID0+IHtcbiAgICAgICAgdXNlciA9IHU7XG4gICAgICB9KTtcbiAgICAgIGlmIChcbiAgICAgICAgdXNlciAmJlxuICAgICAgICAndW5yZWFkX2NoYW5uZWxzJyBpbiB1c2VyICYmXG4gICAgICAgIHVzZXIudW5yZWFkX2NoYW5uZWxzICE9PSBlLnVucmVhZF9jaGFubmVsc1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMudXNlclN1YmplY3QubmV4dCh7XG4gICAgICAgICAgLi4udXNlcixcbiAgICAgICAgICB1bnJlYWRfY2hhbm5lbHM6IGUudW5yZWFkX2NoYW5uZWxzLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBlLnVucmVhZF9jb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1c2VyOiBPd25Vc2VyUmVzcG9uc2UgfCBVc2VyUmVzcG9uc2UgfCB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnVzZXJTdWJqZWN0LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCh1KSA9PiB7XG4gICAgICAgIHVzZXIgPSB1O1xuICAgICAgfSk7XG4gICAgICBpZiAoXG4gICAgICAgIHVzZXIgJiZcbiAgICAgICAgJ3VucmVhZF9jb3VudCcgaW4gdXNlciAmJlxuICAgICAgICB1c2VyLnVucmVhZF9jb3VudCAhPT0gZS51bnJlYWRfY291bnRcbiAgICAgICkge1xuICAgICAgICB0aGlzLnVzZXJTdWJqZWN0Lm5leHQoe1xuICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgdW5yZWFkX2NvdW50OiBlLnVucmVhZF9jb3VudCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGUudHlwZSA9PT0gJ3VzZXIudXBkYXRlZCcgJiZcbiAgICAgIHRoaXMuY2hhdENsaWVudC51c2VyICYmXG4gICAgICBlLnVzZXI/LmlkID09PSB0aGlzLmNoYXRDbGllbnQudXNlci5pZFxuICAgICkge1xuICAgICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHsgLi4udGhpcy5jaGF0Q2xpZW50LnVzZXIgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* A central location for registering your custom templates to override parts of the chat application.
|
|
6
|
+
*
|
|
7
|
+
* For code examples to the different customizations see our [customizations example application](https://github.com/GetStream/stream-chat-angular/tree/master/projects/customizations-example), specifically the [AppComponent](https://github.com/GetStream/stream-chat-angular/tree/master/projects/customizations-example/src/app) (see [README](https://github.com/GetStream/stream-chat-angular/blob/master/README.md#customization-examples) for instructions on how to start the application).
|
|
8
|
+
*
|
|
9
|
+
* You can find the type definitions of the context that is provided for each template [on GitHub](https://github.com/GetStream/stream-chat-angular/blob/master/projects/stream-chat-angular/src/lib/types.ts)
|
|
10
|
+
*/
|
|
11
|
+
export class CustomTemplatesService {
|
|
12
|
+
constructor() {
|
|
13
|
+
/**
|
|
14
|
+
* The autocomplete list item template for mentioning users (used in the [`AutocompleteTextareaComponent`](/chat/docs/sdk/angular/v6-rc/components/AutocompleteTextareaComponent/))
|
|
15
|
+
*/
|
|
16
|
+
this.mentionAutocompleteItemTemplate$ = new BehaviorSubject(undefined);
|
|
17
|
+
/**
|
|
18
|
+
* The autocomplete list item template for commands (used in the [`AutocompleteTextareaComponent`](/chat/docs/sdk/angular/v6-rc/components/AutocompleteTextareaComponent/))
|
|
19
|
+
*/
|
|
20
|
+
this.commandAutocompleteItemTemplate$ = new BehaviorSubject(undefined);
|
|
21
|
+
/**
|
|
22
|
+
* Template used to display an item in the [channel list](/chat/docs/sdk/angular/v6-rc/components/ChannelListComponent/) (instead of the default [channal list item](/chat/docs/sdk/angular/v6-rc/components/ChannelPreviewComponent/))
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
this.channelPreviewTemplate$ = new BehaviorSubject(undefined);
|
|
26
|
+
/**
|
|
27
|
+
* The template used for displaying a [mention inside a message](/chat/docs/sdk/angular/v6-rc/code-examples/mention-actions/)
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
this.mentionTemplate$ = new BehaviorSubject(undefined);
|
|
31
|
+
/**
|
|
32
|
+
* The template for [emoji picker](/chat/docs/sdk/angular/v6-rc/code-examples/emoji-picker)
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
35
|
+
this.emojiPickerTemplate$ = new BehaviorSubject(undefined);
|
|
36
|
+
/**
|
|
37
|
+
* The typing indicator template used in the [message list](/chat/docs/sdk/angular/v6-rc/components/MessageListComponent/)
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
this.typingIndicatorTemplate$ = new BehaviorSubject(undefined);
|
|
41
|
+
/**
|
|
42
|
+
* The template used to display a message in the [message list](/chat/docs/sdk/angular/v6-rc/components/MessageListComponent/) (instead of the [default message component](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/))
|
|
43
|
+
*
|
|
44
|
+
*/
|
|
45
|
+
this.messageTemplate$ = new BehaviorSubject(undefined);
|
|
46
|
+
/**
|
|
47
|
+
* The template for channel actions displayed in the [channel header](/chat/docs/sdk/angular/v6-rc/components/ChannelHeaderComponent/) (by default no channel action is displayed)
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
50
|
+
this.channelActionsTemplate$ = new BehaviorSubject(undefined);
|
|
51
|
+
/**
|
|
52
|
+
* The template used to display attachments of a [message](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/) (instead of the [default attachment list](/chat/docs/sdk/angular/v6-rc/components/AttachmentListComponent/))
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
this.attachmentListTemplate$ = new BehaviorSubject(undefined);
|
|
56
|
+
/**
|
|
57
|
+
* The template used to display attachments in the [message input](/chat/docs/sdk/angular/v6-rc/components/MessageInputComponent) component (instead of the [default attachment preview](/chat/docs/sdk/angular/v6-rc/components/AttachmentPreviewListComponent))
|
|
58
|
+
*
|
|
59
|
+
*/
|
|
60
|
+
this.attachmentPreviewListTemplate$ = new BehaviorSubject(undefined);
|
|
61
|
+
/**
|
|
62
|
+
* The template used to display avatars for channels and users (instead of the [default avatar](/chat/docs/sdk/angular/v6-rc/components/AvatarComponent/))
|
|
63
|
+
*
|
|
64
|
+
*/
|
|
65
|
+
this.avatarTemplate$ = new BehaviorSubject(undefined);
|
|
66
|
+
/**
|
|
67
|
+
* Template for displaying icons (instead of the [default icon component](/chat/docs/sdk/angular/v6-rc/components/IconComponent/))
|
|
68
|
+
*
|
|
69
|
+
*/
|
|
70
|
+
this.iconTemplate$ = new BehaviorSubject(undefined);
|
|
71
|
+
/**
|
|
72
|
+
* Template for displaying the loading indicator (instead of the [default loading indicator](/chat/docs/sdk/angular/v6-rc/components/LoadingIndicatorComponent/))
|
|
73
|
+
*
|
|
74
|
+
*/
|
|
75
|
+
this.loadingIndicatorTemplate$ = new BehaviorSubject(undefined);
|
|
76
|
+
/**
|
|
77
|
+
* Template for displaying the message actions box (instead of the [default message actions box](/chat/docs/sdk/angular/v6-rc/components/MessageActionsBoxComponent/))
|
|
78
|
+
*
|
|
79
|
+
*/
|
|
80
|
+
this.messageActionsBoxTemplate$ = new BehaviorSubject(undefined);
|
|
81
|
+
/**
|
|
82
|
+
* The template used for displaying an item in the [message actions box](/chat/docs/sdk/angular/v6-rc/components/MessageActionsBoxComponent/)
|
|
83
|
+
*
|
|
84
|
+
*/
|
|
85
|
+
this.messageActionsBoxItemTemplate$ = new BehaviorSubject(undefined);
|
|
86
|
+
/**
|
|
87
|
+
* The template used to display the reactions of a [message](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/), and the selector to add a reaction to a message (instead of the [default message reactions component](/chat/docs/sdk/angular/v6-rc/components/MessageReactionsComponent/))
|
|
88
|
+
*
|
|
89
|
+
*/
|
|
90
|
+
this.messageReactionsTemplate$ = new BehaviorSubject(undefined);
|
|
91
|
+
/**
|
|
92
|
+
* The template used to display the reactions of a [message](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/), and the selector to add a reaction to a message (instead of the [default message reactions component](/chat/docs/sdk/angular/v6-rc/components/MessageReactionsComponent/))
|
|
93
|
+
*
|
|
94
|
+
*/
|
|
95
|
+
this.messageReactionsSelectorTemplate$ = new BehaviorSubject(undefined);
|
|
96
|
+
/**
|
|
97
|
+
* The template used to display a modal window (instead of the [default modal](/chat/docs/sdk/angular/v6-rc/components/ModalComponent/))
|
|
98
|
+
*
|
|
99
|
+
*/
|
|
100
|
+
this.modalTemplate$ = new BehaviorSubject(undefined);
|
|
101
|
+
/**
|
|
102
|
+
* The template used to override the [default notification component](/chat/docs/sdk/angular/v6-rc/components/NotificationComponent/)
|
|
103
|
+
*
|
|
104
|
+
*/
|
|
105
|
+
this.notificationTemplate$ = new BehaviorSubject(undefined);
|
|
106
|
+
/**
|
|
107
|
+
* The template used for header of a [thread](/chat/docs/sdk/angular/v6-rc/components/ThreadComponent/)
|
|
108
|
+
*
|
|
109
|
+
*/
|
|
110
|
+
this.threadHeaderTemplate$ = new BehaviorSubject(undefined);
|
|
111
|
+
/**
|
|
112
|
+
* The template used for displaying the delivered state of the message inside the [message component](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/)
|
|
113
|
+
*
|
|
114
|
+
* Displayed for the last message sent by the current user, if the message isn't yet read by anyone
|
|
115
|
+
*
|
|
116
|
+
*/
|
|
117
|
+
this.deliveredStatusTemplate$ = new BehaviorSubject(undefined);
|
|
118
|
+
/**
|
|
119
|
+
* The template used for displaying the sending state of the message inside the [message component](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/)
|
|
120
|
+
*
|
|
121
|
+
* Displayed for the last message sent by the current user, if the message is currently being sent
|
|
122
|
+
*
|
|
123
|
+
*/
|
|
124
|
+
this.sendingStatusTemplate$ = new BehaviorSubject(undefined);
|
|
125
|
+
/**
|
|
126
|
+
* The template used for displaying the sent state of the message inside the [message component](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/)
|
|
127
|
+
*
|
|
128
|
+
* Displayed for the last message sent by the current user, if the message is read at least by one user
|
|
129
|
+
*
|
|
130
|
+
*/
|
|
131
|
+
this.readStatusTemplate$ = new BehaviorSubject(undefined);
|
|
132
|
+
/**
|
|
133
|
+
* Template to display custom metadata inside [message component](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/)
|
|
134
|
+
*
|
|
135
|
+
*/
|
|
136
|
+
this.customMessageMetadataTemplate$ = new BehaviorSubject(undefined);
|
|
137
|
+
/**
|
|
138
|
+
* The template used to display additional information about a channel under the channel name inside the [channel header component](/chat/docs/sdk/angular/v6-rc/components/ChannelHeaderComponent/)
|
|
139
|
+
*
|
|
140
|
+
*/
|
|
141
|
+
this.channelHeaderInfoTemplate$ = new BehaviorSubject(undefined);
|
|
142
|
+
/**
|
|
143
|
+
* The template used for displaying file upload/attachment selector inside the [message input](/chat/docs/sdk/angular/v6-rc/components/MessageInputComponent/)
|
|
144
|
+
*
|
|
145
|
+
*/
|
|
146
|
+
this.customAttachmentUploadTemplate$ = new BehaviorSubject(undefined);
|
|
147
|
+
/**
|
|
148
|
+
* The template that can be used to override how a single image attachment is displayed inside the [attachment list](/chat/docs/sdk/angular/v6-rc/components/AttachmentListComponent/)
|
|
149
|
+
*/
|
|
150
|
+
this.imageAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
151
|
+
/**
|
|
152
|
+
* The template that can be used to override how a voice recording attachment is displayed inside the [attachment list](/chat/docs/sdk/angular/v6-rc/components/AttachmentListComponent/), by default the [voice recording component](/chat/docs/sdk/angular/v6-rc/components/VoiceRecordingComponent/) is used
|
|
153
|
+
*/
|
|
154
|
+
this.voiceRecordingAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
155
|
+
/**
|
|
156
|
+
* The template that can be used to override how a video attachment is displayed inside the [attachment list](/chat/docs/sdk/angular/v6-rc/components/AttachmentListComponent/)
|
|
157
|
+
*/
|
|
158
|
+
this.videoAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
159
|
+
/**
|
|
160
|
+
* The template that can be used to override how image gallery is displayed inside the [attachment list](/chat/docs/sdk/angular/v6-rc/components/AttachmentListComponent/)
|
|
161
|
+
*/
|
|
162
|
+
this.galleryAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
163
|
+
/**
|
|
164
|
+
* The template that can be used to override how a file attachment is displayed inside the [attachment list](/chat/docs/sdk/angular/v6-rc/components/AttachmentListComponent/)
|
|
165
|
+
*/
|
|
166
|
+
this.fileAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
167
|
+
/**
|
|
168
|
+
* The template that can be used to override how a card attachment is displayed inside the [attachment list](/chat/docs/sdk/angular/v6-rc/components/AttachmentListComponent/)
|
|
169
|
+
*/
|
|
170
|
+
this.cardAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
171
|
+
/**
|
|
172
|
+
* The template that can be used to override how attachment actions are displayed inside the [attachment list](/chat/docs/sdk/angular/v6-rc/components/AttachmentListComponent/)
|
|
173
|
+
*/
|
|
174
|
+
this.attachmentActionsTemplate$ = new BehaviorSubject(undefined);
|
|
175
|
+
/**
|
|
176
|
+
* The template used to display [system messages](/chat/docs/javascript/silent_messages/) indise the [message component](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/)
|
|
177
|
+
*/
|
|
178
|
+
this.systemMessageTemplate$ = new BehaviorSubject(undefined);
|
|
179
|
+
/**
|
|
180
|
+
* The template used to display the date separator inside the [message list](/chat/docs/sdk/angular/v6-rc/components/MessageListComponent/)
|
|
181
|
+
*/
|
|
182
|
+
this.dateSeparatorTemplate$ = new BehaviorSubject(undefined);
|
|
183
|
+
/**
|
|
184
|
+
* The template used to display unread messages indicator inside the [message list](/chat/docs/sdk/angular/v6-rc/components/MessageListComponent/) when the channel is opened
|
|
185
|
+
*
|
|
186
|
+
* This UI element is used to separate unread messages from read messages
|
|
187
|
+
*/
|
|
188
|
+
this.newMessagesIndicatorTemplate$ = new BehaviorSubject(undefined);
|
|
189
|
+
/**
|
|
190
|
+
* The template used to display unread messages notification inside the [message list](/chat/docs/sdk/angular/v6-rc/components/MessageListComponent/) when the channel is opened
|
|
191
|
+
*
|
|
192
|
+
* Users can use this notification to jump to the first unread message when it's clicked
|
|
193
|
+
*/
|
|
194
|
+
this.newMessagesNotificationTemplate$ = new BehaviorSubject(undefined);
|
|
195
|
+
/**
|
|
196
|
+
* The template to show if the main message list is empty
|
|
197
|
+
*/
|
|
198
|
+
this.emptyMainMessageListPlaceholder$ = new BehaviorSubject(undefined);
|
|
199
|
+
/**
|
|
200
|
+
* The template to show if the thread message list is empty
|
|
201
|
+
*/
|
|
202
|
+
this.emptyThreadMessageListPlaceholder$ = new BehaviorSubject(undefined);
|
|
203
|
+
/**
|
|
204
|
+
* The template used to display the [message bounce prompt](/chat/docs/sdk/angular/v6-rc/components/MessageBouncePromptComponent/)
|
|
205
|
+
*/
|
|
206
|
+
this.messageBouncePromptTemplate$ = new BehaviorSubject(undefined);
|
|
207
|
+
/**
|
|
208
|
+
* Template used to display the channel information inside the [channel list item](/chat/docs/sdk/angular/v6-rc/components/ChannelPreviewComponent/)
|
|
209
|
+
*
|
|
210
|
+
*/
|
|
211
|
+
this.channelPreviewInfoTemplate$ = new BehaviorSubject(undefined);
|
|
212
|
+
/**
|
|
213
|
+
* The template used to display custom attachment previews in the [message input component](/chat/docs/sdk/angular/v6-rc/components/MessageInputComponent/)
|
|
214
|
+
*/
|
|
215
|
+
this.customAttachmentPreviewListTemplate$ = new BehaviorSubject(undefined);
|
|
216
|
+
/**
|
|
217
|
+
* The template used to display custom attachments in the [message component](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/)
|
|
218
|
+
*/
|
|
219
|
+
this.customAttachmentListTemplate$ = new BehaviorSubject(undefined);
|
|
220
|
+
/**
|
|
221
|
+
* The template used to display the number of thread replies inside the [message component](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/)
|
|
222
|
+
*/
|
|
223
|
+
this.threadLinkButton$ = new BehaviorSubject(undefined);
|
|
224
|
+
/**
|
|
225
|
+
* Template to display custom metadata inside the message bubble of the [message component](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/)
|
|
226
|
+
*
|
|
227
|
+
* To properly position your template you should override the `grid-template-areas` of the `.str-chat__message-inner` selector
|
|
228
|
+
*/
|
|
229
|
+
this.customMessageMetadataInsideBubbleTemplate$ = new BehaviorSubject(undefined);
|
|
230
|
+
/**
|
|
231
|
+
* Template to display the text content inside the [message component](/chat/docs/sdk/angular/v6-rc/components/MessageComponent/). The default component is [stream-message-text](/chat/docs/sdk/angular/v6-rc/components/MessageTextComponent/)
|
|
232
|
+
*/
|
|
233
|
+
this.messageTextTemplate$ = new BehaviorSubject(undefined);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
CustomTemplatesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CustomTemplatesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
237
|
+
CustomTemplatesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CustomTemplatesService, providedIn: 'root' });
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CustomTemplatesService, decorators: [{
|
|
239
|
+
type: Injectable,
|
|
240
|
+
args: [{
|
|
241
|
+
providedIn: 'root',
|
|
242
|
+
}]
|
|
243
|
+
}], ctorParameters: function () { return []; } });
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRlbXBsYXRlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2N1c3RvbS10ZW1wbGF0ZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBd0N2Qzs7Ozs7O0dBTUc7QUFJSCxNQUFNLE9BQU8sc0JBQXNCO0lBMlRqQztRQTFUQTs7V0FFRztRQUNILHFDQUFnQyxHQUFHLElBQUksZUFBZSxDQUVwRCxTQUFTLENBQUMsQ0FBQztRQUNiOztXQUVHO1FBQ0gscUNBQWdDLEdBQUcsSUFBSSxlQUFlLENBRXBELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBRXBDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBRXhDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNkJBQXdCLEdBQUcsSUFBSSxlQUFlLENBRTVDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBRXBDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsbUNBQThCLEdBQUcsSUFBSSxlQUFlLENBRWxELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FDbkMsU0FBUyxDQUNWLENBQUM7UUFDRjs7O1dBR0c7UUFDSCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUNqQyxTQUFTLENBQ1YsQ0FBQztRQUNGOzs7V0FHRztRQUNILDhCQUF5QixHQUFHLElBQUksZUFBZSxDQUU3QyxTQUFTLENBQUMsQ0FBQztRQUNiOzs7V0FHRztRQUNILCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUU5QyxTQUFTLENBQUMsQ0FBQztRQUNiOzs7V0FHRztRQUNILG1DQUE4QixHQUFHLElBQUksZUFBZSxDQUVsRCxTQUFTLENBQUMsQ0FBQztRQUNiOzs7V0FHRztRQUNILDhCQUF5QixHQUFHLElBQUksZUFBZSxDQUU3QyxTQUFTLENBQUMsQ0FBQztRQUNiOzs7V0FHRztRQUNILHNDQUFpQyxHQUFHLElBQUksZUFBZSxDQUVyRCxTQUFTLENBQUMsQ0FBQztRQUNiOzs7V0FHRztRQUNILG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQ2xDLFNBQVMsQ0FDVixDQUFDO1FBQ0Y7OztXQUdHO1FBQ0gsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBRXpDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBRXpDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7Ozs7O1dBS0c7UUFDSCw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FFNUMsU0FBUyxDQUFDLENBQUM7UUFDYjs7Ozs7V0FLRztRQUNILDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUUxQyxTQUFTLENBQUMsQ0FBQztRQUNiOzs7OztXQUtHO1FBQ0gsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBRXZDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsbUNBQThCLEdBQUcsSUFBSSxlQUFlLENBRWxELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsK0JBQTBCLEdBQUcsSUFBSSxlQUFlLENBRTlDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsb0NBQStCLEdBQUcsSUFBSSxlQUFlLENBRW5ELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7O1dBRUc7UUFDSCw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FFNUMsU0FBUyxDQUFDLENBQUM7UUFDYjs7V0FFRztRQUNILHNDQUFpQyxHQUFHLElBQUksZUFBZSxDQUVyRCxTQUFTLENBQUMsQ0FBQztRQUNiOztXQUVHO1FBQ0gsNkJBQXdCLEdBQUcsSUFBSSxlQUFlLENBRTVDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7O1dBRUc7UUFDSCwrQkFBMEIsR0FBRyxJQUFJLGVBQWUsQ0FFOUMsU0FBUyxDQUFDLENBQUM7UUFDYjs7V0FFRztRQUNILDRCQUF1QixHQUFHLElBQUksZUFBZSxDQUUzQyxTQUFTLENBQUMsQ0FBQztRQUNiOztXQUVHO1FBQ0gsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7O1dBRUc7UUFDSCwrQkFBMEIsR0FBRyxJQUFJLGVBQWUsQ0FFOUMsU0FBUyxDQUFDLENBQUM7UUFDYjs7V0FFRztRQUNILDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUUxQyxTQUFTLENBQUMsQ0FBQztRQUNiOztXQUVHO1FBQ0gsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBRTFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7Ozs7V0FJRztRQUNILGtDQUE2QixHQUFHLElBQUksZUFBZSxDQUVqRCxTQUFTLENBQUMsQ0FBQztRQUNiOzs7O1dBSUc7UUFDSCxxQ0FBZ0MsR0FBRyxJQUFJLGVBQWUsQ0FFcEQsU0FBUyxDQUFDLENBQUM7UUFDYjs7V0FFRztRQUNILHFDQUFnQyxHQUFHLElBQUksZUFBZSxDQUVwRCxTQUFTLENBQUMsQ0FBQztRQUNiOztXQUVHO1FBQ0gsdUNBQWtDLEdBQUcsSUFBSSxlQUFlLENBRXRELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7O1dBRUc7UUFDSCxpQ0FBNEIsR0FBRyxJQUFJLGVBQWUsQ0FFaEQsU0FBUyxDQUFDLENBQUM7UUFDYjs7O1dBR0c7UUFDSCxnQ0FBMkIsR0FBRyxJQUFJLGVBQWUsQ0FFL0MsU0FBUyxDQUFDLENBQUM7UUFDYjs7V0FFRztRQUNILHlDQUFvQyxHQUFHLElBQUksZUFBZSxDQUV4RCxTQUFTLENBQUMsQ0FBQztRQUNiOztXQUVHO1FBQ0gsa0NBQTZCLEdBQUcsSUFBSSxlQUFlLENBRWpELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7O1dBRUc7UUFDSCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FFckMsU0FBUyxDQUFDLENBQUM7UUFDYjs7OztXQUlHO1FBQ0gsK0NBQTBDLEdBQUcsSUFBSSxlQUFlLENBRTlELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7O1dBRUc7UUFDSCx5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FFeEMsU0FBUyxDQUFDLENBQUM7SUFFRSxDQUFDOzttSEEzVEwsc0JBQXNCO3VIQUF0QixzQkFBc0IsY0FGckIsTUFBTTsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQXR0YWNobWVudENvbnRleHQsXG4gIEF0dGFjaG1lbnRMaXN0Q29udGV4dCxcbiAgQXR0YWNobWVudFByZXZpZXdMaXN0Q29udGV4dCxcbiAgQXZhdGFyQ29udGV4dCxcbiAgQ2hhbm5lbEFjdGlvbnNDb250ZXh0LFxuICBDaGFubmVsSGVhZGVySW5mb0NvbnRleHQsXG4gIENoYW5uZWxQcmV2aWV3Q29udGV4dCxcbiAgQ2hhbm5lbFByZXZpZXdJbmZvQ29udGV4dCxcbiAgQ29tbWFuZEF1dG9jb21wbGV0ZUxpc3RJdGVtQ29udGV4dCxcbiAgQ3VzdG9tQXR0YWNobWVudExpc3RDb250ZXh0LFxuICBDdXN0b21BdHRhY2htZW50UHJldmlld0xpc3RDb250ZXh0LFxuICBDdXN0b21BdHRhY2htZW50VXBsb2FkQ29udGV4dCxcbiAgQ3VzdG9tTWV0YWRhdGFDb250ZXh0LFxuICBEYXRlU2VwYXJhdG9yQ29udGV4dCxcbiAgRGVsaXZlcmVkU3RhdHVzQ29udGV4dCxcbiAgRW1vamlQaWNrZXJDb250ZXh0LFxuICBHYWxsZXJ5QXR0YWNobWVudENvbnRleHQsXG4gIEljb25Db250ZXh0LFxuICBNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbUNvbnRleHQsXG4gIE1lbnRpb25UZW1wbGF0ZUNvbnRleHQsXG4gIE1lc3NhZ2VBY3Rpb25Cb3hJdGVtQ29udGV4dCxcbiAgTWVzc2FnZUFjdGlvbnNCb3hDb250ZXh0LFxuICBNZXNzYWdlQ29udGV4dCxcbiAgTWVzc2FnZVJlYWN0aW9uc0NvbnRleHQsXG4gIE1lc3NhZ2VSZWFjdGlvbnNTZWxlY3RvckNvbnRleHQsXG4gIE1lc3NhZ2VUZXh0Q29udGV4dCxcbiAgTW9kYWxDb250ZXh0LFxuICBOb3RpZmljYXRpb25Db250ZXh0LFxuICBSZWFkU3RhdHVzQ29udGV4dCxcbiAgU2VuZGluZ1N0YXR1c0NvbnRleHQsXG4gIFN5c3RlbU1lc3NhZ2VDb250ZXh0LFxuICBUaHJlYWRIZWFkZXJDb250ZXh0LFxuICBUaHJlYWRSZXBseUJ1dHRvbkNvbnRleHQsXG4gIFR5cGluZ0luZGljYXRvckNvbnRleHQsXG4gIFVucmVhZE1lc3NhZ2VzSW5kaWNhdG9yQ29udGV4dCxcbiAgVW5yZWFkTWVzc2FnZXNOb3RpZmljYXRpb25Db250ZXh0LFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBBIGNlbnRyYWwgbG9jYXRpb24gZm9yIHJlZ2lzdGVyaW5nIHlvdXIgY3VzdG9tIHRlbXBsYXRlcyB0byBvdmVycmlkZSBwYXJ0cyBvZiB0aGUgY2hhdCBhcHBsaWNhdGlvbi5cbiAqXG4gKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAqXG4gKiBZb3UgY2FuIGZpbmQgdGhlIHR5cGUgZGVmaW5pdGlvbnMgb2YgdGhlIGNvbnRleHQgdGhhdCBpcyBwcm92aWRlZCBmb3IgZWFjaCB0ZW1wbGF0ZSBbb24gR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL3R5cGVzLnRzKVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tVGVtcGxhdGVzU2VydmljZSB7XG4gIC8qKlxuICAgKiBUaGUgYXV0b2NvbXBsZXRlIGxpc3QgaXRlbSB0ZW1wbGF0ZSBmb3IgbWVudGlvbmluZyB1c2VycyAodXNlZCBpbiB0aGUgW2BBdXRvY29tcGxldGVUZXh0YXJlYUNvbXBvbmVudGBdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9BdXRvY29tcGxldGVUZXh0YXJlYUNvbXBvbmVudC8pKVxuICAgKi9cbiAgbWVudGlvbkF1dG9jb21wbGV0ZUl0ZW1UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lbnRpb25BdXRjb21wbGV0ZUxpc3RJdGVtQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIGF1dG9jb21wbGV0ZSBsaXN0IGl0ZW0gdGVtcGxhdGUgZm9yIGNvbW1hbmRzICh1c2VkIGluIHRoZSBbYEF1dG9jb21wbGV0ZVRleHRhcmVhQ29tcG9uZW50YF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL0F1dG9jb21wbGV0ZVRleHRhcmVhQ29tcG9uZW50LykpXG4gICAqL1xuICBjb21tYW5kQXV0b2NvbXBsZXRlSXRlbVRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Q29tbWFuZEF1dG9jb21wbGV0ZUxpc3RJdGVtQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGFuIGl0ZW0gaW4gdGhlIFtjaGFubmVsIGxpc3RdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9DaGFubmVsTGlzdENvbXBvbmVudC8pIChpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IFtjaGFubmFsIGxpc3QgaXRlbV0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL0NoYW5uZWxQcmV2aWV3Q29tcG9uZW50LykpXG4gICAqXG4gICAqL1xuICBjaGFubmVsUHJldmlld1RlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Q2hhbm5lbFByZXZpZXdDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCBmb3IgZGlzcGxheWluZyBhIFttZW50aW9uIGluc2lkZSBhIG1lc3NhZ2VdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29kZS1leGFtcGxlcy9tZW50aW9uLWFjdGlvbnMvKVxuICAgKlxuICAgKi9cbiAgbWVudGlvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8TWVudGlvblRlbXBsYXRlQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIGZvciBbZW1vamkgcGlja2VyXSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvZGUtZXhhbXBsZXMvZW1vamktcGlja2VyKVxuICAgKlxuICAgKi9cbiAgZW1vamlQaWNrZXJUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEVtb2ppUGlja2VyQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHR5cGluZyBpbmRpY2F0b3IgdGVtcGxhdGUgdXNlZCBpbiB0aGUgW21lc3NhZ2UgbGlzdF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL01lc3NhZ2VMaXN0Q29tcG9uZW50LylcbiAgICpcbiAgICovXG4gIHR5cGluZ0luZGljYXRvclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8VHlwaW5nSW5kaWNhdG9yQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSBhIG1lc3NhZ2UgaW4gdGhlIFttZXNzYWdlIGxpc3RdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlTGlzdENvbXBvbmVudC8pIChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBtZXNzYWdlIGNvbXBvbmVudF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQvKSlcbiAgICpcbiAgICovXG4gIG1lc3NhZ2VUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgZm9yIGNoYW5uZWwgYWN0aW9ucyBkaXNwbGF5ZWQgaW4gdGhlIFtjaGFubmVsIGhlYWRlcl0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL0NoYW5uZWxIZWFkZXJDb21wb25lbnQvKSAoYnkgZGVmYXVsdCBubyBjaGFubmVsIGFjdGlvbiBpcyBkaXNwbGF5ZWQpXG4gICAqXG4gICAqL1xuICBjaGFubmVsQWN0aW9uc1RlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Q2hhbm5lbEFjdGlvbnNDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGF0dGFjaG1lbnRzIG9mIGEgW21lc3NhZ2VdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50LykgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IGF0dGFjaG1lbnQgbGlzdF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50LykpXG4gICAqXG4gICAqL1xuICBhdHRhY2htZW50TGlzdFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8QXR0YWNobWVudExpc3RDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGF0dGFjaG1lbnRzIGluIHRoZSBbbWVzc2FnZSBpbnB1dF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL01lc3NhZ2VJbnB1dENvbXBvbmVudCkgY29tcG9uZW50IChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBhdHRhY2htZW50IHByZXZpZXddKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9BdHRhY2htZW50UHJldmlld0xpc3RDb21wb25lbnQpKVxuICAgKlxuICAgKi9cbiAgYXR0YWNobWVudFByZXZpZXdMaXN0VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxBdHRhY2htZW50UHJldmlld0xpc3RDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGF2YXRhcnMgZm9yIGNoYW5uZWxzIGFuZCB1c2VycyAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgYXZhdGFyXSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvQXZhdGFyQ29tcG9uZW50LykpXG4gICAqXG4gICAqL1xuICBhdmF0YXJUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPEF2YXRhckNvbnRleHQ+IHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIGljb25zIChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBpY29uIGNvbXBvbmVudF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL0ljb25Db21wb25lbnQvKSlcbiAgICpcbiAgICovXG4gIGljb25UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPEljb25Db250ZXh0PiB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBmb3IgZGlzcGxheWluZyB0aGUgbG9hZGluZyBpbmRpY2F0b3IgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IGxvYWRpbmcgaW5kaWNhdG9yXSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvTG9hZGluZ0luZGljYXRvckNvbXBvbmVudC8pKVxuICAgKlxuICAgKi9cbiAgbG9hZGluZ0luZGljYXRvclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8dm9pZD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGVtcGxhdGUgZm9yIGRpc3BsYXlpbmcgdGhlIG1lc3NhZ2UgYWN0aW9ucyBib3ggKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IG1lc3NhZ2UgYWN0aW9ucyBib3hdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlQWN0aW9uc0JveENvbXBvbmVudC8pKVxuICAgKlxuICAgKi9cbiAgbWVzc2FnZUFjdGlvbnNCb3hUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VBY3Rpb25zQm94Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgZm9yIGRpc3BsYXlpbmcgYW4gaXRlbSBpbiB0aGUgW21lc3NhZ2UgYWN0aW9ucyBib3hdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlQWN0aW9uc0JveENvbXBvbmVudC8pXG4gICAqXG4gICAqL1xuICBtZXNzYWdlQWN0aW9uc0JveEl0ZW1UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VBY3Rpb25Cb3hJdGVtQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB0aGUgcmVhY3Rpb25zIG9mIGEgW21lc3NhZ2VdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50LyksIGFuZCB0aGUgc2VsZWN0b3IgdG8gYWRkIGEgcmVhY3Rpb24gdG8gYSBtZXNzYWdlIChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBtZXNzYWdlIHJlYWN0aW9ucyBjb21wb25lbnRdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlUmVhY3Rpb25zQ29tcG9uZW50LykpXG4gICAqXG4gICAqL1xuICBtZXNzYWdlUmVhY3Rpb25zVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxNZXNzYWdlUmVhY3Rpb25zQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB0aGUgcmVhY3Rpb25zIG9mIGEgW21lc3NhZ2VdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50LyksIGFuZCB0aGUgc2VsZWN0b3IgdG8gYWRkIGEgcmVhY3Rpb24gdG8gYSBtZXNzYWdlIChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBtZXNzYWdlIHJlYWN0aW9ucyBjb21wb25lbnRdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlUmVhY3Rpb25zQ29tcG9uZW50LykpXG4gICAqXG4gICAqL1xuICBtZXNzYWdlUmVhY3Rpb25zU2VsZWN0b3JUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VSZWFjdGlvbnNTZWxlY3RvckNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgYSBtb2RhbCB3aW5kb3cgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IG1vZGFsXSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvTW9kYWxDb21wb25lbnQvKSlcbiAgICpcbiAgICovXG4gIG1vZGFsVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxNb2RhbENvbnRleHQ+IHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBbZGVmYXVsdCBub3RpZmljYXRpb24gY29tcG9uZW50XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uQ29tcG9uZW50LylcbiAgICpcbiAgICovXG4gIG5vdGlmaWNhdGlvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Tm90aWZpY2F0aW9uQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgZm9yIGhlYWRlciBvZiBhIFt0aHJlYWRdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9UaHJlYWRDb21wb25lbnQvKVxuICAgKlxuICAgKi9cbiAgdGhyZWFkSGVhZGVyVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxUaHJlYWRIZWFkZXJDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCBmb3IgZGlzcGxheWluZyB0aGUgZGVsaXZlcmVkIHN0YXRlIG9mIHRoZSBtZXNzYWdlIGluc2lkZSB0aGUgW21lc3NhZ2UgY29tcG9uZW50XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC8pXG4gICAqXG4gICAqIERpc3BsYXllZCBmb3IgdGhlIGxhc3QgbWVzc2FnZSBzZW50IGJ5IHRoZSBjdXJyZW50IHVzZXIsIGlmIHRoZSBtZXNzYWdlIGlzbid0IHlldCByZWFkIGJ5IGFueW9uZVxuICAgKlxuICAgKi9cbiAgZGVsaXZlcmVkU3RhdHVzVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxEZWxpdmVyZWRTdGF0dXNDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCBmb3IgZGlzcGxheWluZyB0aGUgc2VuZGluZyBzdGF0ZSBvZiB0aGUgbWVzc2FnZSBpbnNpZGUgdGhlIFttZXNzYWdlIGNvbXBvbmVudF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQvKVxuICAgKlxuICAgKiBEaXNwbGF5ZWQgZm9yIHRoZSBsYXN0IG1lc3NhZ2Ugc2VudCBieSB0aGUgY3VycmVudCB1c2VyLCBpZiB0aGUgbWVzc2FnZSBpcyBjdXJyZW50bHkgYmVpbmcgc2VudFxuICAgKlxuICAgKi9cbiAgc2VuZGluZ1N0YXR1c1RlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8U2VuZGluZ1N0YXR1c0NvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBkaXNwbGF5aW5nIHRoZSBzZW50IHN0YXRlIG9mIHRoZSBtZXNzYWdlIGluc2lkZSB0aGUgW21lc3NhZ2UgY29tcG9uZW50XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC8pXG4gICAqXG4gICAqIERpc3BsYXllZCBmb3IgdGhlIGxhc3QgbWVzc2FnZSBzZW50IGJ5IHRoZSBjdXJyZW50IHVzZXIsIGlmIHRoZSBtZXNzYWdlIGlzIHJlYWQgYXQgbGVhc3QgYnkgb25lIHVzZXJcbiAgICpcbiAgICovXG4gIHJlYWRTdGF0dXNUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPFJlYWRTdGF0dXNDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSB0byBkaXNwbGF5IGN1c3RvbSBtZXRhZGF0YSBpbnNpZGUgW21lc3NhZ2UgY29tcG9uZW50XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC8pXG4gICAqXG4gICAqL1xuICBjdXN0b21NZXNzYWdlTWV0YWRhdGFUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEN1c3RvbU1ldGFkYXRhQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IGEgY2hhbm5lbCB1bmRlciB0aGUgY2hhbm5lbCBuYW1lIGluc2lkZSB0aGUgW2NoYW5uZWwgaGVhZGVyIGNvbXBvbmVudF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL0NoYW5uZWxIZWFkZXJDb21wb25lbnQvKVxuICAgKlxuICAgKi9cbiAgY2hhbm5lbEhlYWRlckluZm9UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPENoYW5uZWxIZWFkZXJJbmZvQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgZm9yIGRpc3BsYXlpbmcgZmlsZSB1cGxvYWQvYXR0YWNobWVudCBzZWxlY3RvciBpbnNpZGUgdGhlIFttZXNzYWdlIGlucHV0XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvTWVzc2FnZUlucHV0Q29tcG9uZW50LylcbiAgICpcbiAgICovXG4gIGN1c3RvbUF0dGFjaG1lbnRVcGxvYWRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEN1c3RvbUF0dGFjaG1lbnRVcGxvYWRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBob3cgYSBzaW5nbGUgaW1hZ2UgYXR0YWNobWVudCBpcyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBbYXR0YWNobWVudCBsaXN0XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvQXR0YWNobWVudExpc3RDb21wb25lbnQvKVxuICAgKi9cbiAgaW1hZ2VBdHRhY2htZW50VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxBdHRhY2htZW50Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgaG93IGEgdm9pY2UgcmVjb3JkaW5nIGF0dGFjaG1lbnQgaXMgZGlzcGxheWVkIGluc2lkZSB0aGUgW2F0dGFjaG1lbnQgbGlzdF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50LyksIGJ5IGRlZmF1bHQgdGhlIFt2b2ljZSByZWNvcmRpbmcgY29tcG9uZW50XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvVm9pY2VSZWNvcmRpbmdDb21wb25lbnQvKSBpcyB1c2VkXG4gICAqL1xuICB2b2ljZVJlY29yZGluZ0F0dGFjaG1lbnRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEF0dGFjaG1lbnRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBob3cgYSB2aWRlbyBhdHRhY2htZW50IGlzIGRpc3BsYXllZCBpbnNpZGUgdGhlIFthdHRhY2htZW50IGxpc3RdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9BdHRhY2htZW50TGlzdENvbXBvbmVudC8pXG4gICAqL1xuICB2aWRlb0F0dGFjaG1lbnRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEF0dGFjaG1lbnRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBob3cgaW1hZ2UgZ2FsbGVyeSBpcyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBbYXR0YWNobWVudCBsaXN0XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvQXR0YWNobWVudExpc3RDb21wb25lbnQvKVxuICAgKi9cbiAgZ2FsbGVyeUF0dGFjaG1lbnRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEdhbGxlcnlBdHRhY2htZW50Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgaG93IGEgZmlsZSBhdHRhY2htZW50IGlzIGRpc3BsYXllZCBpbnNpZGUgdGhlIFthdHRhY2htZW50IGxpc3RdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9BdHRhY2htZW50TGlzdENvbXBvbmVudC8pXG4gICAqL1xuICBmaWxlQXR0YWNobWVudFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8QXR0YWNobWVudENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB0aGF0IGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIGhvdyBhIGNhcmQgYXR0YWNobWVudCBpcyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBbYXR0YWNobWVudCBsaXN0XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvQXR0YWNobWVudExpc3RDb21wb25lbnQvKVxuICAgKi9cbiAgY2FyZEF0dGFjaG1lbnRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEF0dGFjaG1lbnRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBob3cgYXR0YWNobWVudCBhY3Rpb25zIGFyZSBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBbYXR0YWNobWVudCBsaXN0XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvQXR0YWNobWVudExpc3RDb21wb25lbnQvKVxuICAgKi9cbiAgYXR0YWNobWVudEFjdGlvbnNUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEF0dGFjaG1lbnRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IFtzeXN0ZW0gbWVzc2FnZXNdKC9jaGF0L2RvY3MvamF2YXNjcmlwdC9zaWxlbnRfbWVzc2FnZXMvKSBpbmRpc2UgdGhlIFttZXNzYWdlIGNvbXBvbmVudF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQvKVxuICAgKi9cbiAgc3lzdGVtTWVzc2FnZVRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8U3lzdGVtTWVzc2FnZUNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRhdGUgc2VwYXJhdG9yIGluc2lkZSB0aGUgW21lc3NhZ2UgbGlzdF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL01lc3NhZ2VMaXN0Q29tcG9uZW50LylcbiAgICovXG4gIGRhdGVTZXBhcmF0b3JUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPERhdGVTZXBhcmF0b3JDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHVucmVhZCBtZXNzYWdlcyBpbmRpY2F0b3IgaW5zaWRlIHRoZSBbbWVzc2FnZSBsaXN0XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvTWVzc2FnZUxpc3RDb21wb25lbnQvKSB3aGVuIHRoZSBjaGFubmVsIGlzIG9wZW5lZFxuICAgKlxuICAgKiBUaGlzIFVJIGVsZW1lbnQgaXMgdXNlZCB0byBzZXBhcmF0ZSB1bnJlYWQgbWVzc2FnZXMgZnJvbSByZWFkIG1lc3NhZ2VzXG4gICAqL1xuICBuZXdNZXNzYWdlc0luZGljYXRvclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8VW5yZWFkTWVzc2FnZXNJbmRpY2F0b3JDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHVucmVhZCBtZXNzYWdlcyBub3RpZmljYXRpb24gaW5zaWRlIHRoZSBbbWVzc2FnZSBsaXN0XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvTWVzc2FnZUxpc3RDb21wb25lbnQvKSB3aGVuIHRoZSBjaGFubmVsIGlzIG9wZW5lZFxuICAgKlxuICAgKiBVc2VycyBjYW4gdXNlIHRoaXMgbm90aWZpY2F0aW9uIHRvIGp1bXAgdG8gdGhlIGZpcnN0IHVucmVhZCBtZXNzYWdlIHdoZW4gaXQncyBjbGlja2VkXG4gICAqL1xuICBuZXdNZXNzYWdlc05vdGlmaWNhdGlvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8VW5yZWFkTWVzc2FnZXNOb3RpZmljYXRpb25Db250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdG8gc2hvdyBpZiB0aGUgbWFpbiBtZXNzYWdlIGxpc3QgaXMgZW1wdHlcbiAgICovXG4gIGVtcHR5TWFpbk1lc3NhZ2VMaXN0UGxhY2Vob2xkZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjx2b2lkPiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdG8gc2hvdyBpZiB0aGUgdGhyZWFkIG1lc3NhZ2UgbGlzdCBpcyBlbXB0eVxuICAgKi9cbiAgZW1wdHlUaHJlYWRNZXNzYWdlTGlzdFBsYWNlaG9sZGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8dm9pZD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB0aGUgW21lc3NhZ2UgYm91bmNlIHByb21wdF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL01lc3NhZ2VCb3VuY2VQcm9tcHRDb21wb25lbnQvKVxuICAgKi9cbiAgbWVzc2FnZUJvdW5jZVByb21wdFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8dm9pZD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHRoZSBjaGFubmVsIGluZm9ybWF0aW9uIGluc2lkZSB0aGUgW2NoYW5uZWwgbGlzdCBpdGVtXSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvQ2hhbm5lbFByZXZpZXdDb21wb25lbnQvKVxuICAgKlxuICAgKi9cbiAgY2hhbm5lbFByZXZpZXdJbmZvVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxDaGFubmVsUHJldmlld0luZm9Db250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGN1c3RvbSBhdHRhY2htZW50IHByZXZpZXdzIGluIHRoZSBbbWVzc2FnZSBpbnB1dCBjb21wb25lbnRdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlSW5wdXRDb21wb25lbnQvKVxuICAgKi9cbiAgY3VzdG9tQXR0YWNobWVudFByZXZpZXdMaXN0VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxDdXN0b21BdHRhY2htZW50UHJldmlld0xpc3RDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGN1c3RvbSBhdHRhY2htZW50cyBpbiB0aGUgW21lc3NhZ2UgY29tcG9uZW50XSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3Y2LXJjL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC8pXG4gICAqL1xuICBjdXN0b21BdHRhY2htZW50TGlzdFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Q3VzdG9tQXR0YWNobWVudExpc3RDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHRoZSBudW1iZXIgb2YgdGhyZWFkIHJlcGxpZXMgaW5zaWRlIHRoZSBbbWVzc2FnZSBjb21wb25lbnRdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50LylcbiAgICovXG4gIHRocmVhZExpbmtCdXR0b24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxUaHJlYWRSZXBseUJ1dHRvbkNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIHRvIGRpc3BsYXkgY3VzdG9tIG1ldGFkYXRhIGluc2lkZSB0aGUgbWVzc2FnZSBidWJibGUgb2YgdGhlIFttZXNzYWdlIGNvbXBvbmVudF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQvKVxuICAgKlxuICAgKiBUbyBwcm9wZXJseSBwb3NpdGlvbiB5b3VyIHRlbXBsYXRlIHlvdSBzaG91bGQgb3ZlcnJpZGUgdGhlIGBncmlkLXRlbXBsYXRlLWFyZWFzYCBvZiB0aGUgYC5zdHItY2hhdF9fbWVzc2FnZS1pbm5lcmAgc2VsZWN0b3JcbiAgICovXG4gIGN1c3RvbU1lc3NhZ2VNZXRhZGF0YUluc2lkZUJ1YmJsZVRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Q3VzdG9tTWV0YWRhdGFDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSB0byBkaXNwbGF5IHRoZSB0ZXh0IGNvbnRlbnQgaW5zaWRlIHRoZSBbbWVzc2FnZSBjb21wb25lbnRdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvdjYtcmMvY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50LykuIFRoZSBkZWZhdWx0IGNvbXBvbmVudCBpcyBbc3RyZWFtLW1lc3NhZ2UtdGV4dF0oL2NoYXQvZG9jcy9zZGsvYW5ndWxhci92Ni1yYy9jb21wb25lbnRzL01lc3NhZ2VUZXh0Q29tcG9uZW50LylcbiAgICovXG4gIG1lc3NhZ2VUZXh0VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxNZXNzYWdlVGV4dENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
|
|
@@ -39,13 +39,13 @@ export class DateParserService {
|
|
|
39
39
|
}
|
|
40
40
|
return parseDate(date, 'date-time');
|
|
41
41
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: DateParserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: DateParserService, providedIn: 'root' }); }
|
|
44
42
|
}
|
|
45
|
-
i0.ɵɵ
|
|
43
|
+
DateParserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateParserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
44
|
+
DateParserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateParserService, providedIn: 'root' });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateParserService, decorators: [{
|
|
46
46
|
type: Injectable,
|
|
47
47
|
args: [{
|
|
48
48
|
providedIn: 'root',
|
|
49
49
|
}]
|
|
50
|
-
}], ctorParameters: ()
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
}], ctorParameters: function () { return []; } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1wYXJzZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXBhcnNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekM7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBYzVCLGdCQUFlLENBQUM7SUFFaEI7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxJQUFVO1FBQ2xCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLElBQVU7UUFDbEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEM7UUFDRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsSUFBVTtRQUN0QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs4R0FsRFUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcGFyc2VEYXRlIH0gZnJvbSAnLi9wYXJzZS1kYXRlJztcblxuLyoqXG4gKiBUaGUgYERhdGVQYXJzZXJTZXJ2aWNlYCBwYXJzZXMgZGF0ZXMgaW50byB1c2VyLWZyaWVuZGx5IHN0cmluZyByZXByZXNlbnRhdGlvbnMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGFyc2VyU2VydmljZSB7XG4gIC8qKlxuICAgKiBDdXN0b20gcGFyc2VyIHRvIG92ZXJyaWRlIGBwYXJzZVRpbWVgXG4gICAqL1xuICBjdXN0b21UaW1lUGFyc2VyPzogKGRhdGU6IERhdGUpID0+IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSBwYXJzZXIgdG8gb3ZlcnJpZGUgYHBhcnNlRGF0ZWBcbiAgICovXG4gIGN1c3RvbURhdGVQYXJzZXI/OiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIHBhcnNlciB0byBvdmVycmlkZSBgcGFyc2VEYXRlVGltZWBcbiAgICovXG4gIGN1c3RvbURhdGVUaW1lUGFyc2VyPzogKGRhdGU6IERhdGUpID0+IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHVzZXItZnJpZW5kbHkgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0aW1lXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqIEByZXR1cm5zIFRoZSBwYXJzZWQgdGltZVxuICAgKi9cbiAgcGFyc2VUaW1lKGRhdGU6IERhdGUpIHtcbiAgICBpZiAodGhpcy5jdXN0b21UaW1lUGFyc2VyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXN0b21UaW1lUGFyc2VyKGRhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VEYXRlKGRhdGUsICd0aW1lJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgdXNlci1mcmllbmRseSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRhdGUgKHllYXIsIG1vbnRoIGFuZCBkYXRlKVxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIGRhdGVcbiAgICovXG4gIHBhcnNlRGF0ZShkYXRlOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMuY3VzdG9tRGF0ZVBhcnNlcikge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tRGF0ZVBhcnNlcihkYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlRGF0ZShkYXRlLCAnZGF0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHVzZXItZnJpZW5kbHkgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRlIGFuZCB0aW1lXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqIEByZXR1cm5zIFRoZSBwYXJzZWQgZGF0ZVxuICAgKi9cbiAgcGFyc2VEYXRlVGltZShkYXRlOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMuY3VzdG9tRGF0ZVRpbWVQYXJzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1c3RvbURhdGVUaW1lUGFyc2VyKGRhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VEYXRlKGRhdGUsICdkYXRlLXRpbWUnKTtcbiAgfVxufVxuIl19
|