stream-chat-angular 2.20.2 → 3.0.0-beta.10
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 +44 -12
- package/assets/version.d.ts +1 -1
- package/bundles/stream-chat-angular.umd.js +780 -534
- package/bundles/stream-chat-angular.umd.js.map +1 -1
- package/esm2015/assets/version.js +2 -2
- package/esm2015/lib/attachment-list/attachment-list.component.js +27 -15
- package/esm2015/lib/attachment-preview-list/attachment-preview-list.component.js +28 -22
- package/esm2015/lib/attachment.service.js +11 -5
- package/esm2015/lib/avatar-placeholder/avatar-placeholder.component.js +41 -0
- package/esm2015/lib/channel-header/channel-header.component.js +26 -12
- package/esm2015/lib/channel-list/channel-list.component.js +23 -13
- package/esm2015/lib/channel-preview/channel-preview.component.js +3 -3
- package/esm2015/lib/channel.service.js +28 -35
- package/esm2015/lib/chat-client.service.js +5 -4
- package/esm2015/lib/custom-templates.service.js +139 -0
- package/esm2015/lib/icon-placeholder/icon-placeholder.component.js +34 -0
- package/esm2015/lib/loading-indicator-placeholder/loading-indicator-placeholder.component.js +42 -0
- package/esm2015/lib/message/message.component.js +74 -29
- package/esm2015/lib/message-actions-box/message-actions-box.component.js +114 -99
- package/esm2015/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.js +13 -13
- package/esm2015/lib/message-input/message-input-config.service.js +1 -1
- package/esm2015/lib/message-input/message-input.component.js +56 -45
- package/esm2015/lib/message-input/textarea.directive.js +2 -18
- package/esm2015/lib/message-input/textarea.interface.js +1 -1
- package/esm2015/lib/message-list/message-list.component.js +32 -93
- package/esm2015/lib/message-preview.js +4 -17
- package/esm2015/lib/message-reactions/message-reactions.component.js +3 -3
- package/esm2015/lib/modal/modal.component.js +9 -6
- package/esm2015/lib/notification/notification.component.js +5 -2
- package/esm2015/lib/notification-list/notification-list.component.js +12 -10
- package/esm2015/lib/read-by.js +1 -1
- package/esm2015/lib/stream-avatar.module.js +5 -4
- package/esm2015/lib/stream-chat.module.js +13 -3
- package/esm2015/lib/thread/thread.component.js +19 -11
- package/esm2015/lib/types.js +1 -1
- package/esm2015/public-api.js +5 -1
- package/fesm2015/stream-chat-angular.js +723 -449
- package/fesm2015/stream-chat-angular.js.map +1 -1
- package/lib/attachment-list/attachment-list.component.d.ts +12 -8
- package/lib/attachment-preview-list/attachment-preview-list.component.d.ts +17 -7
- package/lib/attachment.service.d.ts +1 -1
- package/lib/avatar-placeholder/avatar-placeholder.component.d.ts +25 -0
- package/lib/channel-header/channel-header.component.d.ts +15 -12
- package/lib/channel-list/channel-list.component.d.ts +14 -11
- package/lib/channel-preview/channel-preview.component.d.ts +3 -2
- package/lib/channel.service.d.ts +32 -31
- package/lib/chat-client.service.d.ts +12 -11
- package/lib/custom-templates.service.d.ts +132 -0
- package/lib/icon-placeholder/icon-placeholder.component.d.ts +22 -0
- package/lib/loading-indicator-placeholder/loading-indicator-placeholder.component.d.ts +21 -0
- package/lib/message/message.component.d.ts +42 -30
- package/lib/message-actions-box/message-actions-box.component.d.ts +22 -26
- package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +7 -11
- package/lib/message-input/message-input-config.service.d.ts +0 -19
- package/lib/message-input/message-input.component.d.ts +40 -26
- package/lib/message-input/textarea.directive.d.ts +3 -6
- package/lib/message-input/textarea.interface.d.ts +1 -4
- package/lib/message-list/group-styles.d.ts +1 -1
- package/lib/message-list/message-list.component.d.ts +10 -34
- package/lib/message-preview.d.ts +2 -1
- package/lib/message-reactions/message-reactions.component.d.ts +4 -5
- package/lib/modal/modal.component.d.ts +7 -3
- package/lib/notification/notification.component.d.ts +6 -1
- package/lib/notification-list/notification-list.component.d.ts +4 -2
- package/lib/read-by.d.ts +2 -1
- package/lib/stream-avatar.module.d.ts +4 -3
- package/lib/stream-chat.module.d.ts +6 -4
- package/lib/thread/thread.component.d.ts +6 -3
- package/lib/types.d.ts +115 -9
- package/package.json +2 -3
- package/public-api.d.ts +4 -0
- package/src/assets/styles/assets/EmojiOneColor.woff2 +0 -0
- package/src/assets/styles/assets/NotoColorEmoji-flags.woff2 +0 -0
- package/src/assets/styles/assets/Poweredby_100px-White_VertText.png +0 -0
- package/src/assets/styles/assets/str-chat__reaction-list-sprite@1x.png +0 -0
- package/src/assets/styles/assets/str-chat__reaction-list-sprite@2x.png +0 -0
- package/src/assets/styles/assets/str-chat__reaction-list-sprite@3x.png +0 -0
- package/src/assets/styles/css/index.css +1 -0
- package/src/assets/styles/css/index.css.map +1 -0
- package/src/assets/styles/scss/ActionsBox.scss +56 -0
- package/src/assets/styles/scss/Attachment.scss +227 -0
- package/src/assets/styles/scss/AttachmentActions.scss +44 -0
- package/src/assets/styles/scss/Audio.scss +112 -0
- package/src/assets/styles/scss/Avatar.scss +79 -0
- package/src/assets/styles/scss/Card.scss +100 -0
- package/src/assets/styles/scss/ChannelHeader.scss +284 -0
- package/src/assets/styles/scss/ChannelList.scss +117 -0
- package/src/assets/styles/scss/ChannelListMessenger.scss +9 -0
- package/src/assets/styles/scss/ChannelPreview.scss +108 -0
- package/src/assets/styles/scss/ChannelSearch.scss +111 -0
- package/src/assets/styles/scss/ChatDown.scss +15 -0
- package/src/assets/styles/scss/DateSeparator.scss +51 -0
- package/src/assets/styles/scss/EditMessageForm.scss +112 -0
- package/src/assets/styles/scss/EventComponent.scss +48 -0
- package/src/assets/styles/scss/Gallery.scss +135 -0
- package/src/assets/styles/scss/InfiniteScrollPaginator.scss +6 -0
- package/src/assets/styles/scss/LoadMoreButton.scss +44 -0
- package/src/assets/styles/scss/LoadingChannels.scss +70 -0
- package/src/assets/styles/scss/LoadingIndicator.scss +38 -0
- package/src/assets/styles/scss/Message.scss +1261 -0
- package/src/assets/styles/scss/MessageActions.scss +112 -0
- package/src/assets/styles/scss/MessageCommerce.scss +564 -0
- package/src/assets/styles/scss/MessageInput.scss +385 -0
- package/src/assets/styles/scss/MessageInputFlat.scss +305 -0
- package/src/assets/styles/scss/MessageList.scss +203 -0
- package/src/assets/styles/scss/MessageLivestream.scss +325 -0
- package/src/assets/styles/scss/MessageNotification.scss +49 -0
- package/src/assets/styles/scss/MessageRepliesCountButton.scss +33 -0
- package/src/assets/styles/scss/MessageTeam.scss +617 -0
- package/src/assets/styles/scss/Modal.scss +77 -0
- package/src/assets/styles/scss/ReactionList.scss +183 -0
- package/src/assets/styles/scss/ReactionSelector.scss +212 -0
- package/src/assets/styles/scss/SendButton.scss +14 -0
- package/src/assets/styles/scss/SimpleReactionsList.scss +76 -0
- package/src/assets/styles/scss/SmallMessageInput.scss +172 -0
- package/src/assets/styles/scss/Thread.scss +306 -0
- package/src/assets/styles/scss/Tooltip.scss +38 -0
- package/src/assets/styles/scss/TypingIndicator.scss +75 -0
- package/src/assets/styles/scss/VirtualMessage.scss +291 -0
- package/src/assets/styles/scss/_base.scss +206 -0
- package/src/assets/styles/scss/_variables.scss +158 -0
- package/src/assets/styles/scss/index.scss +50 -0
- package/src/assets/styles/scss/vendor/emoji-mart.scss +495 -0
- package/src/assets/styles/scss/vendor/mml-react.scss +1749 -0
- package/src/assets/styles/scss/vendor/react-file-utils.scss +378 -0
- package/src/assets/styles/scss/vendor/react-image-gallery.scss +224 -0
- package/src/assets/version.ts +1 -1
|
@@ -16,7 +16,7 @@ export class ChatClientService {
|
|
|
16
16
|
this.connectionStateSubject = new ReplaySubject(1);
|
|
17
17
|
this.appSettingsSubject = new BehaviorSubject(undefined);
|
|
18
18
|
this.pendingInvitesSubject = new BehaviorSubject([]);
|
|
19
|
-
this.
|
|
19
|
+
this.events$ = this.notificationSubject.asObservable();
|
|
20
20
|
this.connectionState$ = this.connectionStateSubject.asObservable();
|
|
21
21
|
this.appSettings$ = this.appSettingsSubject.asObservable();
|
|
22
22
|
this.pendingInvites$ = this.pendingInvitesSubject.asObservable();
|
|
@@ -37,7 +37,8 @@ export class ChatClientService {
|
|
|
37
37
|
yield this.chatClient.connectUser(user, userTokenOrProvider);
|
|
38
38
|
this.chatClient.setUserAgent(`stream-chat-angular-${version}-${this.chatClient.getUserAgent()}`);
|
|
39
39
|
}));
|
|
40
|
-
const channels = yield this.chatClient.queryChannels({ invite: 'pending' },
|
|
40
|
+
const channels = yield this.chatClient.queryChannels({ invite: 'pending' }, // TODO: find out why we need this typecast
|
|
41
|
+
{}, { user_id: (_a = this.chatClient.user) === null || _a === void 0 ? void 0 : _a.id });
|
|
41
42
|
this.pendingInvitesSubject.next(channels);
|
|
42
43
|
this.appSettingsSubject.next(undefined);
|
|
43
44
|
this.chatClient.on((e) => {
|
|
@@ -111,7 +112,7 @@ export class ChatClientService {
|
|
|
111
112
|
{ name: { $autocomplete: searchTerm } },
|
|
112
113
|
],
|
|
113
114
|
id: { $ne: this.chatClient.userID },
|
|
114
|
-
});
|
|
115
|
+
}); // TODO: find out why we need this typecast
|
|
115
116
|
return result.users;
|
|
116
117
|
});
|
|
117
118
|
}
|
|
@@ -141,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
141
142
|
providedIn: 'root',
|
|
142
143
|
}]
|
|
143
144
|
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.NotificationService }]; } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGF0LWNsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT2xFLE9BQU8sRUFBc0IsVUFBVSxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQVE1Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFpQzVCLFlBQ1UsTUFBYyxFQUNkLG1CQUF3QztRQUR4QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQVgxQyx3QkFBbUIsR0FBRyxJQUFJLGFBQWEsQ0FBZSxDQUFDLENBQUMsQ0FBQztRQUN6RCwyQkFBc0IsR0FBRyxJQUFJLGFBQWEsQ0FBdUIsQ0FBQyxDQUFDLENBQUM7UUFDcEUsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQzlDLFNBQVMsQ0FDVixDQUFDO1FBQ00sMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBRWpELEVBQUUsQ0FBQyxDQUFDO1FBTUosSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FB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Q0FBQyxDQUFDLEdBQUcsY0FBYyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2pFO2lCQUFNLElBQ0wsQ0FBQyxDQUFDLElBQUksS0FBSyw4QkFBOEI7Z0JBQ3pDLENBQUMsQ0FBQyxJQUFJLEtBQUssOEJBQThCLEVBQ3pDO2dCQUNBLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQ3BDLENBQUMsQ0FBQyxFQUFFLEVBQUUsV0FBQyxPQUFBLENBQUEsQ0FBQyxhQUFELENBQUMsdUJBQUQsQ0FBQyxDQUFFLEdBQUcsT0FBSyxNQUFBLENBQUMsQ0FBQyxPQUFPLDBDQUFFLEdBQUcsQ0FBQSxDQUFBLEVBQUEsQ0FDakMsQ0FBQztnQkFDRixJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDaEIsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzhHQWhLVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ2hhbm5lbCxcbiAgQ2hhbm5lbFJlc3BvbnNlLFxuICBPd25Vc2VyUmVzcG9uc2UsXG4gIFVzZXJSZXNwb25zZSxcbn0gZnJvbSAnc3RyZWFtLWNoYXQnO1xuaW1wb3J0IHsgQXBwU2V0dGluZ3MsIEV2ZW50LCBTdHJlYW1DaGF0LCBUb2tlbk9yUHJvdmlkZXIgfSBmcm9tICdzdHJlYW0tY2hhdCc7XG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi4vYXNzZXRzL3ZlcnNpb24nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb24gPSB7XG4gIGV2ZW50VHlwZTogc3RyaW5nO1xuICBldmVudDogRXZlbnQ7XG59O1xuXG4vKipcbiAqIFRoZSBgQ2hhdENsaWVudGAgc2VydmljZSBjb25uZWN0cyB0aGUgdXNlciB0byB0aGUgU3RyZWFtIGNoYXQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0Q2xpZW50U2VydmljZSB7XG4gIC8qKlxuICAgKiBUaGUgW1N0cmVhbUNoYXQgY2xpZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWpzL2Jsb2IvbWFzdGVyL3NyYy9jbGllbnQudHMpIGluc3RhbmNlLiBJbiBnZW5lcmFsIHlvdSBzaG91bGRuJ3QgbmVlZCB0byBhY2Nlc3MgdGhlIGNsaWVudCwgYnV0IGl0J3MgdGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIGl0LlxuICAgKi9cbiAgY2hhdENsaWVudCE6IFN0cmVhbUNoYXQ7XG4gIC8qKlxuICAgKiBFbWl0cyBbYE5vdGlmaWNhdGlvbmBdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvY2hhdC1jbGllbnQuc2VydmljZS50cykgZXZlbnRzLiBUaGUgcGxhdGZvcm0gZG9jdW1lbnRhdGlvbiBjb3ZlcnMgW3RoZSBsaXN0IG9mIGNsaWVudCBhbmQgbm90aWZpY2F0aW9uIGV2ZW50c10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvZXZlbnRfb2JqZWN0Lz9sYW5ndWFnZT1qYXZhc2NyaXB0KS5cbiAgICogOjo6aW1wb3J0YW50XG4gICAqIEZvciBwZXJmb3JtYW5jZSByZWFzb25zIHRoaXMgT2JzZXJ2YWJsZSBvcGVyYXRlcyBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIGNoYW5nZSBkZXRlY3Rpb24gem9uZS4gSWYgeW91IHN1YnNjcmliZSB0byBpdCwgeW91IG5lZWQgdG8gbWFudWFsbHkgcmVlbnRlciBBbmd1bGFyJ3MgY2hhbmdlIGRldGVjdGlvbiB6b25lLCBvdXIgW0NoYW5nZSBkZXRlY3Rpb24gZ3VpZGVdKC4uL2NvbmNlcHRzL2NoYW5nZS1kZXRlY3Rpb24ubWR4KSBleHBsYWlucyB0aGlzIGluIGRldGFpbC5cbiAgICogOjo6XG4gICAqL1xuICBub3RpZmljYXRpb24kOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbj47XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY3VycmVudCBbYXBwbGljYXRpb24gc2V0dGluZ3NdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2FwcF9zZXR0aW5nX292ZXJ2aWV3Lz9sYW5ndWFnZT1qYXZhc2NyaXB0KS4gU2luY2UgZ2V0dGluZyB0aGUgYXBwbGljYXRpb24gc2V0dGluZ3MgaXMgYW4gZXhwZW5zaXZlIEFQSSBjYWxsIGFuZCB3ZSBkb24ndCBhbHdheXMgbmVlZCB0aGUgcmVzdWx0LCB0aGlzIGlzIG5vdCBpbml0aWFsaXplZCBieSBkZWZhdWx0LCB5b3UgbmVlZCB0byBjYWxsIGBnZXRBcHBsaWNhdGlvblNldHRpbmdzYCB0byBsb2FkIHRoZW0uXG4gICAqL1xuICBhcHBTZXR0aW5ncyQ6IE9ic2VydmFibGU8QXBwU2V0dGluZ3MgfCB1bmRlZmluZWQ+O1xuICAvKipcbiAgICogRW1pdHMgdGhlIGN1cnJlbnQgY29ubmVjdGlvbiBzdGF0ZSBvZiB0aGUgdXNlciAoYG9ubGluZWAgb3IgYG9mZmxpbmVgKVxuICAgKi9cbiAgY29ubmVjdGlvblN0YXRlJDogT2JzZXJ2YWJsZTwnb2ZmbGluZScgfCAnb25saW5lJz47XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgbGlzdCBvZiBwZW5kaW5nIGludml0ZXMgb2YgdGhlIHVzZXIuIEl0IGVtaXRzIGV2ZXJ5IHBlbmRpbmcgaW52aXRhdGlvbiBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYW5kIHRoZW4gZXh0ZW5kcyB0aGUgbGlzdCB3aGVuIGEgbmV3IGludml0ZSBpcyByZWNlaXZlZC4gTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gdGhlIFtjaGFubmVsIGludml0YXRpb25zXSguLi9jb2RlLWV4YW1wbGVzL2NoYW5uZWwtaW52aXRlcy5tZHgpIGd1aWRlLlxuICAgKi9cbiAgcGVuZGluZ0ludml0ZXMkOiBPYnNlcnZhYmxlPChDaGFubmVsUmVzcG9uc2UgfCBDaGFubmVsKVtdPjtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25TdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Tm90aWZpY2F0aW9uPigxKTtcbiAgcHJpdmF0ZSBjb25uZWN0aW9uU3RhdGVTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8J29mZmxpbmUnIHwgJ29ubGluZSc+KDEpO1xuICBwcml2YXRlIGFwcFNldHRpbmdzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXBwU2V0dGluZ3MgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuICBwcml2YXRlIHBlbmRpbmdJbnZpdGVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgKENoYW5uZWxSZXNwb25zZSB8IENoYW5uZWwpW11cbiAgPihbXSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5ub3RpZmljYXRpb24kID0gdGhpcy5ub3RpZmljYXRpb25TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuY29ubmVjdGlvblN0YXRlJCA9IHRoaXMuY29ubmVjdGlvblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmFwcFNldHRpbmdzJCA9IHRoaXMuYXBwU2V0dGluZ3NTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGVuZGluZ0ludml0ZXMkID0gdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFtgU3RyZWFtQ2hhdGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtanMvYmxvYi82NjhiM2U1NTIxMzM5ZjRlMTRmYzY1NzgzNDUzMWI0YzhiZjgxNzZiL3NyYy9jbGllbnQudHMjTDEyNCkgaW5zdGFuY2UgdXNpbmcgdGhlIHByb3ZpZGVkIGBhcGlLZXlgLCBhbmQgY29ubmVjdHMgYSB1c2VyIHdpdGggdGhlIGdpdmVuIG1ldGEgZGF0YSBhbmQgdG9rZW4uIE1vcmUgaW5mbyBhYm91dCBbY29ubmVjdGluZyB1c2Vyc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvaW5pdF9hbmRfdXNlcnMvP2xhbmd1YWdlPWphdmFzY3JpcHQpIGNhbiBiZSBmb3VuZCBpbiB0aGUgcGxhdGZvcm0gZG9jdW1lbnRhdGlvbi5cbiAgICogQHBhcmFtIGFwaUtleVxuICAgKiBAcGFyYW0gdXNlck9ySWRcbiAgICogQHBhcmFtIHVzZXJUb2tlbk9yUHJvdmlkZXJcbiAgICovXG4gIGFzeW5jIGluaXQoXG4gICAgYXBpS2V5OiBzdHJpbmcsXG4gICAgdXNlck9ySWQ6IHN0cmluZyB8IE93blVzZXJSZXNwb25zZSB8IFVzZXJSZXNwb25zZSxcbiAgICB1c2VyVG9rZW5PclByb3ZpZGVyOiBUb2tlbk9yUHJvdmlkZXJcbiAgKSB7XG4gICAgdGhpcy5jaGF0Q2xpZW50ID0gU3RyZWFtQ2hhdC5nZXRJbnN0YW5jZShhcGlLZXkpO1xuICAgIHRoaXMuY2hhdENsaWVudC5kZXZUb2tlbjtcbiAgICBhd2FpdCB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdHlwZW9mIHVzZXJPcklkID09PSAnc3RyaW5nJyA/IHsgaWQ6IHVzZXJPcklkIH0gOiB1c2VyT3JJZDtcbiAgICAgIGF3YWl0IHRoaXMuY2hhdENsaWVudC5jb25uZWN0VXNlcih1c2VyLCB1c2VyVG9rZW5PclByb3ZpZGVyKTtcbiAgICAgIHRoaXMuY2hhdENsaWVudC5zZXRVc2VyQWdlbnQoXG4gICAgICAgIGBzdHJlYW0tY2hhdC1hbmd1bGFyLSR7dmVyc2lvbn0tJHt0aGlzLmNoYXRDbGllbnQuZ2V0VXNlckFnZW50KCl9YFxuICAgICAgKTtcbiAgICB9KTtcbiAgICBjb25zdCBjaGFubmVscyA9IGF3YWl0IHRoaXMuY2hhdENsaWVudC5xdWVyeUNoYW5uZWxzKFxuICAgICAgeyBpbnZpdGU6ICdwZW5kaW5nJyB9LFxuICAgICAge30sXG4gICAgICB7IHVzZXJfaWQ6IHRoaXMuY2hhdENsaWVudC51c2VyPy5pZCB9XG4gICAgKTtcbiAgICB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5uZXh0KGNoYW5uZWxzKTtcbiAgICB0aGlzLmFwcFNldHRpbmdzU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5jaGF0Q2xpZW50Lm9uKChlKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVBlbmRpbmdJbnZpdGVzKGUpO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25TdWJqZWN0Lm5leHQoe1xuICAgICAgICBldmVudFR5cGU6IGUudHlwZSxcbiAgICAgICAgZXZlbnQ6IGUsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBsZXQgcmVtb3ZlTm90aWZpY2F0aW9uOiB1bmRlZmluZWQgfCBGdW5jdGlvbjtcbiAgICB0aGlzLmNoYXRDbGllbnQub24oJ2Nvbm5lY3Rpb24uY2hhbmdlZCcsIChlKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBpc09ubGluZSA9IGUub25saW5lO1xuICAgICAgICBpZiAoaXNPbmxpbmUpIHtcbiAgICAgICAgICBpZiAocmVtb3ZlTm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICByZW1vdmVOb3RpZmljYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVtb3ZlTm90aWZpY2F0aW9uID1cbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5hZGRQZXJtYW5lbnROb3RpZmljYXRpb24oXG4gICAgICAgICAgICAgICdzdHJlYW1DaGF0LkNvbm5lY3Rpb24gZmFpbHVyZSwgcmVjb25uZWN0aW5nIG5vdy4uLidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdGVTdWJqZWN0Lm5leHQoaXNPbmxpbmUgPyAnb25saW5lJyA6ICdvZmZsaW5lJyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNjb25uZWN0cyB0aGUgY3VycmVudCB1c2VyLCBhbmQgY2xvc2VzIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbi4gVXNlZnVsIHdoZW4gZGlzY29ubmVjdGluZyBhIGNoYXQgdXNlciwgdXNlIGluIGNvbWJpbmF0aW9uIHdpdGggW2ByZXNldGBdKC4vQ2hhbm5lbFNlcnZpY2UubWR4LyNyZXNldCkuXG4gICAqL1xuICBhc3luYyBkaXNjb25uZWN0VXNlcigpIHtcbiAgICB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5uZXh0KFtdKTtcbiAgICBhd2FpdCB0aGlzLmNoYXRDbGllbnQuZGlzY29ubmVjdFVzZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgY3VycmVudCBbYXBwbGljYXRpb24gc2V0dGluZ3NdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2FwcF9zZXR0aW5nX292ZXJ2aWV3Lz9sYW5ndWFnZT1qYXZhc2NyaXB0KSwgaWYgdGhlIGFwcGxpY2F0aW9uIHNldHRpbmdzIGhhdmUgYWxyZWFkeSBiZWVuIGxvYWRlZCwgaXQgZG9lcyBub3RoaW5nLlxuICAgKi9cbiAgYXN5bmMgZ2V0QXBwU2V0dGluZ3MoKSB7XG4gICAgaWYgKHRoaXMuYXBwU2V0dGluZ3NTdWJqZWN0LmdldFZhbHVlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBhd2FpdCB0aGlzLmNoYXRDbGllbnQuZ2V0QXBwU2V0dGluZ3MoKTtcbiAgICB0aGlzLmFwcFNldHRpbmdzU3ViamVjdC5uZXh0KHNldHRpbmdzLmFwcCB8fCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyB0aGUgbWVzc2FnZSB3aXRoIHRoZSBnaXZlbiBJRC4gSWYgeW91IHdhbnQgdG8ga25vdyBbbW9yZSBhYm91dCBmbGFnc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvbW9kZXJhdGlvbi8/bGFuZ3VhZ2U9amF2YXNjcmlwdCkgY2hlY2sgb3V0IHRoZSBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uLlxuICAgKiBAcGFyYW0gbWVzc2FnZUlkXG4gICAqL1xuICBhc3luYyBmbGFnTWVzc2FnZShtZXNzYWdlSWQ6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuY2hhdENsaWVudC5mbGFnTWVzc2FnZShtZXNzYWdlSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaGVzIGZvciB1c2VycyBpbiB0aGUgYXBwbGljYXRpb24gdGhhdCBoYXZlIElEIG9yIG5hbWUgbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIHNlYXJjaCB0ZXJtXG4gICAqIEBwYXJhbSBzZWFyY2hUZXJtXG4gICAqIEByZXR1cm5zIFRoZSB1c2VycyBtYXRjaGluZyB0aGUgc2VhcmNoXG4gICAqL1xuICBhc3luYyBhdXRvY29tcGxldGVVc2VycyhzZWFyY2hUZXJtOiBzdHJpbmcpIHtcbiAgICBpZiAoIXNlYXJjaFRlcm0pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jaGF0Q2xpZW50LnF1ZXJ5VXNlcnMoe1xuICAgICAgJG9yOiBbXG4gICAgICAgIHsgaWQ6IHsgJGF1dG9jb21wbGV0ZTogc2VhcmNoVGVybSB9IH0sXG4gICAgICAgIHsgbmFtZTogeyAkYXV0b2NvbXBsZXRlOiBzZWFyY2hUZXJtIH0gfSxcbiAgICAgIF0sXG4gICAgICBpZDogeyAkbmU6IHRoaXMuY2hhdENsaWVudC51c2VySUQhIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdC51c2VycztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGVuZGluZ0ludml0ZXMoZTogRXZlbnQpIHtcbiAgICBpZiAoZS5tZW1iZXI/LnVzZXI/LmlkID09PSB0aGlzLmNoYXRDbGllbnQudXNlcj8uaWQgJiYgZS5jaGFubmVsKSB7XG4gICAgICBjb25zdCBwZW5kaW5nSW52aXRlcyA9IHRoaXMucGVuZGluZ0ludml0ZXNTdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgICBpZiAoZS50eXBlID09PSAnbm90aWZpY2F0aW9uLmludml0ZWQnKSB7XG4gICAgICAgIHRoaXMucGVuZGluZ0ludml0ZXNTdWJqZWN0Lm5leHQoWy4uLnBlbmRpbmdJbnZpdGVzLCBlLmNoYW5uZWxdKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGUudHlwZSA9PT0gJ25vdGlmaWNhdGlvbi5pbnZpdGVfYWNjZXB0ZWQnIHx8XG4gICAgICAgIGUudHlwZSA9PT0gJ25vdGlmaWNhdGlvbi5pbnZpdGVfcmVqZWN0ZWQnXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBwZW5kaW5nSW52aXRlcy5maW5kSW5kZXgoXG4gICAgICAgICAgKGkpID0+IGk/LmNpZCA9PT0gZS5jaGFubmVsPy5jaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHBlbmRpbmdJbnZpdGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QubmV4dChbLi4ucGVuZGluZ0ludml0ZXNdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGF0LWNsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBU2xFLE9BQU8sRUFBc0IsVUFBVSxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQVc1Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFtQzVCLFlBQ1UsTUFBYyxFQUNkLG1CQUF3QztRQUR4QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQVgxQyx3QkFBbUIsR0FBRyxJQUFJLGFBQWEsQ0FBaUIsQ0FBQyxDQUFDLENBQUM7UUFDM0QsMkJBQXNCLEdBQUcsSUFBSSxhQUFhLENBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLHVCQUFrQixHQUFHLElBQUksZUFBZSxDQUM5QyxTQUFTLENBQ1YsQ0FBQztRQUNNLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUVqRCxFQUFFLENBQUMsQ0FBQztRQU1KLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENB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SUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsY0FBYyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2pFO2lCQUFNLElBQ0wsQ0FBQyxDQUFDLElBQUksS0FBSyw4QkFBOEI7Z0JBQ3pDLENBQUMsQ0FBQyxJQUFJLEtBQUssOEJBQThCLEVBQ3pDO2dCQUNBLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQ3BDLENBQUMsQ0FBQyxFQUFFLEVBQUUsV0FBQyxPQUFBLENBQUEsQ0FBQyxhQUFELENBQUMsdUJBQUQsQ0FBQyxDQUFFLEdBQUcsT0FBSyxNQUFBLENBQUMsQ0FBQyxPQUFPLDBDQUFFLEdBQUcsQ0FBQSxDQUFBLEVBQUEsQ0FDakMsQ0FBQztnQkFDRixJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDaEIsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzhHQWxLVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ2hhbm5lbCxcbiAgQ2hhbm5lbEZpbHRlcnMsXG4gIENoYW5uZWxSZXNwb25zZSxcbiAgT3duVXNlclJlc3BvbnNlLFxuICBVc2VyRmlsdGVycyxcbiAgVXNlclJlc3BvbnNlLFxufSBmcm9tICdzdHJlYW0tY2hhdCc7XG5pbXBvcnQgeyBBcHBTZXR0aW5ncywgRXZlbnQsIFN0cmVhbUNoYXQsIFRva2VuT3JQcm92aWRlciB9IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuLi9hc3NldHMvdmVyc2lvbic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIENsaWVudEV2ZW50PFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3Ncbj4gPSB7XG4gIGV2ZW50VHlwZTogc3RyaW5nO1xuICBldmVudDogRXZlbnQ8VD47XG59O1xuXG4vKipcbiAqIFRoZSBgQ2hhdENsaWVudGAgc2VydmljZSBjb25uZWN0cyB0aGUgdXNlciB0byB0aGUgU3RyZWFtIGNoYXQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0Q2xpZW50U2VydmljZTxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzXG4+IHtcbiAgLyoqXG4gICAqIFRoZSBbU3RyZWFtQ2hhdCBjbGllbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtanMvYmxvYi9tYXN0ZXIvc3JjL2NsaWVudC50cykgaW5zdGFuY2UuIEluIGdlbmVyYWwgeW91IHNob3VsZG4ndCBuZWVkIHRvIGFjY2VzcyB0aGUgY2xpZW50LCBidXQgaXQncyB0aGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgaXQuXG4gICAqL1xuICBjaGF0Q2xpZW50ITogU3RyZWFtQ2hhdDxUPjtcbiAgLyoqXG4gICAqIEVtaXRzIFtgQ2xpZW50RXZlbnRgXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2NoYXQtY2xpZW50LnNlcnZpY2UudHMpIGV2ZW50cy4gVGhlIHBsYXRmb3JtIGRvY3VtZW50YXRpb24gY292ZXJzIFt0aGUgbGlzdCBvZiBjbGllbnQsIHVzZXIgcHJlc2VuY2UgYW5kIG5vdGlmaWNhdGlvbiBldmVudHNdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2V2ZW50X29iamVjdC8/bGFuZ3VhZ2U9amF2YXNjcmlwdCkuXG4gICAqIDo6OmltcG9ydGFudFxuICAgKiBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucyB0aGlzIE9ic2VydmFibGUgb3BlcmF0ZXMgb3V0c2lkZSBvZiB0aGUgQW5ndWxhciBjaGFuZ2UgZGV0ZWN0aW9uIHpvbmUuIElmIHlvdSBzdWJzY3JpYmUgdG8gaXQsIHlvdSBuZWVkIHRvIG1hbnVhbGx5IHJlZW50ZXIgQW5ndWxhcidzIGNoYW5nZSBkZXRlY3Rpb24gem9uZSwgb3VyIFtDaGFuZ2UgZGV0ZWN0aW9uIGd1aWRlXSguLi9jb25jZXB0cy9jaGFuZ2UtZGV0ZWN0aW9uLm1keCkgZXhwbGFpbnMgdGhpcyBpbiBkZXRhaWwuXG4gICAqIDo6OlxuICAgKi9cbiAgZXZlbnRzJDogT2JzZXJ2YWJsZTxDbGllbnRFdmVudDxUPj47XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY3VycmVudCBbYXBwbGljYXRpb24gc2V0dGluZ3NdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2FwcF9zZXR0aW5nX292ZXJ2aWV3Lz9sYW5ndWFnZT1qYXZhc2NyaXB0KS4gU2luY2UgZ2V0dGluZyB0aGUgYXBwbGljYXRpb24gc2V0dGluZ3MgaXMgYW4gZXhwZW5zaXZlIEFQSSBjYWxsIGFuZCB3ZSBkb24ndCBhbHdheXMgbmVlZCB0aGUgcmVzdWx0LCB0aGlzIGlzIG5vdCBpbml0aWFsaXplZCBieSBkZWZhdWx0LCB5b3UgbmVlZCB0byBjYWxsIGBnZXRBcHBsaWNhdGlvblNldHRpbmdzYCB0byBsb2FkIHRoZW0uXG4gICAqL1xuICBhcHBTZXR0aW5ncyQ6IE9ic2VydmFibGU8QXBwU2V0dGluZ3MgfCB1bmRlZmluZWQ+O1xuICAvKipcbiAgICogRW1pdHMgdGhlIGN1cnJlbnQgY29ubmVjdGlvbiBzdGF0ZSBvZiB0aGUgdXNlciAoYG9ubGluZWAgb3IgYG9mZmxpbmVgKVxuICAgKi9cbiAgY29ubmVjdGlvblN0YXRlJDogT2JzZXJ2YWJsZTwnb2ZmbGluZScgfCAnb25saW5lJz47XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgbGlzdCBvZiBwZW5kaW5nIGludml0ZXMgb2YgdGhlIHVzZXIuIEl0IGVtaXRzIGV2ZXJ5IHBlbmRpbmcgaW52aXRhdGlvbiBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYW5kIHRoZW4gZXh0ZW5kcyB0aGUgbGlzdCB3aGVuIGEgbmV3IGludml0ZSBpcyByZWNlaXZlZC4gTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gdGhlIFtjaGFubmVsIGludml0YXRpb25zXSguLi9jb2RlLWV4YW1wbGVzL2NoYW5uZWwtaW52aXRlcy5tZHgpIGd1aWRlLlxuICAgKi9cbiAgcGVuZGluZ0ludml0ZXMkOiBPYnNlcnZhYmxlPChDaGFubmVsUmVzcG9uc2U8VD4gfCBDaGFubmVsPFQ+KVtdPjtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25TdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Q2xpZW50RXZlbnQ8VD4+KDEpO1xuICBwcml2YXRlIGNvbm5lY3Rpb25TdGF0ZVN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDwnb2ZmbGluZScgfCAnb25saW5lJz4oMSk7XG4gIHByaXZhdGUgYXBwU2V0dGluZ3NTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcHBTZXR0aW5ncyB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIHByaXZhdGUgcGVuZGluZ0ludml0ZXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAoQ2hhbm5lbFJlc3BvbnNlPFQ+IHwgQ2hhbm5lbDxUPilbXVxuICA+KFtdKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZVxuICApIHtcbiAgICB0aGlzLmV2ZW50cyQgPSB0aGlzLm5vdGlmaWNhdGlvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5jb25uZWN0aW9uU3RhdGUkID0gdGhpcy5jb25uZWN0aW9uU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuYXBwU2V0dGluZ3MkID0gdGhpcy5hcHBTZXR0aW5nc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wZW5kaW5nSW52aXRlcyQgPSB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgW2BTdHJlYW1DaGF0YF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1qcy9ibG9iLzY2OGIzZTU1MjEzMzlmNGUxNGZjNjU3ODM0NTMxYjRjOGJmODE3NmIvc3JjL2NsaWVudC50cyNMMTI0KSBpbnN0YW5jZSB1c2luZyB0aGUgcHJvdmlkZWQgYGFwaUtleWAsIGFuZCBjb25uZWN0cyBhIHVzZXIgd2l0aCB0aGUgZ2l2ZW4gbWV0YSBkYXRhIGFuZCB0b2tlbi4gTW9yZSBpbmZvIGFib3V0IFtjb25uZWN0aW5nIHVzZXJzXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC9pbml0X2FuZF91c2Vycy8/bGFuZ3VhZ2U9amF2YXNjcmlwdCkgY2FuIGJlIGZvdW5kIGluIHRoZSBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uLlxuICAgKiBAcGFyYW0gYXBpS2V5XG4gICAqIEBwYXJhbSB1c2VyT3JJZFxuICAgKiBAcGFyYW0gdXNlclRva2VuT3JQcm92aWRlclxuICAgKi9cbiAgYXN5bmMgaW5pdChcbiAgICBhcGlLZXk6IHN0cmluZyxcbiAgICB1c2VyT3JJZDogc3RyaW5nIHwgT3duVXNlclJlc3BvbnNlPFQ+IHwgVXNlclJlc3BvbnNlPFQ+LFxuICAgIHVzZXJUb2tlbk9yUHJvdmlkZXI6IFRva2VuT3JQcm92aWRlclxuICApIHtcbiAgICB0aGlzLmNoYXRDbGllbnQgPSBTdHJlYW1DaGF0LmdldEluc3RhbmNlPFQ+KGFwaUtleSk7XG4gICAgdGhpcy5jaGF0Q2xpZW50LmRldlRva2VuO1xuICAgIGF3YWl0IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB0eXBlb2YgdXNlck9ySWQgPT09ICdzdHJpbmcnID8geyBpZDogdXNlck9ySWQgfSA6IHVzZXJPcklkO1xuICAgICAgYXdhaXQgdGhpcy5jaGF0Q2xpZW50LmNvbm5lY3RVc2VyKHVzZXIsIHVzZXJUb2tlbk9yUHJvdmlkZXIpO1xuICAgICAgdGhpcy5jaGF0Q2xpZW50LnNldFVzZXJBZ2VudChcbiAgICAgICAgYHN0cmVhbS1jaGF0LWFuZ3VsYXItJHt2ZXJzaW9ufS0ke3RoaXMuY2hhdENsaWVudC5nZXRVc2VyQWdlbnQoKX1gXG4gICAgICApO1xuICAgIH0pO1xuICAgIGNvbnN0IGNoYW5uZWxzID0gYXdhaXQgdGhpcy5jaGF0Q2xpZW50LnF1ZXJ5Q2hhbm5lbHMoXG4gICAgICB7IGludml0ZTogJ3BlbmRpbmcnIH0gYXMgYW55IGFzIENoYW5uZWxGaWx0ZXJzPFQ+LCAvLyBUT0RPOiBmaW5kIG91dCB3aHkgd2UgbmVlZCB0aGlzIHR5cGVjYXN0XG4gICAgICB7fSxcbiAgICAgIHsgdXNlcl9pZDogdGhpcy5jaGF0Q2xpZW50LnVzZXI/LmlkIH1cbiAgICApO1xuICAgIHRoaXMucGVuZGluZ0ludml0ZXNTdWJqZWN0Lm5leHQoY2hhbm5lbHMpO1xuICAgIHRoaXMuYXBwU2V0dGluZ3NTdWJqZWN0Lm5leHQodW5kZWZpbmVkKTtcbiAgICB0aGlzLmNoYXRDbGllbnQub24oKGUpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUGVuZGluZ0ludml0ZXMoZSk7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblN1YmplY3QubmV4dCh7XG4gICAgICAgIGV2ZW50VHlwZTogZS50eXBlLFxuICAgICAgICBldmVudDogZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGxldCByZW1vdmVOb3RpZmljYXRpb246IHVuZGVmaW5lZCB8IEZ1bmN0aW9uO1xuICAgIHRoaXMuY2hhdENsaWVudC5vbignY29ubmVjdGlvbi5jaGFuZ2VkJywgKGUpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzT25saW5lID0gZS5vbmxpbmU7XG4gICAgICAgIGlmIChpc09ubGluZSkge1xuICAgICAgICAgIGlmIChyZW1vdmVOb3RpZmljYXRpb24pIHtcbiAgICAgICAgICAgIHJlbW92ZU5vdGlmaWNhdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZW1vdmVOb3RpZmljYXRpb24gPVxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFkZFBlcm1hbmVudE5vdGlmaWNhdGlvbihcbiAgICAgICAgICAgICAgJ3N0cmVhbUNoYXQuQ29ubmVjdGlvbiBmYWlsdXJlLCByZWNvbm5lY3Rpbmcgbm93Li4uJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbm5lY3Rpb25TdGF0ZVN1YmplY3QubmV4dChpc09ubGluZSA/ICdvbmxpbmUnIDogJ29mZmxpbmUnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2Nvbm5lY3RzIHRoZSBjdXJyZW50IHVzZXIsIGFuZCBjbG9zZXMgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLiBVc2VmdWwgd2hlbiBkaXNjb25uZWN0aW5nIGEgY2hhdCB1c2VyLCB1c2UgaW4gY29tYmluYXRpb24gd2l0aCBbYHJlc2V0YF0oLi9DaGFubmVsU2VydmljZS5tZHgvI3Jlc2V0KS5cbiAgICovXG4gIGFzeW5jIGRpc2Nvbm5lY3RVc2VyKCkge1xuICAgIHRoaXMucGVuZGluZ0ludml0ZXNTdWJqZWN0Lm5leHQoW10pO1xuICAgIGF3YWl0IHRoaXMuY2hhdENsaWVudC5kaXNjb25uZWN0VXNlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBjdXJyZW50IFthcHBsaWNhdGlvbiBzZXR0aW5nc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvYXBwX3NldHRpbmdfb3ZlcnZpZXcvP2xhbmd1YWdlPWphdmFzY3JpcHQpLCBpZiB0aGUgYXBwbGljYXRpb24gc2V0dGluZ3MgaGF2ZSBhbHJlYWR5IGJlZW4gbG9hZGVkLCBpdCBkb2VzIG5vdGhpbmcuXG4gICAqL1xuICBhc3luYyBnZXRBcHBTZXR0aW5ncygpIHtcbiAgICBpZiAodGhpcy5hcHBTZXR0aW5nc1N1YmplY3QuZ2V0VmFsdWUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzZXR0aW5ncyA9IGF3YWl0IHRoaXMuY2hhdENsaWVudC5nZXRBcHBTZXR0aW5ncygpO1xuICAgIHRoaXMuYXBwU2V0dGluZ3NTdWJqZWN0Lm5leHQoc2V0dGluZ3MuYXBwIHx8IHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGbGFnIHRoZSBtZXNzYWdlIHdpdGggdGhlIGdpdmVuIElELiBJZiB5b3Ugd2FudCB0byBrbm93IFttb3JlIGFib3V0IGZsYWdzXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC9tb2RlcmF0aW9uLz9sYW5ndWFnZT1qYXZhc2NyaXB0KSBjaGVjayBvdXQgdGhlIHBsYXRmb3JtIGRvY3VtZW50YXRpb24uXG4gICAqIEBwYXJhbSBtZXNzYWdlSWRcbiAgICovXG4gIGFzeW5jIGZsYWdNZXNzYWdlKG1lc3NhZ2VJZDogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy5jaGF0Q2xpZW50LmZsYWdNZXNzYWdlKG1lc3NhZ2VJZCk7XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoZXMgZm9yIHVzZXJzIGluIHRoZSBhcHBsaWNhdGlvbiB0aGF0IGhhdmUgSUQgb3IgbmFtZSBtYXRjaGluZyB0aGUgcHJvdmlkZWQgc2VhcmNoIHRlcm1cbiAgICogQHBhcmFtIHNlYXJjaFRlcm1cbiAgICogQHJldHVybnMgVGhlIHVzZXJzIG1hdGNoaW5nIHRoZSBzZWFyY2hcbiAgICovXG4gIGFzeW5jIGF1dG9jb21wbGV0ZVVzZXJzKHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgIGlmICghc2VhcmNoVGVybSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNoYXRDbGllbnQucXVlcnlVc2Vycyh7XG4gICAgICAkb3I6IFtcbiAgICAgICAgeyBpZDogeyAkYXV0b2NvbXBsZXRlOiBzZWFyY2hUZXJtIH0gfSxcbiAgICAgICAgeyBuYW1lOiB7ICRhdXRvY29tcGxldGU6IHNlYXJjaFRlcm0gfSB9LFxuICAgICAgXSxcbiAgICAgIGlkOiB7ICRuZTogdGhpcy5jaGF0Q2xpZW50LnVzZXJJRCEgfSxcbiAgICB9IGFzIFVzZXJGaWx0ZXJzPFQ+KTsgLy8gVE9ETzogZmluZCBvdXQgd2h5IHdlIG5lZWQgdGhpcyB0eXBlY2FzdFxuICAgIHJldHVybiByZXN1bHQudXNlcnM7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVBlbmRpbmdJbnZpdGVzKGU6IEV2ZW50PFQ+KSB7XG4gICAgaWYgKGUubWVtYmVyPy51c2VyPy5pZCA9PT0gdGhpcy5jaGF0Q2xpZW50LnVzZXI/LmlkICYmIGUuY2hhbm5lbCkge1xuICAgICAgY29uc3QgcGVuZGluZ0ludml0ZXMgPSB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgICAgaWYgKGUudHlwZSA9PT0gJ25vdGlmaWNhdGlvbi5pbnZpdGVkJykge1xuICAgICAgICB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5uZXh0KFsuLi5wZW5kaW5nSW52aXRlcywgZS5jaGFubmVsXSk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBlLnR5cGUgPT09ICdub3RpZmljYXRpb24uaW52aXRlX2FjY2VwdGVkJyB8fFxuICAgICAgICBlLnR5cGUgPT09ICdub3RpZmljYXRpb24uaW52aXRlX3JlamVjdGVkJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gcGVuZGluZ0ludml0ZXMuZmluZEluZGV4KFxuICAgICAgICAgIChpKSA9PiBpPy5jaWQgPT09IGUuY2hhbm5lbD8uY2lkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICBwZW5kaW5nSW52aXRlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgIHRoaXMucGVuZGluZ0ludml0ZXNTdWJqZWN0Lm5leHQoWy4uLnBlbmRpbmdJbnZpdGVzXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,139 @@
|
|
|
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
|
+
export class CustomTemplatesService {
|
|
10
|
+
constructor() {
|
|
11
|
+
/**
|
|
12
|
+
* The autocomplete list item template for mentioning users (used in the [`AutocompleteTextareaComponent`](../components/AutocompleteTextareaComponent.mdx))
|
|
13
|
+
*/
|
|
14
|
+
this.mentionAutocompleteItemTemplate$ = new BehaviorSubject(undefined);
|
|
15
|
+
/**
|
|
16
|
+
* The autocomplete list item template for commands (used in the [`AutocompleteTextareaComponent`](../components/AutocompleteTextareaComponent.mdx))
|
|
17
|
+
*
|
|
18
|
+
* 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).
|
|
19
|
+
*/
|
|
20
|
+
this.commandAutocompleteItemTemplate$ = new BehaviorSubject(undefined);
|
|
21
|
+
/**
|
|
22
|
+
* Template used to display an item in the [channel list](../components/ChannelListComponent.mdx) (instead of the default [channal list item](../components/ChannelPreviewComponent.mdx))
|
|
23
|
+
*
|
|
24
|
+
* 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).
|
|
25
|
+
*/
|
|
26
|
+
this.channelPreviewTemplate$ = new BehaviorSubject(undefined);
|
|
27
|
+
/**
|
|
28
|
+
* The message input template used when editing a message (instead of the [default message input](../components/MessageInputComponent.mdx))
|
|
29
|
+
*
|
|
30
|
+
* 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).
|
|
31
|
+
*/
|
|
32
|
+
this.messageInputTemplate$ = new BehaviorSubject(undefined);
|
|
33
|
+
/**
|
|
34
|
+
* The template used for displaying a [mention inside a message](../code-examples/mention-actions.mdx)
|
|
35
|
+
*
|
|
36
|
+
* 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).
|
|
37
|
+
*/
|
|
38
|
+
this.mentionTemplate$ = new BehaviorSubject(undefined);
|
|
39
|
+
/**
|
|
40
|
+
* The template for [emoji picker](../code-examples/emoji-picker.mdx)
|
|
41
|
+
*
|
|
42
|
+
* 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).
|
|
43
|
+
*/
|
|
44
|
+
this.emojiPickerTemplate$ = new BehaviorSubject(undefined);
|
|
45
|
+
/**
|
|
46
|
+
* The typing indicator template used in the [message list](../components/MessageListComponent.mdx)
|
|
47
|
+
*
|
|
48
|
+
* 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).
|
|
49
|
+
*/
|
|
50
|
+
this.typingIndicatorTemplate$ = new BehaviorSubject(undefined);
|
|
51
|
+
/**
|
|
52
|
+
* The template used to display a message in the [message list](../components/MessageListComponent.mdx) (instead of the [default message component](../components/MessageComponent.mdx))
|
|
53
|
+
*
|
|
54
|
+
* 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).
|
|
55
|
+
*/
|
|
56
|
+
this.messageTemplate$ = new BehaviorSubject(undefined);
|
|
57
|
+
/**
|
|
58
|
+
* The template for channel actions displayed in the [channel header](../components/ChannelHeaderComponent.mdx) (by default no channel action is displayed)
|
|
59
|
+
*
|
|
60
|
+
* 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).
|
|
61
|
+
*/
|
|
62
|
+
this.channelActionsTemplate$ = new BehaviorSubject(undefined);
|
|
63
|
+
/**
|
|
64
|
+
* The template used to display attachments of a [message](../components/MessageComponent.mdx) (instead of the [default attachment list](../components/AttachmentListComponent.mdx))
|
|
65
|
+
*
|
|
66
|
+
* 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).
|
|
67
|
+
*/
|
|
68
|
+
this.attachmentListTemplate$ = new BehaviorSubject(undefined);
|
|
69
|
+
/**
|
|
70
|
+
* The template used to display attachments in the [message input](../components/MessageInputComponent.mdx) component (instead of the [default attachment preview](../components/AttachmentPreviewListComponent.mdx))
|
|
71
|
+
*
|
|
72
|
+
* 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).
|
|
73
|
+
*/
|
|
74
|
+
this.attachmentPreviewListTemplate$ = new BehaviorSubject(undefined);
|
|
75
|
+
/**
|
|
76
|
+
* The template used to display avatars for channels and users (instead of the [default avatar](../components/AvatarComponent.mdx))
|
|
77
|
+
*
|
|
78
|
+
* 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).
|
|
79
|
+
*/
|
|
80
|
+
this.avatarTemplate$ = new BehaviorSubject(undefined);
|
|
81
|
+
/**
|
|
82
|
+
* Template for displaying icons (instead of the [default icon component](../components/IconComponent.mdx))
|
|
83
|
+
*
|
|
84
|
+
* 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).
|
|
85
|
+
*/
|
|
86
|
+
this.iconTemplate$ = new BehaviorSubject(undefined);
|
|
87
|
+
/**
|
|
88
|
+
* Template for displaying the loading indicator (instead of the [default loading indicator](../components/LoadingIndicatorComponent.mdx))
|
|
89
|
+
*
|
|
90
|
+
* 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).
|
|
91
|
+
*/
|
|
92
|
+
this.loadingIndicatorTemplate$ = new BehaviorSubject(undefined);
|
|
93
|
+
/**
|
|
94
|
+
* Template for displaying the message actions box (instead of the [default message actions box](../components/MessageActionsBoxComponent.mdx))
|
|
95
|
+
*
|
|
96
|
+
* 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).
|
|
97
|
+
*/
|
|
98
|
+
this.messageActionsBoxTemplate$ = new BehaviorSubject(undefined);
|
|
99
|
+
/**
|
|
100
|
+
* The template used for displaying an item in the [message actions box](../components/MessageActionsBoxComponent.mdx)
|
|
101
|
+
*
|
|
102
|
+
* 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).
|
|
103
|
+
*/
|
|
104
|
+
this.messageActionsBoxItemTemplate$ = new BehaviorSubject(undefined);
|
|
105
|
+
/**
|
|
106
|
+
* The template used to display the reactions of a [message](../components/MessageComponent.mdx), and the selector to add a reaction to a message (instead of the [default message reactions component](../components/MessageReactionsComponent.mdx))
|
|
107
|
+
*
|
|
108
|
+
* 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).
|
|
109
|
+
*/
|
|
110
|
+
this.messageReactionsTemplate$ = new BehaviorSubject(undefined);
|
|
111
|
+
/**
|
|
112
|
+
* The template used to display a modal window (instead of the [default modal](../components/ModalComponent.mdx))
|
|
113
|
+
*
|
|
114
|
+
* 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).
|
|
115
|
+
*/
|
|
116
|
+
this.modalTemplate$ = new BehaviorSubject(undefined);
|
|
117
|
+
/**
|
|
118
|
+
* The template used to override the [default notification component](../components/NotificationComponent.mdx)
|
|
119
|
+
*
|
|
120
|
+
* 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).
|
|
121
|
+
*/
|
|
122
|
+
this.notificationTemplate$ = new BehaviorSubject(undefined);
|
|
123
|
+
/**
|
|
124
|
+
* The template used for header of a [thread](../components/ThreadComponent.mdx)
|
|
125
|
+
*
|
|
126
|
+
* 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).
|
|
127
|
+
*/
|
|
128
|
+
this.threadHeaderTemplate$ = new BehaviorSubject(undefined);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
CustomTemplatesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: CustomTemplatesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
132
|
+
CustomTemplatesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: CustomTemplatesService, providedIn: 'root' });
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: CustomTemplatesService, decorators: [{
|
|
134
|
+
type: Injectable,
|
|
135
|
+
args: [{
|
|
136
|
+
providedIn: 'root',
|
|
137
|
+
}]
|
|
138
|
+
}], ctorParameters: function () { return []; } });
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRlbXBsYXRlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2N1c3RvbS10ZW1wbGF0ZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBd0J2Qzs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQWdLakM7UUEvSkE7O1dBRUc7UUFDSCxxQ0FBZ0MsR0FBRyxJQUFJLGVBQWUsQ0FFcEQsU0FBUyxDQUFDLENBQUM7UUFDYjs7OztXQUlHO1FBQ0gscUNBQWdDLEdBQUcsSUFBSSxlQUFlLENBRXBELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7Ozs7V0FJRztRQUNILDRCQUF1QixHQUFHLElBQUksZUFBZSxDQUUzQyxTQUFTLENBQUMsQ0FBQztRQUNiOzs7O1dBSUc7UUFDSCwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FFekMsU0FBUyxDQUFDLENBQUM7UUFDYjs7OztXQUlHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBRXBDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7Ozs7V0FJRztRQUNILHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUV4QyxTQUFTLENBQUMsQ0FBQztRQUNiOzs7O1dBSUc7UUFDSCw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FFNUMsU0FBUyxDQUFDLENBQUM7UUFDYjs7OztXQUlHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBRXBDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7Ozs7V0FJRztRQUNILDRCQUF1QixHQUFHLElBQUksZUFBZSxDQUUzQyxTQUFTLENBQUMsQ0FBQztRQUNiOzs7O1dBSUc7UUFDSCw0QkFBdUIsR0FBRyxJQUFJLGVBQWUsQ0FFM0MsU0FBUyxDQUFDLENBQUM7UUFDYjs7OztXQUlHO1FBQ0gsbUNBQThCLEdBQUcsSUFBSSxlQUFlLENBRWxELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7Ozs7V0FJRztRQUNILG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQ25DLFNBQVMsQ0FDVixDQUFDO1FBQ0Y7Ozs7V0FJRztRQUNILGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQ2pDLFNBQVMsQ0FDVixDQUFDO1FBQ0Y7Ozs7V0FJRztRQUNILDhCQUF5QixHQUFHLElBQUksZUFBZSxDQUU3QyxTQUFTLENBQUMsQ0FBQztRQUNiOzs7O1dBSUc7UUFDSCwrQkFBMEIsR0FBRyxJQUFJLGVBQWUsQ0FFOUMsU0FBUyxDQUFDLENBQUM7UUFDYjs7OztXQUlHO1FBQ0gsbUNBQThCLEdBQUcsSUFBSSxlQUFlLENBRWxELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7Ozs7V0FJRztRQUNILDhCQUF5QixHQUFHLElBQUksZUFBZSxDQUU3QyxTQUFTLENBQUMsQ0FBQztRQUNiOzs7O1dBSUc7UUFDSCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUNsQyxTQUFTLENBQ1YsQ0FBQztRQUNGOzs7O1dBSUc7UUFDSCwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FFekMsU0FBUyxDQUFDLENBQUM7UUFDYjs7OztXQUlHO1FBQ0gsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBRXpDLFNBQVMsQ0FBQyxDQUFDO0lBRUUsQ0FBQzs7bUhBaEtMLHNCQUFzQjt1SEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEF0dGFjaG1lbnRMaXN0Q29udGV4dCxcbiAgQXR0YWNobWVudFByZXZpZXdMaXN0Q29udGV4dCxcbiAgQXZhdGFyQ29udGV4dCxcbiAgQ2hhbm5lbEFjdGlvbnNDb250ZXh0LFxuICBDaGFubmVsUHJldmlld0NvbnRleHQsXG4gIENvbW1hbmRBdXRvY29tcGxldGVMaXN0SXRlbUNvbnRleHQsXG4gIEVtb2ppUGlja2VyQ29udGV4dCxcbiAgSWNvbkNvbnRleHQsXG4gIExvYWRpbmdJbmRpY2F0b3JDb250ZXh0LFxuICBNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbUNvbnRleHQsXG4gIE1lbnRpb25UZW1wbGF0ZUNvbnRleHQsXG4gIE1lc3NhZ2VBY3Rpb25Cb3hJdGVtQ29udGV4dCxcbiAgTWVzc2FnZUFjdGlvbnNCb3hDb250ZXh0LFxuICBNZXNzYWdlQ29udGV4dCxcbiAgTWVzc2FnZUlucHV0Q29udGV4dCxcbiAgTWVzc2FnZVJlYWN0aW9uc0NvbnRleHQsXG4gIE1vZGFsQ29udGV4dCxcbiAgTm90aWZpY2F0aW9uQ29udGV4dCxcbiAgVGhyZWFkSGVhZGVyQ29udGV4dCxcbiAgVHlwaW5nSW5kaWNhdG9yQ29udGV4dCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQSBjZW50cmFsIGxvY2F0aW9uIGZvciByZWdpc3RlcmluZyB5b3VyIGN1c3RvbSB0ZW1wbGF0ZXMgdG8gb3ZlcnJpZGUgcGFydHMgb2YgdGhlIGNoYXQgYXBwbGljYXRpb24uXG4gKlxuICogRm9yIGNvZGUgZXhhbXBsZXMgdG8gdGhlIGRpZmZlcmVudCBjdXN0b21pemF0aW9ucyBzZWUgb3VyIFtjdXN0b21pemF0aW9ucyBleGFtcGxlIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZSksIHNwZWNpZmljYWxseSB0aGUgW0FwcENvbXBvbmVudF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL3RyZWUvbWFzdGVyL3Byb2plY3RzL2N1c3RvbWl6YXRpb25zLWV4YW1wbGUvc3JjL2FwcCkgKHNlZSBbUkVBRE1FXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI2N1c3RvbWl6YXRpb24tZXhhbXBsZXMpIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHN0YXJ0IHRoZSBhcHBsaWNhdGlvbikuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21UZW1wbGF0ZXNTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFRoZSBhdXRvY29tcGxldGUgbGlzdCBpdGVtIHRlbXBsYXRlIGZvciBtZW50aW9uaW5nIHVzZXJzICh1c2VkIGluIHRoZSBbYEF1dG9jb21wbGV0ZVRleHRhcmVhQ29tcG9uZW50YF0oLi4vY29tcG9uZW50cy9BdXRvY29tcGxldGVUZXh0YXJlYUNvbXBvbmVudC5tZHgpKVxuICAgKi9cbiAgbWVudGlvbkF1dG9jb21wbGV0ZUl0ZW1UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lbnRpb25BdXRjb21wbGV0ZUxpc3RJdGVtQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIGF1dG9jb21wbGV0ZSBsaXN0IGl0ZW0gdGVtcGxhdGUgZm9yIGNvbW1hbmRzICh1c2VkIGluIHRoZSBbYEF1dG9jb21wbGV0ZVRleHRhcmVhQ29tcG9uZW50YF0oLi4vY29tcG9uZW50cy9BdXRvY29tcGxldGVUZXh0YXJlYUNvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIGNvbW1hbmRBdXRvY29tcGxldGVJdGVtVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxDb21tYW5kQXV0b2NvbXBsZXRlTGlzdEl0ZW1Db250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgYW4gaXRlbSBpbiB0aGUgW2NoYW5uZWwgbGlzdF0oLi4vY29tcG9uZW50cy9DaGFubmVsTGlzdENvbXBvbmVudC5tZHgpIChpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IFtjaGFubmFsIGxpc3QgaXRlbV0oLi4vY29tcG9uZW50cy9DaGFubmVsUHJldmlld0NvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIGNoYW5uZWxQcmV2aWV3VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxDaGFubmVsUHJldmlld0NvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIGlucHV0IHRlbXBsYXRlIHVzZWQgd2hlbiBlZGl0aW5nIGEgbWVzc2FnZSAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgbWVzc2FnZSBpbnB1dF0oLi4vY29tcG9uZW50cy9NZXNzYWdlSW5wdXRDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICogRm9yIGNvZGUgZXhhbXBsZXMgdG8gdGhlIGRpZmZlcmVudCBjdXN0b21pemF0aW9ucyBzZWUgb3VyIFtjdXN0b21pemF0aW9ucyBleGFtcGxlIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZSksIHNwZWNpZmljYWxseSB0aGUgW0FwcENvbXBvbmVudF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL3RyZWUvbWFzdGVyL3Byb2plY3RzL2N1c3RvbWl6YXRpb25zLWV4YW1wbGUvc3JjL2FwcCkgKHNlZSBbUkVBRE1FXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI2N1c3RvbWl6YXRpb24tZXhhbXBsZXMpIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHN0YXJ0IHRoZSBhcHBsaWNhdGlvbikuXG4gICAqL1xuICBtZXNzYWdlSW5wdXRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VJbnB1dENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBkaXNwbGF5aW5nIGEgW21lbnRpb24gaW5zaWRlIGEgbWVzc2FnZV0oLi4vY29kZS1leGFtcGxlcy9tZW50aW9uLWFjdGlvbnMubWR4KVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIG1lbnRpb25UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lbnRpb25UZW1wbGF0ZUNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBmb3IgW2Vtb2ppIHBpY2tlcl0oLi4vY29kZS1leGFtcGxlcy9lbW9qaS1waWNrZXIubWR4KVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIGVtb2ppUGlja2VyVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxFbW9qaVBpY2tlckNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0eXBpbmcgaW5kaWNhdG9yIHRlbXBsYXRlIHVzZWQgaW4gdGhlIFttZXNzYWdlIGxpc3RdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUxpc3RDb21wb25lbnQubWR4KVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIHR5cGluZ0luZGljYXRvclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8VHlwaW5nSW5kaWNhdG9yQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSBhIG1lc3NhZ2UgaW4gdGhlIFttZXNzYWdlIGxpc3RdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUxpc3RDb21wb25lbnQubWR4KSAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgbWVzc2FnZSBjb21wb25lbnRdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIG1lc3NhZ2VUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgZm9yIGNoYW5uZWwgYWN0aW9ucyBkaXNwbGF5ZWQgaW4gdGhlIFtjaGFubmVsIGhlYWRlcl0oLi4vY29tcG9uZW50cy9DaGFubmVsSGVhZGVyQ29tcG9uZW50Lm1keCkgKGJ5IGRlZmF1bHQgbm8gY2hhbm5lbCBhY3Rpb24gaXMgZGlzcGxheWVkKVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIGNoYW5uZWxBY3Rpb25zVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxDaGFubmVsQWN0aW9uc0NvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgYXR0YWNobWVudHMgb2YgYSBbbWVzc2FnZV0oLi4vY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50Lm1keCkgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IGF0dGFjaG1lbnQgbGlzdF0oLi4vY29tcG9uZW50cy9BdHRhY2htZW50TGlzdENvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIGF0dGFjaG1lbnRMaXN0VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxBdHRhY2htZW50TGlzdENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgYXR0YWNobWVudHMgaW4gdGhlIFttZXNzYWdlIGlucHV0XSguLi9jb21wb25lbnRzL01lc3NhZ2VJbnB1dENvbXBvbmVudC5tZHgpIGNvbXBvbmVudCAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgYXR0YWNobWVudCBwcmV2aWV3XSguLi9jb21wb25lbnRzL0F0dGFjaG1lbnRQcmV2aWV3TGlzdENvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIGF0dGFjaG1lbnRQcmV2aWV3TGlzdFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8QXR0YWNobWVudFByZXZpZXdMaXN0Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSBhdmF0YXJzIGZvciBjaGFubmVscyBhbmQgdXNlcnMgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IGF2YXRhcl0oLi4vY29tcG9uZW50cy9BdmF0YXJDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICogRm9yIGNvZGUgZXhhbXBsZXMgdG8gdGhlIGRpZmZlcmVudCBjdXN0b21pemF0aW9ucyBzZWUgb3VyIFtjdXN0b21pemF0aW9ucyBleGFtcGxlIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZSksIHNwZWNpZmljYWxseSB0aGUgW0FwcENvbXBvbmVudF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL3RyZWUvbWFzdGVyL3Byb2plY3RzL2N1c3RvbWl6YXRpb25zLWV4YW1wbGUvc3JjL2FwcCkgKHNlZSBbUkVBRE1FXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI2N1c3RvbWl6YXRpb24tZXhhbXBsZXMpIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHN0YXJ0IHRoZSBhcHBsaWNhdGlvbikuXG4gICAqL1xuICBhdmF0YXJUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPEF2YXRhckNvbnRleHQ+IHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIGljb25zIChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBpY29uIGNvbXBvbmVudF0oLi4vY29tcG9uZW50cy9JY29uQ29tcG9uZW50Lm1keCkpXG4gICAqXG4gICAqIEZvciBjb2RlIGV4YW1wbGVzIHRvIHRoZSBkaWZmZXJlbnQgY3VzdG9taXphdGlvbnMgc2VlIG91ciBbY3VzdG9taXphdGlvbnMgZXhhbXBsZSBhcHBsaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL3RyZWUvbWFzdGVyL3Byb2plY3RzL2N1c3RvbWl6YXRpb25zLWV4YW1wbGUpLCBzcGVjaWZpY2FsbHkgdGhlIFtBcHBDb21wb25lbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlL3NyYy9hcHApIChzZWUgW1JFQURNRV0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNjdXN0b21pemF0aW9uLWV4YW1wbGVzKSBmb3IgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBzdGFydCB0aGUgYXBwbGljYXRpb24pLlxuICAgKi9cbiAgaWNvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8SWNvbkNvbnRleHQ+IHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBsb2FkaW5nIGluZGljYXRvciAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgbG9hZGluZyBpbmRpY2F0b3JdKC4uL2NvbXBvbmVudHMvTG9hZGluZ0luZGljYXRvckNvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIGxvYWRpbmdJbmRpY2F0b3JUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPExvYWRpbmdJbmRpY2F0b3JDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBmb3IgZGlzcGxheWluZyB0aGUgbWVzc2FnZSBhY3Rpb25zIGJveCAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgbWVzc2FnZSBhY3Rpb25zIGJveF0oLi4vY29tcG9uZW50cy9NZXNzYWdlQWN0aW9uc0JveENvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIG1lc3NhZ2VBY3Rpb25zQm94VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxNZXNzYWdlQWN0aW9uc0JveENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBkaXNwbGF5aW5nIGFuIGl0ZW0gaW4gdGhlIFttZXNzYWdlIGFjdGlvbnMgYm94XSguLi9jb21wb25lbnRzL01lc3NhZ2VBY3Rpb25zQm94Q29tcG9uZW50Lm1keClcbiAgICpcbiAgICogRm9yIGNvZGUgZXhhbXBsZXMgdG8gdGhlIGRpZmZlcmVudCBjdXN0b21pemF0aW9ucyBzZWUgb3VyIFtjdXN0b21pemF0aW9ucyBleGFtcGxlIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZSksIHNwZWNpZmljYWxseSB0aGUgW0FwcENvbXBvbmVudF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL3RyZWUvbWFzdGVyL3Byb2plY3RzL2N1c3RvbWl6YXRpb25zLWV4YW1wbGUvc3JjL2FwcCkgKHNlZSBbUkVBRE1FXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI2N1c3RvbWl6YXRpb24tZXhhbXBsZXMpIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHN0YXJ0IHRoZSBhcHBsaWNhdGlvbikuXG4gICAqL1xuICBtZXNzYWdlQWN0aW9uc0JveEl0ZW1UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VBY3Rpb25Cb3hJdGVtQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB0aGUgcmVhY3Rpb25zIG9mIGEgW21lc3NhZ2VdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC5tZHgpLCBhbmQgdGhlIHNlbGVjdG9yIHRvIGFkZCBhIHJlYWN0aW9uIHRvIGEgbWVzc2FnZSAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgbWVzc2FnZSByZWFjdGlvbnMgY29tcG9uZW50XSguLi9jb21wb25lbnRzL01lc3NhZ2VSZWFjdGlvbnNDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICogRm9yIGNvZGUgZXhhbXBsZXMgdG8gdGhlIGRpZmZlcmVudCBjdXN0b21pemF0aW9ucyBzZWUgb3VyIFtjdXN0b21pemF0aW9ucyBleGFtcGxlIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZSksIHNwZWNpZmljYWxseSB0aGUgW0FwcENvbXBvbmVudF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL3RyZWUvbWFzdGVyL3Byb2plY3RzL2N1c3RvbWl6YXRpb25zLWV4YW1wbGUvc3JjL2FwcCkgKHNlZSBbUkVBRE1FXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI2N1c3RvbWl6YXRpb24tZXhhbXBsZXMpIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHN0YXJ0IHRoZSBhcHBsaWNhdGlvbikuXG4gICAqL1xuICBtZXNzYWdlUmVhY3Rpb25zVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxNZXNzYWdlUmVhY3Rpb25zQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSBhIG1vZGFsIHdpbmRvdyAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgbW9kYWxdKC4uL2NvbXBvbmVudHMvTW9kYWxDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICogRm9yIGNvZGUgZXhhbXBsZXMgdG8gdGhlIGRpZmZlcmVudCBjdXN0b21pemF0aW9ucyBzZWUgb3VyIFtjdXN0b21pemF0aW9ucyBleGFtcGxlIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZSksIHNwZWNpZmljYWxseSB0aGUgW0FwcENvbXBvbmVudF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL3RyZWUvbWFzdGVyL3Byb2plY3RzL2N1c3RvbWl6YXRpb25zLWV4YW1wbGUvc3JjL2FwcCkgKHNlZSBbUkVBRE1FXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI2N1c3RvbWl6YXRpb24tZXhhbXBsZXMpIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHN0YXJ0IHRoZSBhcHBsaWNhdGlvbikuXG4gICAqL1xuICBtb2RhbFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8TW9kYWxDb250ZXh0PiB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBvdmVycmlkZSB0aGUgW2RlZmF1bHQgbm90aWZpY2F0aW9uIGNvbXBvbmVudF0oLi4vY29tcG9uZW50cy9Ob3RpZmljYXRpb25Db21wb25lbnQubWR4KVxuICAgKlxuICAgKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAgICovXG4gIG5vdGlmaWNhdGlvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Tm90aWZpY2F0aW9uQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgZm9yIGhlYWRlciBvZiBhIFt0aHJlYWRdKC4uL2NvbXBvbmVudHMvVGhyZWFkQ29tcG9uZW50Lm1keClcbiAgICpcbiAgICogRm9yIGNvZGUgZXhhbXBsZXMgdG8gdGhlIGRpZmZlcmVudCBjdXN0b21pemF0aW9ucyBzZWUgb3VyIFtjdXN0b21pemF0aW9ucyBleGFtcGxlIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZSksIHNwZWNpZmljYWxseSB0aGUgW0FwcENvbXBvbmVudF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL3RyZWUvbWFzdGVyL3Byb2plY3RzL2N1c3RvbWl6YXRpb25zLWV4YW1wbGUvc3JjL2FwcCkgKHNlZSBbUkVBRE1FXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI2N1c3RvbWl6YXRpb24tZXhhbXBsZXMpIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHN0YXJ0IHRoZSBhcHBsaWNhdGlvbikuXG4gICAqL1xuICB0aHJlYWRIZWFkZXJUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPFRocmVhZEhlYWRlckNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../custom-templates.service";
|
|
4
|
+
import * as i2 from "../icon/icon.component";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
/**
|
|
7
|
+
* The `IconPlaceholder` component displays the [default icons](./IconComponent.mdx) unless a [custom template](../services/CustomTemplatesService.mdx) is provided. This componet is used by the SDK internally, you likely won't need to use it.
|
|
8
|
+
*/
|
|
9
|
+
export class IconPlaceholderComponent {
|
|
10
|
+
constructor(customTemplatesService) {
|
|
11
|
+
this.customTemplatesService = customTemplatesService;
|
|
12
|
+
}
|
|
13
|
+
getIconContext() {
|
|
14
|
+
return {
|
|
15
|
+
icon: this.icon,
|
|
16
|
+
size: this.size,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
IconPlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: IconPlaceholderComponent, deps: [{ token: i1.CustomTemplatesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
IconPlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: IconPlaceholderComponent, selector: "stream-icon-placeholder", inputs: { icon: "icon", size: "size" }, ngImport: i0, template: "<ng-template #defaultIcon let-icon=\"icon\" let-size=\"size\">\n <stream-icon [icon]=\"icon\" [size]=\"size\"></stream-icon>\n</ng-template>\n<ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.iconTemplate$ | async) || defaultIcon;\n context: getIconContext()\n \"\n></ng-container>\n", components: [{ type: i2.IconComponent, selector: "stream-icon", inputs: ["icon", "size"] }], directives: [{ type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i3.AsyncPipe } });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: IconPlaceholderComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{
|
|
25
|
+
selector: 'stream-icon-placeholder',
|
|
26
|
+
templateUrl: './icon-placeholder.component.html',
|
|
27
|
+
styles: [],
|
|
28
|
+
}]
|
|
29
|
+
}], ctorParameters: function () { return [{ type: i1.CustomTemplatesService }]; }, propDecorators: { icon: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], size: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1wbGFjZWhvbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvaWNvbi1wbGFjZWhvbGRlci9pY29uLXBsYWNlaG9sZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9pY29uLXBsYWNlaG9sZGVyL2ljb24tcGxhY2Vob2xkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBS2pEOztHQUVHO0FBTUgsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQyxZQUFtQixzQkFBOEM7UUFBOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtJQUFHLENBQUM7SUFFckUsY0FBYztRQUNaLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FBQztJQUNKLENBQUM7O3FIQWhCVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qix1R0NickMsbVRBU0E7MkZESWEsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELE1BQU0sRUFBRSxFQUFFO2lCQUNYOzZHQUtVLElBQUk7c0JBQVosS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdXN0b21UZW1wbGF0ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vY3VzdG9tLXRlbXBsYXRlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db250ZXh0IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIFRoZSBgSWNvblBsYWNlaG9sZGVyYCBjb21wb25lbnQgZGlzcGxheXMgdGhlIFtkZWZhdWx0IGljb25zXSguL0ljb25Db21wb25lbnQubWR4KSB1bmxlc3MgYSBbY3VzdG9tIHRlbXBsYXRlXSguLi9zZXJ2aWNlcy9DdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLm1keCkgaXMgcHJvdmlkZWQuIFRoaXMgY29tcG9uZXQgaXMgdXNlZCBieSB0aGUgU0RLIGludGVybmFsbHksIHlvdSBsaWtlbHkgd29uJ3QgbmVlZCB0byB1c2UgaXQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0cmVhbS1pY29uLXBsYWNlaG9sZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24tcGxhY2Vob2xkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBJY29uUGxhY2Vob2xkZXJDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIGljb24gdG8gZGlzcGxheSwgdGhlIGxpc3Qgb2YgW3N1cHBvcnRlZCBpY29uc10oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL3RyZWUvbWFzdGVyL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9pY29uL2ljb24uY29tcG9uZW50LnRzKSBjYW4gYmUgZm91bmQgb24gR2l0SHViLlxuICAgKi9cbiAgQElucHV0KCkgaWNvbjogSWNvbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBpY29uIChpbiBwaXhlbHMpXG4gICAqL1xuICBASW5wdXQoKSBzaXplOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjdXN0b21UZW1wbGF0ZXNTZXJ2aWNlOiBDdXN0b21UZW1wbGF0ZXNTZXJ2aWNlKSB7fVxuXG4gIGdldEljb25Db250ZXh0KCk6IEljb25Db250ZXh0IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogdGhpcy5pY29uLFxuICAgICAgc2l6ZTogdGhpcy5zaXplLFxuICAgIH07XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEljb24gbGV0LWljb249XCJpY29uXCIgbGV0LXNpemU9XCJzaXplXCI+XG4gIDxzdHJlYW0taWNvbiBbaWNvbl09XCJpY29uXCIgW3NpemVdPVwic2l6ZVwiPjwvc3RyZWFtLWljb24+XG48L25nLXRlbXBsYXRlPlxuPG5nLWNvbnRhaW5lclxuICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgIChjdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLmljb25UZW1wbGF0ZSQgfCBhc3luYykgfHwgZGVmYXVsdEljb247XG4gICAgY29udGV4dDogZ2V0SWNvbkNvbnRleHQoKVxuICBcIlxuPjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../custom-templates.service";
|
|
4
|
+
import * as i2 from "../loading-indicator/loading-indicator.component";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
/**
|
|
7
|
+
* The `LoadingInficatorPlaceholder` component displays the [default loading indicator](./LoadingIndicatorComponent.mdx) unless a [custom template](../services/CustomTemplatesService.mdx) is provided. This componet is used by the SDK internally, you likely won't need to use it.
|
|
8
|
+
*/
|
|
9
|
+
export class LoadingIndicatorPlaceholderComponent {
|
|
10
|
+
constructor(customTemplatesService) {
|
|
11
|
+
this.customTemplatesService = customTemplatesService;
|
|
12
|
+
/**
|
|
13
|
+
* The size of the indicator (in pixels)
|
|
14
|
+
*/
|
|
15
|
+
this.size = 15;
|
|
16
|
+
/**
|
|
17
|
+
* The color of the indicator
|
|
18
|
+
*/
|
|
19
|
+
this.color = '#006CFF';
|
|
20
|
+
}
|
|
21
|
+
getLoadingIndicatorContext() {
|
|
22
|
+
return {
|
|
23
|
+
size: this.size,
|
|
24
|
+
color: this.color,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
LoadingIndicatorPlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: LoadingIndicatorPlaceholderComponent, deps: [{ token: i1.CustomTemplatesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
LoadingIndicatorPlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: LoadingIndicatorPlaceholderComponent, selector: "stream-loading-indicator-placeholder", inputs: { size: "size", color: "color" }, ngImport: i0, template: "<ng-template #defaultLoadingIndicator let-size=\"size\" let-color=\"color\">\n <stream-loading-indicator\n [size]=\"size\"\n [color]=\"color\"\n ></stream-loading-indicator>\n</ng-template>\n<ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.loadingIndicatorTemplate$ | async) ||\n defaultLoadingIndicator;\n context: getLoadingIndicatorContext()\n \"\n></ng-container>\n", components: [{ type: i2.LoadingIndicatorComponent, selector: "stream-loading-indicator", inputs: ["size", "color"] }], directives: [{ type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i3.AsyncPipe } });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: LoadingIndicatorPlaceholderComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: 'stream-loading-indicator-placeholder',
|
|
34
|
+
templateUrl: './loading-indicator-placeholder.component.html',
|
|
35
|
+
styles: [],
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.CustomTemplatesService }]; }, propDecorators: { size: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], color: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1pbmRpY2F0b3ItcGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2xvYWRpbmctaW5kaWNhdG9yLXBsYWNlaG9sZGVyL2xvYWRpbmctaW5kaWNhdG9yLXBsYWNlaG9sZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9sb2FkaW5nLWluZGljYXRvci1wbGFjZWhvbGRlci9sb2FkaW5nLWluZGljYXRvci1wbGFjZWhvbGRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFJakQ7O0dBRUc7QUFNSCxNQUFNLE9BQU8sb0NBQW9DO0lBUy9DLFlBQW1CLHNCQUE4QztRQUE5QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBUmpFOztXQUVHO1FBQ00sU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNuQjs7V0FFRztRQUNNLFVBQUssR0FBRyxTQUFTLENBQUM7SUFDeUMsQ0FBQztJQUVyRSwwQkFBMEI7UUFDeEIsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDO0lBQ0osQ0FBQzs7aUlBaEJVLG9DQUFvQztxSEFBcEMsb0NBQW9DLHNIQ1pqRCxzWkFhQTsyRkREYSxvQ0FBb0M7a0JBTGhELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsV0FBVyxFQUFFLGdEQUFnRDtvQkFDN0QsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7NkdBS1UsSUFBSTtzQkFBWixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UgfSBmcm9tICcuLi9jdXN0b20tdGVtcGxhdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9hZGluZ0luZGljYXRvckNvbnRleHQgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogVGhlIGBMb2FkaW5nSW5maWNhdG9yUGxhY2Vob2xkZXJgIGNvbXBvbmVudCBkaXNwbGF5cyB0aGUgW2RlZmF1bHQgbG9hZGluZyBpbmRpY2F0b3JdKC4vTG9hZGluZ0luZGljYXRvckNvbXBvbmVudC5tZHgpIHVubGVzcyBhIFtjdXN0b20gdGVtcGxhdGVdKC4uL3NlcnZpY2VzL0N1c3RvbVRlbXBsYXRlc1NlcnZpY2UubWR4KSBpcyBwcm92aWRlZC4gVGhpcyBjb21wb25ldCBpcyB1c2VkIGJ5IHRoZSBTREsgaW50ZXJuYWxseSwgeW91IGxpa2VseSB3b24ndCBuZWVkIHRvIHVzZSBpdC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3RyZWFtLWxvYWRpbmctaW5kaWNhdG9yLXBsYWNlaG9sZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvYWRpbmctaW5kaWNhdG9yLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9hZGluZ0luZGljYXRvclBsYWNlaG9sZGVyQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBpbmRpY2F0b3IgKGluIHBpeGVscylcbiAgICovXG4gIEBJbnB1dCgpIHNpemUgPSAxNTtcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgaW5kaWNhdG9yXG4gICAqL1xuICBASW5wdXQoKSBjb2xvciA9ICcjMDA2Q0ZGJztcbiAgY29uc3RydWN0b3IocHVibGljIGN1c3RvbVRlbXBsYXRlc1NlcnZpY2U6IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UpIHt9XG5cbiAgZ2V0TG9hZGluZ0luZGljYXRvckNvbnRleHQoKTogTG9hZGluZ0luZGljYXRvckNvbnRleHQge1xuICAgIHJldHVybiB7XG4gICAgICBzaXplOiB0aGlzLnNpemUsXG4gICAgICBjb2xvcjogdGhpcy5jb2xvcixcbiAgICB9O1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2FkaW5nSW5kaWNhdG9yIGxldC1zaXplPVwic2l6ZVwiIGxldC1jb2xvcj1cImNvbG9yXCI+XG4gIDxzdHJlYW0tbG9hZGluZy1pbmRpY2F0b3JcbiAgICBbc2l6ZV09XCJzaXplXCJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxuICA+PC9zdHJlYW0tbG9hZGluZy1pbmRpY2F0b3I+XG48L25nLXRlbXBsYXRlPlxuPG5nLWNvbnRhaW5lclxuICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgIChjdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLmxvYWRpbmdJbmRpY2F0b3JUZW1wbGF0ZSQgfCBhc3luYykgfHxcbiAgICAgIGRlZmF1bHRMb2FkaW5nSW5kaWNhdG9yO1xuICAgIGNvbnRleHQ6IGdldExvYWRpbmdJbmRpY2F0b3JDb250ZXh0KClcbiAgXCJcbj48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|