@progress/kendo-angular-conversational-ui 19.3.0-develop.32 → 19.3.0-develop.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chat/message-attachments.component.d.ts +1 -1
- package/directives.d.ts +17 -0
- package/esm2022/ai-prompt/common/toolbar-focusable.directive.mjs +4 -3
- package/esm2022/chat/message-attachments.component.mjs +3 -2
- package/esm2022/chat/message-box.component.mjs +2 -2
- package/esm2022/chat/message-list.component.mjs +4 -2
- package/esm2022/chat/suggested-actions.component.mjs +2 -2
- package/esm2022/directives.mjs +17 -0
- package/esm2022/package-metadata.mjs +2 -2
- package/fesm2022/progress-kendo-angular-conversational-ui.mjs +31 -10
- package/package.json +12 -12
@@ -43,7 +43,7 @@ export declare class MessageAttachmentsComponent extends ChatItem implements Aft
|
|
43
43
|
ngAfterViewInit(): void;
|
44
44
|
ngOnDestroy(): void;
|
45
45
|
isSelected(index: number): boolean;
|
46
|
-
itemKeydown(e:
|
46
|
+
itemKeydown(e: KeyboardEvent, attachment: Attachment): void;
|
47
47
|
itemClick(index: number): void;
|
48
48
|
focus(): void;
|
49
49
|
scrollTo(dir: number): void;
|
package/directives.d.ts
CHANGED
@@ -56,6 +56,23 @@ export declare const KENDO_AIPROMPT: readonly [typeof AIPromptComponent, typeof
|
|
56
56
|
* ```
|
57
57
|
*/
|
58
58
|
export declare const KENDO_CHAT: readonly [typeof ChatComponent, typeof CustomMessagesComponent, typeof AttachmentTemplateDirective, typeof MessageTemplateDirective, typeof HeroCardComponent, typeof ChatMessageBoxTemplateDirective];
|
59
|
+
/**
|
60
|
+
* Utility array that contains all InlineAIPrompt related components and directives.
|
61
|
+
*
|
62
|
+
* @example
|
63
|
+
* ```ts
|
64
|
+
* import { Component } from '@angular/core';
|
65
|
+
* import { KENDO_INLINEAIPROMPT } from '@progress/kendo-angular-conversational-ui';
|
66
|
+
*
|
67
|
+
* @Component({
|
68
|
+
* standalone: true,
|
69
|
+
* imports: [KENDO_INLINEAIPROMPT],
|
70
|
+
* selector: 'my-app',
|
71
|
+
* template: `<kendo-inlineaiprompt></kendo-inlineaiprompt>`
|
72
|
+
* })
|
73
|
+
* export class AppComponent {}
|
74
|
+
* ```
|
75
|
+
*/
|
59
76
|
export declare const KENDO_INLINEAIPROMPT: readonly [typeof InlineAIPromptComponent, typeof InlineAIPromptOutputTemplateDirective, typeof InlineAIPromptCustomMessagesComponent];
|
60
77
|
/**
|
61
78
|
* Utility array that contains all `@progress/kendo-angular-conversational-ui` related components and directives.
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Directive, ElementRef, Renderer2 } from '@angular/core';
|
6
6
|
import { ToolbarNavigationService } from './toolbar-navigation.service';
|
7
|
-
import { Keys, focusableSelector } from '@progress/kendo-angular-common';
|
7
|
+
import { Keys, focusableSelector, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
8
8
|
import * as i0 from "@angular/core";
|
9
9
|
import * as i1 from "./toolbar-navigation.service";
|
10
10
|
/**
|
@@ -38,9 +38,10 @@ export class AIPromptToolbarFocusableDirective {
|
|
38
38
|
this.element.focus();
|
39
39
|
}
|
40
40
|
keyDownHandler = (e) => {
|
41
|
+
const code = normalizeNumpadKeys(e);
|
41
42
|
const targetsSelf = e.target === this.element;
|
42
|
-
const isLeftArrow =
|
43
|
-
const isRightArrow =
|
43
|
+
const isLeftArrow = code === Keys.ArrowLeft;
|
44
|
+
const isRightArrow = code === Keys.ArrowRight;
|
44
45
|
const isArrow = isLeftArrow || isRightArrow;
|
45
46
|
if (!targetsSelf || !isArrow) {
|
46
47
|
return;
|
@@ -7,7 +7,7 @@ import { Component, ElementRef, forwardRef, HostBinding, Input, NgZone, QueryLis
|
|
7
7
|
import { NgIf, NgFor } from '@angular/common';
|
8
8
|
import { fromEvent } from 'rxjs';
|
9
9
|
import { debounceTime } from 'rxjs/operators';
|
10
|
-
import { Keys } from '@progress/kendo-angular-common';
|
10
|
+
import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
11
11
|
import { chevronLeftIcon, chevronRightIcon } from '@progress/kendo-svg-icons';
|
12
12
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
13
13
|
import { ButtonComponent } from '@progress/kendo-angular-buttons';
|
@@ -82,7 +82,8 @@ export class MessageAttachmentsComponent extends ChatItem {
|
|
82
82
|
itemKeydown(e, attachment) {
|
83
83
|
const keyHandlers = this.layout === 'list' ?
|
84
84
|
this.listKeyHandlers : this.carouselKeyHandlers;
|
85
|
-
const
|
85
|
+
const code = normalizeNumpadKeys(e);
|
86
|
+
const handler = keyHandlers[code];
|
86
87
|
if (handler) {
|
87
88
|
handler(e, attachment);
|
88
89
|
}
|
@@ -51,7 +51,7 @@ export class MessageBoxComponent {
|
|
51
51
|
* @hidden
|
52
52
|
*/
|
53
53
|
inputKeydown(e) {
|
54
|
-
if (e.
|
54
|
+
if (e.code === Keys.Enter || e.code === Keys.NumpadEnter) {
|
55
55
|
this.sendClick();
|
56
56
|
}
|
57
57
|
}
|
@@ -59,7 +59,7 @@ export class MessageBoxComponent {
|
|
59
59
|
* @hidden
|
60
60
|
*/
|
61
61
|
textAreaKeydown(e) {
|
62
|
-
const isEnter = e.
|
62
|
+
const isEnter = e.code === Keys.Enter || e.code === Keys.NumpadEnter;
|
63
63
|
if (!isEnter) {
|
64
64
|
return;
|
65
65
|
}
|
@@ -7,7 +7,7 @@
|
|
7
7
|
import { Component, ElementRef, EventEmitter, HostBinding, Input, Output, QueryList, Renderer2, ViewChildren } from '@angular/core';
|
8
8
|
import { NgFor, NgSwitch, NgSwitchCase, NgIf } from '@angular/common';
|
9
9
|
import { ExecuteActionEvent } from './api';
|
10
|
-
import { Keys, ResizeSensorComponent } from '@progress/kendo-angular-common';
|
10
|
+
import { Keys, normalizeNumpadKeys, ResizeSensorComponent } from '@progress/kendo-angular-common';
|
11
11
|
import { IntlService } from '@progress/kendo-angular-intl';
|
12
12
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
13
13
|
import { closest } from './common/utils';
|
@@ -80,7 +80,9 @@ export class MessageListComponent {
|
|
80
80
|
return this.intl.formatDate(date, { date: 'full' });
|
81
81
|
}
|
82
82
|
onKeydown(e) {
|
83
|
-
|
83
|
+
// On some keyboards Numpad keys are used for Home/End/PageUp/PageDown.
|
84
|
+
const code = normalizeNumpadKeys(e);
|
85
|
+
const action = this.keyActions[code];
|
84
86
|
if (action) {
|
85
87
|
action(e);
|
86
88
|
}
|
@@ -6,7 +6,7 @@
|
|
6
6
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
7
7
|
import { Component, EventEmitter, forwardRef, HostBinding, Input, Output, QueryList, ViewChildren } from '@angular/core';
|
8
8
|
import { NgFor } from '@angular/common';
|
9
|
-
import { Keys } from '@progress/kendo-angular-common';
|
9
|
+
import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
10
10
|
import { ChatItem } from './chat-item';
|
11
11
|
import * as i0 from "@angular/core";
|
12
12
|
/**
|
@@ -31,7 +31,7 @@ export class SuggestedActionsComponent extends ChatItem {
|
|
31
31
|
this.dispatch.next(action);
|
32
32
|
}
|
33
33
|
actionKeydown(e, action) {
|
34
|
-
const handler = this.keyHandlers[e
|
34
|
+
const handler = this.keyHandlers[normalizeNumpadKeys(e)];
|
35
35
|
if (handler) {
|
36
36
|
handler(e, action);
|
37
37
|
}
|
package/esm2022/directives.mjs
CHANGED
@@ -74,6 +74,23 @@ export const KENDO_CHAT = [
|
|
74
74
|
HeroCardComponent,
|
75
75
|
ChatMessageBoxTemplateDirective
|
76
76
|
];
|
77
|
+
/**
|
78
|
+
* Utility array that contains all InlineAIPrompt related components and directives.
|
79
|
+
*
|
80
|
+
* @example
|
81
|
+
* ```ts
|
82
|
+
* import { Component } from '@angular/core';
|
83
|
+
* import { KENDO_INLINEAIPROMPT } from '@progress/kendo-angular-conversational-ui';
|
84
|
+
*
|
85
|
+
* @Component({
|
86
|
+
* standalone: true,
|
87
|
+
* imports: [KENDO_INLINEAIPROMPT],
|
88
|
+
* selector: 'my-app',
|
89
|
+
* template: `<kendo-inlineaiprompt></kendo-inlineaiprompt>`
|
90
|
+
* })
|
91
|
+
* export class AppComponent {}
|
92
|
+
* ```
|
93
|
+
*/
|
77
94
|
export const KENDO_INLINEAIPROMPT = [
|
78
95
|
InlineAIPromptComponent,
|
79
96
|
InlineAIPromptOutputTemplateDirective,
|
@@ -10,7 +10,7 @@ export const packageMetadata = {
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
11
11
|
productCode: 'KENDOUIANGULAR',
|
12
12
|
productCodes: ['KENDOUIANGULAR'],
|
13
|
-
publishDate:
|
14
|
-
version: '19.3.0-develop.
|
13
|
+
publishDate: 1754894946,
|
14
|
+
version: '19.3.0-develop.34',
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
16
16
|
};
|
@@ -8,7 +8,7 @@ import * as i1$1 from '@progress/kendo-angular-l10n';
|
|
8
8
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
9
9
|
import { validatePackage } from '@progress/kendo-licensing';
|
10
10
|
import { NgIf, NgTemplateOutlet, NgFor, NgSwitch, NgSwitchCase, NgClass } from '@angular/common';
|
11
|
-
import { Keys, ResizeSensorComponent, isPresent, focusableSelector, guid, isDocumentAvailable, ResizeBatchService } from '@progress/kendo-angular-common';
|
11
|
+
import { Keys, normalizeNumpadKeys, ResizeSensorComponent, isPresent, focusableSelector, guid, isDocumentAvailable, ResizeBatchService } from '@progress/kendo-angular-common';
|
12
12
|
import { paperPlaneIcon, chevronLeftIcon, chevronRightIcon, sparklesIcon, commentIcon, moreHorizontalIcon, stopSmIcon, thumbUpIcon, thumbDownOutlineIcon, thumbDownIcon, thumbUpOutlineIcon, copyIcon, arrowRotateCwIcon, chevronUpIcon, chevronDownIcon, cancelOutlineIcon, menuIcon } from '@progress/kendo-svg-icons';
|
13
13
|
import * as i2 from '@progress/kendo-angular-buttons';
|
14
14
|
import { ButtonComponent, FloatingActionButtonComponent, SpeechToTextButtonComponent, KENDO_BUTTONS } from '@progress/kendo-angular-buttons';
|
@@ -142,8 +142,8 @@ const packageMetadata = {
|
|
142
142
|
productName: 'Kendo UI for Angular',
|
143
143
|
productCode: 'KENDOUIANGULAR',
|
144
144
|
productCodes: ['KENDOUIANGULAR'],
|
145
|
-
publishDate:
|
146
|
-
version: '19.3.0-develop.
|
145
|
+
publishDate: 1754894946,
|
146
|
+
version: '19.3.0-develop.34',
|
147
147
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
148
148
|
};
|
149
149
|
|
@@ -217,7 +217,7 @@ class MessageBoxComponent {
|
|
217
217
|
* @hidden
|
218
218
|
*/
|
219
219
|
inputKeydown(e) {
|
220
|
-
if (e.
|
220
|
+
if (e.code === Keys.Enter || e.code === Keys.NumpadEnter) {
|
221
221
|
this.sendClick();
|
222
222
|
}
|
223
223
|
}
|
@@ -225,7 +225,7 @@ class MessageBoxComponent {
|
|
225
225
|
* @hidden
|
226
226
|
*/
|
227
227
|
textAreaKeydown(e) {
|
228
|
-
const isEnter = e.
|
228
|
+
const isEnter = e.code === Keys.Enter || e.code === Keys.NumpadEnter;
|
229
229
|
if (!isEnter) {
|
230
230
|
return;
|
231
231
|
}
|
@@ -559,7 +559,7 @@ class SuggestedActionsComponent extends ChatItem {
|
|
559
559
|
this.dispatch.next(action);
|
560
560
|
}
|
561
561
|
actionKeydown(e, action) {
|
562
|
-
const handler = this.keyHandlers[e
|
562
|
+
const handler = this.keyHandlers[normalizeNumpadKeys(e)];
|
563
563
|
if (handler) {
|
564
564
|
handler(e, action);
|
565
565
|
}
|
@@ -923,7 +923,8 @@ class MessageAttachmentsComponent extends ChatItem {
|
|
923
923
|
itemKeydown(e, attachment) {
|
924
924
|
const keyHandlers = this.layout === 'list' ?
|
925
925
|
this.listKeyHandlers : this.carouselKeyHandlers;
|
926
|
-
const
|
926
|
+
const code = normalizeNumpadKeys(e);
|
927
|
+
const handler = keyHandlers[code];
|
927
928
|
if (handler) {
|
928
929
|
handler(e, attachment);
|
929
930
|
}
|
@@ -1155,7 +1156,9 @@ class MessageListComponent {
|
|
1155
1156
|
return this.intl.formatDate(date, { date: 'full' });
|
1156
1157
|
}
|
1157
1158
|
onKeydown(e) {
|
1158
|
-
|
1159
|
+
// On some keyboards Numpad keys are used for Home/End/PageUp/PageDown.
|
1160
|
+
const code = normalizeNumpadKeys(e);
|
1161
|
+
const action = this.keyActions[code];
|
1159
1162
|
if (action) {
|
1160
1163
|
action(e);
|
1161
1164
|
}
|
@@ -2192,9 +2195,10 @@ class AIPromptToolbarFocusableDirective {
|
|
2192
2195
|
this.element.focus();
|
2193
2196
|
}
|
2194
2197
|
keyDownHandler = (e) => {
|
2198
|
+
const code = normalizeNumpadKeys(e);
|
2195
2199
|
const targetsSelf = e.target === this.element;
|
2196
|
-
const isLeftArrow =
|
2197
|
-
const isRightArrow =
|
2200
|
+
const isLeftArrow = code === Keys.ArrowLeft;
|
2201
|
+
const isRightArrow = code === Keys.ArrowRight;
|
2198
2202
|
const isArrow = isLeftArrow || isRightArrow;
|
2199
2203
|
if (!targetsSelf || !isArrow) {
|
2200
2204
|
return;
|
@@ -4856,6 +4860,23 @@ const KENDO_CHAT = [
|
|
4856
4860
|
HeroCardComponent,
|
4857
4861
|
ChatMessageBoxTemplateDirective
|
4858
4862
|
];
|
4863
|
+
/**
|
4864
|
+
* Utility array that contains all InlineAIPrompt related components and directives.
|
4865
|
+
*
|
4866
|
+
* @example
|
4867
|
+
* ```ts
|
4868
|
+
* import { Component } from '@angular/core';
|
4869
|
+
* import { KENDO_INLINEAIPROMPT } from '@progress/kendo-angular-conversational-ui';
|
4870
|
+
*
|
4871
|
+
* @Component({
|
4872
|
+
* standalone: true,
|
4873
|
+
* imports: [KENDO_INLINEAIPROMPT],
|
4874
|
+
* selector: 'my-app',
|
4875
|
+
* template: `<kendo-inlineaiprompt></kendo-inlineaiprompt>`
|
4876
|
+
* })
|
4877
|
+
* export class AppComponent {}
|
4878
|
+
* ```
|
4879
|
+
*/
|
4859
4880
|
const KENDO_INLINEAIPROMPT = [
|
4860
4881
|
InlineAIPromptComponent,
|
4861
4882
|
InlineAIPromptOutputTemplateDirective,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@progress/kendo-angular-conversational-ui",
|
3
|
-
"version": "19.3.0-develop.
|
3
|
+
"version": "19.3.0-develop.34",
|
4
4
|
"description": "Kendo UI for Angular Conversational UI components",
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
6
6
|
"author": "Progress",
|
@@ -20,7 +20,7 @@
|
|
20
20
|
"package": {
|
21
21
|
"productName": "Kendo UI for Angular",
|
22
22
|
"productCode": "KENDOUIANGULAR",
|
23
|
-
"publishDate":
|
23
|
+
"publishDate": 1754894946,
|
24
24
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
25
25
|
}
|
26
26
|
},
|
@@ -30,20 +30,20 @@
|
|
30
30
|
"@angular/core": "16 - 20",
|
31
31
|
"@angular/platform-browser": "16 - 20",
|
32
32
|
"@progress/kendo-licensing": "^1.7.0",
|
33
|
-
"@progress/kendo-angular-buttons": "19.3.0-develop.
|
34
|
-
"@progress/kendo-angular-inputs": "19.3.0-develop.
|
35
|
-
"@progress/kendo-angular-layout": "19.3.0-develop.
|
36
|
-
"@progress/kendo-angular-icons": "19.3.0-develop.
|
37
|
-
"@progress/kendo-angular-common": "19.3.0-develop.
|
38
|
-
"@progress/kendo-angular-intl": "19.3.0-develop.
|
39
|
-
"@progress/kendo-angular-l10n": "19.3.0-develop.
|
40
|
-
"@progress/kendo-angular-menu": "19.3.0-develop.
|
41
|
-
"@progress/kendo-angular-popup": "19.3.0-develop.
|
33
|
+
"@progress/kendo-angular-buttons": "19.3.0-develop.34",
|
34
|
+
"@progress/kendo-angular-inputs": "19.3.0-develop.34",
|
35
|
+
"@progress/kendo-angular-layout": "19.3.0-develop.34",
|
36
|
+
"@progress/kendo-angular-icons": "19.3.0-develop.34",
|
37
|
+
"@progress/kendo-angular-common": "19.3.0-develop.34",
|
38
|
+
"@progress/kendo-angular-intl": "19.3.0-develop.34",
|
39
|
+
"@progress/kendo-angular-l10n": "19.3.0-develop.34",
|
40
|
+
"@progress/kendo-angular-menu": "19.3.0-develop.34",
|
41
|
+
"@progress/kendo-angular-popup": "19.3.0-develop.34",
|
42
42
|
"rxjs": "^6.5.3 || ^7.0.0"
|
43
43
|
},
|
44
44
|
"dependencies": {
|
45
45
|
"tslib": "^2.3.1",
|
46
|
-
"@progress/kendo-angular-schematics": "19.3.0-develop.
|
46
|
+
"@progress/kendo-angular-schematics": "19.3.0-develop.34"
|
47
47
|
},
|
48
48
|
"schematics": "./schematics/collection.json",
|
49
49
|
"module": "fesm2022/progress-kendo-angular-conversational-ui.mjs",
|