@progress/kendo-angular-conversational-ui 20.0.0-develop.4 → 20.0.0-develop.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/chat/api/action.interface.d.ts +1 -1
  2. package/chat/api/attachment.interface.d.ts +1 -1
  3. package/chat/api/chat-file-interface.d.ts +41 -0
  4. package/chat/api/chat-suggestion.interface.d.ts +25 -0
  5. package/chat/api/file-action.d.ts +42 -0
  6. package/chat/api/file-download-event.interface.d.ts +21 -0
  7. package/chat/api/index.d.ts +8 -0
  8. package/chat/api/message-action.d.ts +42 -0
  9. package/{esm2022/chat/chat.directives.mjs → chat/api/message-toolbar-visibility.d.ts} +4 -4
  10. package/chat/api/message-width-mode.d.ts +10 -0
  11. package/chat/api/message.interface.d.ts +30 -12
  12. package/chat/api/send-button-settings.d.ts +15 -0
  13. package/chat/api/user.interface.d.ts +4 -0
  14. package/chat/attachment.component.d.ts +1 -1
  15. package/chat/cards/hero-card.component.d.ts +1 -1
  16. package/chat/chat-file.component.d.ts +34 -0
  17. package/chat/chat-item.d.ts +1 -0
  18. package/chat/chat-view.d.ts +1 -1
  19. package/chat/chat.component.d.ts +218 -19
  20. package/chat/chat.module.d.ts +8 -4
  21. package/chat/common/chat.service.d.ts +51 -0
  22. package/chat/{chat.directives.d.ts → common/models/default-model-fields.d.ts} +5 -4
  23. package/chat/common/models/message-box-options.d.ts +1 -1
  24. package/chat/common/models/model-fields.d.ts +111 -0
  25. package/chat/common/utils.d.ts +50 -0
  26. package/chat/l10n/messages.d.ts +40 -3
  27. package/chat/message-attachments.component.d.ts +1 -4
  28. package/chat/message-box.component.d.ts +54 -25
  29. package/chat/message-list.component.d.ts +18 -11
  30. package/chat/message-reference-content.component.d.ts +24 -0
  31. package/chat/message.component.d.ts +54 -6
  32. package/chat/suggested-actions.component.d.ts +17 -4
  33. package/chat/templates/header-template.directive.d.ts +24 -0
  34. package/chat/{message-box.directive.d.ts → templates/message-box.directive.d.ts} +1 -1
  35. package/chat/templates/status-template.directive.d.ts +24 -0
  36. package/chat/templates/suggestion-template.directive.d.ts +24 -0
  37. package/chat/templates/timestamp-template.directive.d.ts +28 -0
  38. package/codemods/template-transformer/index.js +94 -0
  39. package/codemods/utils.js +609 -0
  40. package/codemods/v20/chat-user.js +50 -0
  41. package/conversational-ui.module.d.ts +11 -7
  42. package/directives.d.ts +9 -5
  43. package/esm2022/chat/api/chat-file-interface.mjs +5 -0
  44. package/esm2022/chat/api/chat-suggestion.interface.mjs +5 -0
  45. package/esm2022/chat/api/file-action.mjs +5 -0
  46. package/esm2022/chat/api/file-download-event.interface.mjs +5 -0
  47. package/esm2022/chat/api/index.mjs +8 -0
  48. package/esm2022/chat/api/message-action.mjs +5 -0
  49. package/esm2022/chat/api/message-toolbar-visibility.mjs +5 -0
  50. package/esm2022/chat/api/message-width-mode.mjs +5 -0
  51. package/esm2022/chat/api/send-button-settings.mjs +5 -0
  52. package/esm2022/chat/attachment.component.mjs +1 -1
  53. package/esm2022/chat/builtin-actions.mjs +1 -1
  54. package/esm2022/chat/cards/hero-card.component.mjs +1 -1
  55. package/esm2022/chat/chat-file.component.mjs +141 -0
  56. package/esm2022/chat/chat-item.mjs +1 -0
  57. package/esm2022/chat/chat-view.mjs +2 -2
  58. package/esm2022/chat/chat.component.mjs +518 -57
  59. package/esm2022/chat/chat.module.mjs +8 -4
  60. package/esm2022/chat/common/chat.service.mjs +97 -0
  61. package/esm2022/chat/common/models/default-model-fields.mjs +26 -0
  62. package/esm2022/chat/common/models/model-fields.mjs +5 -0
  63. package/esm2022/chat/common/utils.mjs +127 -0
  64. package/esm2022/chat/l10n/messages.mjs +60 -5
  65. package/esm2022/chat/message-attachments.component.mjs +1 -4
  66. package/esm2022/chat/message-box.component.mjs +360 -111
  67. package/esm2022/chat/message-list.component.mjs +166 -96
  68. package/esm2022/chat/message-reference-content.component.mjs +75 -0
  69. package/esm2022/chat/message.component.mjs +448 -35
  70. package/esm2022/chat/suggested-actions.component.mjs +151 -41
  71. package/esm2022/chat/templates/header-template.directive.mjs +33 -0
  72. package/esm2022/chat/{message-box.directive.mjs → templates/message-box.directive.mjs} +1 -1
  73. package/esm2022/chat/templates/status-template.directive.mjs +33 -0
  74. package/esm2022/chat/templates/suggestion-template.directive.mjs +33 -0
  75. package/esm2022/chat/templates/timestamp-template.directive.mjs +39 -0
  76. package/esm2022/conversational-ui.module.mjs +12 -8
  77. package/esm2022/directives.mjs +12 -4
  78. package/esm2022/index.mjs +9 -3
  79. package/esm2022/package-metadata.mjs +2 -2
  80. package/fesm2022/progress-kendo-angular-conversational-ui.mjs +4986 -3125
  81. package/index.d.ts +10 -3
  82. package/package.json +29 -12
  83. /package/chat/{attachment-template.directive.d.ts → templates/attachment-template.directive.d.ts} +0 -0
  84. /package/chat/{message-template.directive.d.ts → templates/message-template.directive.d.ts} +0 -0
  85. /package/esm2022/chat/{attachment-template.directive.mjs → templates/attachment-template.directive.mjs} +0 -0
  86. /package/esm2022/chat/{message-template.directive.mjs → templates/message-template.directive.mjs} +0 -0
