@progress/kendo-angular-conversational-ui 4.0.2-dev.202203091004 → 5.0.0-next.202203171033

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 (148) hide show
  1. package/{dist/es2015/api → api}/action.interface.d.ts +4 -4
  2. package/{dist/es2015/api → api}/attachment.interface.d.ts +0 -0
  3. package/{dist/es2015/api → api}/execute-action-event.d.ts +1 -1
  4. package/{dist/es/api/user.interface.js → api/index.d.ts} +6 -0
  5. package/{dist/es2015/api → api}/message.interface.d.ts +0 -0
  6. package/{dist/es2015/api → api}/post-message-event.d.ts +0 -0
  7. package/{dist/es2015/api → api}/preventable-event.d.ts +0 -0
  8. package/{dist/es2015/api → api}/user.interface.d.ts +0 -0
  9. package/bundles/kendo-angular-conversational-ui.umd.js +5 -0
  10. package/{dist/es2015/cards → cards}/hero-card.component.d.ts +3 -0
  11. package/{dist/es2015/chat → chat}/attachment-template.directive.d.ts +3 -0
  12. package/{dist/es2015/chat → chat}/attachment.component.d.ts +9 -5
  13. package/{dist/es2015/chat → chat}/builtin-actions.d.ts +0 -0
  14. package/{dist/es2015/chat → chat}/chat-item.d.ts +0 -0
  15. package/{dist/es2015/chat → chat}/chat-view.d.ts +1 -1
  16. package/{dist/es2015/chat → chat}/chat.component.d.ts +6 -6
  17. package/{dist/es2015/chat → chat}/chat.directives.d.ts +0 -0
  18. package/chat/chat.module.d.ts +47 -0
  19. package/{dist/es2015/chat → chat}/l10n/custom-messages.component.d.ts +4 -1
  20. package/{dist/es2015/chat → chat}/l10n/localized-messages.directive.d.ts +3 -0
  21. package/{dist/es2015/chat → chat}/l10n/messages.d.ts +3 -0
  22. package/{dist/es2015/chat → chat}/message-attachments.component.d.ts +5 -2
  23. package/{dist/es2015/chat → chat}/message-list.component.d.ts +8 -7
  24. package/{dist/es2015/chat → chat}/message-template.directive.d.ts +3 -0
  25. package/{dist/es2015/chat → chat}/message.component.d.ts +4 -1
  26. package/{dist/es2015/chat → chat}/suggested-actions.component.d.ts +4 -1
  27. package/common/focused-state.directive.d.ts +15 -0
  28. package/{dist/es2015/common → common}/keys.enum.d.ts +0 -0
  29. package/{dist/es2015/common → common}/scroll-anchor.directive.d.ts +3 -0
  30. package/{dist/es2015/common → common}/utils.d.ts +0 -0
  31. package/{dist/es2015 → esm2015}/api/action.interface.js +2 -1
  32. package/{dist/es2015 → esm2015}/api/attachment.interface.js +1 -0
  33. package/{dist/es2015 → esm2015}/api/execute-action-event.js +0 -0
  34. package/{dist/es/api/attachment.interface.js → esm2015/api/index.js} +6 -0
  35. package/{dist/es → esm2015}/api/message.interface.js +1 -0
  36. package/{dist/es2015 → esm2015}/api/post-message-event.js +0 -0
  37. package/{dist/es2015 → esm2015}/api/preventable-event.js +0 -0
  38. package/{dist/es2015 → esm2015}/api/user.interface.js +1 -0
  39. package/esm2015/cards/hero-card.component.js +88 -0
  40. package/{dist/es2015 → esm2015}/chat/attachment-template.directive.js +14 -12
  41. package/esm2015/chat/attachment.component.js +83 -0
  42. package/{dist/es2015 → esm2015}/chat/builtin-actions.js +13 -16
  43. package/{dist/es2015 → esm2015}/chat/chat-item.js +0 -0
  44. package/{dist/es2015 → esm2015}/chat/chat-view.js +0 -6
  45. package/esm2015/chat/chat.component.js +225 -0
  46. package/{dist/es → esm2015}/chat/chat.directives.js +0 -0
  47. package/{dist/es2015 → esm2015}/chat/chat.module.js +40 -15
  48. package/esm2015/chat/l10n/custom-messages.component.js +42 -0
  49. package/esm2015/chat/l10n/localized-messages.directive.js +37 -0
  50. package/esm2015/chat/l10n/messages.js +24 -0
  51. package/{dist/es2015 → esm2015}/chat/message-attachments.component.js +71 -48
  52. package/esm2015/chat/message-list.component.js +279 -0
  53. package/{dist/es2015 → esm2015}/chat/message-template.directive.js +14 -12
  54. package/esm2015/chat/message.component.js +140 -0
  55. package/esm2015/chat/suggested-actions.component.js +111 -0
  56. package/esm2015/common/focused-state.directive.js +37 -0
  57. package/{dist/es2015 → esm2015}/common/keys.enum.js +1 -0
  58. package/{dist/es2015 → esm2015}/common/scroll-anchor.directive.js +20 -26
  59. package/{dist/es2015 → esm2015}/common/utils.js +0 -0
  60. package/{dist/es/api/action.interface.js → esm2015/kendo-angular-conversational-ui.js} +4 -1
  61. package/{dist/npm/chat/chat-item.js → esm2015/main.js} +5 -11
  62. package/{dist/es2015 → esm2015}/package-metadata.js +1 -1
  63. package/fesm2015/kendo-angular-conversational-ui.js +1575 -0
  64. package/{dist/es2015/common/focused-state.directive.d.ts → kendo-angular-conversational-ui.d.ts} +3 -6
  65. package/main.d.ts +9 -0
  66. package/{dist/es2015/package-metadata.d.ts → package-metadata.d.ts} +0 -0
  67. package/package.json +34 -101
  68. package/schematics/ngAdd/index.js +5 -2
  69. package/schematics/ngAdd/index.js.map +1 -1
  70. package/dist/cdn/js/kendo-angular-conversational-ui.js +0 -20
  71. package/dist/cdn/main.js +0 -5
  72. package/dist/es/api/execute-action-event.js +0 -24
  73. package/dist/es/api/post-message-event.js +0 -18
  74. package/dist/es/api/preventable-event.js +0 -32
  75. package/dist/es/cards/hero-card.component.js +0 -54
  76. package/dist/es/chat/attachment-template.directive.js +0 -32
  77. package/dist/es/chat/attachment.component.js +0 -65
  78. package/dist/es/chat/builtin-actions.js +0 -28
  79. package/dist/es/chat/chat-item.js +0 -13
  80. package/dist/es/chat/chat-view.js +0 -92
  81. package/dist/es/chat/chat.component.js +0 -193
  82. package/dist/es/chat/chat.module.js +0 -76
  83. package/dist/es/chat/l10n/custom-messages.component.js +0 -45
  84. package/dist/es/chat/l10n/localized-messages.directive.js +0 -36
  85. package/dist/es/chat/l10n/messages.js +0 -26
  86. package/dist/es/chat/message-attachments.component.js +0 -148
  87. package/dist/es/chat/message-list.component.js +0 -165
  88. package/dist/es/chat/message-template.directive.js +0 -32
  89. package/dist/es/chat/message.component.js +0 -77
  90. package/dist/es/chat/suggested-actions.component.js +0 -91
  91. package/dist/es/common/focused-state.directive.js +0 -43
  92. package/dist/es/common/keys.enum.js +0 -4
  93. package/dist/es/common/scroll-anchor.directive.js +0 -87
  94. package/dist/es/common/utils.js +0 -13
  95. package/dist/es/index.js +0 -21
  96. package/dist/es/main.js +0 -8
  97. package/dist/es/package-metadata.js +0 -15
  98. package/dist/es2015/api/message.interface.js +0 -4
  99. package/dist/es2015/cards/hero-card.component.js +0 -78
  100. package/dist/es2015/chat/attachment.component.js +0 -66
  101. package/dist/es2015/chat/chat.component.js +0 -230
  102. package/dist/es2015/chat/chat.directives.js +0 -7
  103. package/dist/es2015/chat/chat.module.d.ts +0 -27
  104. package/dist/es2015/chat/l10n/custom-messages.component.js +0 -37
  105. package/dist/es2015/chat/l10n/localized-messages.directive.js +0 -32
  106. package/dist/es2015/chat/l10n/messages.js +0 -20
  107. package/dist/es2015/chat/message-list.component.js +0 -227
  108. package/dist/es2015/chat/message.component.js +0 -107
  109. package/dist/es2015/chat/suggested-actions.component.js +0 -104
  110. package/dist/es2015/common/focused-state.directive.js +0 -45
  111. package/dist/es2015/index.d.ts +0 -21
  112. package/dist/es2015/index.js +0 -21
  113. package/dist/es2015/index.metadata.json +0 -1
  114. package/dist/es2015/main.d.ts +0 -12
  115. package/dist/es2015/main.js +0 -8
  116. package/dist/fesm2015/index.js +0 -1403
  117. package/dist/fesm5/index.js +0 -1253
  118. package/dist/npm/api/action.interface.js +0 -7
  119. package/dist/npm/api/attachment.interface.js +0 -6
  120. package/dist/npm/api/execute-action-event.js +0 -26
  121. package/dist/npm/api/message.interface.js +0 -6
  122. package/dist/npm/api/post-message-event.js +0 -20
  123. package/dist/npm/api/preventable-event.js +0 -34
  124. package/dist/npm/api/user.interface.js +0 -6
  125. package/dist/npm/cards/hero-card.component.js +0 -56
  126. package/dist/npm/chat/attachment-template.directive.js +0 -34
  127. package/dist/npm/chat/attachment.component.js +0 -67
  128. package/dist/npm/chat/builtin-actions.js +0 -33
  129. package/dist/npm/chat/chat-view.js +0 -98
  130. package/dist/npm/chat/chat.component.js +0 -195
  131. package/dist/npm/chat/chat.directives.js +0 -12
  132. package/dist/npm/chat/chat.module.js +0 -78
  133. package/dist/npm/chat/l10n/custom-messages.component.js +0 -47
  134. package/dist/npm/chat/l10n/localized-messages.directive.js +0 -38
  135. package/dist/npm/chat/l10n/messages.js +0 -28
  136. package/dist/npm/chat/message-attachments.component.js +0 -150
  137. package/dist/npm/chat/message-list.component.js +0 -167
  138. package/dist/npm/chat/message-template.directive.js +0 -34
  139. package/dist/npm/chat/message.component.js +0 -79
  140. package/dist/npm/chat/suggested-actions.component.js +0 -93
  141. package/dist/npm/common/focused-state.directive.js +0 -45
  142. package/dist/npm/common/keys.enum.js +0 -6
  143. package/dist/npm/common/scroll-anchor.directive.js +0 -89
  144. package/dist/npm/common/utils.js +0 -15
  145. package/dist/npm/index.js +0 -37
  146. package/dist/npm/main.js +0 -11
  147. package/dist/npm/package-metadata.js +0 -17
  148. package/dist/systemjs/kendo-angular-conversational-ui.js +0 -5
