@progress/kendo-angular-conversational-ui 21.0.0-develop.2 → 21.0.0-develop.20
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/chat/api/files-layout.d.ts +12 -0
- package/chat/api/index.d.ts +4 -1
- package/chat/api/message-settings.interface.d.ts +41 -0
- package/chat/api/message-width-mode.d.ts +1 -1
- package/chat/api/message.interface.d.ts +5 -1
- package/chat/api/suggestions-layout.d.ts +20 -0
- package/chat/api/timestamp-visibility.d.ts +10 -0
- package/chat/chat.component.d.ts +111 -34
- package/chat/chat.directives.d.ts +18 -0
- package/chat/chat.module.d.ts +15 -8
- package/chat/common/chat.service.d.ts +36 -3
- package/chat/common/models/model-fields.d.ts +0 -6
- package/chat/common/scroll-button.component.d.ts +32 -0
- package/chat/common/scroll.service.d.ts +39 -0
- package/chat/common/utils.d.ts +13 -1
- package/chat/l10n/messages.d.ts +9 -1
- package/chat/message-list.component.d.ts +22 -3
- package/chat/message.component.d.ts +40 -16
- package/chat/suggested-actions.component.d.ts +30 -5
- package/chat/templates/author-message-content-template.directive.d.ts +28 -0
- package/chat/templates/author-message-template.directive.d.ts +28 -0
- package/chat/templates/message-content-template.directive.d.ts +28 -0
- package/chat/templates/message-template.directive.d.ts +1 -1
- package/chat/templates/no-data-template.directive.d.ts +27 -0
- package/chat/templates/receiver-message-content-template.directive.d.ts +28 -0
- package/chat/templates/receiver-message-template.directive.d.ts +28 -0
- package/chat/templates/user-status-template.directive.d.ts +27 -0
- package/codemods/utils.js +477 -375
- package/codemods/v20/chat-user.js +7 -5
- package/codemods/v21/chat-messagetoolbarvisibility.js +53 -0
- package/codemods/v21/chat-pinnedbyfield.js +19 -0
- package/conversational-ui.module.d.ts +18 -11
- package/directives.d.ts +9 -2
- package/esm2022/chat/api/index.mjs +4 -1
- package/{chat/api/message-toolbar-visibility.d.ts → esm2022/chat/api/message-settings.interface.mjs} +1 -4
- package/esm2022/chat/api/suggestions-layout.mjs +5 -0
- package/esm2022/chat/api/timestamp-visibility.mjs +5 -0
- package/esm2022/chat/builtin-actions.mjs +2 -0
- package/esm2022/chat/chat-file.component.mjs +2 -2
- package/esm2022/chat/chat.component.mjs +295 -71
- package/esm2022/chat/chat.directives.mjs +18 -0
- package/esm2022/chat/chat.module.mjs +16 -9
- package/esm2022/chat/common/chat.service.mjs +86 -4
- package/esm2022/chat/common/models/default-model-fields.mjs +0 -1
- package/esm2022/chat/common/scroll-button.component.mjs +81 -0
- package/esm2022/chat/common/scroll.service.mjs +110 -0
- package/esm2022/chat/common/utils.mjs +22 -3
- package/esm2022/chat/l10n/messages.mjs +13 -1
- package/esm2022/chat/message-attachments.component.mjs +2 -2
- package/esm2022/chat/message-box.component.mjs +5 -2
- package/esm2022/chat/message-list.component.mjs +184 -40
- package/esm2022/chat/message.component.mjs +487 -326
- package/esm2022/chat/suggested-actions.component.mjs +298 -80
- package/esm2022/chat/templates/author-message-content-template.directive.mjs +39 -0
- package/esm2022/chat/templates/author-message-template.directive.mjs +39 -0
- package/esm2022/chat/templates/message-content-template.directive.mjs +39 -0
- package/esm2022/chat/templates/message-template.directive.mjs +1 -1
- package/esm2022/chat/templates/no-data-template.directive.mjs +38 -0
- package/esm2022/chat/templates/receiver-message-content-template.directive.mjs +39 -0
- package/esm2022/chat/templates/receiver-message-template.directive.mjs +39 -0
- package/esm2022/chat/templates/user-status-template.directive.mjs +38 -0
- package/esm2022/conversational-ui.module.mjs +19 -12
- package/esm2022/directives.mjs +15 -1
- package/esm2022/index.mjs +7 -0
- package/esm2022/package-metadata.mjs +2 -2
- package/fesm2022/progress-kendo-angular-conversational-ui.mjs +1822 -567
- package/index.d.ts +7 -0
- package/package.json +26 -14
- /package/esm2022/chat/api/{message-toolbar-visibility.mjs → files-layout.mjs} +0 -0
|
@@ -6,7 +6,6 @@ import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input,
|
|
|
6
6
|
import { AttachmentTemplateDirective } from './templates/attachment-template.directive';
|
|
7
7
|
import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
|
|
8
8
|
import { makeHandler } from './builtin-actions';
|
|
9
|
-
import { MessageTemplateDirective } from './templates/message-template.directive';
|
|
10
9
|
import { Subscription } from 'rxjs';
|
|
11
10
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
12
11
|
import { packageMetadata } from '../package-metadata';
|
|
@@ -24,11 +23,15 @@ import { KENDO_BUTTON } from '@progress/kendo-angular-buttons';
|
|
|
24
23
|
import { pinIcon, xIcon } from '@progress/kendo-svg-icons';
|
|
25
24
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
|
26
25
|
import { defaultModelFields } from './common/models/default-model-fields';
|
|
27
|
-
import { processMessages, SEND_BTN_DEFAULT_SETTINGS, FILE_ACTIONS, CONTEXT_MENU_ACTIONS } from './common/utils';
|
|
26
|
+
import { processMessages, SEND_BTN_DEFAULT_SETTINGS, FILE_ACTIONS, CONTEXT_MENU_ACTIONS, transformActions, MENU_ITEM_SELECTOR } from './common/utils';
|
|
28
27
|
import { ChatTimestampTemplateDirective } from './templates/timestamp-template.directive';
|
|
29
28
|
import { MessageReferenceComponent } from './message-reference-content.component';
|
|
30
29
|
import { ChatStatusTemplateDirective } from './templates/status-template.directive';
|
|
31
30
|
import { ChatSuggestionTemplateDirective } from './templates/suggestion-template.directive';
|
|
31
|
+
import { ContextMenuComponent } from '@progress/kendo-angular-menu';
|
|
32
|
+
import { NoDataTemplateDirective, MessageTemplateDirective, AuthorMessageContentTemplateDirective, ReceiverMessageContentTemplateDirective, ReceiverMessageTemplateDirective, AuthorMessageTemplateDirective, MessageContentTemplateDirective } from './chat.directives';
|
|
33
|
+
import { ChatUserStatusTemplateDirective } from './templates/user-status-template.directive';
|
|
34
|
+
import { SuggestionsScrollService } from './common/scroll.service';
|
|
32
35
|
import * as i0 from "@angular/core";
|
|
33
36
|
import * as i1 from "@progress/kendo-angular-l10n";
|
|
34
37
|
import * as i2 from "./common/chat.service";
|
|
@@ -50,7 +53,7 @@ import * as i3 from "@progress/kendo-angular-buttons";
|
|
|
50
53
|
* ```
|
|
51
54
|
*
|
|
52
55
|
* @remarks
|
|
53
|
-
* Supported children components are: {@link CustomMessagesComponent}, {@link HeroCardComponent}, {@link AttachmentTemplateDirective}, {@link ChatHeaderTemplateDirective}, {@link ChatMessageBoxTemplateDirective}, {@link
|
|
56
|
+
* Supported children components are: {@link CustomMessagesComponent}, {@link HeroCardComponent}, {@link AttachmentTemplateDirective}, {@link ChatHeaderTemplateDirective}, {@link ChatMessageBoxTemplateDirective}, {@link MessageContentTemplateDirective}, {@link MessageTemplateDirective},{@link ChatStatusTemplateDirective}, {@link ChatSuggestionTemplateDirective}, {@link ChatTimestampTemplateDirective}, {@link ChatNoDataTemplateDirective}, {@link ChatUserStatusTemplateDirective}, {@link AuthorMessageContentTemplateDirective}, {@link ReceiverMessageContentTemplateDirective}, {@link ReceiverMessageTemplateDirective}, {@link AuthorMessageTemplateDirective}.
|
|
54
57
|
*/
|
|
55
58
|
export class ChatComponent {
|
|
56
59
|
localization;
|
|
@@ -59,13 +62,13 @@ export class ChatComponent {
|
|
|
59
62
|
element;
|
|
60
63
|
chatService;
|
|
61
64
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* For more information,
|
|
65
|
+
* Sets the Chat messages.
|
|
66
|
+
* Accepts an array of `Message` objects, but can also accept custom data structures.
|
|
67
|
+
* For more information, check [Data Binding](slug:databinding_chat) section in the documentation.
|
|
65
68
|
*/
|
|
66
69
|
messages;
|
|
67
70
|
/**
|
|
68
|
-
*
|
|
71
|
+
* Sets the ID that represents the local user.
|
|
69
72
|
*/
|
|
70
73
|
authorId;
|
|
71
74
|
/**
|
|
@@ -93,13 +96,32 @@ export class ChatComponent {
|
|
|
93
96
|
*/
|
|
94
97
|
placeholder;
|
|
95
98
|
/**
|
|
96
|
-
*
|
|
99
|
+
* Controls the width of the message between the predefined options.
|
|
97
100
|
*
|
|
98
101
|
* @default 'standard'
|
|
99
102
|
*/
|
|
100
103
|
messageWidthMode = 'standard';
|
|
104
|
+
/**
|
|
105
|
+
* Controls the visibility of timestamps in messages.
|
|
106
|
+
*
|
|
107
|
+
* @default 'focus'
|
|
108
|
+
*/
|
|
109
|
+
timestampVisibility = 'focus';
|
|
110
|
+
/**
|
|
111
|
+
* Controls the visibility of the author's avatar for the message group.
|
|
112
|
+
*
|
|
113
|
+
* @default true
|
|
114
|
+
*/
|
|
115
|
+
showUsername = true;
|
|
116
|
+
/**
|
|
117
|
+
* Controls the visibility of the author's username for the message group.
|
|
118
|
+
*
|
|
119
|
+
* @default true
|
|
120
|
+
*/
|
|
121
|
+
showAvatar = true;
|
|
101
122
|
/**
|
|
102
123
|
* Enables the expand or collapse functionality for messages.
|
|
124
|
+
*
|
|
103
125
|
* @default false
|
|
104
126
|
*/
|
|
105
127
|
allowMessageCollapse = false;
|
|
@@ -116,24 +138,34 @@ export class ChatComponent {
|
|
|
116
138
|
*/
|
|
117
139
|
enableFileSelect = true;
|
|
118
140
|
/**
|
|
119
|
-
*
|
|
141
|
+
* Sets the actions of the message toolbar.
|
|
120
142
|
* These actions display in the message toolbar and let you perform specific operations on the message.
|
|
143
|
+
*
|
|
121
144
|
* @default []
|
|
122
145
|
*/
|
|
123
146
|
messageToolbarActions = [];
|
|
124
147
|
/**
|
|
125
148
|
* Sets the value of the Message Box.
|
|
149
|
+
*
|
|
126
150
|
* @default ''
|
|
127
151
|
*/
|
|
128
152
|
inputValue = '';
|
|
129
153
|
/**
|
|
130
|
-
*
|
|
154
|
+
* Sets the settings for the author's messages.
|
|
155
|
+
*/
|
|
156
|
+
authorMessageSettings;
|
|
157
|
+
/**
|
|
158
|
+
* Sets the settings for the receivers' messages.
|
|
159
|
+
*/
|
|
160
|
+
receiverMessageSettings;
|
|
161
|
+
/**
|
|
162
|
+
* Sets the default actions that display in the message context menu.
|
|
131
163
|
*
|
|
132
164
|
* @default [{ id: 'copy', label: 'Copy', icon: 'copy', svgIcon: copyIcon, disabled: false }, { id: 'reply', label: 'Reply', icon: 'undo', svgIcon: undoIcon, disabled: false }]
|
|
133
165
|
*/
|
|
134
166
|
defaultContextMenuActions = CONTEXT_MENU_ACTIONS;
|
|
135
167
|
/**
|
|
136
|
-
*
|
|
168
|
+
* Sets the actions that display in the message as a context menu.
|
|
137
169
|
* These actions display as menu items and let you perform specific operations on the message.
|
|
138
170
|
* The default actions are `copy` and `reply` and are defined by their `id`.
|
|
139
171
|
*/
|
|
@@ -144,11 +176,13 @@ export class ChatComponent {
|
|
|
144
176
|
return this._messageContextMenuActions;
|
|
145
177
|
}
|
|
146
178
|
/**
|
|
147
|
-
*
|
|
179
|
+
* Sets the default actions that display in the file actions DropDownButton.
|
|
180
|
+
*
|
|
181
|
+
* @default [{ id: 'download', label: 'Download', icon: 'download', svgIcon: downloadIcon, disabled: false }]
|
|
148
182
|
*/
|
|
149
183
|
defaultFileActions = FILE_ACTIONS;
|
|
150
184
|
/**
|
|
151
|
-
*
|
|
185
|
+
* Sets the actions that display in the file as items of a DropDownButton.
|
|
152
186
|
* These actions display when you click the file DropDownButton and let you perform specific operations on the file.
|
|
153
187
|
* The default action is `download` and is defined by its `id`.
|
|
154
188
|
*
|
|
@@ -161,17 +195,40 @@ export class ChatComponent {
|
|
|
161
195
|
return this._fileActions;
|
|
162
196
|
}
|
|
163
197
|
/**
|
|
164
|
-
* Sets the
|
|
165
|
-
*
|
|
166
|
-
* @default
|
|
198
|
+
* Sets the layout of the files in the message bubble.
|
|
199
|
+
*
|
|
200
|
+
* @default 'vertical'
|
|
167
201
|
*/
|
|
168
|
-
|
|
202
|
+
set messageFilesLayout(layout) {
|
|
203
|
+
this.chatService.messageFilesLayout = layout;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Sets the layout of the suggestions above the message input box.
|
|
207
|
+
*
|
|
208
|
+
* @default 'scroll'
|
|
209
|
+
*/
|
|
210
|
+
set suggestionsLayout(layoutMode) {
|
|
211
|
+
if (layoutMode) {
|
|
212
|
+
this.chatService.suggestionsLayout = layoutMode;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Sets the layout of the quick actions suggested below the messages.
|
|
217
|
+
*
|
|
218
|
+
* @default 'scroll'
|
|
219
|
+
*/
|
|
220
|
+
set quickActionsLayout(layoutMode) {
|
|
221
|
+
if (layoutMode) {
|
|
222
|
+
this.chatService.quickActionsLayout = layoutMode;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
169
225
|
/**
|
|
170
|
-
* Sets the
|
|
226
|
+
* Sets the suggestions that display in the message input box.
|
|
227
|
+
* Suggestions display as a list of clickable items that let you quickly insert predefined text into the message input.
|
|
171
228
|
*
|
|
172
|
-
* @default
|
|
229
|
+
* @default []
|
|
173
230
|
*/
|
|
174
|
-
|
|
231
|
+
suggestions = [];
|
|
175
232
|
/**
|
|
176
233
|
* Sets the send button settings for the Chat component.
|
|
177
234
|
* Allows customization of the send button appearance, icons and disabled state.
|
|
@@ -190,53 +247,53 @@ export class ChatComponent {
|
|
|
190
247
|
return this._modelFields;
|
|
191
248
|
}
|
|
192
249
|
/**
|
|
193
|
-
*
|
|
250
|
+
* Fires when the user sends a message by clicking the **Send** button or pressing **Enter**.
|
|
194
251
|
*
|
|
195
252
|
* The message is not automatically added to the `messages` array.
|
|
196
253
|
*/
|
|
197
254
|
sendMessage = new EventEmitter();
|
|
198
255
|
/**
|
|
199
|
-
*
|
|
256
|
+
* Fires when the user clicks a quick action button in the message toolbar.
|
|
200
257
|
*/
|
|
201
258
|
toolbarActionClick = new EventEmitter();
|
|
202
259
|
/**
|
|
203
|
-
*
|
|
260
|
+
* Fires when the user clicks an action in the message context menu.
|
|
204
261
|
*/
|
|
205
262
|
contextMenuActionClick = new EventEmitter();
|
|
206
263
|
/**
|
|
207
|
-
*
|
|
264
|
+
* Fires when the user clicks an action in the file context menu.
|
|
208
265
|
*/
|
|
209
266
|
fileActionClick = new EventEmitter();
|
|
210
267
|
/**
|
|
211
|
-
*
|
|
268
|
+
* Fires when the user clicks an action in the file context menu.
|
|
212
269
|
*/
|
|
213
270
|
download = new EventEmitter();
|
|
214
271
|
/**
|
|
215
|
-
*
|
|
272
|
+
* Fires when the user clicks a quick action button.
|
|
216
273
|
* The Chat internally handles [known actions](slug:api_conversational-ui_actiontype) such as `reply`, `openUrl`, and `call`.
|
|
217
274
|
*
|
|
218
275
|
* The event is preventable. Calling [`preventDefault`](https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault) suppresses the built-in action.
|
|
219
276
|
*/
|
|
220
277
|
executeAction = new EventEmitter();
|
|
221
278
|
/**
|
|
222
|
-
*
|
|
279
|
+
* Fires when the user clicks a suggestion in the message input box.
|
|
223
280
|
*/
|
|
224
281
|
suggestionExecute = new EventEmitter();
|
|
225
282
|
/**
|
|
226
|
-
*
|
|
283
|
+
* Fires when the user selects a file in the message input box.
|
|
227
284
|
*/
|
|
228
285
|
fileSelect = new EventEmitter();
|
|
229
286
|
/**
|
|
230
|
-
*
|
|
287
|
+
* Fires when the user removes a file from the message input box.
|
|
231
288
|
*/
|
|
232
289
|
fileRemove = new EventEmitter();
|
|
233
290
|
/**
|
|
234
|
-
*
|
|
291
|
+
* Fires when the user unpins the pinned message.
|
|
235
292
|
* This event triggers when the user clicks the delete button on the pinned message.
|
|
236
293
|
*/
|
|
237
294
|
unpin = new EventEmitter();
|
|
238
295
|
/**
|
|
239
|
-
*
|
|
296
|
+
* Fires when the user types in the message input box.
|
|
240
297
|
*/
|
|
241
298
|
inputValueChange = new EventEmitter();
|
|
242
299
|
get className() {
|
|
@@ -245,13 +302,23 @@ export class ChatComponent {
|
|
|
245
302
|
get dirAttr() {
|
|
246
303
|
return this.direction;
|
|
247
304
|
}
|
|
305
|
+
set messagesContextMenu(contextMenu) {
|
|
306
|
+
this.chatService.messagesContextMenu = contextMenu;
|
|
307
|
+
}
|
|
248
308
|
attachmentTemplate;
|
|
249
309
|
chatHeaderTemplate;
|
|
310
|
+
chatNoDataTemplate;
|
|
311
|
+
authorMessageContentTemplate;
|
|
312
|
+
receiverMessageContentTemplate;
|
|
313
|
+
messageContentTemplate;
|
|
314
|
+
authorMessageTemplate;
|
|
315
|
+
receiverMessageTemplate;
|
|
250
316
|
messageTemplate;
|
|
251
317
|
timestampTemplate;
|
|
252
318
|
suggestionTemplate;
|
|
253
319
|
statusTemplate;
|
|
254
320
|
messageBoxTemplate;
|
|
321
|
+
userStatusTemplate;
|
|
255
322
|
messageBox;
|
|
256
323
|
/**
|
|
257
324
|
* @hidden
|
|
@@ -259,17 +326,30 @@ export class ChatComponent {
|
|
|
259
326
|
messageList;
|
|
260
327
|
/**
|
|
261
328
|
* @hidden
|
|
262
|
-
* Returns processed messages when model fields are used, otherwise returns original messages
|
|
329
|
+
* Returns processed messages when model fields are used, otherwise returns original messages.
|
|
263
330
|
*/
|
|
264
331
|
get processedMessages() {
|
|
265
332
|
if (!this.messages || this.messages.length === 0) {
|
|
266
333
|
return [];
|
|
267
334
|
}
|
|
268
335
|
if (this._modelFields && Object.keys(this._modelFields).some(key => this._modelFields[key] !== defaultModelFields[key])) {
|
|
269
|
-
|
|
336
|
+
if (this.messages !== this._lastMessagesReference || this._modelFields !== this._lastModelFields) {
|
|
337
|
+
this._cachedProcessedMessages = processMessages(this.messages, this._modelFields);
|
|
338
|
+
this._lastMessagesReference = this.messages;
|
|
339
|
+
this._lastModelFields = this._modelFields;
|
|
340
|
+
}
|
|
341
|
+
return this._cachedProcessedMessages;
|
|
270
342
|
}
|
|
271
343
|
return this.messages;
|
|
272
344
|
}
|
|
345
|
+
/**
|
|
346
|
+
* Gets the actions available in the message context menu.
|
|
347
|
+
*
|
|
348
|
+
* @hidden
|
|
349
|
+
*/
|
|
350
|
+
get contextMenuActions() {
|
|
351
|
+
return transformActions(this.chatService.calculatedContextMenuActions);
|
|
352
|
+
}
|
|
273
353
|
/**
|
|
274
354
|
* @hidden
|
|
275
355
|
*/
|
|
@@ -297,6 +377,9 @@ export class ChatComponent {
|
|
|
297
377
|
_modelFields = defaultModelFields;
|
|
298
378
|
_messageContextMenuActions = CONTEXT_MENU_ACTIONS;
|
|
299
379
|
_fileActions = FILE_ACTIONS;
|
|
380
|
+
_cachedProcessedMessages = [];
|
|
381
|
+
_lastMessagesReference = null;
|
|
382
|
+
_lastModelFields = null;
|
|
300
383
|
constructor(localization, zone, renderer, element, chatService) {
|
|
301
384
|
this.localization = localization;
|
|
302
385
|
this.zone = zone;
|
|
@@ -314,6 +397,9 @@ export class ChatComponent {
|
|
|
314
397
|
*/
|
|
315
398
|
ngOnInit() {
|
|
316
399
|
this.chatService.messageWidthMode = this.messageWidthMode;
|
|
400
|
+
this.chatService.timestampVisibility = this.timestampVisibility;
|
|
401
|
+
this.chatService.showUsername = this.showUsername;
|
|
402
|
+
this.chatService.showAvatar = this.showAvatar;
|
|
317
403
|
this.chatService.allowMessageCollapse = this.allowMessageCollapse;
|
|
318
404
|
this.chatService.enableSpeechToText = this.enableSpeechToText;
|
|
319
405
|
this.chatService.sendButtonSettings = this.sendButtonSettings;
|
|
@@ -321,7 +407,8 @@ export class ChatComponent {
|
|
|
321
407
|
this.chatService.messageToolbarActions = this.messageToolbarActions;
|
|
322
408
|
this.chatService.messageContextMenuActions = this.messageContextMenuActions;
|
|
323
409
|
this.chatService.fileActions = this.fileActions;
|
|
324
|
-
this.chatService.
|
|
410
|
+
this.chatService.authorMessageSettings = this.authorMessageSettings;
|
|
411
|
+
this.chatService.receiverMessageSettings = this.receiverMessageSettings;
|
|
325
412
|
this.chatService.messages = this.processedMessages || [];
|
|
326
413
|
this.chatService.chatElement = this.messageList;
|
|
327
414
|
this.subs.add(this.chatService.toolbarAction$.subscribe((actionEvent) => {
|
|
@@ -362,6 +449,9 @@ export class ChatComponent {
|
|
|
362
449
|
this.updateChatServiceProperties([
|
|
363
450
|
'authorId',
|
|
364
451
|
'messageWidthMode',
|
|
452
|
+
'timestampVisibility',
|
|
453
|
+
'showUsername',
|
|
454
|
+
'showAvatar',
|
|
365
455
|
'allowMessageCollapse',
|
|
366
456
|
'enableSpeechToText',
|
|
367
457
|
'sendButtonSettings',
|
|
@@ -369,7 +459,8 @@ export class ChatComponent {
|
|
|
369
459
|
'messageToolbarActions',
|
|
370
460
|
'messageContextMenuActions',
|
|
371
461
|
'fileActions',
|
|
372
|
-
'
|
|
462
|
+
'authorMessageSettings',
|
|
463
|
+
'receiverMessageSettings'
|
|
373
464
|
], changes);
|
|
374
465
|
}
|
|
375
466
|
/**
|
|
@@ -418,6 +509,43 @@ export class ChatComponent {
|
|
|
418
509
|
this.chatService.scrollToMessage(this.pinnedMessage?.id);
|
|
419
510
|
}
|
|
420
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
* @hidden
|
|
514
|
+
*/
|
|
515
|
+
onContextMenuAction(action) {
|
|
516
|
+
if (action.id === 'reply') {
|
|
517
|
+
this.chatService.reply = this.chatService.activeMessage;
|
|
518
|
+
}
|
|
519
|
+
if (action.id === 'copy') {
|
|
520
|
+
navigator.clipboard.writeText(this.chatService.activeMessage.text);
|
|
521
|
+
}
|
|
522
|
+
this.chatService.emit('contextMenuAction', { action, message: this.chatService.activeMessage });
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* @hidden
|
|
526
|
+
*/
|
|
527
|
+
handleMenuClose(event) {
|
|
528
|
+
if (event) {
|
|
529
|
+
const originalEvent = event.originalEvent;
|
|
530
|
+
originalEvent && this.onActionButtonClick(originalEvent);
|
|
531
|
+
}
|
|
532
|
+
this.chatService.activeMessage = null;
|
|
533
|
+
this.chatService.emit('contextMenuVisibilityChange', false);
|
|
534
|
+
if (this.chatService.selectOnMenuClose) {
|
|
535
|
+
this.chatService.activeMessageElement.selected = true;
|
|
536
|
+
this.chatService.focusActiveMessageElement();
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* @hidden
|
|
541
|
+
*/
|
|
542
|
+
onActionButtonClick(event) {
|
|
543
|
+
const clickOutsideMessage = event instanceof MouseEvent && !event.target?.closest('.k-chat-bubble');
|
|
544
|
+
const menuItemClick = event instanceof MouseEvent && event.target?.closest(MENU_ITEM_SELECTOR);
|
|
545
|
+
if (clickOutsideMessage && !menuItemClick) {
|
|
546
|
+
this.chatService.selectOnMenuClose = false;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
421
549
|
findLastPinnedMessage() {
|
|
422
550
|
return [...this.processedMessages].reverse().find((message) => message.isPinned);
|
|
423
551
|
}
|
|
@@ -441,14 +569,15 @@ export class ChatComponent {
|
|
|
441
569
|
});
|
|
442
570
|
}
|
|
443
571
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatComponent, deps: [{ token: i1.LocalizationService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.ChatService }], target: i0.ɵɵFactoryTarget.Component });
|
|
444
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ChatComponent, isStandalone: true, selector: "kendo-chat", inputs: { messages: "messages", authorId: "authorId", messageBoxType: "messageBoxType", height: "height", width: "width", placeholder: "placeholder", messageWidthMode: "messageWidthMode", allowMessageCollapse: "allowMessageCollapse", enableSpeechToText: "enableSpeechToText", enableFileSelect: "enableFileSelect", messageToolbarActions: "messageToolbarActions", inputValue: "inputValue", messageContextMenuActions: "messageContextMenuActions", fileActions: "fileActions",
|
|
572
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ChatComponent, isStandalone: true, selector: "kendo-chat", inputs: { messages: "messages", authorId: "authorId", messageBoxType: "messageBoxType", height: "height", width: "width", placeholder: "placeholder", messageWidthMode: "messageWidthMode", timestampVisibility: "timestampVisibility", showUsername: "showUsername", showAvatar: "showAvatar", allowMessageCollapse: "allowMessageCollapse", enableSpeechToText: "enableSpeechToText", enableFileSelect: "enableFileSelect", messageToolbarActions: "messageToolbarActions", inputValue: "inputValue", authorMessageSettings: "authorMessageSettings", receiverMessageSettings: "receiverMessageSettings", messageContextMenuActions: "messageContextMenuActions", fileActions: "fileActions", messageFilesLayout: "messageFilesLayout", suggestionsLayout: "suggestionsLayout", quickActionsLayout: "quickActionsLayout", suggestions: "suggestions", sendButtonSettings: "sendButtonSettings", modelFields: "modelFields" }, outputs: { sendMessage: "sendMessage", toolbarActionClick: "toolbarActionClick", contextMenuActionClick: "contextMenuActionClick", fileActionClick: "fileActionClick", download: "download", executeAction: "executeAction", suggestionExecute: "suggestionExecute", fileSelect: "fileSelect", fileRemove: "fileRemove", unpin: "unpin", inputValueChange: "inputValueChange" }, host: { properties: { "class": "this.className", "attr.dir": "this.dirAttr" } }, providers: [
|
|
445
573
|
LocalizationService,
|
|
446
574
|
ChatService,
|
|
575
|
+
SuggestionsScrollService,
|
|
447
576
|
{
|
|
448
577
|
provide: L10N_PREFIX,
|
|
449
578
|
useValue: 'kendo.chat'
|
|
450
579
|
}
|
|
451
|
-
], queries: [{ propertyName: "attachmentTemplate", first: true, predicate: AttachmentTemplateDirective, descendants: true }, { propertyName: "chatHeaderTemplate", first: true, predicate: ChatHeaderTemplateDirective, descendants: true }, { propertyName: "messageTemplate", first: true, predicate: MessageTemplateDirective, descendants: true }, { propertyName: "timestampTemplate", first: true, predicate: ChatTimestampTemplateDirective, descendants: true }, { propertyName: "suggestionTemplate", first: true, predicate: ChatSuggestionTemplateDirective, descendants: true }, { propertyName: "statusTemplate", first: true, predicate: ChatStatusTemplateDirective, descendants: true }, { propertyName: "messageBoxTemplate", first: true, predicate: ChatMessageBoxTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "messageBox", first: true, predicate: ["messageBox"], descendants: true }, { propertyName: "messageList", first: true, predicate: ["messageList"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
580
|
+
], queries: [{ propertyName: "attachmentTemplate", first: true, predicate: AttachmentTemplateDirective, descendants: true }, { propertyName: "chatHeaderTemplate", first: true, predicate: ChatHeaderTemplateDirective, descendants: true }, { propertyName: "chatNoDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "authorMessageContentTemplate", first: true, predicate: AuthorMessageContentTemplateDirective, descendants: true }, { propertyName: "receiverMessageContentTemplate", first: true, predicate: ReceiverMessageContentTemplateDirective, descendants: true }, { propertyName: "messageContentTemplate", first: true, predicate: MessageContentTemplateDirective, descendants: true }, { propertyName: "authorMessageTemplate", first: true, predicate: AuthorMessageTemplateDirective, descendants: true }, { propertyName: "receiverMessageTemplate", first: true, predicate: ReceiverMessageTemplateDirective, descendants: true }, { propertyName: "messageTemplate", first: true, predicate: MessageTemplateDirective, descendants: true }, { propertyName: "timestampTemplate", first: true, predicate: ChatTimestampTemplateDirective, descendants: true }, { propertyName: "suggestionTemplate", first: true, predicate: ChatSuggestionTemplateDirective, descendants: true }, { propertyName: "statusTemplate", first: true, predicate: ChatStatusTemplateDirective, descendants: true }, { propertyName: "messageBoxTemplate", first: true, predicate: ChatMessageBoxTemplateDirective, descendants: true }, { propertyName: "userStatusTemplate", first: true, predicate: ChatUserStatusTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "messagesContextMenu", first: true, predicate: ["messagesContextMenu"], descendants: true }, { propertyName: "messageBox", first: true, predicate: ["messageBox"], descendants: true }, { propertyName: "messageList", first: true, predicate: ["messageList"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
452
581
|
<ng-container kendoChatLocalizedMessages
|
|
453
582
|
i18n-deletedMessageSenderText="kendo.chat.deletedMessageSenderText|The text that is displayed when the sender deletes a message"
|
|
454
583
|
deletedMessageSenderText="You removed this message."
|
|
@@ -497,10 +626,16 @@ export class ChatComponent {
|
|
|
497
626
|
|
|
498
627
|
i18n-downloadAllFilesText="kendo.chat.downloadAllFilesText|Sets the text that is displayed in the download section of the message."
|
|
499
628
|
downloadAllFilesText="Download all"
|
|
629
|
+
|
|
630
|
+
i18n-previousSuggestionsButtonTitle="kendo.chat.previousSuggestionsButtonTitle|The title of the button that scrolls to the previous suggestions"
|
|
631
|
+
previousSuggestionsButtonTitle="Scroll left"
|
|
632
|
+
|
|
633
|
+
i18n-nextSuggestionsButtonTitle="kendo.chat.nextSuggestionsButtonTitle|The title of the button that scrolls to the next suggestions"
|
|
634
|
+
nextSuggestionsButtonTitle="Scroll right"
|
|
500
635
|
>
|
|
501
636
|
</ng-container>
|
|
502
637
|
|
|
503
|
-
<kendo-appbar *ngIf="chatHeaderTemplate" class="k-chat-header" positionMode="sticky">
|
|
638
|
+
<kendo-appbar *ngIf="chatHeaderTemplate" class="k-chat-header" positionMode="sticky" themeColor="inherit">
|
|
504
639
|
<ng-container *ngTemplateOutlet="chatHeaderTemplate.templateRef"></ng-container>
|
|
505
640
|
</kendo-appbar>
|
|
506
641
|
<div class="k-message-reference k-message-reference-receiver k-message-pinned" *ngIf="pinnedMessage" (click)="scrollToPinnedMessage()">
|
|
@@ -516,7 +651,7 @@ export class ChatComponent {
|
|
|
516
651
|
</div>
|
|
517
652
|
<div
|
|
518
653
|
#messageList
|
|
519
|
-
class="k-message-list
|
|
654
|
+
class="k-message-list"
|
|
520
655
|
aria-live="polite"
|
|
521
656
|
role="log"
|
|
522
657
|
kendoChatScrollAnchor
|
|
@@ -524,19 +659,32 @@ export class ChatComponent {
|
|
|
524
659
|
#anchor="scrollAnchor"
|
|
525
660
|
[(autoScroll)]="autoScroll"
|
|
526
661
|
>
|
|
527
|
-
<
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
662
|
+
<div *ngIf="processedMessages && processedMessages.length === 0; else chatMessageList" class="k-message-list-content k-message-list-content-empty">
|
|
663
|
+
<ng-template
|
|
664
|
+
[ngTemplateOutlet]="chatNoDataTemplate?.templateRef">
|
|
665
|
+
</ng-template>
|
|
666
|
+
</div>
|
|
667
|
+
<ng-template #chatMessageList>
|
|
668
|
+
<kendo-chat-message-list
|
|
669
|
+
[messages]="processedMessages"
|
|
670
|
+
[authorMessageContentTemplate]="authorMessageContentTemplate"
|
|
671
|
+
[receiverMessageContentTemplate]="receiverMessageContentTemplate"
|
|
672
|
+
[messageContentTemplate]="messageContentTemplate"
|
|
673
|
+
[authorMessageTemplate]="authorMessageTemplate"
|
|
674
|
+
[receiverMessageTemplate]="receiverMessageTemplate"
|
|
675
|
+
[messageTemplate]="messageTemplate"
|
|
676
|
+
[timestampTemplate]="timestampTemplate"
|
|
677
|
+
[statusTemplate]="statusTemplate"
|
|
678
|
+
[userStatusTemplate]="userStatusTemplate"
|
|
679
|
+
[localization]="localizationText"
|
|
680
|
+
[attachmentTemplate]="attachmentTemplate"
|
|
681
|
+
[authorId]="authorId"
|
|
682
|
+
(executeAction)="dispatchAction($event)"
|
|
683
|
+
(resize)="anchor.scrollToBottom()"
|
|
684
|
+
(navigate)="this.autoScroll = false"
|
|
685
|
+
>
|
|
686
|
+
</kendo-chat-message-list>
|
|
687
|
+
</ng-template>
|
|
540
688
|
</div>
|
|
541
689
|
<kendo-message-box
|
|
542
690
|
#messageBox
|
|
@@ -554,7 +702,16 @@ export class ChatComponent {
|
|
|
554
702
|
(fileRemove)="fileRemove.emit($event)"
|
|
555
703
|
>
|
|
556
704
|
</kendo-message-box>
|
|
557
|
-
|
|
705
|
+
|
|
706
|
+
<kendo-contextmenu
|
|
707
|
+
#messagesContextMenu
|
|
708
|
+
[items]="contextMenuActions"
|
|
709
|
+
[popupAlign]="{ horizontal: 'right', vertical: 'top' }"
|
|
710
|
+
[collision]="{ horizontal: 'flip', vertical: 'flip'}"
|
|
711
|
+
(popupClose)="handleMenuClose($event)"
|
|
712
|
+
(select)="onContextMenuAction($event.item.originalAction)"
|
|
713
|
+
></kendo-contextmenu>
|
|
714
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoChatLocalizedMessages]" }, { kind: "directive", type: ScrollAnchorDirective, selector: "[kendoChatScrollAnchor]", inputs: ["autoScroll"], outputs: ["autoScrollChange"], exportAs: ["scrollAnchor"] }, { kind: "component", type: MessageListComponent, selector: "kendo-chat-message-list", inputs: ["messages", "attachmentTemplate", "authorMessageContentTemplate", "receiverMessageContentTemplate", "messageContentTemplate", "authorMessageTemplate", "receiverMessageTemplate", "messageTemplate", "timestampTemplate", "statusTemplate", "userStatusTemplate", "localization", "authorId"], outputs: ["executeAction", "navigate", "resize"] }, { kind: "component", type: MessageBoxComponent, selector: "kendo-message-box", inputs: ["authorId", "autoScroll", "suggestions", "placeholder", "inputValue", "localization", "messageBoxTemplate", "suggestionTemplate"], outputs: ["sendMessage", "executeSuggestion", "fileSelect", "fileRemove"] }, { kind: "component", type: MessageReferenceComponent, selector: "chat-message-reference-content", inputs: ["message"] }, { kind: "component", type: AppBarComponent, selector: "kendo-appbar", inputs: ["position", "positionMode", "themeColor"], exportAs: ["kendoAppBar"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: ContextMenuComponent, selector: "kendo-contextmenu", inputs: ["showOn", "target", "filter", "alignToAnchor", "vertical", "popupAnimate", "popupAlign", "anchorAlign", "collision", "appendTo", "ariaLabel"], outputs: ["popupOpen", "popupClose", "select", "open", "close"], exportAs: ["kendoContextMenu"] }] });
|
|
558
715
|
}
|
|
559
716
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatComponent, decorators: [{
|
|
560
717
|
type: Component,
|
|
@@ -562,6 +719,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
562
719
|
providers: [
|
|
563
720
|
LocalizationService,
|
|
564
721
|
ChatService,
|
|
722
|
+
SuggestionsScrollService,
|
|
565
723
|
{
|
|
566
724
|
provide: L10N_PREFIX,
|
|
567
725
|
useValue: 'kendo.chat'
|
|
@@ -617,10 +775,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
617
775
|
|
|
618
776
|
i18n-downloadAllFilesText="kendo.chat.downloadAllFilesText|Sets the text that is displayed in the download section of the message."
|
|
619
777
|
downloadAllFilesText="Download all"
|
|
778
|
+
|
|
779
|
+
i18n-previousSuggestionsButtonTitle="kendo.chat.previousSuggestionsButtonTitle|The title of the button that scrolls to the previous suggestions"
|
|
780
|
+
previousSuggestionsButtonTitle="Scroll left"
|
|
781
|
+
|
|
782
|
+
i18n-nextSuggestionsButtonTitle="kendo.chat.nextSuggestionsButtonTitle|The title of the button that scrolls to the next suggestions"
|
|
783
|
+
nextSuggestionsButtonTitle="Scroll right"
|
|
620
784
|
>
|
|
621
785
|
</ng-container>
|
|
622
786
|
|
|
623
|
-
<kendo-appbar *ngIf="chatHeaderTemplate" class="k-chat-header" positionMode="sticky">
|
|
787
|
+
<kendo-appbar *ngIf="chatHeaderTemplate" class="k-chat-header" positionMode="sticky" themeColor="inherit">
|
|
624
788
|
<ng-container *ngTemplateOutlet="chatHeaderTemplate.templateRef"></ng-container>
|
|
625
789
|
</kendo-appbar>
|
|
626
790
|
<div class="k-message-reference k-message-reference-receiver k-message-pinned" *ngIf="pinnedMessage" (click)="scrollToPinnedMessage()">
|
|
@@ -636,7 +800,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
636
800
|
</div>
|
|
637
801
|
<div
|
|
638
802
|
#messageList
|
|
639
|
-
class="k-message-list
|
|
803
|
+
class="k-message-list"
|
|
640
804
|
aria-live="polite"
|
|
641
805
|
role="log"
|
|
642
806
|
kendoChatScrollAnchor
|
|
@@ -644,19 +808,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
644
808
|
#anchor="scrollAnchor"
|
|
645
809
|
[(autoScroll)]="autoScroll"
|
|
646
810
|
>
|
|
647
|
-
<
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
811
|
+
<div *ngIf="processedMessages && processedMessages.length === 0; else chatMessageList" class="k-message-list-content k-message-list-content-empty">
|
|
812
|
+
<ng-template
|
|
813
|
+
[ngTemplateOutlet]="chatNoDataTemplate?.templateRef">
|
|
814
|
+
</ng-template>
|
|
815
|
+
</div>
|
|
816
|
+
<ng-template #chatMessageList>
|
|
817
|
+
<kendo-chat-message-list
|
|
818
|
+
[messages]="processedMessages"
|
|
819
|
+
[authorMessageContentTemplate]="authorMessageContentTemplate"
|
|
820
|
+
[receiverMessageContentTemplate]="receiverMessageContentTemplate"
|
|
821
|
+
[messageContentTemplate]="messageContentTemplate"
|
|
822
|
+
[authorMessageTemplate]="authorMessageTemplate"
|
|
823
|
+
[receiverMessageTemplate]="receiverMessageTemplate"
|
|
824
|
+
[messageTemplate]="messageTemplate"
|
|
825
|
+
[timestampTemplate]="timestampTemplate"
|
|
826
|
+
[statusTemplate]="statusTemplate"
|
|
827
|
+
[userStatusTemplate]="userStatusTemplate"
|
|
828
|
+
[localization]="localizationText"
|
|
829
|
+
[attachmentTemplate]="attachmentTemplate"
|
|
830
|
+
[authorId]="authorId"
|
|
831
|
+
(executeAction)="dispatchAction($event)"
|
|
832
|
+
(resize)="anchor.scrollToBottom()"
|
|
833
|
+
(navigate)="this.autoScroll = false"
|
|
834
|
+
>
|
|
835
|
+
</kendo-chat-message-list>
|
|
836
|
+
</ng-template>
|
|
660
837
|
</div>
|
|
661
838
|
<kendo-message-box
|
|
662
839
|
#messageBox
|
|
@@ -674,9 +851,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
674
851
|
(fileRemove)="fileRemove.emit($event)"
|
|
675
852
|
>
|
|
676
853
|
</kendo-message-box>
|
|
854
|
+
|
|
855
|
+
<kendo-contextmenu
|
|
856
|
+
#messagesContextMenu
|
|
857
|
+
[items]="contextMenuActions"
|
|
858
|
+
[popupAlign]="{ horizontal: 'right', vertical: 'top' }"
|
|
859
|
+
[collision]="{ horizontal: 'flip', vertical: 'flip'}"
|
|
860
|
+
(popupClose)="handleMenuClose($event)"
|
|
861
|
+
(select)="onContextMenuAction($event.item.originalAction)"
|
|
862
|
+
></kendo-contextmenu>
|
|
677
863
|
`,
|
|
678
864
|
standalone: true,
|
|
679
|
-
imports: [LocalizedMessagesDirective, ScrollAnchorDirective, MessageListComponent, MessageBoxComponent, MessageReferenceComponent, AppBarComponent, NgTemplateOutlet, NgIf, IconWrapperComponent, KENDO_BUTTON]
|
|
865
|
+
imports: [LocalizedMessagesDirective, ScrollAnchorDirective, MessageListComponent, MessageBoxComponent, MessageReferenceComponent, AppBarComponent, NgTemplateOutlet, NgIf, IconWrapperComponent, KENDO_BUTTON, ContextMenuComponent]
|
|
680
866
|
}]
|
|
681
867
|
}], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.ChatService }], propDecorators: { messages: [{
|
|
682
868
|
type: Input
|
|
@@ -692,6 +878,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
692
878
|
type: Input
|
|
693
879
|
}], messageWidthMode: [{
|
|
694
880
|
type: Input
|
|
881
|
+
}], timestampVisibility: [{
|
|
882
|
+
type: Input
|
|
883
|
+
}], showUsername: [{
|
|
884
|
+
type: Input
|
|
885
|
+
}], showAvatar: [{
|
|
886
|
+
type: Input
|
|
695
887
|
}], allowMessageCollapse: [{
|
|
696
888
|
type: Input
|
|
697
889
|
}], enableSpeechToText: [{
|
|
@@ -702,13 +894,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
702
894
|
type: Input
|
|
703
895
|
}], inputValue: [{
|
|
704
896
|
type: Input
|
|
897
|
+
}], authorMessageSettings: [{
|
|
898
|
+
type: Input
|
|
899
|
+
}], receiverMessageSettings: [{
|
|
900
|
+
type: Input
|
|
705
901
|
}], messageContextMenuActions: [{
|
|
706
902
|
type: Input
|
|
707
903
|
}], fileActions: [{
|
|
708
904
|
type: Input
|
|
709
|
-
}],
|
|
905
|
+
}], messageFilesLayout: [{
|
|
906
|
+
type: Input
|
|
907
|
+
}], suggestionsLayout: [{
|
|
710
908
|
type: Input
|
|
711
|
-
}],
|
|
909
|
+
}], quickActionsLayout: [{
|
|
910
|
+
type: Input
|
|
911
|
+
}], suggestions: [{
|
|
712
912
|
type: Input
|
|
713
913
|
}], sendButtonSettings: [{
|
|
714
914
|
type: Input
|
|
@@ -742,12 +942,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
742
942
|
}], dirAttr: [{
|
|
743
943
|
type: HostBinding,
|
|
744
944
|
args: ['attr.dir']
|
|
945
|
+
}], messagesContextMenu: [{
|
|
946
|
+
type: ViewChild,
|
|
947
|
+
args: ['messagesContextMenu']
|
|
745
948
|
}], attachmentTemplate: [{
|
|
746
949
|
type: ContentChild,
|
|
747
950
|
args: [AttachmentTemplateDirective]
|
|
748
951
|
}], chatHeaderTemplate: [{
|
|
749
952
|
type: ContentChild,
|
|
750
953
|
args: [ChatHeaderTemplateDirective]
|
|
954
|
+
}], chatNoDataTemplate: [{
|
|
955
|
+
type: ContentChild,
|
|
956
|
+
args: [NoDataTemplateDirective]
|
|
957
|
+
}], authorMessageContentTemplate: [{
|
|
958
|
+
type: ContentChild,
|
|
959
|
+
args: [AuthorMessageContentTemplateDirective]
|
|
960
|
+
}], receiverMessageContentTemplate: [{
|
|
961
|
+
type: ContentChild,
|
|
962
|
+
args: [ReceiverMessageContentTemplateDirective]
|
|
963
|
+
}], messageContentTemplate: [{
|
|
964
|
+
type: ContentChild,
|
|
965
|
+
args: [MessageContentTemplateDirective]
|
|
966
|
+
}], authorMessageTemplate: [{
|
|
967
|
+
type: ContentChild,
|
|
968
|
+
args: [AuthorMessageTemplateDirective]
|
|
969
|
+
}], receiverMessageTemplate: [{
|
|
970
|
+
type: ContentChild,
|
|
971
|
+
args: [ReceiverMessageTemplateDirective]
|
|
751
972
|
}], messageTemplate: [{
|
|
752
973
|
type: ContentChild,
|
|
753
974
|
args: [MessageTemplateDirective]
|
|
@@ -763,6 +984,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
763
984
|
}], messageBoxTemplate: [{
|
|
764
985
|
type: ContentChild,
|
|
765
986
|
args: [ChatMessageBoxTemplateDirective]
|
|
987
|
+
}], userStatusTemplate: [{
|
|
988
|
+
type: ContentChild,
|
|
989
|
+
args: [ChatUserStatusTemplateDirective]
|
|
766
990
|
}], messageBox: [{
|
|
767
991
|
type: ViewChild,
|
|
768
992
|
args: ['messageBox']
|