@@ -9,10 +9,14 @@ import { KENDO_CHAT } from '../directives';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "./chat.component";
11
11
  import * as i2 from "./l10n/custom-messages.component";
12
- import * as i3 from "./attachment-template.directive";
13
- import * as i4 from "./message-template.directive";
12
+ import * as i3 from "./templates/attachment-template.directive";
13
+ import * as i4 from "./templates/message-template.directive";
14
14
  import * as i5 from "./cards/hero-card.component";
15
- import * as i6 from "./message-box.directive";
15
+ import * as i6 from "./templates/message-box.directive";
16
+ import * as i7 from "./templates/header-template.directive";
17
+ import * as i8 from "./templates/timestamp-template.directive";
18
+ import * as i9 from "./templates/status-template.directive";
19
+ import * as i10 from "./templates/suggestion-template.directive";
16
20
  // IMPORTANT: NgModule export kept for backwards compatibility
17
21
  /**
18
22
  * Represents the [`NgModule`](link:site.data.urls.angular['ngmodules']) for the Chat component.
@@ -37,7 +41,7 @@ import * as i6 from "./message-box.directive";
37
41
  */
38
42
  export class ChatModule {
39
43
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
40
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ChatModule, imports: [i1.ChatComponent, i2.CustomMessagesComponent, i3.AttachmentTemplateDirective, i4.MessageTemplateDirective, i5.HeroCardComponent, i6.ChatMessageBoxTemplateDirective], exports: [i1.ChatComponent, i2.CustomMessagesComponent, i3.AttachmentTemplateDirective, i4.MessageTemplateDirective, i5.HeroCardComponent, i6.ChatMessageBoxTemplateDirective] });
44
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ChatModule, imports: [i1.ChatComponent, i2.CustomMessagesComponent, i3.AttachmentTemplateDirective, i4.MessageTemplateDirective, i5.HeroCardComponent, i6.ChatMessageBoxTemplateDirective, i7.ChatHeaderTemplateDirective, i8.ChatTimestampTemplateDirective, i9.ChatStatusTemplateDirective, i10.ChatSuggestionTemplateDirective], exports: [i1.ChatComponent, i2.CustomMessagesComponent, i3.AttachmentTemplateDirective, i4.MessageTemplateDirective, i5.HeroCardComponent, i6.ChatMessageBoxTemplateDirective, i7.ChatHeaderTemplateDirective, i8.ChatTimestampTemplateDirective, i9.ChatStatusTemplateDirective, i10.ChatSuggestionTemplateDirective] });
41
45
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChatModule, providers: [IconsService, ResizeBatchService], imports: [i1.ChatComponent, i5.HeroCardComponent] });
42
46
  }
