@progress/kendo-angular-conversational-ui 4.1.0 → 5.0.0-dev.202204131603

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 (163) hide show
  1. package/{dist/es2015/api → api}/action.interface.d.ts +0 -0
  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 +7 -7
  17. package/{dist/es2015/chat → chat}/chat.directives.d.ts +0 -0
  18. package/chat/chat.module.d.ts +49 -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-box.component.d.ts +4 -1
  24. package/{dist/es2015/chat → chat}/message-box.directive.d.ts +3 -0
  25. package/{dist/es2015/chat → chat}/message-list.component.d.ts +9 -8
  26. package/{dist/es2015/chat → chat}/message-template.directive.d.ts +3 -0
  27. package/{dist/es2015/chat → chat}/message.component.d.ts +4 -1
  28. package/{dist/es2015/chat → chat}/suggested-actions.component.d.ts +4 -1
  29. package/common/focused-state.directive.d.ts +15 -0
  30. package/{dist/es2015/common → common}/keys.enum.d.ts +0 -0
  31. package/{dist/es2015/common → common}/models/message-box-options.d.ts +0 -0
  32. package/{dist/es2015/common → common}/scroll-anchor.directive.d.ts +3 -0
  33. package/{dist/es2015/common → common}/utils.d.ts +0 -0
  34. package/{dist/es2015 → esm2015}/api/action.interface.js +2 -1
  35. package/{dist/es2015 → esm2015}/api/attachment.interface.js +1 -0
  36. package/{dist/es2015 → esm2015}/api/execute-action-event.js +0 -0
  37. package/{dist/es/api/attachment.interface.js → esm2015/api/index.js} +6 -0
  38. package/{dist/es → esm2015}/api/message.interface.js +1 -0
  39. package/{dist/es2015 → esm2015}/api/post-message-event.js +0 -0
  40. package/{dist/es2015 → esm2015}/api/preventable-event.js +0 -0
  41. package/{dist/es2015 → esm2015}/api/user.interface.js +1 -0
  42. package/esm2015/cards/hero-card.component.js +90 -0
  43. package/{dist/es2015 → esm2015}/chat/attachment-template.directive.js +14 -12
  44. package/esm2015/chat/attachment.component.js +83 -0
  45. package/{dist/es2015 → esm2015}/chat/builtin-actions.js +13 -16
  46. package/{dist/es2015 → esm2015}/chat/chat-item.js +0 -0
  47. package/{dist/es2015 → esm2015}/chat/chat-view.js +0 -6
  48. package/esm2015/chat/chat.component.js +246 -0
  49. package/{dist/es → esm2015}/chat/chat.directives.js +0 -0
  50. package/{dist/es2015 → esm2015}/chat/chat.module.js +43 -15
  51. package/esm2015/chat/l10n/custom-messages.component.js +42 -0
  52. package/esm2015/chat/l10n/localized-messages.directive.js +37 -0
  53. package/esm2015/chat/l10n/messages.js +25 -0
  54. package/{dist/es2015 → esm2015}/chat/message-attachments.component.js +71 -48
  55. package/esm2015/chat/message-box.component.js +141 -0
  56. package/esm2015/chat/message-box.directive.js +24 -0
  57. package/esm2015/chat/message-list.component.js +279 -0
  58. package/{dist/es2015 → esm2015}/chat/message-template.directive.js +14 -12
  59. package/esm2015/chat/message.component.js +140 -0
  60. package/esm2015/chat/suggested-actions.component.js +113 -0
  61. package/esm2015/common/focused-state.directive.js +37 -0
  62. package/{dist/es2015 → esm2015}/common/keys.enum.js +1 -0
  63. package/{dist/es → esm2015}/common/models/message-box-options.js +1 -0
  64. package/{dist/es2015 → esm2015}/common/scroll-anchor.directive.js +20 -26
  65. package/{dist/es2015 → esm2015}/common/utils.js +0 -0
  66. package/{dist/es/api/action.interface.js → esm2015/kendo-angular-conversational-ui.js} +4 -1
  67. package/esm2015/main.js +10 -0
  68. package/{dist/es2015 → esm2015}/package-metadata.js +1 -1
  69. package/fesm2015/kendo-angular-conversational-ui.js +1757 -0
  70. package/{dist/es2015/common/focused-state.directive.d.ts → kendo-angular-conversational-ui.d.ts} +3 -6
  71. package/main.d.ts +11 -0
  72. package/{dist/es2015/package-metadata.d.ts → package-metadata.d.ts} +0 -0
  73. package/package.json +38 -107
  74. package/schematics/ngAdd/index.js +5 -2
  75. package/schematics/ngAdd/index.js.map +1 -1
  76. package/dist/cdn/js/kendo-angular-conversational-ui.js +0 -20
  77. package/dist/cdn/main.js +0 -5
  78. package/dist/es/api/execute-action-event.js +0 -24
  79. package/dist/es/api/post-message-event.js +0 -18
  80. package/dist/es/api/preventable-event.js +0 -32
  81. package/dist/es/cards/hero-card.component.js +0 -54
  82. package/dist/es/chat/attachment-template.directive.js +0 -32
  83. package/dist/es/chat/attachment.component.js +0 -65
  84. package/dist/es/chat/builtin-actions.js +0 -28
  85. package/dist/es/chat/chat-item.js +0 -13
  86. package/dist/es/chat/chat-view.js +0 -92
  87. package/dist/es/chat/chat.component.js +0 -190
  88. package/dist/es/chat/chat.module.js +0 -80
  89. package/dist/es/chat/l10n/custom-messages.component.js +0 -45
  90. package/dist/es/chat/l10n/localized-messages.directive.js +0 -36
  91. package/dist/es/chat/l10n/messages.js +0 -26
  92. package/dist/es/chat/message-attachments.component.js +0 -148
  93. package/dist/es/chat/message-box.component.js +0 -124
  94. package/dist/es/chat/message-box.directive.js +0 -24
  95. package/dist/es/chat/message-list.component.js +0 -165
  96. package/dist/es/chat/message-template.directive.js +0 -32
  97. package/dist/es/chat/message.component.js +0 -77
  98. package/dist/es/chat/suggested-actions.component.js +0 -91
  99. package/dist/es/common/focused-state.directive.js +0 -43
  100. package/dist/es/common/keys.enum.js +0 -4
  101. package/dist/es/common/scroll-anchor.directive.js +0 -87
  102. package/dist/es/common/utils.js +0 -13
  103. package/dist/es/index.js +0 -22
  104. package/dist/es/main.js +0 -8
  105. package/dist/es/package-metadata.js +0 -15
  106. package/dist/es2015/api/message.interface.js +0 -4
  107. package/dist/es2015/cards/hero-card.component.js +0 -79
  108. package/dist/es2015/chat/attachment.component.js +0 -66
  109. package/dist/es2015/chat/chat.component.js +0 -214
  110. package/dist/es2015/chat/chat.directives.js +0 -8
  111. package/dist/es2015/chat/chat.module.d.ts +0 -27
  112. package/dist/es2015/chat/l10n/custom-messages.component.js +0 -37
  113. package/dist/es2015/chat/l10n/localized-messages.directive.js +0 -32
  114. package/dist/es2015/chat/l10n/messages.js +0 -20
  115. package/dist/es2015/chat/message-box.component.js +0 -157
  116. package/dist/es2015/chat/message-box.directive.js +0 -23
  117. package/dist/es2015/chat/message-list.component.js +0 -227
  118. package/dist/es2015/chat/message.component.js +0 -107
  119. package/dist/es2015/chat/suggested-actions.component.js +0 -105
  120. package/dist/es2015/common/focused-state.directive.js +0 -45
  121. package/dist/es2015/common/models/message-box-options.js +0 -4
  122. package/dist/es2015/index.d.ts +0 -22
  123. package/dist/es2015/index.js +0 -22
  124. package/dist/es2015/index.metadata.json +0 -1
  125. package/dist/es2015/main.d.ts +0 -13
  126. package/dist/es2015/main.js +0 -8
  127. package/dist/fesm2015/index.js +0 -1554
  128. package/dist/fesm5/index.js +0 -1383
  129. package/dist/npm/api/action.interface.js +0 -7
  130. package/dist/npm/api/attachment.interface.js +0 -6
  131. package/dist/npm/api/execute-action-event.js +0 -26
  132. package/dist/npm/api/message.interface.js +0 -6
  133. package/dist/npm/api/post-message-event.js +0 -20
  134. package/dist/npm/api/preventable-event.js +0 -34
  135. package/dist/npm/api/user.interface.js +0 -6
  136. package/dist/npm/cards/hero-card.component.js +0 -56
  137. package/dist/npm/chat/attachment-template.directive.js +0 -34
  138. package/dist/npm/chat/attachment.component.js +0 -67
  139. package/dist/npm/chat/builtin-actions.js +0 -33
  140. package/dist/npm/chat/chat-item.js +0 -15
  141. package/dist/npm/chat/chat-view.js +0 -98
  142. package/dist/npm/chat/chat.component.js +0 -192
  143. package/dist/npm/chat/chat.directives.js +0 -14
  144. package/dist/npm/chat/chat.module.js +0 -82
  145. package/dist/npm/chat/l10n/custom-messages.component.js +0 -47
  146. package/dist/npm/chat/l10n/localized-messages.directive.js +0 -38
  147. package/dist/npm/chat/l10n/messages.js +0 -28
  148. package/dist/npm/chat/message-attachments.component.js +0 -150
  149. package/dist/npm/chat/message-box.component.js +0 -126
  150. package/dist/npm/chat/message-box.directive.js +0 -26
  151. package/dist/npm/chat/message-list.component.js +0 -167
  152. package/dist/npm/chat/message-template.directive.js +0 -34
  153. package/dist/npm/chat/message.component.js +0 -79
  154. package/dist/npm/chat/suggested-actions.component.js +0 -93
  155. package/dist/npm/common/focused-state.directive.js +0 -45
  156. package/dist/npm/common/keys.enum.js +0 -6
  157. package/dist/npm/common/models/message-box-options.js +0 -6
  158. package/dist/npm/common/scroll-anchor.directive.js +0 -89
  159. package/dist/npm/common/utils.js +0 -15
  160. package/dist/npm/index.js +0 -39
  161. package/dist/npm/main.js +0 -11
  162. package/dist/npm/package-metadata.js +0 -17
  163. package/dist/systemjs/kendo-angular-conversational-ui.js +0 -5