@@ -1,227 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import * as tslib_1 from "tslib";
6
- import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, QueryList, ViewChildren } from '@angular/core';
7
- import { ExecuteActionEvent } from '../api/execute-action-event';
8
- import { closest } from '../common/utils';
9
- import { ChatItem } from './chat-item';
10
- import { chatView, isAuthor } from './chat-view';
11
- import { AttachmentTemplateDirective } from './chat.directives';
12
- import { MessageTemplateDirective } from './message-template.directive';
13
- import { IntlService } from '@progress/kendo-angular-intl';
14
- /**
15
- * @hidden
16
- */
17
- let MessageListComponent = class MessageListComponent {
18
- constructor(element, intl) {
19
- this.element = element;
20
- this.intl = intl;
21
- this.executeAction = new EventEmitter();
22
- this.navigate = new EventEmitter();
23
- this.resize = new EventEmitter();
24
- this.cssClass = true;
25
- this.view = [];
26
- this.keyActions = {
27
- [38 /* up */]: (e) => this.navigateTo(e, -1),
28
- [40 /* down */]: (e) => this.navigateTo(e, 1)
29
- };
30
- }
31
- set messages(value) {
32
- const data = value || [];
33
- this.view = chatView(data);
34
- this._messages = data;
35
- }
36
- get messages() {
37
- return this._messages;
38
- }
39
- ngAfterViewInit() {
40
- this.selectedItem = this.items.last;
41
- }
42
- onResize() {
43
- this.resize.emit();
44
- }
45
- formatTimeStamp(date) {
46
- return this.intl.formatDate(date, { date: 'full' });
47
- }
48
- onKeydown(e) {
49
- const action = this.keyActions[e.keyCode];
50
- if (action) {
51
- action(e);
52
- }
53
- }
54
- onBlur(args) {
55
- const next = args.relatedTarget || document.activeElement;
56
- const outside = !closest(next, (node) => node === this.element.nativeElement);
57
- if (outside) {
58
- this.select(null);
59
- }
60
- }
61
- isOwnMessage(msg) {
62
- return isAuthor(this.user, msg);
63
- }
64
- dispatchAction(action, message) {
65
- const args = new ExecuteActionEvent(action, message);
66
- this.executeAction.emit(args);
67
- }
68
- trackGroup(_index, item) {
69
- return item.trackBy;
70
- }
71
- select(item) {
72
- const prevItem = this.selectedItem;
73
- if (prevItem) {
74
- prevItem.selected = false;
75
- }
76
- if (item) {
77
- item.selected = true;
78
- this.selectedItem = item;
79
- }
80
- }
81
- last(items) {
82
- if (!items || items.length === 0) {
83
- return;
84
- }
85
- return items[items.length - 1];
86
- }
87
- navigateTo(e, offset) {
88
- const items = this.items.toArray();
89
- const prevItem = this.selectedItem;
90
- const prevIndex = items.indexOf(prevItem);
91
- const nextIndex = Math.max(0, Math.min(prevIndex + offset, this.items.length - 1));
92
- const nextItem = items[nextIndex];
93
- if (nextItem !== prevItem) {
94
- this.select(nextItem);
95
- nextItem.focus();
96
- this.navigate.emit();
97
- e.preventDefault();
98
- }
99
- }
100
- };
101
- tslib_1.__decorate([
102
- Input(),
103
- tslib_1.__metadata("design:type", Array),
104
- tslib_1.__metadata("design:paramtypes", [Array])
105
- ], MessageListComponent.prototype, "messages", null);
106
- tslib_1.__decorate([
107
- Input(),
108
- tslib_1.__metadata("design:type", AttachmentTemplateDirective)
109
- ], MessageListComponent.prototype, "attachmentTemplate", void 0);
110
- tslib_1.__decorate([
111
- Input(),
112
- tslib_1.__metadata("design:type", MessageTemplateDirective)
113
- ], MessageListComponent.prototype, "messageTemplate", void 0);
114
- tslib_1.__decorate([
115
- Input(),
116
- tslib_1.__metadata("design:type", Object)
117
- ], MessageListComponent.prototype, "user", void 0);
118
- tslib_1.__decorate([
119
- Output(),
120
- tslib_1.__metadata("design:type", EventEmitter)
121
- ], MessageListComponent.prototype, "executeAction", void 0);
122
- tslib_1.__decorate([
123
- Output(),
124
- tslib_1.__metadata("design:type", EventEmitter)
125
- ], MessageListComponent.prototype, "navigate", void 0);
126
- tslib_1.__decorate([
127
- Output(),
128
- tslib_1.__metadata("design:type", EventEmitter)
129
- ], MessageListComponent.prototype, "resize", void 0);
130
- tslib_1.__decorate([
131
- ViewChildren(ChatItem),
132
- tslib_1.__metadata("design:type", QueryList)
133
- ], MessageListComponent.prototype, "items", void 0);
134
- tslib_1.__decorate([
135
- HostBinding('class.k-message-list-content'),
136
- tslib_1.__metadata("design:type", Boolean)
137
- ], MessageListComponent.prototype, "cssClass", void 0);
138
- tslib_1.__decorate([
139
- HostListener('keydown', ['$event']),
140
- tslib_1.__metadata("design:type", Function),
141
- tslib_1.__metadata("design:paramtypes", [Object]),
142
- tslib_1.__metadata("design:returntype", void 0)
143
- ], MessageListComponent.prototype, "onKeydown", null);
144
- tslib_1.__decorate([
145
- HostListener('focusout', ['$event']),
146
- tslib_1.__metadata("design:type", Function),
147
- tslib_1.__metadata("design:paramtypes", [FocusEvent]),
148
- tslib_1.__metadata("design:returntype", void 0)
149
- ], MessageListComponent.prototype, "onBlur", null);
150
- MessageListComponent = tslib_1.__decorate([
151
- Component({
152
- selector: 'kendo-chat-message-list',
153
- template: `
154
- <ng-container *ngFor="let group of view; last as lastGroup; trackBy: trackGroup">
155
- <ng-container [ngSwitch]="group.type">
156
- <div
157
- *ngSwitchCase="'date-marker'"
158
- class="k-timestamp"
159
- >
160
- {{ formatTimeStamp(group.timestamp) }}
161
- </div>
162
- <div
163
- *ngSwitchCase="'message-group'"
164
- class="k-message-group"
165
- [class.k-alt]="isOwnMessage(group.messages[0])"
166
- [class.k-no-avatar]="!group.author.avatarUrl"
167
- >
168
- <img
169
- *ngIf="group.author.avatarUrl"
170
- [attr.src]="group.author.avatarUrl"
171
- class="k-avatar"
172
- />
173
- <p *ngIf="group.author.name" class="k-author">{{ group.author.name }}</p>
174
- <ng-container
175
- *ngFor="let msg of group.messages; first as firstMessage; last as lastMessage"
176
- >
177
- <img *ngIf="msg.user?.avatarUrl" [src]="msg.user?.avatarUrl" class="k-avatar">
178
- <kendo-chat-message #message
179
- [message]="msg"
180
- [tabbable]="lastGroup && lastMessage"
181
- [template]="messageTemplate"
182
- (click)="select(message)"
183
- (focus)="select(message)"
184
- [class.k-only]="group.messages.length === 1"
185
- [class.k-first]="group.messages.length > 1 && firstMessage"
186
- [class.k-last]="group.messages.length > 1 && lastMessage"
187
- >
188
- </kendo-chat-message>
189
-
190
- <kendo-chat-attachment
191
- *ngIf="msg.attachments && msg.attachments.length === 1"
192
- [attachment]="msg.attachments[0]"
193
- [template]="attachmentTemplate"
194
- >
195
- </kendo-chat-attachment>
196
- </ng-container>
197
- </div>
198
-
199
- <kendo-chat-message-attachments #attachments
200
- *ngSwitchCase="'attachment-group'"
201
- [attachments]="group.attachments"
202
- [layout]="group.attachmentLayout"
203
- [tabbable]="lastGroup"
204
- [template]="attachmentTemplate"
205
- (click)="select(attachments)"
206
- (focus)="select(attachments)"
207
- >
208
- </kendo-chat-message-attachments>
209
-
210
- <kendo-chat-suggested-actions #actions
211
- *ngSwitchCase="'action-group'"
212
- [actions]="group.actions"
213
- [tabbable]="lastGroup"
214
- (dispatch)="dispatchAction($event, last(group.messages))"
215
- (click)="select(actions)"
216
- (focus)="select(actions)"
217
- >
218
- </kendo-chat-suggested-actions>
219
- </ng-container>
220
- </ng-container>
221
- <kendo-resize-sensor (resize)="onResize()">
222
- </kendo-resize-sensor>
223
- `
224
- }),
225
- tslib_1.__metadata("design:paramtypes", [ElementRef, IntlService])
226
- ], MessageListComponent);
227
- export { MessageListComponent };
@@ -1,107 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import * as tslib_1 from "tslib";
6
- var MessageComponent_1;
7
- import { Component, ElementRef, forwardRef, HostBinding, Input } from '@angular/core';
8
- import { ChatItem } from './chat-item';
9
- import { MessageTemplateDirective } from './message-template.directive';
10
- import { IntlService } from '@progress/kendo-angular-intl';
11
- // tslint:disable:no-forward-ref
12
- /**
13
- * @hidden
14
- */
15
- let MessageComponent = MessageComponent_1 = class MessageComponent extends ChatItem {
16
- constructor(element, intl) {
17
- super();
18
- this.element = element;
19
- this.intl = intl;
20
- this.cssClass = true;
21
- }
22
- get tabIndex() {
23
- return this.tabbable ? '0' : '-1';
24
- }
25
- formatTimeStamp(date) {
26
- return this.intl.formatDate(date, { datetime: 'short' });
27
- }
28
- focus() {
29
- this.element.nativeElement.focus();
30
- }
31
- };
32
- tslib_1.__decorate([
33
- Input(),
34
- tslib_1.__metadata("design:type", Object)
35
- ], MessageComponent.prototype, "message", void 0);
36
- tslib_1.__decorate([
37
- Input(),
38
- tslib_1.__metadata("design:type", Boolean)
39
- ], MessageComponent.prototype, "tabbable", void 0);
40
- tslib_1.__decorate([
41
- Input(),
42
- tslib_1.__metadata("design:type", MessageTemplateDirective)
43
- ], MessageComponent.prototype, "template", void 0);
44
- tslib_1.__decorate([
45
- HostBinding('class.k-message'),
46
- tslib_1.__metadata("design:type", Boolean)
47
- ], MessageComponent.prototype, "cssClass", void 0);
48
- tslib_1.__decorate([
49
- HostBinding('class.k-state-selected'),
50
- HostBinding('class.k-state-focused'),
51
- tslib_1.__metadata("design:type", Boolean)
52
- ], MessageComponent.prototype, "selected", void 0);
53
- tslib_1.__decorate([
54
- HostBinding('attr.tabIndex'),
55
- tslib_1.__metadata("design:type", String),
56
- tslib_1.__metadata("design:paramtypes", [])
57
- ], MessageComponent.prototype, "tabIndex", null);
58
- MessageComponent = MessageComponent_1 = tslib_1.__decorate([
59
- Component({
60
- selector: 'kendo-chat-message',
61
- providers: [{
62
- provide: ChatItem,
63
- useExisting: forwardRef(() => MessageComponent_1)
64
- }],
65
- template: `
66
- <time
67
- [attr.aria-hidden]="!selected"
68
- class="k-message-time"
69
- *ngIf="message.timestamp"
70
- >
71
- {{ formatTimeStamp(message.timestamp) }}
72
- </time>
73
-
74
- <ng-container *ngIf="!message.typing; else typing">
75
- <div class="k-bubble" *ngIf="template">
76
- <ng-container
77
- *ngTemplateOutlet="template.templateRef; context: { $implicit: message };"
78
- >
79
- </ng-container>
80
- </div>
81
-
82
- <div class="k-bubble" *ngIf="!template && message.text">
83
- {{message.text}}
84
- </div>
85
- </ng-container>
86
-
87
- <span
88
- class="k-message-status"
89
- *ngIf="message.status"
90
- >
91
- {{ message.status }}
92
- </span>
93
-
94
- <ng-template #typing>
95
- <div class="k-bubble">
96
- <div class="k-typing-indicator">
97
- <span></span>
98
- <span></span>
99
- <span></span>
100
- </div>
101
- </div>
102
- </ng-template>
103
- `
104
- }),
105
- tslib_1.__metadata("design:paramtypes", [ElementRef, IntlService])
106
- ], MessageComponent);
107
- export { MessageComponent };
@@ -1,104 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import * as tslib_1 from "tslib";
6
- var SuggestedActionsComponent_1;
7
- import { Component, EventEmitter, forwardRef, HostBinding, Input, Output, QueryList, ViewChildren } from '@angular/core';
8
- import { ChatItem } from './chat-item';
9
- // tslint:disable:no-forward-ref
10
- /**
11
- * @hidden
12
- */
13
- let SuggestedActionsComponent = SuggestedActionsComponent_1 = class SuggestedActionsComponent extends ChatItem {
14
- // tslint:disable:no-forward-ref
15
- /**
16
- * @hidden
17
- */
18
- constructor() {
19
- super(...arguments);
20
- this.dispatch = new EventEmitter();
21
- this.defaultClass = true;
22
- this.selectedIndex = 0;
23
- this.keyHandlers = {
24
- [37 /* left */]: (e) => this.navigateTo(e, -1),
25
- [39 /* right */]: (e) => this.navigateTo(e, 1),
26
- [13 /* enter */]: (_, action) => this.actionClick(action)
27
- };
28
- }
29
- isSelected(index) {
30
- return this.selected && this.selectedIndex === index;
31
- }
32
- actionClick(action) {
33
- this.dispatch.next(action);
34
- }
35
- actionKeydown(e, action) {
36
- const handler = this.keyHandlers[e.keyCode];
37
- if (handler) {
38
- handler(e, action);
39
- }
40
- }
41
- focus() {
42
- this.select(this.selectedIndex);
43
- }
44
- select(index) {
45
- this.selectedIndex = index;
46
- const item = this.items.toArray()[index];
47
- if (item) {
48
- item.nativeElement.focus();
49
- }
50
- }
51
- navigateTo(e, offset) {
52
- const prevIndex = this.selectedIndex;
53
- const nextIndex = Math.max(0, Math.min(prevIndex + offset, this.items.length - 1));
54
- if (nextIndex !== prevIndex) {
55
- this.select(nextIndex);
56
- e.preventDefault();
57
- }
58
- }
59
- };
60
- tslib_1.__decorate([
61
- Input(),
62
- tslib_1.__metadata("design:type", Array)
63
- ], SuggestedActionsComponent.prototype, "actions", void 0);
64
- tslib_1.__decorate([
65
- Input(),
66
- tslib_1.__metadata("design:type", Boolean)
67
- ], SuggestedActionsComponent.prototype, "tabbable", void 0);
68
- tslib_1.__decorate([
69
- Output(),
70
- tslib_1.__metadata("design:type", EventEmitter)
71
- ], SuggestedActionsComponent.prototype, "dispatch", void 0);
72
- tslib_1.__decorate([
73
- HostBinding('class.k-quick-replies'),
74
- tslib_1.__metadata("design:type", Boolean)
75
- ], SuggestedActionsComponent.prototype, "defaultClass", void 0);
76
- tslib_1.__decorate([
77
- ViewChildren('item'),
78
- tslib_1.__metadata("design:type", QueryList)
79
- ], SuggestedActionsComponent.prototype, "items", void 0);
80
- SuggestedActionsComponent = SuggestedActionsComponent_1 = tslib_1.__decorate([
81
- Component({
82
- selector: 'kendo-chat-suggested-actions',
83
- providers: [{
84
- provide: ChatItem,
85
- useExisting: forwardRef(() => SuggestedActionsComponent_1)
86
- }],
87
- template: `
88
- <span #item
89
- *ngFor="let action of actions; index as index; first as first; last as last"
90
- class="k-quick-reply"
91
- [class.k-state-selected]="isSelected(index)"
92
- [class.k-state-focused]="isSelected(index)"
93
- [class.k-first]="first"
94
- [class.k-last]="last"
95
- [attr.tabindex]="tabbable && selectedIndex === index ? '0' : '-1'"
96
- (click)="actionClick(action)"
97
- (keydown)="actionKeydown($event, action)"
98
- >
99
- {{ action.title || action.value }}
100
- </span>
101
- `
102
- })
103
- ], SuggestedActionsComponent);
104
- export { SuggestedActionsComponent };
@@ -1,45 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import * as tslib_1 from "tslib";
6
- import { Directive, HostListener, HostBinding } from '@angular/core';
7
- /**
8
- * @hidden
9
- */
10
- let FocusedStateDirective = class FocusedStateDirective {
11
- /**
12
- * @hidden
13
- */
14
- constructor() {
15
- this.focused = false;
16
- }
17
- onFocus() {
18
- this.focused = true;
19
- }
20
- onBlur() {
21
- this.focused = false;
22
- }
23
- };
24
- tslib_1.__decorate([
25
- HostBinding('class.k-state-focused'),
26
- tslib_1.__metadata("design:type", Boolean)
27
- ], FocusedStateDirective.prototype, "focused", void 0);
28
- tslib_1.__decorate([
29
- HostListener('focusin'),
30
- tslib_1.__metadata("design:type", Function),
31
- tslib_1.__metadata("design:paramtypes", []),
32
- tslib_1.__metadata("design:returntype", void 0)
33
- ], FocusedStateDirective.prototype, "onFocus", null);
34
- tslib_1.__decorate([
35
- HostListener('focusout'),
36
- tslib_1.__metadata("design:type", Function),
37
- tslib_1.__metadata("design:paramtypes", []),
38
- tslib_1.__metadata("design:returntype", void 0)
39
- ], FocusedStateDirective.prototype, "onBlur", null);
40
- FocusedStateDirective = tslib_1.__decorate([
41
- Directive({
42
- selector: '[kendoChatFocusedState]'
43
- })
44
- ], FocusedStateDirective);
45
- export { FocusedStateDirective };
@@ -1,21 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- /**
6
- * Generated bundle index. Do not edit.
7
- */
8
- export * from './main';
9
- export { PreventableEvent } from './api/preventable-event';
10
- export { HeroCardComponent } from './cards/hero-card.component';
11
- export { AttachmentComponent } from './chat/attachment.component';
12
- export { ChatItem } from './chat/chat-item';
13
- export { CustomMessagesComponent } from './chat/l10n/custom-messages.component';
14
- export { LocalizedMessagesDirective } from './chat/l10n/localized-messages.directive';
15
- export { Messages } from './chat/l10n/messages';
16
- export { MessageAttachmentsComponent } from './chat/message-attachments.component';
17
- export { MessageListComponent } from './chat/message-list.component';
18
- export { MessageComponent } from './chat/message.component';
19
- export { SuggestedActionsComponent } from './chat/suggested-actions.component';
20
- export { FocusedStateDirective } from './common/focused-state.directive';
21
- export { ScrollAnchorDirective } from './common/scroll-anchor.directive';
@@ -1,21 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- /**
6
- * Generated bundle index. Do not edit.
7
- */
8
- export * from './main';
9
- export { PreventableEvent } from './api/preventable-event';
10
- export { HeroCardComponent } from './cards/hero-card.component';
11
- export { AttachmentComponent } from './chat/attachment.component';
12
- export { ChatItem } from './chat/chat-item';
13
- export { CustomMessagesComponent } from './chat/l10n/custom-messages.component';
14
- export { LocalizedMessagesDirective } from './chat/l10n/localized-messages.directive';
15
- export { Messages } from './chat/l10n/messages';
16
- export { MessageAttachmentsComponent } from './chat/message-attachments.component';
17
- export { MessageListComponent } from './chat/message-list.component';
18
- export { MessageComponent } from './chat/message.component';
19
- export { SuggestedActionsComponent } from './chat/suggested-actions.component';
20
- export { FocusedStateDirective } from './common/focused-state.directive';
21
- export { ScrollAnchorDirective } from './common/scroll-anchor.directive';
@@ -1 +0,0 @@
1
- {"__symbolic":"module","version":4,"metadata":{"ChatComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":41,"character":1},"arguments":[{"providers":[{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"LocalizationService","line":43,"character":4},{"provide":{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"L10N_PREFIX","line":45,"character":15},"useValue":"kendo.chat"}],"selector":"kendo-chat","template":"\n <ng-container\n kendoChatLocalizedMessages\n i18n-messagePlaceholder=\"kendo.chat.messagePlaceholder|The placholder text of the message text input\"\n messagePlaceholder=\"Type a message...\"\n\n i18n-send=\"kendo.chat.send|The text for the Send button\"\n send=\"Send...\"\n >\n </ng-container>\n\n <div\n #messageList\n class=\"k-message-list k-avatars\"\n aria-live=\"polite\" role=\"log\"\n kendoChatScrollAnchor\n #anchor=\"scrollAnchor\"\n [(autoScroll)]=\"autoScroll\"\n >\n <kendo-chat-message-list\n [messages]=\"messages\"\n [messageTemplate]=\"messageTemplate\"\n [attachmentTemplate]=\"attachmentTemplate\"\n [user]=\"user\"\n (executeAction)=\"dispatchAction($event)\"\n (resize)=\"anchor.scrollToBottom()\"\n (navigate)=\"this.autoScroll = false\"\n >\n </kendo-chat-message-list>\n </div>\n\n <div class=\"k-message-box\">\n <input\n #messageInput\n kendoChatFocusedState\n type=\"text\"\n class=\"k-input\"\n [placeholder]=\"textFor('messagePlaceholder')\"\n (keydown)=\"inputKeydown($event)\"\n >\n <button\n kendoButton\n fillMode=\"flat\"\n class=\"k-button-send\"\n tabindex=\"-1\"\n [attr.title]=\"textFor('send')\"\n (click)=\"sendClick()\"\n ><svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><path d=\"M0,14.3c-0.1,0.6,0.3,0.8,0.8,0.6l14.8-6.5c0.5-0.2,0.5-0.6,0-0.8L0.8,1.1C0.3,0.9-0.1,1.1,0,1.7l0.7,4.2C0.8,6.5,1.4,7,1.9,7.1l8.8,0.8c0.6,0.1,0.6,0.1,0,0.2L1.9,8.9C1.4,9,0.8,9.5,0.7,10.1L0,14.3z\"/></svg></button>\n </div>\n "}]}],"members":{"messages":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":107,"character":3}}]}],"user":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":114,"character":3}}]}],"sendMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":123,"character":3}}]}],"executeAction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":133,"character":3}}]}],"className":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":136,"character":3},"arguments":["class"]}]}],"dirAttr":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":141,"character":3},"arguments":["attr.dir"]}]}],"attachmentTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":146,"character":3},"arguments":[{"__symbolic":"reference","name":"AttachmentTemplateDirective"},{"static":false}]}]}],"messageTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":149,"character":3},"arguments":[{"__symbolic":"reference","name":"MessageTemplateDirective"},{"static":false}]}]}],"messageInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":155,"character":3},"arguments":["messageInput",{"static":true}]}]}],"messageList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":161,"character":3},"arguments":["messageList",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"LocalizationService","line":172,"character":36},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":173,"character":28}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"sendClick":[{"__symbolic":"method"}],"inputKeydown":[{"__symbolic":"method"}],"dispatchAction":[{"__symbolic":"method"}],"textFor":[{"__symbolic":"method"}]}},"AttachmentTemplateDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"[kendoChatAttachmentTemplate]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":18,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"MessageTemplateDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"[kendoChatMessageTemplate]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":18,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"ChatModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":57,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ChatComponent"},{"__symbolic":"reference","name":"CustomMessagesComponent"},{"__symbolic":"reference","name":"AttachmentTemplateDirective"},{"__symbolic":"reference","name":"MessageTemplateDirective"},{"__symbolic":"reference","name":"HeroCardComponent"},{"__symbolic":"reference","name":"AttachmentComponent"},{"__symbolic":"reference","name":"FocusedStateDirective"},{"__symbolic":"reference","name":"LocalizedMessagesDirective"},{"__symbolic":"reference","name":"MessageAttachmentsComponent"},{"__symbolic":"reference","name":"MessageComponent"},{"__symbolic":"reference","name":"MessageListComponent"},{"__symbolic":"reference","name":"MessageTemplateDirective"},{"__symbolic":"reference","name":"ScrollAnchorDirective"},{"__symbolic":"reference","name":"SuggestedActionsComponent"}],"exports":[[{"__symbolic":"reference","name":"ChatComponent"},{"__symbolic":"reference","name":"CustomMessagesComponent"},{"__symbolic":"reference","name":"AttachmentTemplateDirective"},{"__symbolic":"reference","name":"MessageTemplateDirective"},{"__symbolic":"reference","name":"HeroCardComponent"}]],"imports":[{"__symbolic":"reference","module":"@progress/kendo-angular-buttons","name":"ButtonModule","line":64,"character":6},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":65,"character":6},{"__symbolic":"reference","module":"@progress/kendo-angular-common","name":"ResizeSensorModule","line":66,"character":6}]}]}],"members":{}},"ActionType":{"__symbolic":"interface"},"Action":{"__symbolic":"interface"},"Attachment":{"__symbolic":"interface"},"AttachmentLayout":{"__symbolic":"interface"},"ExecuteActionEvent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"PreventableEvent"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Action"},{"__symbolic":"reference","name":"Message"}]}]}},"Message":{"__symbolic":"interface"},"User":{"__symbolic":"interface"},"SendMessageEvent":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Message"}]}]}},"CustomMessagesComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Messages"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"providers":[{"provide":{"__symbolic":"reference","name":"Messages"},"useExisting":{"__symbolic":"reference","name":"CustomMessagesComponent"}}],"selector":"kendo-chat-messages","template":""}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"LocalizationService","line":21,"character":35}]}]}},"Messages":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"ComponentMessages","line":6,"character":30},"members":{"messagePlaceholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}],"send":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}]}},"HeroCardComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"kendo-chat-hero-card","template":"\n <img class=\"k-card-image\" [src]=\"imageUrl\" *ngIf=\"imageUrl\" />\n <div class=\"k-card-body\">\n <h5 class=\"k-card-title\" *ngIf=\"title\">\n {{ title }}\n </h5>\n <h6 class=\"k-card-subtitle\" *ngIf=\"subtitle\">\n {{ subtitle }}\n </h6>\n </div>\n <div class=\"k-card-actions k-card-actions-vertical\">\n <span class=\"k-card-action\"\n *ngFor=\"let act of actions\"\n >\n <button\n kendoButton fillMode=\"flat\"\n (click)=\"onClick(act)\">\n {{ act.title }}\n </button>\n </span>\n </div>\n "}]}],"members":{"imageUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"subtitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"actions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"cssClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":64,"character":3},"arguments":["class.k-card"]}]}],"executeAction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":70,"character":3}}]}],"onClick":[{"__symbolic":"method"}]}},"AttachmentComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"kendo-chat-attachment","template":"\n <ng-container *ngIf=\"template\">\n <ng-container *ngTemplateOutlet=\"template.templateRef; context: context;\">\n </ng-container>\n </ng-container>\n\n <div *ngIf=\"!template\" class=\"k-card\">\n <div class=\"k-card-body\">\n <h5 class=\"k-card-title\" *ngIf=\"attachment.title\">\n {{ attachment.title }}\n </h5>\n <h6 class=\"k-card-subtitle\" *ngIf=\"attachment.subtitle\">\n {{ attachment.subtitle }}\n </h6>\n <img *ngIf=\"image\" [attr.src]=\"attachment.content\" />\n <ng-container *ngIf=\"unknown\">\n {{ attachment.content }}\n </ng-container>\n </div>\n </div>\n "}]}],"members":{"attachment":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}]}},"FocusedStateDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[kendoChatFocusedState]"}]}],"members":{"focused":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":9,"character":3},"arguments":["class.k-state-focused"]}]}],"onFocus":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":12,"character":3},"arguments":["focusin"]}]}],"onBlur":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":17,"character":3},"arguments":["focusout"]}]}]}},"LocalizedMessagesDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Messages"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"providers":[{"provide":{"__symbolic":"reference","name":"Messages"},"useExisting":{"__symbolic":"reference","name":"LocalizedMessagesDirective"}}],"selector":"[kendoChatLocalizedMessages]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"LocalizationService","line":19,"character":35}]}]}},"MessageAttachmentsComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ChatItem"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"providers":[{"provide":{"__symbolic":"reference","name":"ChatItem"},"useExisting":{"__symbolic":"reference","name":"MessageAttachmentsComponent"}}],"selector":"kendo-chat-message-attachments","template":"\n <button\n *ngIf=\"carousel && scrollPosition > 0\"\n (click)=\"scrollTo(-1)\"\n class=\"k-button k-icon-button k-button-md k-rounded-md k-button-solid k-button-solid-base\"\n tabindex=\"-1\">\n <span class=\"k-icon k-button-icon k-i-arrow-chevron-left\"></span>\n </button>\n <div #deck [class.k-card-deck]=\"carousel\">\n <kendo-chat-attachment #item\n *ngFor=\"let att of attachments; index as index; first as first; last as last\"\n [attachment]=\"att\"\n [template]=\"template\"\n [class.k-state-selected]=\"isSelected(index)\"\n [class.k-state-focused]=\"isSelected(index)\"\n [class.k-card-wrap]=\"true\"\n [class.k-first]=\"first\"\n [class.k-last]=\"last\"\n [attr.tabindex]=\"tabbable && isSelected(index) ? '0' : '-1'\"\n (click)=\"itemClick(index)\"\n (keydown)=\"itemKeydown($event, att)\"\n >\n </kendo-chat-attachment>\n </div>\n <button\n *ngIf=\"carousel && scrollPosition < 1\"\n (click)=\"scrollTo(1)\"\n class=\"k-button k-icon-button k-button-md k-rounded-md k-button-solid k-button-solid-base\"\n tabindex=\"-1\">\n <span class=\"k-icon k-button-icon k-i-arrow-chevron-right\"></span>\n </button>\n "}]}],"members":{"attachments":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"tabbable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"carousel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":78,"character":3},"arguments":["class.k-card-deck-scrollwrap"]}]}],"deck":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":83,"character":3},"arguments":["deck",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":83,"character":29},"static":true}]}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":86,"character":3},"arguments":["item",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":86,"character":32}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":103,"character":28}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"isSelected":[{"__symbolic":"method"}],"itemKeydown":[{"__symbolic":"method"}],"itemClick":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"scrollTo":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"navigateTo":[{"__symbolic":"method"}],"onScroll":[{"__symbolic":"method"}]}},"ChatItem":{"__symbolic":"class","members":{"focus":[{"__symbolic":"method"}]}},"MessageComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ChatItem"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"kendo-chat-message","providers":[{"provide":{"__symbolic":"reference","name":"ChatItem"},"useExisting":{"__symbolic":"reference","name":"MessageComponent"}}],"template":"\n <time\n [attr.aria-hidden]=\"!selected\"\n class=\"k-message-time\"\n *ngIf=\"message.timestamp\"\n >\n {{ formatTimeStamp(message.timestamp) }}\n </time>\n\n <ng-container *ngIf=\"!message.typing; else typing\">\n <div class=\"k-bubble\" *ngIf=\"template\">\n <ng-container\n *ngTemplateOutlet=\"template.templateRef; context: { $implicit: message };\"\n >\n </ng-container>\n </div>\n\n <div class=\"k-bubble\" *ngIf=\"!template && message.text\">\n {{message.text}}\n </div>\n </ng-container>\n\n <span\n class=\"k-message-status\"\n *ngIf=\"message.status\"\n >\n {{ message.status }}\n </span>\n\n <ng-template #typing>\n <div class=\"k-bubble\">\n <div class=\"k-typing-indicator\">\n <span></span>\n <span></span>\n <span></span>\n </div>\n </div>\n </ng-template>\n "}]}],"members":{"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"tabbable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":71,"character":3}}]}],"cssClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":74,"character":3},"arguments":["class.k-message"]}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":77,"character":3},"arguments":["class.k-state-selected"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":78,"character":3},"arguments":["class.k-state-focused"]}]}],"tabIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":81,"character":3},"arguments":["attr.tabIndex"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":86,"character":32},{"__symbolic":"reference","module":"@progress/kendo-angular-intl","name":"IntlService","line":86,"character":58}]}],"formatTimeStamp":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}]}},"MessageListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":28,"character":1},"arguments":[{"selector":"kendo-chat-message-list","template":"\n <ng-container *ngFor=\"let group of view; last as lastGroup; trackBy: trackGroup\">\n <ng-container [ngSwitch]=\"group.type\">\n <div\n *ngSwitchCase=\"'date-marker'\"\n class=\"k-timestamp\"\n >\n {{ formatTimeStamp(group.timestamp) }}\n </div>\n <div\n *ngSwitchCase=\"'message-group'\"\n class=\"k-message-group\"\n [class.k-alt]=\"isOwnMessage(group.messages[0])\"\n [class.k-no-avatar]=\"!group.author.avatarUrl\"\n >\n <img\n *ngIf=\"group.author.avatarUrl\"\n [attr.src]=\"group.author.avatarUrl\"\n class=\"k-avatar\"\n />\n <p *ngIf=\"group.author.name\" class=\"k-author\">{{ group.author.name }}</p>\n <ng-container\n *ngFor=\"let msg of group.messages; first as firstMessage; last as lastMessage\"\n >\n <img *ngIf=\"msg.user?.avatarUrl\" [src]=\"msg.user?.avatarUrl\" class=\"k-avatar\">\n <kendo-chat-message #message\n [message]=\"msg\"\n [tabbable]=\"lastGroup && lastMessage\"\n [template]=\"messageTemplate\"\n (click)=\"select(message)\"\n (focus)=\"select(message)\"\n [class.k-only]=\"group.messages.length === 1\"\n [class.k-first]=\"group.messages.length > 1 && firstMessage\"\n [class.k-last]=\"group.messages.length > 1 && lastMessage\"\n >\n </kendo-chat-message>\n\n <kendo-chat-attachment\n *ngIf=\"msg.attachments && msg.attachments.length === 1\"\n [attachment]=\"msg.attachments[0]\"\n [template]=\"attachmentTemplate\"\n >\n </kendo-chat-attachment>\n </ng-container>\n </div>\n\n <kendo-chat-message-attachments #attachments\n *ngSwitchCase=\"'attachment-group'\"\n [attachments]=\"group.attachments\"\n [layout]=\"group.attachmentLayout\"\n [tabbable]=\"lastGroup\"\n [template]=\"attachmentTemplate\"\n (click)=\"select(attachments)\"\n (focus)=\"select(attachments)\"\n >\n </kendo-chat-message-attachments>\n\n <kendo-chat-suggested-actions #actions\n *ngSwitchCase=\"'action-group'\"\n [actions]=\"group.actions\"\n [tabbable]=\"lastGroup\"\n (dispatch)=\"dispatchAction($event, last(group.messages))\"\n (click)=\"select(actions)\"\n (focus)=\"select(actions)\"\n >\n </kendo-chat-suggested-actions>\n </ng-container>\n </ng-container>\n <kendo-resize-sensor (resize)=\"onResize()\">\n </kendo-resize-sensor>\n "}]}],"members":{"messages":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":103,"character":3}}]}],"attachmentTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":114,"character":3}}]}],"messageTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":117,"character":3}}]}],"user":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"executeAction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":123,"character":3}}]}],"navigate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":126,"character":3}}]}],"resize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":129,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":132,"character":3},"arguments":[{"__symbolic":"reference","name":"ChatItem"}]}]}],"cssClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":135,"character":3},"arguments":["class.k-message-list-content"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":146,"character":31},{"__symbolic":"reference","module":"@progress/kendo-angular-intl","name":"IntlService","line":146,"character":57}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"onResize":[{"__symbolic":"method"}],"formatTimeStamp":[{"__symbolic":"method"}],"onKeydown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":161,"character":3},"arguments":["keydown",["$event"]]}]}],"onBlur":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":169,"character":3},"arguments":["focusout",["$event"]]}]}],"isOwnMessage":[{"__symbolic":"method"}],"dispatchAction":[{"__symbolic":"method"}],"trackGroup":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"last":[{"__symbolic":"method"}],"navigateTo":[{"__symbolic":"method"}]}},"ScrollAnchorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":20,"character":1},"arguments":[{"selector":"[kendoChatScrollAnchor]","exportAs":"scrollAnchor"}]}],"members":{"autoScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"autoScrollChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":28,"character":3}}]}],"overflowAnchor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":31,"character":3},"arguments":["style.overflow-anchor"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":38,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":39,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":40,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onScroll":[{"__symbolic":"method"}],"scrollToBottom":[{"__symbolic":"method"}]}},"SuggestedActionsComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ChatItem"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"kendo-chat-suggested-actions","providers":[{"provide":{"__symbolic":"reference","name":"ChatItem"},"useExisting":{"__symbolic":"reference","name":"SuggestedActionsComponent"}}],"template":"\n <span #item\n *ngFor=\"let action of actions; index as index; first as first; last as last\"\n class=\"k-quick-reply\"\n [class.k-state-selected]=\"isSelected(index)\"\n [class.k-state-focused]=\"isSelected(index)\"\n [class.k-first]=\"first\"\n [class.k-last]=\"last\"\n [attr.tabindex]=\"tabbable && selectedIndex === index ? '0' : '-1'\"\n (click)=\"actionClick(action)\"\n (keydown)=\"actionKeydown($event, action)\"\n >\n {{ action.title || action.value }}\n </span>\n "}]}],"members":{"actions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"tabbable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"dispatch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":50,"character":3}}]}],"defaultClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":53,"character":3},"arguments":["class.k-quick-replies"]}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":58,"character":3},"arguments":["item"]}]}],"isSelected":[{"__symbolic":"method"}],"actionClick":[{"__symbolic":"method"}],"actionKeydown":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"navigateTo":[{"__symbolic":"method"}]}},"PreventableEvent":{"__symbolic":"class","members":{"preventDefault":[{"__symbolic":"method"}],"isDefaultPrevented":[{"__symbolic":"method"}]}}},"origins":{"ChatComponent":"./chat/chat.component","AttachmentTemplateDirective":"./chat/attachment-template.directive","MessageTemplateDirective":"./chat/message-template.directive","ChatModule":"./chat/chat.module","ActionType":"./api/action.interface","Action":"./api/action.interface","Attachment":"./api/attachment.interface","AttachmentLayout":"./api/attachment.interface","ExecuteActionEvent":"./api/execute-action-event","Message":"./api/message.interface","User":"./api/user.interface","SendMessageEvent":"./api/post-message-event","CustomMessagesComponent":"./chat/l10n/custom-messages.component","Messages":"./chat/l10n/messages","HeroCardComponent":"./cards/hero-card.component","AttachmentComponent":"./chat/attachment.component","FocusedStateDirective":"./common/focused-state.directive","LocalizedMessagesDirective":"./chat/l10n/localized-messages.directive","MessageAttachmentsComponent":"./chat/message-attachments.component","ChatItem":"./chat/chat-item","MessageComponent":"./chat/message.component","MessageListComponent":"./chat/message-list.component","ScrollAnchorDirective":"./common/scroll-anchor.directive","SuggestedActionsComponent":"./chat/suggested-actions.component","PreventableEvent":"./api/preventable-event"},"importAs":"@progress/kendo-angular-conversational-ui"}