43
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChatModule, decorators: [{
@@ -0,0 +1,97 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Injectable } from '@angular/core';
6
+ import { Subject } from 'rxjs';
7
+ import { STB_DEFAULT_SETTINGS, SEND_BTN_DEFAULT_SETTINGS, FILESELECT_DEFAULT_SETTINGS } from './utils';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * @hidden
11
+ */
12
+ export class ChatService {
13
+ authorId;
14
+ messageWidthMode;
15
+ allowMessageCollapse;
16
+ messageToolbarActions = [];
17
+ messageContextMenuActions = [];
18
+ fileActions = [];
19
+ messageToolbarVisibility = 'hidden';
20
+ toggleMessageState = false;
21
+ reply;
22
+ messages = [];
23
+ chatElement;
24
+ messageElementsMap = new Map();
25
+ _enableSpeechToText = STB_DEFAULT_SETTINGS;
26
+ _enableFileSelect = FILESELECT_DEFAULT_SETTINGS;
27
+ _sendButtonSettings = SEND_BTN_DEFAULT_SETTINGS;
28
+ subjects = {
29
+ toolbarAction: new Subject(),
30
+ contextMenuAction: new Subject(),
31
+ fileAction: new Subject(),
32
+ fileDownload: new Subject(),
33
+ replyReferenceClick: new Subject(),
34
+ inputValueChange: new Subject()
35
+ };
36
+ toolbarAction$ = this.subjects.toolbarAction.asObservable();
37
+ contextMenuAction$ = this.subjects.contextMenuAction.asObservable();
38
+ fileAction$ = this.subjects.fileAction.asObservable();
39
+ fileDownload$ = this.subjects.fileDownload.asObservable();
40
+ replyReferenceClick$ = this.subjects.replyReferenceClick.asObservable();
41
+ inputValueChange$ = this.subjects.inputValueChange.asObservable();
42
+ set enableSpeechToText(settings) {
43
+ this.updateComponentSettings('_enableSpeechToText', settings, STB_DEFAULT_SETTINGS);
44
+ }
45
+ get enableSpeechToText() {
46
+ return this._enableSpeechToText;
47
+ }
48
+ set enableFileSelect(settings) {
49
+ this.updateComponentSettings('_enableFileSelect', settings, FILESELECT_DEFAULT_SETTINGS);
50
+ }
51
+ get enableFileSelect() {
52
+ return this._enableFileSelect;
53
+ }
54
+ set sendButtonSettings(settings) {
55
+ this.updateComponentSettings('_sendButtonSettings', settings, SEND_BTN_DEFAULT_SETTINGS);
56
+ }
57
+ get sendButtonSettings() {
58
+ return this._sendButtonSettings;
59
+ }
60
+ emit(subjectKey, value) {
61
+ (this.subjects[subjectKey]).next(value);
62
+ }
63
+ getMessageById(id) {
64
+ return this.messages.find(message => message.id === id);
65
+ }
66
+ registerMessageElement(messageId, elementRef) {
67
+ this.messageElementsMap.set(messageId, elementRef);
68
+ }
69
+ unregisterMessageElement(messageId) {
70
+ this.messageElementsMap.delete(messageId);
71
+ if (this.reply?.id === messageId) {
72
+ this.reply = null;
73
+ }
74
+ }
75
+ scrollToMessage(messageId) {
76
+ const elementRef = this.messageElementsMap.get(messageId);
77
+ if (elementRef?.nativeElement) {
78
+ elementRef.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
79
+ }
80
+ }
81
+ updateComponentSettings(property, settings, defaultSettings) {
82
+ if (settings === true) {
83
+ this[property] = defaultSettings;
84
+ }
85
+ else if (settings === false) {
86
+ this[property] = null;
87
+ }
88
+ else {
89
+ this[property] = { ...defaultSettings, ...settings };
90
+ }
91
+ }
92
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
93
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChatService });
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChatService, decorators: [{
96
+ type: Injectable
97
+ }] });
@@ -0,0 +1,26 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ /**
6
+ * @hidden
7
+ */
8
+ export const defaultModelFields = {
9
+ idField: 'id',
10
+ textField: 'text',
11
+ authorIdField: 'authorId',
12
+ authorNameField: 'authorName',
13
+ authorImageUrlField: 'authorImageUrl',
14
+ authorImageAltTextField: 'authorImageAltText',
15
+ timestampField: 'timestamp',
16
+ statusField: 'status',
17
+ filesField: 'files',
18
+ attachmentsField: 'attachments',
19
+ attachmentLayoutField: 'attachmentLayout',
20
+ suggestedActionsField: 'suggestedActions',
21
+ isPinnedField: 'isPinned',
22
+ pinnedByField: 'pinnedBy',
23
+ replyToIdField: 'replyToId',
24
+ isDeletedField: 'isDeleted',
25
+ typingField: 'typing'
26
+ };
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export {};
@@ -2,6 +2,10 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
+ import { defaultModelFields } from "./models/default-model-fields";
6
+ import { getter } from "@progress/kendo-angular-common";
7
+ import { paperPlaneIcon } from "@progress/kendo-svg-icons";
8
+ import { copyIcon, undoIcon, downloadIcon } from "@progress/kendo-svg-icons";
5
9
  /**
6
10
  * @hidden
7
11
  */