@@ -1,27 +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
- * The [NgModule]({{ site.data.urls.angular['ngmodules'] }}) for the Chat component.
7
- *
8
- * @example
9
- * ```ts-no-run
10
- * import { NgModule } from '@angular/core';
11
- * import { Component } from '@angular/core';
12
- * import { BrowserModule } from '@angular/platform-browser';
13
- *
14
- * import { ChatModule } from '@progress/kendo-angular-conversational-ui';
15
- * import { AppComponent } from './app.component';
16
- *
17
- * _@NgModule({
18
- * imports: [ BrowserModule, ChatModule ],
19
- * declarations: [ AppComponent ],
20
- * bootstrap: [ AppComponent ]
21
- * })
22
- *
23
- * export class AppModule { }
24
- * ```
25
- */
26
- export declare class ChatModule {
27
- }
@@ -1,37 +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 CustomMessagesComponent_1;
7
- import { Component, forwardRef } from '@angular/core';
8
- import { LocalizationService } from '@progress/kendo-angular-l10n';
9
- import { Messages } from './messages';
10
- // tslint:disable:no-forward-ref
11
- /**
12
- * Custom component messages override default component messages
13
- * ([see example]({% slug globalization_chat %}#toc-custom-messages)).
14
- */
15
- let CustomMessagesComponent = CustomMessagesComponent_1 = class CustomMessagesComponent extends Messages {
16
- constructor(service) {
17
- super();
18
- this.service = service;
19
- }
20
- get override() {
21
- return true;
22
- }
23
- };
24
- CustomMessagesComponent = CustomMessagesComponent_1 = tslib_1.__decorate([
25
- Component({
26
- providers: [
27
- {
28
- provide: Messages,
29
- useExisting: forwardRef(() => CustomMessagesComponent_1)
30
- }
31
- ],
32
- selector: 'kendo-chat-messages',
33
- template: ``
34
- }),
35
- tslib_1.__metadata("design:paramtypes", [LocalizationService])
36
- ], CustomMessagesComponent);
37
- export { CustomMessagesComponent };
@@ -1,32 +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 LocalizedMessagesDirective_1;
7
- import { Directive, forwardRef } from '@angular/core';
8
- import { LocalizationService } from '@progress/kendo-angular-l10n';
9
- import { Messages } from './messages';
10
- // tslint:disable:no-forward-ref
11
- /**
12
- * @hidden
13
- */
14
- let LocalizedMessagesDirective = LocalizedMessagesDirective_1 = class LocalizedMessagesDirective extends Messages {
15
- constructor(service) {
16
- super();
17
- this.service = service;
18
- }
19
- };
20
- LocalizedMessagesDirective = LocalizedMessagesDirective_1 = tslib_1.__decorate([
21
- Directive({
22
- providers: [
23
- {
24
- provide: Messages,
25
- useExisting: forwardRef(() => LocalizedMessagesDirective_1)
26
- }
27
- ],
28
- selector: '[kendoChatLocalizedMessages]'
29
- }),
30
- tslib_1.__metadata("design:paramtypes", [LocalizationService])
31
- ], LocalizedMessagesDirective);
32
- export { LocalizedMessagesDirective };
@@ -1,20 +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 { Input } from '@angular/core';
7
- import { ComponentMessages } from '@progress/kendo-angular-l10n';
8
- /**
9
- * @hidden
10
- */
11
- export class Messages extends ComponentMessages {
12
- }
13
- tslib_1.__decorate([
14
- Input(),
15
- tslib_1.__metadata("design:type", String)
16
- ], Messages.prototype, "messagePlaceholder", void 0);
17
- tslib_1.__decorate([
18
- Input(),
19
- tslib_1.__metadata("design:type", String)
20
- ], Messages.prototype, "send", void 0);
@@ -1,157 +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, Input, Output, ViewChild } from '@angular/core';
7
- import { SendMessageEvent } from '../api/post-message-event';
8
- import { LocalizationService } from '@progress/kendo-angular-l10n';
9
- import { Keys } from '@progress/kendo-angular-common';
10
- import { ChatMessageBoxTemplateDirective } from './message-box.directive';
11
- // tslint:disable-next-line:max-line-length
12
- const sendIcon = '<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>';
13
- /**
14
- * @hidden
15
- */
16
- let MessageBoxComponent = class MessageBoxComponent {
17
- /**
18
- * @hidden
19
- */
20
- constructor() {
21
- this.hostClasses = 'k-message-box k-input k-input-md k-rounded-md k-input-solid';
22
- this.sendMessage = new EventEmitter();
23
- }
24
- get messageBoxValue() {
25
- return this.type === 'textarea';
26
- }
27
- /**
28
- * @hidden
29
- */
30
- sendClick() {
31
- const input = this.messageBoxInput.nativeElement;
32
- const value = input.value;
33
- if (!value) {
34
- return;
35
- }
36
- const message = {
37
- author: this.user,
38
- text: value,
39
- timestamp: new Date()
40
- };
41
- this.sendMessage.emit(new SendMessageEvent(message));
42
- input.value = null;
43
- input.focus();
44
- this.autoScroll = true;
45
- }
46
- /**
47
- * @hidden
48
- */
49
- inputKeydown(e) {
50
- if (e.keyCode === Keys.Enter) {
51
- this.sendClick();
52
- }
53
- }
54
- /**
55
- * @hidden
56
- */
57
- textAreaKeydown(e) {
58
- const isEnter = e.keyCode === Keys.Enter;
59
- if (!isEnter) {
60
- return;
61
- }
62
- const newLine = (e.metaKey || e.ctrlKey);
63
- const enterOnly = !(e.shiftKey || e.metaKey || e.ctrlKey);
64
- if (enterOnly) {
65
- e.preventDefault();
66
- this.sendClick();
67
- }
68
- if (newLine) {
69
- this.messageBoxInput.nativeElement.value += `\r\n`;
70
- }
71
- }
72
- /**
73
- * @hidden
74
- */
75
- textFor(key) {
76
- return this.localization.get(key);
77
- }
78
- };
79
- tslib_1.__decorate([
80
- HostBinding('class'),
81
- tslib_1.__metadata("design:type", String)
82
- ], MessageBoxComponent.prototype, "hostClasses", void 0);
83
- tslib_1.__decorate([
84
- HostBinding('class.\!k-align-items-end'),
85
- tslib_1.__metadata("design:type", Boolean),
86
- tslib_1.__metadata("design:paramtypes", [])
87
- ], MessageBoxComponent.prototype, "messageBoxValue", null);
88
- tslib_1.__decorate([
89
- ViewChild('messageBoxInput', { static: false }),
90
- tslib_1.__metadata("design:type", ElementRef)
91
- ], MessageBoxComponent.prototype, "messageBoxInput", void 0);
92
- tslib_1.__decorate([
93
- Input(),
94
- tslib_1.__metadata("design:type", Object)
95
- ], MessageBoxComponent.prototype, "user", void 0);
96
- tslib_1.__decorate([
97
- Input(),
98
- tslib_1.__metadata("design:type", Boolean)
99
- ], MessageBoxComponent.prototype, "autoScroll", void 0);
100
- tslib_1.__decorate([
101
- Input(),
102
- tslib_1.__metadata("design:type", String)
103
- ], MessageBoxComponent.prototype, "type", void 0);
104
- tslib_1.__decorate([
105
- Input(),
106
- tslib_1.__metadata("design:type", LocalizationService)
107
- ], MessageBoxComponent.prototype, "localization", void 0);
108
- tslib_1.__decorate([
109
- Input(),
110
- tslib_1.__metadata("design:type", ChatMessageBoxTemplateDirective)
111
- ], MessageBoxComponent.prototype, "messageBoxTemplate", void 0);
112
- tslib_1.__decorate([
113
- Output(),
114
- tslib_1.__metadata("design:type", EventEmitter)
115
- ], MessageBoxComponent.prototype, "sendMessage", void 0);
116
- MessageBoxComponent = tslib_1.__decorate([
117
- Component({
118
- selector: 'kendo-message-box',
119
- template: `
120
- <ng-container *ngIf="!messageBoxTemplate">
121
- <input
122
- *ngIf="type === 'textbox'"
123
- #messageBoxInput
124
- kendoChatFocusedState
125
- type="text"
126
- class="k-textbox k-input k-input-md k-input-solid"
127
- [placeholder]="textFor('messagePlaceholder')"
128
- (keydown)="inputKeydown($event)"
129
- />
130
-
131
- <textarea
132
- *ngIf="type === 'textarea'"
133
- #messageBoxInput
134
- kendoChatFocusedState
135
- [rows]="3"
136
- class="k-textarea k-input k-input-md k-input-solid !k-overflow-y-auto k-resize-none"
137
- [placeholder]="textFor('messagePlaceholder')"
138
- (keydown)="textAreaKeydown($event)"
139
- ></textarea>
140
-
141
- <button
142
- kendoButton
143
- fillMode="flat"
144
- class="k-button-send"
145
- [tabindex]="0"
146
- [attr.title]="textFor('send')"
147
- (click)="sendClick()"
148
- >
149
- ${sendIcon}
150
- </button>
151
- </ng-container>
152
-
153
- <ng-template *ngIf="messageBoxTemplate" [ngTemplateOutlet]="messageBoxTemplate?.templateRef"></ng-template>
154
- `
155
- })
156
- ], MessageBoxComponent);
157
- export { MessageBoxComponent };
@@ -1,23 +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, TemplateRef } from '@angular/core';
7
- /**
8
- * Creates a message box area that overrides the default message box of the Conversational UI Component.
9
- * To define a message-box template, nest an `<ng-template>` tag with the `kendoChatMessageBoxTemplate` directive inside the `<kendo-chat>` tag
10
- * [see example]({% slug message_box %}#toc-message-box-template).
11
- */
12
- let ChatMessageBoxTemplateDirective = class ChatMessageBoxTemplateDirective {
13
- constructor(templateRef) {
14
- this.templateRef = templateRef;
15
- }
16
- };
17
- ChatMessageBoxTemplateDirective = tslib_1.__decorate([
18
- Directive({
19
- selector: '[kendoChatMessageBoxTemplate]'
20
- }),
21
- tslib_1.__metadata("design:paramtypes", [TemplateRef])
22
- ], ChatMessageBoxTemplateDirective);
23
- export { ChatMessageBoxTemplateDirective };
@@ -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 };