@progress/kendo-angular-grid 19.3.0-develop.2 → 19.3.0-develop.21

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 (62) hide show
  1. package/aggregates/status-bar.component.d.ts +1 -0
  2. package/common/provider.service.d.ts +2 -0
  3. package/data/data-mapping.service.d.ts +3 -1
  4. package/directives.d.ts +6 -4
  5. package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1 -2
  6. package/esm2022/aggregates/status-bar.component.mjs +5 -1
  7. package/esm2022/column-menu/column-list.component.mjs +10 -10
  8. package/esm2022/column-menu/column-menu.component.mjs +1 -1
  9. package/esm2022/common/provider.service.mjs +1 -0
  10. package/esm2022/common/toolbar-tool-base.directive.mjs +3 -2
  11. package/esm2022/data/data-mapping.service.mjs +14 -3
  12. package/esm2022/directives.mjs +5 -0
  13. package/esm2022/editing/form/form-formfield.component.mjs +2 -2
  14. package/esm2022/editing-directives/in-cell-editing.directive.mjs +1 -0
  15. package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +1 -1
  16. package/esm2022/filtering/cell/date-filter-cell.component.mjs +1 -1
  17. package/esm2022/filtering/cell/filter-cell-operators.component.mjs +1 -2
  18. package/esm2022/filtering/cell/numeric-filter-cell.component.mjs +1 -1
  19. package/esm2022/filtering/cell/string-filter-cell.component.mjs +1 -1
  20. package/esm2022/filtering/filter-row.component.mjs +1 -1
  21. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +1 -2
  22. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +1 -1
  23. package/esm2022/filtering/menu/date-filter-menu.component.mjs +1 -1
  24. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +1 -1
  25. package/esm2022/filtering/menu/filter-menu.component.mjs +1 -1
  26. package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +1 -1
  27. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +1 -1
  28. package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +1 -1
  29. package/esm2022/filtering/menu/string-filter-menu.component.mjs +1 -1
  30. package/esm2022/grid.component.mjs +79 -5
  31. package/esm2022/grid.module.mjs +102 -100
  32. package/esm2022/grouping/group-panel.component.mjs +7 -3
  33. package/esm2022/highlight/highlight-item.mjs +5 -0
  34. package/esm2022/highlight/highlight.directive.mjs +132 -0
  35. package/esm2022/index.mjs +3 -0
  36. package/esm2022/localization/messages.mjs +55 -1
  37. package/esm2022/navigation/toolbar-tool-name.mjs +2 -1
  38. package/esm2022/package-metadata.mjs +2 -2
  39. package/esm2022/rendering/list.component.mjs +1 -1
  40. package/esm2022/rendering/table-body.component.mjs +8 -4
  41. package/esm2022/rendering/toolbar/tools/ai-assistant/ai-assistant.component.mjs +286 -0
  42. package/esm2022/rendering/toolbar/tools/ai-assistant/ai-tool.directive.mjs +269 -0
  43. package/esm2022/rendering/toolbar/tools/ai-assistant/utils.mjs +47 -0
  44. package/esm2022/selection/pair-set.mjs +87 -10
  45. package/esm2022/utils.mjs +0 -4
  46. package/fesm2022/progress-kendo-angular-grid.mjs +1003 -86
  47. package/grid.component.d.ts +8 -1
  48. package/grid.module.d.ts +101 -99
  49. package/highlight/highlight-item.d.ts +17 -0
  50. package/highlight/highlight.directive.d.ts +56 -0
  51. package/index.d.ts +4 -0
  52. package/localization/messages.d.ts +37 -1
  53. package/navigation/toolbar-tool-name.d.ts +1 -0
  54. package/package.json +22 -21
  55. package/rendering/cell.component.d.ts +2 -2
  56. package/rendering/table-body.component.d.ts +1 -0
  57. package/rendering/toolbar/tools/ai-assistant/ai-assistant.component.d.ts +49 -0
  58. package/rendering/toolbar/tools/ai-assistant/ai-tool.directive.d.ts +119 -0
  59. package/rendering/toolbar/tools/ai-assistant/utils.d.ts +110 -0
  60. package/schematics/ngAdd/index.js +4 -4
  61. package/selection/pair-set.d.ts +36 -8
  62. package/utils.d.ts +0 -4