@@ -11,3 +15,126 @@ export const closest = (node, predicate) => {
11
15
  }
12
16
  return node;
13
17
  };
18
+ /**
19
+ * @hidden
20
+ */
21
+ export const URL_REGEX = /(https?:\/\/[^\s]+)/g;
22
+ /**
23
+ * @hidden
24
+ */
25
+ export const DOWNLOAD_ALL_SELECTOR = '.k-chat-download-button';
26
+ /**
27
+ * @hidden
28
+ */
29
+ export const FILE_ACTION_BTN_SELECTOR = '.k-menu-button';
30
+ /**
31
+ * @hidden
32
+ */
33
+ export const MENU_ITEM_SELECTOR = '.k-menu-link';
34
+ /**
35
+ * @hidden
36
+ * Default settings for the Speech to Text button.
37
+ * These settings can be overridden by the user.
38
+ */
39
+ export const STB_DEFAULT_SETTINGS = {
40
+ continuous: false,
41
+ disabled: false,
42
+ fillMode: 'clear',
43
+ integrationMode: 'webSpeech',
44
+ interimResults: false,
45
+ lang: 'en-US',
46
+ maxAlternatives: 1,
47
+ rounded: 'medium',
48
+ size: 'medium',
49
+ themeColor: 'base'
50
+ };
51
+ /**
52
+ * @hidden
53
+ */
54
+ export const SEND_BTN_DEFAULT_SETTINGS = {
55
+ fillMode: 'solid',
56
+ rounded: 'full',
57
+ size: 'medium',
58
+ themeColor: 'primary',
59
+ icon: 'paper-plane',
60
+ svgIcon: paperPlaneIcon,
61
+ buttonClass: 'k-chat-send'
62
+ };
63
+ /**
64
+ * @hidden
65
+ */
66
+ export const FILESELECT_DEFAULT_SETTINGS = {
67
+ multiple: true,
68
+ disabled: false
69
+ };
70
+ /**
71
+ * @hidden
72
+ */
73
+ export const CONTEXT_MENU_ACTIONS = [
74
+ {
75
+ id: 'copy',
76
+ label: 'Copy',
77
+ icon: 'copy',
78
+ svgIcon: copyIcon,
79
+ disabled: false
80
+ }, {
81
+ id: 'reply',
82
+ label: 'Reply',
83
+ icon: 'undo',
84
+ svgIcon: undoIcon,
85
+ disabled: false
86
+ }
87
+ ];
88
+ /**
89
+ * @hidden
90
+ */
91
+ export const FILE_ACTIONS = [
92
+ {
93
+ id: 'download',
94
+ label: 'Download',
95
+ icon: 'download',
96
+ svgIcon: downloadIcon,
97
+ disabled: false
98
+ }
99
+ ];
100
+ /**
101
+ * @hidden
102
+ */
103
+ export const processMessages = (messages, fields) => {
104
+ const modelFields = { ...defaultModelFields, ...fields };
105
+ return messages.map((message) => parseMessage(message, modelFields));
106
+ };
107
+ /**
108
+ * @hidden
109
+ */
110
+ export const parseMessage = (message, fields) => {
111
+ const modelFields = { ...defaultModelFields, ...fields };
112
+ let author;
113
+ const authorId = getter(modelFields.authorIdField || 'authorId')(message);
114
+ const authorName = getter(modelFields.authorNameField || 'authorName')(message);
115
+ const authorImageUrl = getter(modelFields.authorImageUrlField || 'authorImageUrl')(message);
116
+ const authorImageAltText = getter(modelFields.authorImageAltTextField || 'authorImageAltText')(message);
117
+ if (authorId !== undefined) {
118
+ author = {
119
+ id: authorId,
120
+ ...(authorName && { name: authorName }),
121
+ ...(authorImageUrl && { avatarUrl: authorImageUrl }),
122
+ ...(authorImageAltText && { avatarAltText: authorImageAltText })
123
+ };
124
+ }
125
+ return {
126
+ id: getter(modelFields.idField)(message),
127
+ text: getter(modelFields.textField)(message),
128
+ author: author,
129
+ timestamp: new Date(getter(modelFields.timestampField)(message)),
130
+ status: getter(modelFields.statusField)(message),
131
+ files: getter(modelFields.filesField)(message),
132
+ attachments: getter(modelFields.attachmentsField)(message),
133
+ attachmentLayout: getter(modelFields.attachmentLayoutField)(message),
134
+ suggestedActions: getter(modelFields.suggestedActionsField)(message),
135
+ isPinned: getter(modelFields.isPinnedField)(message),
136
+ replyToId: getter(modelFields.replyToIdField)(message),
137
+ isDeleted: getter(modelFields.isDeletedField)(message),
138
+ typing: getter(modelFields.typingField)(message)
139
+ };
140
+ };
@@ -9,6 +9,19 @@ import * as i0 from "@angular/core";
9
9
  * @hidden
