stream-chat-angular 5.9.1 → 5.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/version.d.ts +1 -1
- package/esm2020/assets/version.mjs +2 -2
- package/esm2020/lib/attachment.service.mjs +3 -3
- package/esm2020/lib/avatar-placeholder/avatar-placeholder.component.mjs +2 -2
- package/esm2020/lib/channel/channel.component.mjs +2 -2
- package/esm2020/lib/channel.service.mjs +4 -4
- package/esm2020/lib/chat-client.service.mjs +2 -2
- package/esm2020/lib/custom-templates.service.mjs +44 -44
- package/esm2020/lib/icon/icon-placeholder/icon-placeholder.component.mjs +2 -2
- package/esm2020/lib/icon/loading-indicator-placeholder/loading-indicator-placeholder.component.mjs +2 -2
- package/esm2020/lib/message/message.component.mjs +3 -3
- package/esm2020/lib/message-actions-box/message-actions-box.component.mjs +3 -3
- package/esm2020/lib/message-actions.service.mjs +2 -2
- package/esm2020/lib/message-bounce-prompt/message-bounce-prompt.component.mjs +2 -2
- package/esm2020/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.mjs +86 -33
- package/esm2020/lib/message-input/emoji-input.service.mjs +3 -3
- package/esm2020/lib/message-input/message-input-config.service.mjs +10 -3
- package/esm2020/lib/message-input/message-input.component.mjs +2 -2
- package/esm2020/lib/message-input/textarea/textarea.component.mjs +2 -2
- package/esm2020/lib/message-reactions/message-reactions.component.mjs +3 -3
- package/esm2020/lib/message-reactions-selector/message-reactions-selector.component.mjs +3 -3
- package/esm2020/lib/message-reactions.service.mjs +2 -2
- package/esm2020/lib/notification/notification.component.mjs +2 -2
- package/esm2020/lib/notification.service.mjs +2 -2
- package/esm2020/lib/stream-i18n.service.mjs +2 -2
- package/esm2020/lib/theme.service.mjs +2 -2
- package/esm2020/lib/thread/thread.component.mjs +2 -2
- package/esm2020/lib/types.mjs +1 -1
- package/fesm2015/stream-chat-angular.mjs +164 -107
- package/fesm2015/stream-chat-angular.mjs.map +1 -1
- package/fesm2020/stream-chat-angular.mjs +162 -104
- package/fesm2020/stream-chat-angular.mjs.map +1 -1
- package/lib/attachment.service.d.ts +3 -3
- package/lib/avatar-placeholder/avatar-placeholder.component.d.ts +1 -1
- package/lib/channel/channel.component.d.ts +1 -1
- package/lib/channel.service.d.ts +15 -15
- package/lib/chat-client.service.d.ts +3 -3
- package/lib/custom-templates.service.d.ts +43 -43
- package/lib/icon/icon-placeholder/icon-placeholder.component.d.ts +1 -1
- package/lib/icon/loading-indicator-placeholder/loading-indicator-placeholder.component.d.ts +1 -1
- package/lib/message/message.component.d.ts +2 -2
- package/lib/message-actions-box/message-actions-box.component.d.ts +2 -2
- package/lib/message-actions.service.d.ts +2 -2
- package/lib/message-bounce-prompt/message-bounce-prompt.component.d.ts +1 -1
- package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +8 -5
- package/lib/message-input/emoji-input.service.d.ts +2 -2
- package/lib/message-input/message-input-config.service.d.ts +11 -3
- package/lib/message-input/message-input.component.d.ts +6 -6
- package/lib/message-input/textarea/textarea.component.d.ts +2 -2
- package/lib/message-reactions/message-reactions.component.d.ts +2 -2
- package/lib/message-reactions-selector/message-reactions-selector.component.d.ts +2 -2
- package/lib/message-reactions.service.d.ts +2 -2
- package/lib/notification/notification.component.d.ts +1 -1
- package/lib/notification.service.d.ts +1 -1
- package/lib/stream-i18n.service.d.ts +1 -1
- package/lib/theme.service.d.ts +1 -1
- package/lib/thread/thread.component.d.ts +1 -1
- package/lib/types.d.ts +39 -0
- package/package.json +1 -1
- package/src/assets/version.ts +1 -1
|
@@ -17,13 +17,13 @@ import { NgxFloatUiModule } from 'ngx-float-ui';
|
|
|
17
17
|
import prettybytes from 'pretty-bytes';
|
|
18
18
|
import fixWebmDuration from 'fix-webm-duration';
|
|
19
19
|
import transliterate from '@stream-io/transliterate';
|
|
20
|
-
import * as
|
|
20
|
+
import * as i8 from 'angular-mentions';
|
|
21
21
|
import { MentionModule } from 'angular-mentions';
|
|
22
22
|
|
|
23
|
-
const version = '5.
|
|
23
|
+
const version = '5.10.0';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* The `NotificationService` can be used to add or remove notifications. By default the [`NotificationList`](
|
|
26
|
+
* The `NotificationService` can be used to add or remove notifications. By default the [`NotificationList`](/chat/docs/sdk/angular/components/NotificationListComponent/) component displays the currently active notifications.
|
|
27
27
|
*/
|
|
28
28
|
class NotificationService {
|
|
29
29
|
constructor() {
|
|
@@ -196,7 +196,7 @@ class ChatClientService {
|
|
|
196
196
|
return result;
|
|
197
197
|
}
|
|
198
198
|
/**
|
|
199
|
-
* Disconnects the current user, and closes the WebSocket connection. Useful when disconnecting a chat user, use in combination with [`reset`](
|
|
199
|
+
* Disconnects the current user, and closes the WebSocket connection. Useful when disconnecting a chat user, use in combination with [`reset`](/chat/docs/sdk/angular/services/ChannelService/#reset/).
|
|
200
200
|
*/
|
|
201
201
|
async disconnectUser() {
|
|
202
202
|
this.pendingInvitesSubject.next([]);
|
|
@@ -780,7 +780,7 @@ class ChannelService {
|
|
|
780
780
|
return this._init(options);
|
|
781
781
|
}
|
|
782
782
|
/**
|
|
783
|
-
* Resets the `activeChannel$`, `channels$` and `activeChannelMessages$` Observables. Useful when disconnecting a chat user, use in combination with [`disconnectUser`](
|
|
783
|
+
* Resets the `activeChannel$`, `channels$` and `activeChannelMessages$` Observables. Useful when disconnecting a chat user, use in combination with [`disconnectUser`](/chat/docs/sdk/angular/services/ChatClientService/#disconnectuser/).
|
|
784
784
|
*/
|
|
785
785
|
reset() {
|
|
786
786
|
this.deselectActiveChannel();
|
|
@@ -922,7 +922,7 @@ class ChannelService {
|
|
|
922
922
|
}
|
|
923
923
|
/**
|
|
924
924
|
* Uploads files to the channel. If you want to know more about [file uploads](https://getstream.io/chat/docs/javascript/file_uploads/?language=javascript) check out the platform documentation.
|
|
925
|
-
* @param uploads the attachments to upload (output of the [`AttachmentService`](
|
|
925
|
+
* @param uploads the attachments to upload (output of the [`AttachmentService`](/chat/docs/sdk/angular/services/AttachmentService/))
|
|
926
926
|
* @returns the result of file upload requests
|
|
927
927
|
*/
|
|
928
928
|
async uploadAttachments(uploads) {
|
|
@@ -990,7 +990,7 @@ class ChannelService {
|
|
|
990
990
|
}
|
|
991
991
|
/**
|
|
992
992
|
* Deletes an uploaded file by URL. If you want to know more about [file uploads](https://getstream.io/chat/docs/javascript/file_uploads/?language=javascript) check out the platform documentation
|
|
993
|
-
* @param attachmentUpload Attachment to be deleted (output of the [`AttachmentService`](
|
|
993
|
+
* @param attachmentUpload Attachment to be deleted (output of the [`AttachmentService`](/chat/docs/sdk/angular/services/AttachmentService/))
|
|
994
994
|
*/
|
|
995
995
|
async deleteAttachment(attachmentUpload) {
|
|
996
996
|
const channel = this.activeChannelSubject.getValue();
|
|
@@ -1966,7 +1966,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
1966
1966
|
}], ctorParameters: function () { return [{ type: ChatClientService }, { type: i0.NgZone }, { type: NotificationService }]; } });
|
|
1967
1967
|
|
|
1968
1968
|
/**
|
|
1969
|
-
* The `ThemeService` can be used to change the theme of the chat UI and to customize the theme. Our [theming guide](
|
|
1969
|
+
* The `ThemeService` can be used to change the theme of the chat UI and to customize the theme. Our [theming guide](/chat/docs/sdk/angular/theming/themingv2/) gives a complete overview about the topic.
|
|
1970
1970
|
*/
|
|
1971
1971
|
class ThemeService {
|
|
1972
1972
|
constructor() {
|
|
@@ -2089,7 +2089,7 @@ class AttachmentService {
|
|
|
2089
2089
|
/**
|
|
2090
2090
|
* You can get and set the list if uploaded custom attachments
|
|
2091
2091
|
*
|
|
2092
|
-
* By default the SDK components won't display these, but you can provide your own `customAttachmentPreviewListTemplate$` and `customAttachmentListTemplate$` for the [`CustomTemplatesService`](
|
|
2092
|
+
* By default the SDK components won't display these, but you can provide your own `customAttachmentPreviewListTemplate$` and `customAttachmentListTemplate$` for the [`CustomTemplatesService`](/chat/docs/sdk/angular/services/CustomTemplatesService/).
|
|
2093
2093
|
*/
|
|
2094
2094
|
this.customAttachments$ = new BehaviorSubject([]);
|
|
2095
2095
|
/**
|
|
@@ -2219,7 +2219,7 @@ class AttachmentService {
|
|
|
2219
2219
|
/**
|
|
2220
2220
|
* You can add custom `image`, `video` and `file` attachments using this method.
|
|
2221
2221
|
*
|
|
2222
|
-
* Note: If you just want to use your own CDN for file uploads, you don't necessary need this method, you can just specify you own upload function in the [`ChannelService`](
|
|
2222
|
+
* Note: If you just want to use your own CDN for file uploads, you don't necessary need this method, you can just specify you own upload function in the [`ChannelService`](/chat/docs/sdk/angular/services/ChannelService/)
|
|
2223
2223
|
* @param attachment
|
|
2224
2224
|
*/
|
|
2225
2225
|
addAttachment(attachment) {
|
|
@@ -2835,7 +2835,7 @@ const en = {
|
|
|
2835
2835
|
};
|
|
2836
2836
|
|
|
2837
2837
|
/**
|
|
2838
|
-
* The `StreamI18nService` can be used to customize the labels of the chat UI. Our [translation guide](
|
|
2838
|
+
* The `StreamI18nService` can be used to customize the labels of the chat UI. Our [translation guide](/chat/docs/sdk/angular/concepts/translation/) covers this topic in detail.
|
|
2839
2839
|
*/
|
|
2840
2840
|
class StreamI18nService {
|
|
2841
2841
|
constructor(translteService) {
|
|
@@ -3027,183 +3027,183 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3027
3027
|
class CustomTemplatesService {
|
|
3028
3028
|
constructor() {
|
|
3029
3029
|
/**
|
|
3030
|
-
* The autocomplete list item template for mentioning users (used in the [`AutocompleteTextareaComponent`](
|
|
3030
|
+
* The autocomplete list item template for mentioning users (used in the [`AutocompleteTextareaComponent`](/chat/docs/sdk/angular/components/AutocompleteTextareaComponent/))
|
|
3031
3031
|
*/
|
|
3032
3032
|
this.mentionAutocompleteItemTemplate$ = new BehaviorSubject(undefined);
|
|
3033
3033
|
/**
|
|
3034
|
-
* The autocomplete list item template for commands (used in the [`AutocompleteTextareaComponent`](
|
|
3034
|
+
* The autocomplete list item template for commands (used in the [`AutocompleteTextareaComponent`](/chat/docs/sdk/angular/components/AutocompleteTextareaComponent/))
|
|
3035
3035
|
*/
|
|
3036
3036
|
this.commandAutocompleteItemTemplate$ = new BehaviorSubject(undefined);
|
|
3037
3037
|
/**
|
|
3038
|
-
* Template used to display an item in the [channel list](
|
|
3038
|
+
* Template used to display an item in the [channel list](/chat/docs/sdk/angular/components/ChannelListComponent/) (instead of the default [channal list item](/chat/docs/sdk/angular/components/ChannelPreviewComponent/))
|
|
3039
3039
|
*
|
|
3040
3040
|
*/
|
|
3041
3041
|
this.channelPreviewTemplate$ = new BehaviorSubject(undefined);
|
|
3042
3042
|
/**
|
|
3043
|
-
* The template used for displaying a [mention inside a message](
|
|
3043
|
+
* The template used for displaying a [mention inside a message](/chat/docs/sdk/angular/code-examples/mention-actions/)
|
|
3044
3044
|
*
|
|
3045
3045
|
*/
|
|
3046
3046
|
this.mentionTemplate$ = new BehaviorSubject(undefined);
|
|
3047
3047
|
/**
|
|
3048
|
-
* The template for [emoji picker](
|
|
3048
|
+
* The template for [emoji picker](/chat/docs/sdk/angular/code-examples/emoji-picker)
|
|
3049
3049
|
*
|
|
3050
3050
|
*/
|
|
3051
3051
|
this.emojiPickerTemplate$ = new BehaviorSubject(undefined);
|
|
3052
3052
|
/**
|
|
3053
|
-
* The typing indicator template used in the [message list](
|
|
3053
|
+
* The typing indicator template used in the [message list](/chat/docs/sdk/angular/components/MessageListComponent/)
|
|
3054
3054
|
*
|
|
3055
3055
|
*/
|
|
3056
3056
|
this.typingIndicatorTemplate$ = new BehaviorSubject(undefined);
|
|
3057
3057
|
/**
|
|
3058
|
-
* The template used to display a message in the [message list](
|
|
3058
|
+
* The template used to display a message in the [message list](/chat/docs/sdk/angular/components/MessageListComponent/) (instead of the [default message component](/chat/docs/sdk/angular/components/MessageComponent/))
|
|
3059
3059
|
*
|
|
3060
3060
|
*/
|
|
3061
3061
|
this.messageTemplate$ = new BehaviorSubject(undefined);
|
|
3062
3062
|
/**
|
|
3063
|
-
* The template for channel actions displayed in the [channel header](
|
|
3063
|
+
* The template for channel actions displayed in the [channel header](/chat/docs/sdk/angular/components/ChannelHeaderComponent/) (by default no channel action is displayed)
|
|
3064
3064
|
*
|
|
3065
3065
|
*/
|
|
3066
3066
|
this.channelActionsTemplate$ = new BehaviorSubject(undefined);
|
|
3067
3067
|
/**
|
|
3068
|
-
* The template used to display attachments of a [message](
|
|
3068
|
+
* The template used to display attachments of a [message](/chat/docs/sdk/angular/components/MessageComponent/) (instead of the [default attachment list](/chat/docs/sdk/angular/components/AttachmentListComponent/))
|
|
3069
3069
|
*
|
|
3070
3070
|
*/
|
|
3071
3071
|
this.attachmentListTemplate$ = new BehaviorSubject(undefined);
|
|
3072
3072
|
/**
|
|
3073
|
-
* The template used to display attachments in the [message input](
|
|
3073
|
+
* The template used to display attachments in the [message input](/chat/docs/sdk/angular/components/MessageInputComponent) component (instead of the [default attachment preview](/chat/docs/sdk/angular/components/AttachmentPreviewListComponent))
|
|
3074
3074
|
*
|
|
3075
3075
|
*/
|
|
3076
3076
|
this.attachmentPreviewListTemplate$ = new BehaviorSubject(undefined);
|
|
3077
3077
|
/**
|
|
3078
|
-
* The template used to display avatars for channels and users (instead of the [default avatar](
|
|
3078
|
+
* The template used to display avatars for channels and users (instead of the [default avatar](/chat/docs/sdk/angular/components/AvatarComponent/))
|
|
3079
3079
|
*
|
|
3080
3080
|
*/
|
|
3081
3081
|
this.avatarTemplate$ = new BehaviorSubject(undefined);
|
|
3082
3082
|
/**
|
|
3083
|
-
* Template for displaying icons (instead of the [default icon component](
|
|
3083
|
+
* Template for displaying icons (instead of the [default icon component](/chat/docs/sdk/angular/components/IconComponent/))
|
|
3084
3084
|
*
|
|
3085
3085
|
*/
|
|
3086
3086
|
this.iconTemplate$ = new BehaviorSubject(undefined);
|
|
3087
3087
|
/**
|
|
3088
|
-
* Template for displaying the loading indicator (instead of the [default loading indicator](
|
|
3088
|
+
* Template for displaying the loading indicator (instead of the [default loading indicator](/chat/docs/sdk/angular/components/LoadingIndicatorComponent/))
|
|
3089
3089
|
*
|
|
3090
3090
|
*/
|
|
3091
3091
|
this.loadingIndicatorTemplate$ = new BehaviorSubject(undefined);
|
|
3092
3092
|
/**
|
|
3093
|
-
* Template for displaying the message actions box (instead of the [default message actions box](
|
|
3093
|
+
* Template for displaying the message actions box (instead of the [default message actions box](/chat/docs/sdk/angular/components/MessageActionsBoxComponent/))
|
|
3094
3094
|
*
|
|
3095
3095
|
*/
|
|
3096
3096
|
this.messageActionsBoxTemplate$ = new BehaviorSubject(undefined);
|
|
3097
3097
|
/**
|
|
3098
|
-
* The template used for displaying an item in the [message actions box](
|
|
3098
|
+
* The template used for displaying an item in the [message actions box](/chat/docs/sdk/angular/components/MessageActionsBoxComponent/)
|
|
3099
3099
|
*
|
|
3100
3100
|
*/
|
|
3101
3101
|
this.messageActionsBoxItemTemplate$ = new BehaviorSubject(undefined);
|
|
3102
3102
|
/**
|
|
3103
|
-
* The template used to display the reactions of a [message](
|
|
3103
|
+
* The template used to display the reactions of a [message](/chat/docs/sdk/angular/components/MessageComponent/), and the selector to add a reaction to a message (instead of the [default message reactions component](/chat/docs/sdk/angular/components/MessageReactionsComponent/))
|
|
3104
3104
|
*
|
|
3105
3105
|
*/
|
|
3106
3106
|
this.messageReactionsTemplate$ = new BehaviorSubject(undefined);
|
|
3107
3107
|
/**
|
|
3108
|
-
* The template used to display the reactions of a [message](
|
|
3108
|
+
* The template used to display the reactions of a [message](/chat/docs/sdk/angular/components/MessageComponent/), and the selector to add a reaction to a message (instead of the [default message reactions component](/chat/docs/sdk/angular/components/MessageReactionsComponent/))
|
|
3109
3109
|
*
|
|
3110
3110
|
*/
|
|
3111
3111
|
this.messageReactionsSelectorTemplate$ = new BehaviorSubject(undefined);
|
|
3112
3112
|
/**
|
|
3113
|
-
* The template used to display a modal window (instead of the [default modal](
|
|
3113
|
+
* The template used to display a modal window (instead of the [default modal](/chat/docs/sdk/angular/components/ModalComponent/))
|
|
3114
3114
|
*
|
|
3115
3115
|
*/
|
|
3116
3116
|
this.modalTemplate$ = new BehaviorSubject(undefined);
|
|
3117
3117
|
/**
|
|
3118
|
-
* The template used to override the [default notification component](
|
|
3118
|
+
* The template used to override the [default notification component](/chat/docs/sdk/angular/components/NotificationComponent/)
|
|
3119
3119
|
*
|
|
3120
3120
|
*/
|
|
3121
3121
|
this.notificationTemplate$ = new BehaviorSubject(undefined);
|
|
3122
3122
|
/**
|
|
3123
|
-
* The template used for header of a [thread](
|
|
3123
|
+
* The template used for header of a [thread](/chat/docs/sdk/angular/components/ThreadComponent/)
|
|
3124
3124
|
*
|
|
3125
3125
|
*/
|
|
3126
3126
|
this.threadHeaderTemplate$ = new BehaviorSubject(undefined);
|
|
3127
3127
|
/**
|
|
3128
|
-
* The template used for displaying the delivered state of the message inside the [message component](
|
|
3128
|
+
* The template used for displaying the delivered state of the message inside the [message component](/chat/docs/sdk/angular/components/MessageComponent/)
|
|
3129
3129
|
*
|
|
3130
3130
|
* Displayed for the last message sent by the current user, if the message isn't yet read by anyone
|
|
3131
3131
|
*
|
|
3132
3132
|
*/
|
|
3133
3133
|
this.deliveredStatusTemplate$ = new BehaviorSubject(undefined);
|
|
3134
3134
|
/**
|
|
3135
|
-
* The template used for displaying the sending state of the message inside the [message component](
|
|
3135
|
+
* The template used for displaying the sending state of the message inside the [message component](/chat/docs/sdk/angular/components/MessageComponent/)
|
|
3136
3136
|
*
|
|
3137
3137
|
* Displayed for the last message sent by the current user, if the message is currently being sent
|
|
3138
3138
|
*
|
|
3139
3139
|
*/
|
|
3140
3140
|
this.sendingStatusTemplate$ = new BehaviorSubject(undefined);
|
|
3141
3141
|
/**
|
|
3142
|
-
* The template used for displaying the sent state of the message inside the [message component](
|
|
3142
|
+
* The template used for displaying the sent state of the message inside the [message component](/chat/docs/sdk/angular/components/MessageComponent/)
|
|
3143
3143
|
*
|
|
3144
3144
|
* Displayed for the last message sent by the current user, if the message is read at least by one user
|
|
3145
3145
|
*
|
|
3146
3146
|
*/
|
|
3147
3147
|
this.readStatusTemplate$ = new BehaviorSubject(undefined);
|
|
3148
3148
|
/**
|
|
3149
|
-
* Template to display custom metadata inside [message component](
|
|
3149
|
+
* Template to display custom metadata inside [message component](/chat/docs/sdk/angular/components/MessageComponent/)
|
|
3150
3150
|
*
|
|
3151
3151
|
*/
|
|
3152
3152
|
this.customMessageMetadataTemplate$ = new BehaviorSubject(undefined);
|
|
3153
3153
|
/**
|
|
3154
|
-
* The template used to display additional information about a channel under the channel name inside the [channel header component](
|
|
3154
|
+
* The template used to display additional information about a channel under the channel name inside the [channel header component](/chat/docs/sdk/angular/components/ChannelHeaderComponent/)
|
|
3155
3155
|
*
|
|
3156
3156
|
*/
|
|
3157
3157
|
this.channelHeaderInfoTemplate$ = new BehaviorSubject(undefined);
|
|
3158
3158
|
/**
|
|
3159
|
-
* The template used for displaying file upload/attachment selector inside the [message input](
|
|
3159
|
+
* The template used for displaying file upload/attachment selector inside the [message input](/chat/docs/sdk/angular/components/MessageInputComponent/)
|
|
3160
3160
|
*
|
|
3161
3161
|
*/
|
|
3162
3162
|
this.customAttachmentUploadTemplate$ = new BehaviorSubject(undefined);
|
|
3163
3163
|
/**
|
|
3164
|
-
* The template that can be used to override how a single image attachment is displayed inside the [attachment list](
|
|
3164
|
+
* The template that can be used to override how a single image attachment is displayed inside the [attachment list](/chat/docs/sdk/angular/components/AttachmentListComponent/)
|
|
3165
3165
|
*/
|
|
3166
3166
|
this.imageAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
3167
3167
|
/**
|
|
3168
|
-
* The template that can be used to override how a voice recording attachment is displayed inside the [attachment list](
|
|
3168
|
+
* The template that can be used to override how a voice recording attachment is displayed inside the [attachment list](/chat/docs/sdk/angular/components/AttachmentListComponent/), by default the [voice recording component](/chat/docs/sdk/angular/components/VoiceRecordingComponent/) is used
|
|
3169
3169
|
*/
|
|
3170
3170
|
this.voiceRecordingAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
3171
3171
|
/**
|
|
3172
|
-
* The template that can be used to override how a video attachment is displayed inside the [attachment list](
|
|
3172
|
+
* The template that can be used to override how a video attachment is displayed inside the [attachment list](/chat/docs/sdk/angular/components/AttachmentListComponent/)
|
|
3173
3173
|
*/
|
|
3174
3174
|
this.videoAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
3175
3175
|
/**
|
|
3176
|
-
* The template that can be used to override how image gallery is displayed inside the [attachment list](
|
|
3176
|
+
* The template that can be used to override how image gallery is displayed inside the [attachment list](/chat/docs/sdk/angular/components/AttachmentListComponent/)
|
|
3177
3177
|
*/
|
|
3178
3178
|
this.galleryAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
3179
3179
|
/**
|
|
3180
|
-
* The template that can be used to override how a file attachment is displayed inside the [attachment list](
|
|
3180
|
+
* The template that can be used to override how a file attachment is displayed inside the [attachment list](/chat/docs/sdk/angular/components/AttachmentListComponent/)
|
|
3181
3181
|
*/
|
|
3182
3182
|
this.fileAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
3183
3183
|
/**
|
|
3184
|
-
* The template that can be used to override how a card attachment is displayed inside the [attachment list](
|
|
3184
|
+
* The template that can be used to override how a card attachment is displayed inside the [attachment list](/chat/docs/sdk/angular/components/AttachmentListComponent/)
|
|
3185
3185
|
*/
|
|
3186
3186
|
this.cardAttachmentTemplate$ = new BehaviorSubject(undefined);
|
|
3187
3187
|
/**
|
|
3188
|
-
* The template that can be used to override how attachment actions are displayed inside the [attachment list](
|
|
3188
|
+
* The template that can be used to override how attachment actions are displayed inside the [attachment list](/chat/docs/sdk/angular/components/AttachmentListComponent/)
|
|
3189
3189
|
*/
|
|
3190
3190
|
this.attachmentActionsTemplate$ = new BehaviorSubject(undefined);
|
|
3191
3191
|
/**
|
|
3192
|
-
* The template used to display [system messages](https://getstream.io/chat/docs/javascript/silent_messages/?language=javascript&q=system) indise the [message component](
|
|
3192
|
+
* The template used to display [system messages](https://getstream.io/chat/docs/javascript/silent_messages/?language=javascript&q=system) indise the [message component](/chat/docs/sdk/angular/components/MessageComponent/)
|
|
3193
3193
|
*/
|
|
3194
3194
|
this.systemMessageTemplate$ = new BehaviorSubject(undefined);
|
|
3195
3195
|
/**
|
|
3196
|
-
* The template used to display the date separator inside the [message list](
|
|
3196
|
+
* The template used to display the date separator inside the [message list](/chat/docs/sdk/angular/components/MessageListComponent/)
|
|
3197
3197
|
*/
|
|
3198
3198
|
this.dateSeparatorTemplate$ = new BehaviorSubject(undefined);
|
|
3199
3199
|
/**
|
|
3200
|
-
* The template used to display unread messages indicator inside the [message list](
|
|
3200
|
+
* The template used to display unread messages indicator inside the [message list](/chat/docs/sdk/angular/components/MessageListComponent/) when the channel is opened
|
|
3201
3201
|
*
|
|
3202
3202
|
* This UI element is used to separate unread messages from read messages
|
|
3203
3203
|
*/
|
|
3204
3204
|
this.newMessagesIndicatorTemplate$ = new BehaviorSubject(undefined);
|
|
3205
3205
|
/**
|
|
3206
|
-
* The template used to display unread messages notification inside the [message list](
|
|
3206
|
+
* The template used to display unread messages notification inside the [message list](/chat/docs/sdk/angular/components/MessageListComponent/) when the channel is opened
|
|
3207
3207
|
*
|
|
3208
3208
|
* Users can use this notification to jump to the first unread message when it's clicked
|
|
3209
3209
|
*/
|
|
@@ -3217,28 +3217,28 @@ class CustomTemplatesService {
|
|
|
3217
3217
|
*/
|
|
3218
3218
|
this.emptyThreadMessageListPlaceholder$ = new BehaviorSubject(undefined);
|
|
3219
3219
|
/**
|
|
3220
|
-
* The template used to display the [message bounce prompt](
|
|
3220
|
+
* The template used to display the [message bounce prompt](/chat/docs/sdk/angular/components/MessageBouncePromptComponent/)
|
|
3221
3221
|
*/
|
|
3222
3222
|
this.messageBouncePromptTemplate$ = new BehaviorSubject(undefined);
|
|
3223
3223
|
/**
|
|
3224
|
-
* Template used to display the channel information inside the [channel list item](
|
|
3224
|
+
* Template used to display the channel information inside the [channel list item](/chat/docs/sdk/angular/components/ChannelPreviewComponent/)
|
|
3225
3225
|
*
|
|
3226
3226
|
*/
|
|
3227
3227
|
this.channelPreviewInfoTemplate$ = new BehaviorSubject(undefined);
|
|
3228
3228
|
/**
|
|
3229
|
-
* The template used to display custom attachment previews in the [message input component](
|
|
3229
|
+
* The template used to display custom attachment previews in the [message input component](/chat/docs/sdk/angular/components/MessageInputComponent/)
|
|
3230
3230
|
*/
|
|
3231
3231
|
this.customAttachmentPreviewListTemplate$ = new BehaviorSubject(undefined);
|
|
3232
3232
|
/**
|
|
3233
|
-
* The template used to display custom attachments in the [message component](
|
|
3233
|
+
* The template used to display custom attachments in the [message component](/chat/docs/sdk/angular/components/MessageComponent/)
|
|
3234
3234
|
*/
|
|
3235
3235
|
this.customAttachmentListTemplate$ = new BehaviorSubject(undefined);
|
|
3236
3236
|
/**
|
|
3237
|
-
* The template used to display the number of thread replies inside the [message component](
|
|
3237
|
+
* The template used to display the number of thread replies inside the [message component](/chat/docs/sdk/angular/components/MessageComponent/)
|
|
3238
3238
|
*/
|
|
3239
3239
|
this.threadLinkButton$ = new BehaviorSubject(undefined);
|
|
3240
3240
|
/**
|
|
3241
|
-
* Template to display custom metadata inside the message bubble of the [message component](
|
|
3241
|
+
* Template to display custom metadata inside the message bubble of the [message component](/chat/docs/sdk/angular/components/MessageComponent/)
|
|
3242
3242
|
*
|
|
3243
3243
|
* To properly position your template you should override the `grid-template-areas` of the `.str-chat__message-inner` selector
|
|
3244
3244
|
*/
|
|
@@ -3255,7 +3255,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3255
3255
|
}], ctorParameters: function () { return []; } });
|
|
3256
3256
|
|
|
3257
3257
|
/**
|
|
3258
|
-
* The `AvatarPlaceholder` component displays the [default avatar](
|
|
3258
|
+
* The `AvatarPlaceholder` component displays the [default avatar](/chat/docs/sdk/angular/components/AvatarComponent/) unless a [custom template](/chat/docs/sdk/angular/services/CustomTemplatesService/) is provided. This component is used by the SDK internally, you likely won't need to use it.
|
|
3259
3259
|
*/
|
|
3260
3260
|
class AvatarPlaceholderComponent {
|
|
3261
3261
|
constructor(customTemplatesService) {
|
|
@@ -3331,7 +3331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3331
3331
|
}] } });
|
|
3332
3332
|
|
|
3333
3333
|
/**
|
|
3334
|
-
* The `IconPlaceholder` component displays the [default icons](
|
|
3334
|
+
* The `IconPlaceholder` component displays the [default icons](/chat/docs/sdk/angular/components/IconComponent/) unless a [custom template](/chat/docs/sdk/angular/services/CustomTemplatesService/) is provided. This component is used by the SDK internally, you likely won't need to use it.
|
|
3335
3335
|
*/
|
|
3336
3336
|
class IconPlaceholderComponent {
|
|
3337
3337
|
constructor(customTemplatesService) {
|
|
@@ -3367,7 +3367,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3367
3367
|
}], ctorParameters: function () { return []; } });
|
|
3368
3368
|
|
|
3369
3369
|
/**
|
|
3370
|
-
* The `LoadingInficatorPlaceholder` component displays the [default loading indicator](
|
|
3370
|
+
* The `LoadingInficatorPlaceholder` component displays the [default loading indicator](/chat/docs/sdk/angular/components/LoadingIndicatorComponent/) unless a [custom template](/chat/docs/sdk/angular/services/CustomTemplatesService/) is provided. This component is used by the SDK internally, you likely won't need to use it.
|
|
3371
3371
|
*/
|
|
3372
3372
|
class LoadingIndicatorPlaceholderComponent {
|
|
3373
3373
|
constructor(customTemplatesService) {
|
|
@@ -3382,7 +3382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3382
3382
|
}], ctorParameters: function () { return [{ type: CustomTemplatesService }]; } });
|
|
3383
3383
|
|
|
3384
3384
|
/**
|
|
3385
|
-
* The message actions service provides customization options for the [message actions](
|
|
3385
|
+
* The message actions service provides customization options for the [message actions](/chat/docs/sdk/angular/components/MessageActionsBoxComponent)
|
|
3386
3386
|
*/
|
|
3387
3387
|
class MessageActionsService {
|
|
3388
3388
|
constructor(chatClientService, notificationService, channelService) {
|
|
@@ -3569,7 +3569,7 @@ class MessageReactionsService {
|
|
|
3569
3569
|
/**
|
|
3570
3570
|
* The enabled [reactions](https://getstream.io/chat/docs/javascript/send_reaction/?language=javascript) and the associated emoji
|
|
3571
3571
|
*
|
|
3572
|
-
* You can provide any string as a reaction. The emoji can be provided as a string, if you want to use custom images for reactions you have to provide a [custom reactions UI](
|
|
3572
|
+
* You can provide any string as a reaction. The emoji can be provided as a string, if you want to use custom images for reactions you have to provide a [custom reactions UI](/chat/docs/sdk/angular/services/CustomTemplatesService/#messagereactionstemplate/)
|
|
3573
3573
|
*/
|
|
3574
3574
|
this.reactions$ = new BehaviorSubject({
|
|
3575
3575
|
haha: '😂',
|
|
@@ -3624,7 +3624,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3624
3624
|
}], ctorParameters: function () { return [{ type: ChatClientService }, { type: NotificationService }]; } });
|
|
3625
3625
|
|
|
3626
3626
|
/**
|
|
3627
|
-
* The `MessageReactionsSelectorComponent` makes it possible for users to react to a message, the reaction options can be set using the [`MessageReactionsService`](
|
|
3627
|
+
* The `MessageReactionsSelectorComponent` makes it possible for users to react to a message, the reaction options can be set using the [`MessageReactionsService`](/chat/docs/sdk/angular/services/MessageReactionsService/). You can read more about [message reactions](https://getstream.io/chat/docs/javascript/send_reaction/?language=javascript) in the platform documentation.
|
|
3628
3628
|
*/
|
|
3629
3629
|
class MessageReactionsSelectorComponent {
|
|
3630
3630
|
constructor(channelService, messageReactionsService, cdRef) {
|
|
@@ -3632,7 +3632,7 @@ class MessageReactionsSelectorComponent {
|
|
|
3632
3632
|
this.messageReactionsService = messageReactionsService;
|
|
3633
3633
|
this.cdRef = cdRef;
|
|
3634
3634
|
/**
|
|
3635
|
-
* List of the user's own reactions of a [message](
|
|
3635
|
+
* List of the user's own reactions of a [message](/chat/docs/sdk/angular/types/stream-message/), used to display the users of a reaction type.
|
|
3636
3636
|
*/
|
|
3637
3637
|
this.ownReactions = [];
|
|
3638
3638
|
this.reactionOptions = [];
|
|
@@ -3680,7 +3680,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3680
3680
|
}] } });
|
|
3681
3681
|
|
|
3682
3682
|
/**
|
|
3683
|
-
* The `MessageActionsBox` component displays a list of message actions (i.e edit), that can be opened or closed. You can find the [list of the supported actions](
|
|
3683
|
+
* The `MessageActionsBox` component displays a list of message actions (i.e edit), that can be opened or closed. You can find the [list of the supported actions](/chat/docs/sdk/angular/concepts/message-interactions/) in the message interaction guide.
|
|
3684
3684
|
*/
|
|
3685
3685
|
class MessageActionsBoxComponent {
|
|
3686
3686
|
constructor(customTemplatesService, messageActionsService, cdRef) {
|
|
@@ -3692,7 +3692,7 @@ class MessageActionsBoxComponent {
|
|
|
3692
3692
|
*/
|
|
3693
3693
|
this.isMine = false;
|
|
3694
3694
|
/**
|
|
3695
|
-
* The list of [channel capabilities](https://getstream.io/chat/docs/javascript/channel_capabilities/?language=javascript) that are enabled for the current user, the list of [supported interactions](
|
|
3695
|
+
* The list of [channel capabilities](https://getstream.io/chat/docs/javascript/channel_capabilities/?language=javascript) that are enabled for the current user, the list of [supported interactions](/chat/docs/sdk/angular/concepts/message-interactions) can be found in our message interaction guide. Unathorized actions won't be displayed on the UI.
|
|
3696
3696
|
*/
|
|
3697
3697
|
this.enabledActions = [];
|
|
3698
3698
|
this.visibleMessageActionItems = [];
|
|
@@ -3796,7 +3796,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3796
3796
|
}] } });
|
|
3797
3797
|
|
|
3798
3798
|
/**
|
|
3799
|
-
* The `Notification` component displays a notification within the [`NotificationList`](
|
|
3799
|
+
* The `Notification` component displays a notification within the [`NotificationList`](/chat/docs/sdk/angular/components/NotificationListComponent/)
|
|
3800
3800
|
*/
|
|
3801
3801
|
class NotificationComponent {
|
|
3802
3802
|
constructor() { }
|
|
@@ -3906,7 +3906,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3906
3906
|
}] } });
|
|
3907
3907
|
|
|
3908
3908
|
/**
|
|
3909
|
-
* The component watches for the [`channelService.bouncedMessage$` stream](
|
|
3909
|
+
* The component watches for the [`channelService.bouncedMessage$` stream](/chat/docs/sdk/angular/services/ChannelService/#bouncedmessage) and opens the bounce modal if a message is emitted.
|
|
3910
3910
|
*
|
|
3911
3911
|
* To bounce messages, you need to set up [semantic filters for moderation](https://getstream.io/automated-moderation/docs/automod_configuration/?q=semantic%20filters).
|
|
3912
3912
|
*/
|
|
@@ -3969,7 +3969,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3969
3969
|
}] } });
|
|
3970
3970
|
|
|
3971
3971
|
/**
|
|
3972
|
-
* The `Channel` component is a container component that displays the [`ChannelHeader`](
|
|
3972
|
+
* The `Channel` component is a container component that displays the [`ChannelHeader`](/chat/docs/sdk/angular/components/ChannelHeaderComponent/), [`MessageList`](/chat/docs/sdk/angular/components/MessageListComponent), [`NotificationList`](/chat/docs/sdk/angular/components/NotificationListComponent/) and [`MessageInput`](/chat/docs/sdk/angular/components/MessageInputComponent/) components. You can also provide the [`Thread`](/chat/docs/sdk/angular/components/ThreadComponent/) component to use message [threads](https://getstream.io/chat/docs/javascript/threads/?language=javascript).
|
|
3973
3973
|
*/
|
|
3974
3974
|
class ChannelComponent {
|
|
3975
3975
|
constructor(channelService, themeService, customTemplatesService) {
|
|
@@ -4987,12 +4987,12 @@ class MessageReactionsComponent {
|
|
|
4987
4987
|
*/
|
|
4988
4988
|
this.messageReactionCounts = {};
|
|
4989
4989
|
/**
|
|
4990
|
-
* List of reactions of a [message](
|
|
4990
|
+
* List of reactions of a [message](/chat/docs/sdk/angular/types/stream-message/), used to display the users of a reaction type.
|
|
4991
4991
|
* @deprecated you can fetch the reactions using [`messageReactionsService.queryReactions()`](https://getstream.io/chat/docs/sdk/angular/services/MessageReactionsService/#queryreactions)
|
|
4992
4992
|
*/
|
|
4993
4993
|
this.latestReactions = [];
|
|
4994
4994
|
/**
|
|
4995
|
-
* List of the user's own reactions of a [message](
|
|
4995
|
+
* List of the user's own reactions of a [message](/chat/docs/sdk/angular/types/stream-message/), used to display the users of a reaction type.
|
|
4996
4996
|
*/
|
|
4997
4997
|
this.ownReactions = [];
|
|
4998
4998
|
this.isLoading = true;
|
|
@@ -5131,7 +5131,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
5131
5131
|
}] } });
|
|
5132
5132
|
|
|
5133
5133
|
/**
|
|
5134
|
-
* The `Message` component displays a message with additional information such as sender and date, and enables [interaction with the message (i.e. edit or react)](
|
|
5134
|
+
* The `Message` component displays a message with additional information such as sender and date, and enables [interaction with the message (i.e. edit or react)](/chat/docs/sdk/angular/concepts/message-interactions/).
|
|
5135
5135
|
*/
|
|
5136
5136
|
class MessageComponent {
|
|
5137
5137
|
constructor(chatClientService, channelService, customTemplatesService, cdRef, dateParser, messageService, messageActionsService, ngZone, translateService) {
|
|
@@ -5145,7 +5145,7 @@ class MessageComponent {
|
|
|
5145
5145
|
this.ngZone = ngZone;
|
|
5146
5146
|
this.translateService = translateService;
|
|
5147
5147
|
/**
|
|
5148
|
-
* The list of [channel capabilities](https://getstream.io/chat/docs/javascript/channel_capabilities/?language=javascript) that are enabled for the current user, the list of [supported interactions](
|
|
5148
|
+
* The list of [channel capabilities](https://getstream.io/chat/docs/javascript/channel_capabilities/?language=javascript) that are enabled for the current user, the list of [supported interactions](/chat/docs/sdk/angular/concepts/message-interactions/) can be found in our message interaction guide. Unathorized actions won't be displayed on the UI. The [`MessageList`](/chat/docs/sdk/angular/components/MessageListComponent/) component automatically sets this based on [channel capabilities](https://getstream.io/chat/docs/javascript/channel_capabilities/?language=javascript).
|
|
5149
5149
|
*/
|
|
5150
5150
|
this.enabledMessageActions = [];
|
|
5151
5151
|
/**
|
|
@@ -5746,12 +5746,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
5746
5746
|
}] } });
|
|
5747
5747
|
|
|
5748
5748
|
/**
|
|
5749
|
-
* If you have an emoji picker in your application, you can propagate the selected emoji to the textarea using this service, more info can be found in [custom emoji picker guide](
|
|
5749
|
+
* If you have an emoji picker in your application, you can propagate the selected emoji to the textarea using this service, more info can be found in [custom emoji picker guide](/chat/docs/sdk/angular/code-examples/emoji-picker/)
|
|
5750
5750
|
*/
|
|
5751
5751
|
class EmojiInputService {
|
|
5752
5752
|
constructor() {
|
|
5753
5753
|
/**
|
|
5754
|
-
* If you have an emoji picker in your application, you can propagate the selected emoji to the textarea using this Subject, more info can be found in [custom emoji picker guide](
|
|
5754
|
+
* If you have an emoji picker in your application, you can propagate the selected emoji to the textarea using this Subject, more info can be found in [custom emoji picker guide](/chat/docs/sdk/angular/code-examples/emoji-picker/)
|
|
5755
5755
|
*/
|
|
5756
5756
|
this.emojiInput$ = new Subject();
|
|
5757
5757
|
}
|
|
@@ -5790,7 +5790,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
5790
5790
|
}], ctorParameters: function () { return []; } });
|
|
5791
5791
|
|
|
5792
5792
|
/**
|
|
5793
|
-
* The `MessageInputConfigService` is used to keep a consistent configuration among the different [`MessageInput`](
|
|
5793
|
+
* The `MessageInputConfigService` is used to keep a consistent configuration among the different [`MessageInput`](/chat/docs/sdk/angular/components/MessageInputComponent/) components if your UI has more than one input component.
|
|
5794
5794
|
*/
|
|
5795
5795
|
class MessageInputConfigService {
|
|
5796
5796
|
constructor() {
|
|
@@ -5799,7 +5799,7 @@ class MessageInputConfigService {
|
|
|
5799
5799
|
*/
|
|
5800
5800
|
this.isFileUploadEnabled = true;
|
|
5801
5801
|
/**
|
|
5802
|
-
* If true, users can mention other users in messages. You also [need to use the `AutocompleteTextarea`](
|
|
5802
|
+
* If true, users can mention other users in messages. You also [need to use the `AutocompleteTextarea`](/chat/docs/sdk/angular/concepts/opt-in-architecture/) for this feature to work.
|
|
5803
5803
|
*/
|
|
5804
5804
|
this.areMentionsEnabled = true;
|
|
5805
5805
|
/**
|
|
@@ -5819,6 +5819,12 @@ class MessageInputConfigService {
|
|
|
5819
5819
|
* If `false`, the recording will added to the attachment preview, and users can continue composing the message.
|
|
5820
5820
|
*/
|
|
5821
5821
|
this.sendVoiceRecordingImmediately = true;
|
|
5822
|
+
/**
|
|
5823
|
+
* Add custom autocomplete configurations to the message input
|
|
5824
|
+
*
|
|
5825
|
+
* Only works when using StreamAutocompleteTextareaModule
|
|
5826
|
+
*/
|
|
5827
|
+
this.customAutocompletes$ = new BehaviorSubject([]);
|
|
5822
5828
|
}
|
|
5823
5829
|
}
|
|
5824
5830
|
MessageInputConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MessageInputConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -6395,7 +6401,7 @@ class MessageInputComponent {
|
|
|
6395
6401
|
*/
|
|
6396
6402
|
this.autoFocus = true;
|
|
6397
6403
|
/**
|
|
6398
|
-
* By default the input will react to changes in `messageToEdit$` from [`MessageActionsService`](
|
|
6404
|
+
* By default the input will react to changes in `messageToEdit$` from [`MessageActionsService`](/chat/docs/sdk/angular/services/MessageActionsService/) and display the message to be edited (taking into account the current `mode`).
|
|
6399
6405
|
*
|
|
6400
6406
|
* If you don't need that behavior, you can turn this of with this flag. In that case you should create your own edit message UI.
|
|
6401
6407
|
*/
|
|
@@ -6843,7 +6849,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
6843
6849
|
}] } });
|
|
6844
6850
|
|
|
6845
6851
|
/**
|
|
6846
|
-
* The `Textarea` component is used by the [`MessageInput`](
|
|
6852
|
+
* The `Textarea` component is used by the [`MessageInput`](/chat/docs/sdk/angular/components/MessageInputComponent/) component to display the input HTML element where users can type their message.
|
|
6847
6853
|
*/
|
|
6848
6854
|
class TextareaComponent {
|
|
6849
6855
|
constructor(emojiInputService) {
|
|
@@ -6973,16 +6979,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
6973
6979
|
}], ctorParameters: function () { return []; } });
|
|
6974
6980
|
|
|
6975
6981
|
/**
|
|
6976
|
-
* The `AutocompleteTextarea` component is used by the [`MessageInput`](
|
|
6982
|
+
* The `AutocompleteTextarea` component is used by the [`MessageInput`](/chat/docs/sdk/angular/components/MessageInputComponent/) component to display the input HTML element where users can type their message.
|
|
6977
6983
|
*/
|
|
6978
6984
|
class AutocompleteTextareaComponent {
|
|
6979
|
-
constructor(channelService, chatClientService, transliterationService, emojiInputService, customTemplatesService, cdRef) {
|
|
6985
|
+
constructor(channelService, chatClientService, transliterationService, emojiInputService, customTemplatesService, cdRef, messageInputConfigService) {
|
|
6980
6986
|
this.channelService = channelService;
|
|
6981
6987
|
this.chatClientService = chatClientService;
|
|
6982
6988
|
this.transliterationService = transliterationService;
|
|
6983
6989
|
this.emojiInputService = emojiInputService;
|
|
6984
6990
|
this.customTemplatesService = customTemplatesService;
|
|
6985
6991
|
this.cdRef = cdRef;
|
|
6992
|
+
this.messageInputConfigService = messageInputConfigService;
|
|
6986
6993
|
this.class = 'str-chat__textarea str-chat__message-textarea-angular-host';
|
|
6987
6994
|
/**
|
|
6988
6995
|
* The value of the input HTML element.
|
|
@@ -6993,11 +7000,11 @@ class AutocompleteTextareaComponent {
|
|
|
6993
7000
|
*/
|
|
6994
7001
|
this.placeholder = '';
|
|
6995
7002
|
/**
|
|
6996
|
-
* If true, users can mention other users in messages. You can also set this input on the [`MessageInput`](
|
|
7003
|
+
* If true, users can mention other users in messages. You can also set this input on the [`MessageInput`](/chat/docs/sdk/angular/components/MessageInputComponent/#inputs-and-outputs/) component.
|
|
6997
7004
|
*/
|
|
6998
7005
|
this.areMentionsEnabled = true;
|
|
6999
7006
|
/**
|
|
7000
|
-
* The scope for user mentions, either members of the current channel of members of the application. You can also set this input on the [`MessageInput`](
|
|
7007
|
+
* The scope for user mentions, either members of the current channel of members of the application. You can also set this input on the [`MessageInput`](/chat/docs/sdk/angular/components/MessageInputComponent/#inputs-and-outputs) component.
|
|
7001
7008
|
*/
|
|
7002
7009
|
this.mentionScope = 'channel';
|
|
7003
7010
|
/**
|
|
@@ -7047,10 +7054,15 @@ class AutocompleteTextareaComponent {
|
|
|
7047
7054
|
};
|
|
7048
7055
|
this.searchTerm$ = new BehaviorSubject('');
|
|
7049
7056
|
this.isViewInited = false;
|
|
7050
|
-
this.searchTerm
|
|
7057
|
+
this.searchTerm$
|
|
7058
|
+
.pipe(filter((searchTerm) => searchTerm.length !== 1), debounceTime(300))
|
|
7059
|
+
.subscribe((searchTerm) => {
|
|
7051
7060
|
if (searchTerm.startsWith(this.mentionTriggerChar)) {
|
|
7052
7061
|
void this.updateMentionOptions(searchTerm);
|
|
7053
7062
|
}
|
|
7063
|
+
else {
|
|
7064
|
+
void this.updateCustomAutocompleteOptions(searchTerm);
|
|
7065
|
+
}
|
|
7054
7066
|
});
|
|
7055
7067
|
this.subscriptions.push(this.channelService.activeChannel$.subscribe((channel) => {
|
|
7056
7068
|
const commands = channel?.getConfig()?.commands || [];
|
|
@@ -7062,6 +7074,7 @@ class AutocompleteTextareaComponent {
|
|
|
7062
7074
|
this.mentionedUsers = [];
|
|
7063
7075
|
this.userMentions.next([...this.mentionedUsers]);
|
|
7064
7076
|
void this.updateMentionOptions(this.searchTerm$.getValue());
|
|
7077
|
+
void this.updateCustomAutocompleteOptions(this.searchTerm$.getValue());
|
|
7065
7078
|
}));
|
|
7066
7079
|
this.subscriptions.push(this.emojiInputService.emojiInput$.subscribe((emoji) => {
|
|
7067
7080
|
this.messageInput.nativeElement.focus();
|
|
@@ -7079,20 +7092,43 @@ class AutocompleteTextareaComponent {
|
|
|
7079
7092
|
this.userMentionConfig,
|
|
7080
7093
|
this.slashCommandConfig,
|
|
7081
7094
|
];
|
|
7095
|
+
this.subscriptions.push(this.messageInputConfigService.customAutocompletes$.subscribe((customConfigs) => {
|
|
7096
|
+
const builtInItems = this.autocompleteConfig.mentions?.filter((m) => m === this.userMentionConfig || m === this.slashCommandConfig) ?? [];
|
|
7097
|
+
const transformedCustomConfigs = customConfigs.map((c) => {
|
|
7098
|
+
const copy = {
|
|
7099
|
+
items: c.options.map((o) => ({
|
|
7100
|
+
...o,
|
|
7101
|
+
templateRef: c.templateRef,
|
|
7102
|
+
})),
|
|
7103
|
+
triggerChar: c.triggerCharacter,
|
|
7104
|
+
dropUp: true,
|
|
7105
|
+
labelKey: this.autocompleteKey,
|
|
7106
|
+
returnTrigger: true,
|
|
7107
|
+
allowSpace: c.allowSpace,
|
|
7108
|
+
mentionFilter: (searchString, items) => this.filter(searchString, items),
|
|
7109
|
+
mentionSelect: (item, triggerChar) => this.itemSelectedFromAutocompleteList(item, triggerChar),
|
|
7110
|
+
};
|
|
7111
|
+
return copy;
|
|
7112
|
+
});
|
|
7113
|
+
this.autocompleteConfig.mentions = [
|
|
7114
|
+
...builtInItems,
|
|
7115
|
+
...transformedCustomConfigs,
|
|
7116
|
+
];
|
|
7117
|
+
this.autocompleteConfig = { ...this.autocompleteConfig };
|
|
7118
|
+
}));
|
|
7082
7119
|
}
|
|
7083
7120
|
ngOnChanges(changes) {
|
|
7084
7121
|
if (changes.areMentionsEnabled) {
|
|
7085
|
-
|
|
7086
|
-
this.autocompleteConfig
|
|
7087
|
-
this.userMentionConfig
|
|
7088
|
-
|
|
7089
|
-
|
|
7090
|
-
|
|
7091
|
-
|
|
7092
|
-
|
|
7093
|
-
|
|
7094
|
-
|
|
7095
|
-
}
|
|
7122
|
+
this.autocompleteConfig.mentions =
|
|
7123
|
+
this.autocompleteConfig?.mentions?.filter((c) => {
|
|
7124
|
+
if (c !== this.userMentionConfig) {
|
|
7125
|
+
return true;
|
|
7126
|
+
}
|
|
7127
|
+
else {
|
|
7128
|
+
return this.areMentionsEnabled;
|
|
7129
|
+
}
|
|
7130
|
+
}) ?? [];
|
|
7131
|
+
this.autocompleteConfig = { ...this.autocompleteConfig };
|
|
7096
7132
|
}
|
|
7097
7133
|
if (changes.mentionScope) {
|
|
7098
7134
|
void this.updateMentionOptions(this.searchTerm$.getValue());
|
|
@@ -7133,12 +7169,15 @@ class AutocompleteTextareaComponent {
|
|
|
7133
7169
|
return triggerChar + item.autocompleteLabel + ' ';
|
|
7134
7170
|
}
|
|
7135
7171
|
autcompleteSearchTermChanged(searchTerm) {
|
|
7136
|
-
if (searchTerm ===
|
|
7137
|
-
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
|
|
7172
|
+
if (searchTerm.length === 1) {
|
|
7173
|
+
if (searchTerm === this.mentionTriggerChar) {
|
|
7174
|
+
void this.updateMentionOptions();
|
|
7175
|
+
}
|
|
7176
|
+
else {
|
|
7177
|
+
void this.updateCustomAutocompleteOptions(searchTerm);
|
|
7178
|
+
}
|
|
7141
7179
|
}
|
|
7180
|
+
this.searchTerm$.next(searchTerm);
|
|
7142
7181
|
}
|
|
7143
7182
|
inputChanged() {
|
|
7144
7183
|
this.chatClientService?.chatClient?.logger?.('info', '[Autocomplete textarea] Input changed');
|
|
@@ -7187,8 +7226,7 @@ class AutocompleteTextareaComponent {
|
|
|
7187
7226
|
}));
|
|
7188
7227
|
this.userMentionConfig.items = items;
|
|
7189
7228
|
this.autocompleteConfig.mentions = [
|
|
7190
|
-
this.
|
|
7191
|
-
this.slashCommandConfig,
|
|
7229
|
+
...(this.autocompleteConfig?.mentions ?? []),
|
|
7192
7230
|
];
|
|
7193
7231
|
this.autocompleteConfig = { ...this.autocompleteConfig };
|
|
7194
7232
|
this.cdRef.detectChanges();
|
|
@@ -7206,13 +7244,33 @@ class AutocompleteTextareaComponent {
|
|
|
7206
7244
|
this.mentionedUsers = updatedMentionedUsers;
|
|
7207
7245
|
}
|
|
7208
7246
|
}
|
|
7247
|
+
async updateCustomAutocompleteOptions(searchTerm) {
|
|
7248
|
+
if (this.messageInputConfigService.customAutocompletes$.getValue().length ===
|
|
7249
|
+
0) {
|
|
7250
|
+
return;
|
|
7251
|
+
}
|
|
7252
|
+
const customMentionConfig = this.autocompleteConfig.mentions?.find((c) => c.triggerChar && searchTerm.startsWith(c.triggerChar));
|
|
7253
|
+
const customAutocompleteConfig = customMentionConfig
|
|
7254
|
+
? this.messageInputConfigService.customAutocompletes$
|
|
7255
|
+
.getValue()
|
|
7256
|
+
.find((c) => c.triggerCharacter === customMentionConfig?.triggerChar)
|
|
7257
|
+
: undefined;
|
|
7258
|
+
if (customMentionConfig && customAutocompleteConfig?.updateOptions) {
|
|
7259
|
+
const newOptions = await customAutocompleteConfig.updateOptions(searchTerm.replace(customMentionConfig.triggerChar || '', ''));
|
|
7260
|
+
customMentionConfig.items = newOptions.map((o) => ({
|
|
7261
|
+
...o,
|
|
7262
|
+
templateRef: customAutocompleteConfig.templateRef,
|
|
7263
|
+
}));
|
|
7264
|
+
this.autocompleteConfig = { ...this.autocompleteConfig };
|
|
7265
|
+
}
|
|
7266
|
+
}
|
|
7209
7267
|
}
|
|
7210
|
-
AutocompleteTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AutocompleteTextareaComponent, deps: [{ token: ChannelService }, { token: ChatClientService }, { token: TransliterationService }, { token: EmojiInputService }, { token: CustomTemplatesService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
7211
|
-
AutocompleteTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AutocompleteTextareaComponent, selector: "stream-autocomplete-textarea", inputs: { value: "value", placeholder: "placeholder", areMentionsEnabled: "areMentionsEnabled", inputMode: "inputMode", mentionScope: "mentionScope", autoFocus: "autoFocus" }, outputs: { valueChange: "valueChange", send: "send", userMentions: "userMentions", pasteFromClipboard: "pasteFromClipboard" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "messageInput", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<textarea\n #input\n data-testid=\"textarea\"\n class=\"rta__textarea str-chat__textarea__textarea str-chat__angular-textarea str-chat__message-textarea\"\n rows=\"1\"\n [value]=\"value || ''\"\n [autofocus]=\"autoFocus\"\n placeholder=\"{{ placeholder | translate }}\"\n [mentionConfig]=\"autocompleteConfig\"\n [mentionListTemplate]=\"autocompleteItem\"\n (input)=\"inputChanged()\"\n (keydown.enter)=\"enterHit($event)\"\n (searchTerm)=\"autcompleteSearchTermChanged($event)\"\n (blur)=\"inputLeft()\"\n (paste)=\"pasteFromClipboard.emit($event)\"\n></textarea>\n<ng-template #autocompleteItem let-item=\"item\">\n <div
|
|
7268
|
+
AutocompleteTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AutocompleteTextareaComponent, deps: [{ token: ChannelService }, { token: ChatClientService }, { token: TransliterationService }, { token: EmojiInputService }, { token: CustomTemplatesService }, { token: i0.ChangeDetectorRef }, { token: MessageInputConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7269
|
+
AutocompleteTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AutocompleteTextareaComponent, selector: "stream-autocomplete-textarea", inputs: { value: "value", placeholder: "placeholder", areMentionsEnabled: "areMentionsEnabled", inputMode: "inputMode", mentionScope: "mentionScope", autoFocus: "autoFocus" }, outputs: { valueChange: "valueChange", send: "send", userMentions: "userMentions", pasteFromClipboard: "pasteFromClipboard" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "messageInput", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<textarea\n #input\n data-testid=\"textarea\"\n class=\"rta__textarea str-chat__textarea__textarea str-chat__angular-textarea str-chat__message-textarea\"\n rows=\"1\"\n [value]=\"value || ''\"\n [autofocus]=\"autoFocus\"\n placeholder=\"{{ placeholder | translate }}\"\n [mentionConfig]=\"autocompleteConfig\"\n [mentionListTemplate]=\"autocompleteItem\"\n (input)=\"inputChanged()\"\n (keydown.enter)=\"enterHit($event)\"\n (searchTerm)=\"autcompleteSearchTermChanged($event)\"\n (blur)=\"inputLeft()\"\n (paste)=\"pasteFromClipboard.emit($event)\"\n></textarea>\n<ng-template #autocompleteItem let-item=\"item\">\n <ng-container *ngIf=\"item.templateRef; else builtinItem\">\n <ng-container\n *ngTemplateOutlet=\"item.templateRef; context: { item: item }\"\n ></ng-container>\n </ng-container>\n <ng-template #builtinItem>\n <div\n class=\"rta rta__item str-chat__emojisearch__item\"\n [ngSwitch]=\"item.type\"\n >\n <div *ngSwitchCase=\"'mention'\" class=\"rta__entity\">\n <ng-container\n *ngTemplateOutlet=\"\n mentionAutocompleteItemTemplate || defaultMentionTemplate;\n context: { item: item }\n \"\n ></ng-container>\n </div>\n <div *ngSwitchCase=\"'command'\" class=\"rta__entity\">\n <ng-container\n *ngTemplateOutlet=\"\n commandAutocompleteItemTemplate || defaultCommandTemplate;\n context: { item: item }\n \"\n ></ng-container>\n </div>\n </div>\n </ng-template>\n</ng-template>\n\n<ng-template #defaultCommandTemplate let-item=\"item\">\n <div class=\"str-chat__slash-command\">\n <span class=\"str-chat__slash-command-header\">\n <strong\n class=\"str-chat__slash-command-name\"\n data-testclass=\"command-name\"\n >{{ item.name }}</strong\n >\n <span class=\"str-chat__slash-command-args\"\n >/{{ item.name }} {{ item.args }}</span\n >\n </span>\n <br />\n </div>\n</ng-template>\n\n<ng-template #defaultMentionTemplate let-item=\"item\">\n <div class=\"str-chat__user-item\">\n <stream-avatar-placeholder\n data-testclass=\"avatar\"\n class=\"str-chat__avatar str-chat__avatar--circle\"\n type=\"user\"\n location=\"autocomplete-item\"\n [imageUrl]=\"item.image || item.user?.image\"\n [name]=\"item.autocompleteLabel\"\n [user]=\"item.user || item\"\n ></stream-avatar-placeholder>\n <span data-testclass=\"username\" class=\"str-chat__user-item--name\">{{\n item.autocompleteLabel\n }}</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i8.MentionDirective, selector: "[mention], [mentionConfig]", inputs: ["mentionConfig", "mention", "mentionListTemplate"], outputs: ["searchTerm", "itemSelected", "opened", "closed"] }, { kind: "component", type: AvatarPlaceholderComponent, selector: "stream-avatar-placeholder", inputs: ["name", "imageUrl", "location", "channel", "user", "type", "initialsType", "showOnlineIndicator"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
7212
7270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AutocompleteTextareaComponent, decorators: [{
|
|
7213
7271
|
type: Component,
|
|
7214
|
-
args: [{ selector: 'stream-autocomplete-textarea', template: "<textarea\n #input\n data-testid=\"textarea\"\n class=\"rta__textarea str-chat__textarea__textarea str-chat__angular-textarea str-chat__message-textarea\"\n rows=\"1\"\n [value]=\"value || ''\"\n [autofocus]=\"autoFocus\"\n placeholder=\"{{ placeholder | translate }}\"\n [mentionConfig]=\"autocompleteConfig\"\n [mentionListTemplate]=\"autocompleteItem\"\n (input)=\"inputChanged()\"\n (keydown.enter)=\"enterHit($event)\"\n (searchTerm)=\"autcompleteSearchTermChanged($event)\"\n (blur)=\"inputLeft()\"\n (paste)=\"pasteFromClipboard.emit($event)\"\n></textarea>\n<ng-template #autocompleteItem let-item=\"item\">\n <div
|
|
7215
|
-
}], ctorParameters: function () { return [{ type: ChannelService }, { type: ChatClientService }, { type: TransliterationService }, { type: EmojiInputService }, { type: CustomTemplatesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { class: [{
|
|
7272
|
+
args: [{ selector: 'stream-autocomplete-textarea', template: "<textarea\n #input\n data-testid=\"textarea\"\n class=\"rta__textarea str-chat__textarea__textarea str-chat__angular-textarea str-chat__message-textarea\"\n rows=\"1\"\n [value]=\"value || ''\"\n [autofocus]=\"autoFocus\"\n placeholder=\"{{ placeholder | translate }}\"\n [mentionConfig]=\"autocompleteConfig\"\n [mentionListTemplate]=\"autocompleteItem\"\n (input)=\"inputChanged()\"\n (keydown.enter)=\"enterHit($event)\"\n (searchTerm)=\"autcompleteSearchTermChanged($event)\"\n (blur)=\"inputLeft()\"\n (paste)=\"pasteFromClipboard.emit($event)\"\n></textarea>\n<ng-template #autocompleteItem let-item=\"item\">\n <ng-container *ngIf=\"item.templateRef; else builtinItem\">\n <ng-container\n *ngTemplateOutlet=\"item.templateRef; context: { item: item }\"\n ></ng-container>\n </ng-container>\n <ng-template #builtinItem>\n <div\n class=\"rta rta__item str-chat__emojisearch__item\"\n [ngSwitch]=\"item.type\"\n >\n <div *ngSwitchCase=\"'mention'\" class=\"rta__entity\">\n <ng-container\n *ngTemplateOutlet=\"\n mentionAutocompleteItemTemplate || defaultMentionTemplate;\n context: { item: item }\n \"\n ></ng-container>\n </div>\n <div *ngSwitchCase=\"'command'\" class=\"rta__entity\">\n <ng-container\n *ngTemplateOutlet=\"\n commandAutocompleteItemTemplate || defaultCommandTemplate;\n context: { item: item }\n \"\n ></ng-container>\n </div>\n </div>\n </ng-template>\n</ng-template>\n\n<ng-template #defaultCommandTemplate let-item=\"item\">\n <div class=\"str-chat__slash-command\">\n <span class=\"str-chat__slash-command-header\">\n <strong\n class=\"str-chat__slash-command-name\"\n data-testclass=\"command-name\"\n >{{ item.name }}</strong\n >\n <span class=\"str-chat__slash-command-args\"\n >/{{ item.name }} {{ item.args }}</span\n >\n </span>\n <br />\n </div>\n</ng-template>\n\n<ng-template #defaultMentionTemplate let-item=\"item\">\n <div class=\"str-chat__user-item\">\n <stream-avatar-placeholder\n data-testclass=\"avatar\"\n class=\"str-chat__avatar str-chat__avatar--circle\"\n type=\"user\"\n location=\"autocomplete-item\"\n [imageUrl]=\"item.image || item.user?.image\"\n [name]=\"item.autocompleteLabel\"\n [user]=\"item.user || item\"\n ></stream-avatar-placeholder>\n <span data-testclass=\"username\" class=\"str-chat__user-item--name\">{{\n item.autocompleteLabel\n }}</span>\n </div>\n</ng-template>\n" }]
|
|
7273
|
+
}], ctorParameters: function () { return [{ type: ChannelService }, { type: ChatClientService }, { type: TransliterationService }, { type: EmojiInputService }, { type: CustomTemplatesService }, { type: i0.ChangeDetectorRef }, { type: MessageInputConfigService }]; }, propDecorators: { class: [{
|
|
7216
7274
|
type: HostBinding
|
|
7217
7275
|
}], value: [{
|
|
7218
7276
|
type: Input
|
|
@@ -8317,7 +8375,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
8317
8375
|
}] } });
|
|
8318
8376
|
|
|
8319
8377
|
/**
|
|
8320
|
-
* The `Thread` component represents a [message thread](https://getstream.io/chat/docs/javascript/threads/?language=javascript), it is a container component that displays a thread with a header, [`MessageList`](
|
|
8378
|
+
* The `Thread` component represents a [message thread](https://getstream.io/chat/docs/javascript/threads/?language=javascript), it is a container component that displays a thread with a header, [`MessageList`](/chat/docs/sdk/angular/components/MessageListComponent) and [`MessageInput`](/chat/docs/sdk/angular/components/MessageInputComponent/) components.
|
|
8321
8379
|
*/
|
|
8322
8380
|
class ThreadComponent {
|
|
8323
8381
|
constructor(customTemplatesService, channelService, chatClientService) {
|