@@ -303,7 +303,9 @@ export class GroupPanelComponent {
303
303
  <kendo-chiplist
304
304
  *ngIf="groups.length !== 0"
305
305
  [navigable]="navigable"
306
- role="none">
306
+ role="none"
307
+ [orientation]="null"
308
+ >
307
309
  <kendo-chip
308
310
  *ngFor="let group of groups; let index = index; let first = first; let last = last;"
309
311
  #chip
@@ -366,7 +368,7 @@ export class GroupPanelComponent {
366
368
  </li>
367
369
  </ul>
368
370
  </ng-template>
369
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { kind: "component", type: ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarSettings", "selected", "removable", "removeIcon", "removeSvgIcon", "hasMenu", "menuIcon", "menuSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "menuToggle", "contentClick"] }, { kind: "directive", type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
371
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { kind: "component", type: ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["orientation", "selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarSettings", "selected", "removable", "removeIcon", "removeSvgIcon", "hasMenu", "menuIcon", "menuSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "menuToggle", "contentClick"] }, { kind: "directive", type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
370
372
  }
371
373
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GroupPanelComponent, decorators: [{
372
374
  type: Component,
@@ -388,7 +390,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
388
390
  <kendo-chiplist
389
391
  *ngIf="groups.length !== 0"
390
392
  [navigable]="navigable"
391
- role="none">
393
+ role="none"
394
+ [orientation]="null"
395
+ >
392
396
  <kendo-chip
393
397
  *ngFor="let group of groups; let index = index; let first = first; let last = last;"
394
398
  #chip
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export {};
@@ -0,0 +1,132 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Directive, Input } from '@angular/core';
6
+ import { ContextService } from '../common/provider.service';
7
+ import { isPresent } from '@progress/kendo-angular-common';
8
+ import { PairSet } from '../selection/pair-set';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../common/provider.service";
11
+ /**
12
+ * Stores the row and cell highlight state of the Grid.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * <kendo-grid kendoGridHighlight="ProductID"></kendo-grid>
17
+ *
18
+ * <kendo-grid [kendoGridHighlight]="myKey"></kendo-grid>
19
+ * ```
20
+ * @remarks
21
+ * Applied to: {@link GridComponent}.
22
+ */
23
+ export class HighlightDirective {
24
+ ctx;
25
+ /**
26
+ * Stores the highlighted items keys.
27
+ * @default []
28
+ */
29
+ highlightedKeys = [];
30
+ /**
31
+ * Sets the item key to store in `highlightedKeys`. The Grid uses the row index as the default item key.
32
+ */
33
+ highlightItemKey;
34
+ /**
35
+ * Sets the column key for a data cell. The Grid uses the column index as the default column key.
36
+ */
37
+ highlightColumnKey;
38
+ rowHighlightState = new Set();
39
+ cellHighlightState = new PairSet();
40
+ constructor(ctx) {
41
+ this.ctx = ctx;
42
+ this.ctx.highlightDirective = this;
43
+ }
44
+ ngOnChanges(changes) {
45
+ if (isPresent(changes['highlightedKeys'])) {
46
+ this.setState(this.highlightedKeys);
47
+ }
48
+ }
49
+ ngOnDestroy() {
50
+ this.reset();
51
+ this.ctx.highlightDirective = null;
52
+ }
53
+ /**
54
+ * @hidden
55
+ */
56
+ isRowHighlighted(row) {
57
+ return this.rowHighlightState.has(this.getItemKey(row));
58
+ }
59
+ /**
60
+ * @hidden
61
+ */
62
+ isCellHighlighted(row, column, colIndex) {
63
+ const highlightItem = this.getHighlightItem(row, column, colIndex);
64
+ return this.cellHighlightState.has(highlightItem.itemKey, highlightItem.columnKey);
65
+ }
66
+ getItemKey(row) {
67
+ if (this.highlightItemKey) {
68
+ if (typeof this.highlightItemKey === "string") {
69
+ return row.data?.[this.highlightItemKey];
70
+ }
71
+ if (typeof this.highlightItemKey === "function") {
72
+ return this.highlightItemKey(row);
73
+ }
74
+ }
75
+ return row.index;
76
+ }
77
+ getHighlightItem(row, col, colIndex) {
78
+ const itemIdentifiers = {};
79
+ itemIdentifiers.itemKey = this.getItemKey(row);
80
+ if (!isPresent(col) && !isPresent(colIndex)) {
81
+ return itemIdentifiers;
82
+ }
83
+ if (this.highlightColumnKey) {
84
+ if (typeof this.highlightColumnKey === "string") {
85
+ itemIdentifiers.columnKey = row.dataItem[this.highlightColumnKey];
86
+ }
87
+ if (typeof this.highlightColumnKey === "function") {
88
+ itemIdentifiers.columnKey = this.highlightColumnKey(col, colIndex);
89
+ }
90
+ }
91
+ return {
92
+ itemKey: itemIdentifiers.itemKey,
93
+ columnKey: itemIdentifiers.columnKey ? itemIdentifiers.columnKey : colIndex
94
+ };
95
+ }
96
+ setState(highlightedKeys) {
97
+ this.reset();
98
+ if (!highlightedKeys || highlightedKeys.length === 0) {
99
+ return;
100
+ }
101
+ const rowHighlights = highlightedKeys.filter(item => !isPresent(item.columnKey));
102
+ const cellHighlights = highlightedKeys.filter(item => isPresent(item.columnKey));
103
+ if (cellHighlights.length > 0) {
104
+ this.cellHighlightState = new PairSet(cellHighlights, 'itemKey', 'columnKey');
105
+ }
106
+ if (rowHighlights.length > 0) {
107
+ rowHighlights.forEach(item => {
108
+ this.rowHighlightState.add(item.itemKey);
109
+ });
110
+ }
111
+ }
112
+ reset() {
113
+ this.rowHighlightState.clear();
114
+ this.cellHighlightState.clear();
115
+ }
116
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HighlightDirective, deps: [{ token: i1.ContextService }], target: i0.ɵɵFactoryTarget.Directive });
117
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: HighlightDirective, isStandalone: true, selector: "[kendoGridHighlight]", inputs: { highlightedKeys: "highlightedKeys", highlightItemKey: ["kendoGridHighlight", "highlightItemKey"], highlightColumnKey: "highlightColumnKey" }, usesOnChanges: true, ngImport: i0 });
118
+ }
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HighlightDirective, decorators: [{
120
+ type: Directive,
121
+ args: [{
122
+ selector: '[kendoGridHighlight]',
123
+ standalone: true
124
+ }]
125
+ }], ctorParameters: function () { return [{ type: i1.ContextService }]; }, propDecorators: { highlightedKeys: [{
126
+ type: Input
127
+ }], highlightItemKey: [{
128
+ type: Input,
129
+ args: ["kendoGridHighlight"]
130
+ }], highlightColumnKey: [{
131
+ type: Input
132
+ }] } });
package/esm2022/index.mjs CHANGED
@@ -153,6 +153,7 @@ export * from './state-management/grid-state.models';
153
153
  export { UndoRedoDirective } from './state-management/undo-redo.directive';