10
10
  */
11
11
  export class Messages extends ComponentMessages {
12
+ /**
13
+ * Sets the text that is displayed when the sender deletes a message.
14
+ */
15
+ deletedMessageSenderText;
16
+ /**
17
+ * Sets the text that is displayed when the receiver deletes a message.
18
+ */
19
+ deletedMessageReceiverText;
20
+ /**
21
+ * Sets the text that is displayed in the download section of the message.
22
+ * This message is displayed below all files in the message.
23
+ */
24
+ downloadAllFilesText;
12
25
  /**
13
26
  * Sets the placeholder text for the message text input.
14
27
  */
@@ -34,11 +47,35 @@ export class Messages extends ComponentMessages {
34
47
  */
35
48
  messageAttachmentRightArrow;
36
49
  /**
37
- * Sets the `alt` attribute text for the avatar image.
50
+ * Sets the Speech to Text button title.
51
+ */
52
+ speechToTextButtonTitle;
53
+ /**
54
+ * Sets the File Select button title.
55
+ */
56
+ fileSelectButtonTitle;
57
+ /**
58
+ * Sets the title of the icon which removes the reply reference in the Message Box.
59
+ */
60
+ removeReplyTitle;
61
+ /**
62
+ * Sets the title of the icon which removes a selected file in the Message Box.
63
+ */
64
+ removeFileTitle;
65
+ /**
66
+ * Sets the title of the icon which demonstrates that the message can be expanded.
38
67
  */
39
- messageAvatarAlt;
68
+ expandTitle;
69
+ /**
70
+ * Sets the title of the icon which demonstrates that the message can be collapsed.
71
+ */
72
+ collapseTitle;
73
+ /**
74
+ * Sets the title of the DropDownButton which opens the File actions.
75
+ */
76
+ fileActionsTitle;
40
77
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
41
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: Messages, selector: "kendoConversationalUIMessages", inputs: { messagePlaceholder: "messagePlaceholder", send: "send", messageListLabel: "messageListLabel", messageBoxInputLabel: "messageBoxInputLabel", messageAttachmentLeftArrow: "messageAttachmentLeftArrow", messageAttachmentRightArrow: "messageAttachmentRightArrow", messageAvatarAlt: "messageAvatarAlt" }, usesInheritance: true, ngImport: i0 });
78
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: Messages, selector: "kendoConversationalUIMessages", inputs: { deletedMessageSenderText: "deletedMessageSenderText", deletedMessageReceiverText: "deletedMessageReceiverText", downloadAllFilesText: "downloadAllFilesText", messagePlaceholder: "messagePlaceholder", send: "send", messageListLabel: "messageListLabel", messageBoxInputLabel: "messageBoxInputLabel", messageAttachmentLeftArrow: "messageAttachmentLeftArrow", messageAttachmentRightArrow: "messageAttachmentRightArrow", speechToTextButtonTitle: "speechToTextButtonTitle", fileSelectButtonTitle: "fileSelectButtonTitle", removeReplyTitle: "removeReplyTitle", removeFileTitle: "removeFileTitle", expandTitle: "expandTitle", collapseTitle: "collapseTitle", fileActionsTitle: "fileActionsTitle" }, usesInheritance: true, ngImport: i0 });
42
79
  }