154
154
  export { UndoCommandToolbarDirective } from './state-management/undo-command-tool';
155
155
  export { RedoCommandToolbarDirective } from './state-management/redo-command-tool';
156
+ export { HighlightDirective } from './highlight/highlight.directive';
156
157
  // addresses error NG3001: Unsupported private class
157
158
  export { ColumnMenuTemplateDirective } from './column-menu/column-menu-template.directive';
158
159
  export { EditCommandDirective } from './editing/edit-command.directive';
@@ -162,6 +163,7 @@ export { RemoveCommandDirective } from './editing/remove-command.directive';
162
163
  export { AddCommandDirective } from './editing/add-command.directive';
163
164
  export { AddCommandToolbarDirective } from './editing/add-command-tool.directive';
164
165
  export { ColumnChooserToolbarDirective } from './rendering/toolbar/tools/column-chooser-tool.directive';
166
+ export { AIAssistantToolbarDirective } from './rendering/toolbar/tools/ai-assistant/ai-tool.directive';
165
167
  export { SaveCommandToolbarDirective } from './editing/save-command-tool.directive';
166
168
  export { EditCommandToolbarDirective } from './editing/edit-command-tool.directive';
167
169
  export { RemoveCommandToolbarDirective } from './editing/remove-command-tool.directive';
@@ -213,3 +215,4 @@ export { SizingOptionsService } from './layout/sizing-options.service';
213
215
  export { GridTableDirective } from './rendering/grid-table.directive';
214
216
  // Needed as it is an optional injection of the FilterService
215
217
  export { MenuTabbingService } from './filtering/menu/menu-tabbing.service';
218
+ export * from './rendering/toolbar/tools/ai-assistant/utils';
@@ -142,6 +142,42 @@ export class GridMessages extends ComponentMessages {
142
142
  * [See example](slug:globalization_grid#toc-custom-messages).
143
143
  */
144
144
  booleanFilterCellLabel;
145
+ /**
146
+ * The text of the AI Assistant Apply button.
147
+ */
148
+ aiAssistantApplyButtonText;
149
+ /**
150
+ * The text of the AI Assistant toolbar tool.
151
+ */
152
+ aiAssistantToolbarToolText;
153
+ /**
154
+ * The text of the AI Assistant Window title.
155
+ */
156
+ aiAssistantWindowTitle;
157
+ /**
158
+ * The title of the AI Assistant Window close button.
159
+ */
160
+ aiAssistantWindowCloseTitle;
161
+ /**
162
+ * The title of the AI Assistant Prompt Output Card.
163
+ */
164
+ aiAssistantOutputCardTitle;
165
+ /**
166
+ * The success message dispayed in the AI Assistant Prompt Output Card's body.
167
+ */
168
+ aiAssistantOutputCardBodyContent;
169
+ /**
170
+ * The title of the AI Assistant Window maximize button.
171
+ */
172
+ aiAssistantWindowMaximizeTitle;
173
+ /**
174
+ * The title of the AI Assistant Window minimize button.
175
+ */
176
+ aiAssistantWindowMinimizeTitle;
177
+ /**
178
+ * The title of the AI Assistant Window restore button.
179
+ */
180
+ aiAssistantWindowRestoreTitle;
145
181
  /**
146
182
  * Sets the text for the `Equal` (**Is equal to**) filter operator.
147
183
  */
@@ -538,7 +574,7 @@ export class GridMessages extends ComponentMessages {
538
574
  */
539
575
  externalEditingCancelText;
540
576
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
541
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", adaptiveFilterOperatorsTitle: "adaptiveFilterOperatorsTitle", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", adaptiveBackButtonTitle: "adaptiveBackButtonTitle", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", filterToolbarToolText: "filterToolbarToolText", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", columnsSubtitle: "columnsSubtitle", adaptiveFilterTitle: "adaptiveFilterTitle", adaptiveSortTitle: "adaptiveSortTitle", adaptiveGroupTitle: "adaptiveGroupTitle", filterClearAllButton: "filterClearAllButton", groupClearButton: "groupClearButton", sortClearButton: "sortClearButton", sortDoneButton: "sortDoneButton", groupDoneButton: "groupDoneButton", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", sortToolbarToolText: "sortToolbarToolText", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", editToolbarToolText: "editToolbarToolText", saveToolbarToolText: "saveToolbarToolText", addToolbarToolText: "addToolbarToolText", cancelToolbarToolText: "cancelToolbarToolText", removeToolbarToolText: "removeToolbarToolText", excelExportToolbarToolText: "excelExportToolbarToolText", pdfExportToolbarToolText: "pdfExportToolbarToolText", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext", groupToolbarToolText: "groupToolbarToolText", formValidationErrorText: "formValidationErrorText", removeConfirmationDialogTitle: "removeConfirmationDialogTitle", removeConfirmationDialogContent: "removeConfirmationDialogContent", removeConfirmationDialogConfirmText: "removeConfirmationDialogConfirmText", removeConfirmationDialogRejectText: "removeConfirmationDialogRejectText", externalEditingTitle: "externalEditingTitle", externalEditingAddTitle: "externalEditingAddTitle", externalEditingSaveText: "externalEditingSaveText", externalEditingCancelText: "externalEditingCancelText" }, usesInheritance: true, ngImport: i0 });
577
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", aiAssistantApplyButtonText: "aiAssistantApplyButtonText", aiAssistantToolbarToolText: "aiAssistantToolbarToolText", aiAssistantWindowTitle: "aiAssistantWindowTitle", aiAssistantWindowCloseTitle: "aiAssistantWindowCloseTitle", aiAssistantOutputCardTitle: "aiAssistantOutputCardTitle", aiAssistantOutputCardBodyContent: "aiAssistantOutputCardBodyContent", aiAssistantWindowMaximizeTitle: "aiAssistantWindowMaximizeTitle", aiAssistantWindowMinimizeTitle: "aiAssistantWindowMinimizeTitle", aiAssistantWindowRestoreTitle: "aiAssistantWindowRestoreTitle", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", adaptiveFilterOperatorsTitle: "adaptiveFilterOperatorsTitle", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", adaptiveBackButtonTitle: "adaptiveBackButtonTitle", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", filterToolbarToolText: "filterToolbarToolText", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", columnsSubtitle: "columnsSubtitle", adaptiveFilterTitle: "adaptiveFilterTitle", adaptiveSortTitle: "adaptiveSortTitle", adaptiveGroupTitle: "adaptiveGroupTitle", filterClearAllButton: "filterClearAllButton", groupClearButton: "groupClearButton", sortClearButton: "sortClearButton", sortDoneButton: "sortDoneButton", groupDoneButton: "groupDoneButton", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", sortToolbarToolText: "sortToolbarToolText", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", editToolbarToolText: "editToolbarToolText", saveToolbarToolText: "saveToolbarToolText", addToolbarToolText: "addToolbarToolText", cancelToolbarToolText: "cancelToolbarToolText", removeToolbarToolText: "removeToolbarToolText", excelExportToolbarToolText: "excelExportToolbarToolText", pdfExportToolbarToolText: "pdfExportToolbarToolText", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext", groupToolbarToolText: "groupToolbarToolText", formValidationErrorText: "formValidationErrorText", removeConfirmationDialogTitle: "removeConfirmationDialogTitle", removeConfirmationDialogContent: "removeConfirmationDialogContent", removeConfirmationDialogConfirmText: "removeConfirmationDialogConfirmText", removeConfirmationDialogRejectText: "removeConfirmationDialogRejectText", externalEditingTitle: "externalEditingTitle", externalEditingAddTitle: "externalEditingAddTitle", externalEditingSaveText: "externalEditingSaveText", externalEditingCancelText: "externalEditingCancelText" }, usesInheritance: true, ngImport: i0 });
542
578
  }