43
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, decorators: [{
44
81
  type: Directive,
@@ -46,7 +83,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
46
83
  // eslint-disable-next-line @angular-eslint/directive-selector
47
84
  selector: 'kendoConversationalUIMessages'
48
85
  }]
49
- }], propDecorators: { messagePlaceholder: [{
86
+ }], propDecorators: { deletedMessageSenderText: [{
87
+ type: Input
88
+ }], deletedMessageReceiverText: [{
89
+ type: Input
90
+ }], downloadAllFilesText: [{
91
+ type: Input
92
+ }], messagePlaceholder: [{
50
93
  type: Input
51
94
  }], send: [{
52
95
  type: Input
@@ -58,6 +101,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
58
101
  type: Input
59
102
  }], messageAttachmentRightArrow: [{
60
103
  type: Input
61
- }], messageAvatarAlt: [{
104
+ }], speechToTextButtonTitle: [{
105
+ type: Input
106
+ }], fileSelectButtonTitle: [{
107
+ type: Input
108
+ }], removeReplyTitle: [{
109
+ type: Input
110
+ }], removeFileTitle: [{
111
+ type: Input
112
+ }], expandTitle: [{
113
+ type: Input
114
+ }], collapseTitle: [{
115
+ type: Input
116
+ }], fileActionsTitle: [{
62
117
  type: Input
63
118
  }] } });
@@ -12,7 +12,7 @@ import { chevronLeftIcon, chevronRightIcon } from '@progress/kendo-svg-icons';
12
12
  import { LocalizationService } from '@progress/kendo-angular-l10n';
13
13
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
14
14
  import { ChatItem } from './chat-item';
15
- import { AttachmentTemplateDirective } from './attachment-template.directive';
15
+ import { AttachmentTemplateDirective } from './templates/attachment-template.directive';
16
16
  import { AttachmentComponent } from './attachment.component';
17
17
  import * as i0 from "@angular/core";
18
18
  import * as i1 from "@progress/kendo-angular-l10n";
@@ -128,9 +128,6 @@ export class MessageAttachmentsComponent extends ChatItem {
128
128
  });
129
129
  }
130
130
  }
131
- /**
132
- * @hidden
133
- */
134
131
  textFor(key) {
135
132
  return this.localization.get(key);
136
133
  }