543
579
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, decorators: [{
544
580
  type: Directive,
@@ -588,6 +624,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
588
624
  type: Input
589
625
  }], booleanFilterCellLabel: [{
590
626
  type: Input
627
+ }], aiAssistantApplyButtonText: [{
628
+ type: Input
629
+ }], aiAssistantToolbarToolText: [{
630
+ type: Input
631
+ }], aiAssistantWindowTitle: [{
632
+ type: Input
633
+ }], aiAssistantWindowCloseTitle: [{
634
+ type: Input
635
+ }], aiAssistantOutputCardTitle: [{
636
+ type: Input
637
+ }], aiAssistantOutputCardBodyContent: [{
638
+ type: Input
639
+ }], aiAssistantWindowMaximizeTitle: [{
640
+ type: Input
641
+ }], aiAssistantWindowMinimizeTitle: [{
642
+ type: Input
643
+ }], aiAssistantWindowRestoreTitle: [{
644
+ type: Input
591
645
  }], filterEqOperator: [{
592
646
  type: Input
593
647
  }], filterNotEqOperator: [{
@@ -13,5 +13,6 @@ export const ToolbarToolName = {
13
13
  add: 'add',
14
14
  columns: 'columns',
15
15
  excelExport: 'excelExport',
16
- pdfExport: 'pdfExport'
16
+ pdfExport: 'pdfExport',
17
+ aiAssistant: 'aiAssistant'
17
18
  };
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1751964779,
14
- version: '19.3.0-develop.2',
13
+ publishDate: 1754395862,
14
+ version: '19.3.0-develop.21',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -270,7 +270,7 @@ export class ListComponent {
270
270
  if (this.virtualColumns && (!this.viewportColumns || this.viewportWidthChange())) {
271
271
  this.updateViewportColumns();
272
272
  }
273
- const shouldCalculatePageSize = isDocumentAvailable() && this.isVirtual && this.ctx.grid && !this.ctx.grid.pageSize;
273
+ const shouldCalculatePageSize = isDocumentAvailable() && this.isVirtual && this.ctx.grid && !isPresent(this.ctx.grid.pageSize);
274
274
  if (shouldCalculatePageSize) {
275
275
  const calculatedPageSize = this.calcVirtualPageSize();
276
276
  if (calculatedPageSize > 0) {
@@ -526,7 +526,8 @@ export class TableBodyComponent {
526
526
  [class.k-grid-edit-row]="isEditingRow($any(item).index)"
527
527
  [attr.aria-selected]="lockedColumnsCount < 1 ? isSelectable({ dataItem: item.data, index: $any(item).index }) && isRowSelected(item) : undefined"
528
528
  [attr.data-kendo-grid-item-index]="$any(item).index"
529
- [class.k-selected]="isSelectable({ dataItem: item.data, index: $any(item).index }) && isRowSelected(item)">
529
+ [class.k-selected]="isSelectable({ dataItem: item.data, index: $any(item).index }) && isRowSelected(item)"
530
+ [class.k-highlighted]="item.isHighlighted">
530
531
  <ng-container *ngIf="!skipGroupDecoration">
531
532
  <td class="k-group-cell k-table-td k-table-group-td" *ngFor="let g of groups" role="presentation"></td>
532
533
  </ng-container>
@@ -578,7 +579,8 @@ export class TableBodyComponent {
578
579
  [class.k-grid-edit-cell]="isEditingCell($any(item).index, column)"
579
580
  [ngStyle]="column.sticky ? addStickyColumnStyles(column) : column.style"
580
581
  [attr.colspan]="column.colspan"
581
- [class.k-selected]="isSelectable && cellSelectionService.isCellSelected(item, column)">
582
+ [class.k-selected]="isSelectable && cellSelectionService.isCellSelected(item, column)"
583
+ [class.k-highlighted]="item.cells[lockedColumnsCount + columnIndex]?.isHighlighted">
582
584
  </td>
583
585
  </ng-container>
584
586
  </tr>
@@ -746,7 +748,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
746
748
  [class.k-grid-edit-row]="isEditingRow($any(item).index)"
747
749
  [attr.aria-selected]="lockedColumnsCount < 1 ? isSelectable({ dataItem: item.data, index: $any(item).index }) && isRowSelected(item) : undefined"
748
750
  [attr.data-kendo-grid-item-index]="$any(item).index"
749
- [class.k-selected]="isSelectable({ dataItem: item.data, index: $any(item).index }) && isRowSelected(item)">
751
+ [class.k-selected]="isSelectable({ dataItem: item.data, index: $any(item).index }) && isRowSelected(item)"
752
+ [class.k-highlighted]="item.isHighlighted">
750
753
  <ng-container *ngIf="!skipGroupDecoration">
751
754
  <td class="k-group-cell k-table-td k-table-group-td" *ngFor="let g of groups" role="presentation"></td>
752
755
  </ng-container>
@@ -798,7 +801,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
798
801
  [class.k-grid-edit-cell]="isEditingCell($any(item).index, column)"
799
802
  [ngStyle]="column.sticky ? addStickyColumnStyles(column) : column.style"
800
803
  [attr.colspan]="column.colspan"
801
- [class.k-selected]="isSelectable && cellSelectionService.isCellSelected(item, column)">
804
+ [class.k-selected]="isSelectable && cellSelectionService.isCellSelected(item, column)"
805
+ [class.k-highlighted]="item.cells[lockedColumnsCount + columnIndex]?.isHighlighted">
802
806
  </td>
803
807
  </ng-container>
804
808
  </tr>