@progress/kendo-angular-grid 23.0.0-develop.1 → 23.0.0-develop.11

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.
@@ -10,11 +10,11 @@ import { isDocumentAvailable, Keys, hasClasses as hasClasses$1, isPresent as isP
10
10
  import * as i1 from '@angular/platform-browser';
11
11
  import * as i1$1 from '@progress/kendo-angular-icons';
12
12
  import { IconWrapperComponent, IconsService, KENDO_ICONS } from '@progress/kendo-angular-icons';
13
- import { plusIcon, cancelIcon, lockIcon, unlockIcon, caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon, arrowLeftIcon, arrowRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterClearIcon, filterIcon, searchIcon, checkIcon, arrowRotateCcwIcon, columnsIcon, sparklesIcon, fileCsvIcon, filePdfIcon, fileExcelIcon, trashIcon, saveIcon, pencilIcon, chevronUpIcon, chevronDownIcon, chevronRightIcon, displayInlineFlexIcon, maxWidthIcon, stickIcon, unstickIcon, setColumnPositionIcon, slidersIcon, moreVerticalIcon, reorderIcon, minusIcon, insertMiddleIcon, xIcon, xCircleIcon, plusCircleIcon, chevronLeftIcon, undoIcon, redoIcon, arrowsSwapIcon, groupIcon, tableWizardIcon } from '@progress/kendo-svg-icons';
13
+ import { plusIcon, cancelIcon, lockIcon, unlockIcon, caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon, arrowLeftIcon, arrowRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterClearIcon, filterIcon, searchIcon, checkIcon, arrowRotateCcwIcon, columnsIcon, sparklesIcon, fileCsvIcon, filePdfIcon, fileExcelIcon, trashIcon, saveIcon, pencilIcon, chevronUpIcon, chevronDownIcon, chevronRightIcon, displayInlineFlexIcon, maxWidthIcon, stickIcon, unstickIcon, setColumnPositionIcon, slidersIcon, moreVerticalIcon, reorderIcon, minusIcon, insertMiddleIcon, xIcon, xCircleIcon, plusCircleIcon, chevronLeftIcon, undoIcon, redoIcon, arrowsSwapIcon, groupIcon, tableWizardIcon, clockArrowRotateIcon, fileClockOutlineIcon, zoomSparkleIcon, arrowUpOutlineIcon, stopSmIcon, lightbulbOutlineIcon } from '@progress/kendo-svg-icons';
14
14
  import { switchMap, take, map, filter, takeUntil, switchMapTo, delay, tap, throttleTime, debounceTime, distinctUntilChanged, skip, auditTime, bufferCount, flatMap } from 'rxjs/operators';
15
15
  import * as i1$2 from '@progress/kendo-angular-l10n';
16
16
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
17
- import * as i53 from '@progress/kendo-angular-pager';
17
+ import * as i56 from '@progress/kendo-angular-pager';
18
18
  import { PagerTemplateDirective, PagerContextService, PagerNavigationService, KENDO_PAGER } from '@progress/kendo-angular-pager';
19
19
  import { orderBy, isCompositeFilterDescriptor, filterBy, groupBy, process } from '@progress/kendo-data-query';
20
20
  import { NgTemplateOutlet, NgClass, NgStyle, KeyValuePipe } from '@angular/common';
@@ -24,9 +24,9 @@ import { parseDate } from '@progress/kendo-angular-intl';
24
24
  import * as i2 from '@progress/kendo-angular-popup';
25
25
  import { PopupService } from '@progress/kendo-angular-popup';
26
26
  import * as i1$6 from '@progress/kendo-angular-buttons';
27
- import { ChipListComponent, ChipComponent, ButtonComponent, Button, KENDO_BUTTON, ButtonDirective } from '@progress/kendo-angular-buttons';
27
+ import { ChipListComponent, ChipComponent, ButtonComponent, Button, KENDO_BUTTON, ButtonDirective, KENDO_BUTTONS } from '@progress/kendo-angular-buttons';
28
28
  import * as i1$5 from '@progress/kendo-angular-dropdowns';
29
- import { DropDownListComponent, AutoCompleteComponent } from '@progress/kendo-angular-dropdowns';
29
+ import { DropDownListComponent, AutoCompleteComponent, DataService, SelectionService as SelectionService$1, NavigationService as NavigationService$1, DisabledItemsService } from '@progress/kendo-angular-dropdowns';
30
30
  import * as i2$2 from '@angular/forms';
31
31
  import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule, FormControl, FormGroup } from '@angular/forms';
32
32
  import * as i2$1 from '@progress/kendo-angular-utils';
@@ -34,8 +34,8 @@ import { DragTargetContainerDirective, DropTargetContainerDirective } from '@pro
34
34
  import * as i4 from '@progress/kendo-angular-inputs';
35
35
  import { TextBoxComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, RadioButtonComponent, CheckBoxComponent, TextBoxPrefixTemplateDirective, KENDO_FORMFIELD, KENDO_TEXTBOX, KENDO_NUMERICTEXTBOX, KENDO_CHECKBOX } from '@progress/kendo-angular-inputs';
36
36
  import * as i5 from '@progress/kendo-angular-dateinputs';
37
- import { DatePickerComponent, DatePickerCustomMessagesComponent, KENDO_DATEPICKER, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService as NavigationService$1 } from '@progress/kendo-angular-dateinputs';
38
- import * as i54 from '@progress/kendo-angular-toolbar';
37
+ import { DatePickerComponent, DatePickerCustomMessagesComponent, KENDO_DATEPICKER, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService as NavigationService$2 } from '@progress/kendo-angular-dateinputs';
38
+ import * as i57 from '@progress/kendo-angular-toolbar';
39
39
  import { ToolBarToolComponent, KENDO_TOOLBAR } from '@progress/kendo-angular-toolbar';
40
40
  import { trigger, state, transition, style, animate } from '@angular/animations';
41
41
  import { TabStripComponent, TabStripTabComponent, TabTitleDirective, TabContentDirective } from '@progress/kendo-angular-layout';
@@ -4494,12 +4494,12 @@ class NavigationService {
4494
4494
  }
4495
4495
  }
4496
4496
  }
4497
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NavigationService, deps: [{ token: i0.NgZone }, { token: DomEventsService }, { token: i53.PagerContextService }, { token: ScrollRequestService }, { token: GroupsService }, { token: DetailsService }, { token: FocusRoot }, { token: EditService }, { token: i0.ChangeDetectorRef }, { token: ContextService }, { token: ColumnResizingService }, { token: FocusableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
4497
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NavigationService, deps: [{ token: i0.NgZone }, { token: DomEventsService }, { token: i56.PagerContextService }, { token: ScrollRequestService }, { token: GroupsService }, { token: DetailsService }, { token: FocusRoot }, { token: EditService }, { token: i0.ChangeDetectorRef }, { token: ContextService }, { token: ColumnResizingService }, { token: FocusableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
4498
4498
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NavigationService });
4499
4499
  }
4500
4500
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NavigationService, decorators: [{
4501
4501
  type: Injectable
4502
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: DomEventsService }, { type: i53.PagerContextService }, { type: ScrollRequestService }, { type: GroupsService }, { type: DetailsService }, { type: FocusRoot }, { type: EditService }, { type: i0.ChangeDetectorRef }, { type: ContextService }, { type: ColumnResizingService }, { type: FocusableDirective, decorators: [{
4502
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: DomEventsService }, { type: i56.PagerContextService }, { type: ScrollRequestService }, { type: GroupsService }, { type: DetailsService }, { type: FocusRoot }, { type: EditService }, { type: i0.ChangeDetectorRef }, { type: ContextService }, { type: ColumnResizingService }, { type: FocusableDirective, decorators: [{
4503
4503
  type: Optional
4504
4504
  }] }] });
4505
4505
 
@@ -12683,9 +12683,11 @@ class FilterRowComponent {
12683
12683
  const columnName = column.title || column.field;
12684
12684
  return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
12685
12685
  }
12686
- getLogicalColIndex(columnIndex) {
12687
- const colIndex = this.lockedColumnsCount + columnIndex;
12688
- return this.detailTemplate?.templateRef ? colIndex + 1 : colIndex;
12686
+ getLogicalColIndex(column) {
12687
+ if (!isPresent$1(column.leafIndex)) {
12688
+ return -1;
12689
+ }
12690
+ return column.leafIndex + (this.detailTemplate?.templateRef ? 1 : 0);
12689
12691
  }
12690
12692
  get isStacked() {
12691
12693
  return this.ctx.grid?.isStacked;
@@ -12716,7 +12718,7 @@ class FilterRowComponent {
12716
12718
  [filter]="filter"
12717
12719
  kendoGridLogicalCell
12718
12720
  [logicalRowIndex]="logicalRowIndex"
12719
- [logicalColIndex]="getLogicalColIndex(columnIndex)"
12721
+ [logicalColIndex]="getLogicalColIndex(column)"
12720
12722
  ></td>
12721
12723
  }
12722
12724
  `, isInline: true, dependencies: [{ kind: "component", type: FilterCellComponent, selector: "[kendoGridFilterCell]", inputs: ["column", "filter", "size"] }, { kind: "directive", type: LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
@@ -12750,7 +12752,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
12750
12752
  [filter]="filter"
12751
12753
  kendoGridLogicalCell
12752
12754
  [logicalRowIndex]="logicalRowIndex"
12753
- [logicalColIndex]="getLogicalColIndex(columnIndex)"
12755
+ [logicalColIndex]="getLogicalColIndex(column)"
12754
12756
  ></td>
12755
12757
  }
12756
12758
  `,
@@ -13930,13 +13932,13 @@ class ToolbarToolBase {
13930
13932
  get buttonElement() {
13931
13933
  return this.host.getButton();
13932
13934
  }
13933
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToolbarToolBase, deps: [{ token: i54.ToolBarButtonComponent }, { token: 'command' }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
13935
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToolbarToolBase, deps: [{ token: i57.ToolBarButtonComponent }, { token: 'command' }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
13934
13936
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: ToolbarToolBase, isStandalone: true, ngImport: i0 });
13935
13937
  }
13936
13938
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToolbarToolBase, decorators: [{
13937
13939
  type: Directive,
13938
13940
  args: [{}]
13939
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: undefined, decorators: [{
13941
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: undefined, decorators: [{
13940
13942
  type: Inject,
13941
13943
  args: ['command']
13942
13944
  }] }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
@@ -14138,7 +14140,7 @@ class ColumnChooserToolbarDirective extends ToolbarToolBase {
14138
14140
  this.host.selected = false;
14139
14141
  focusAnchor && this.buttonElement?.focus({ preventScroll: true });
14140
14142
  }
14141
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ColumnChooserToolbarDirective, deps: [{ token: i0.Renderer2 }, { token: i2.PopupService }, { token: i54.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i54.RefreshService }, { token: AdaptiveGridService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
14143
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ColumnChooserToolbarDirective, deps: [{ token: i0.Renderer2 }, { token: i2.PopupService }, { token: i57.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i57.RefreshService }, { token: AdaptiveGridService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
14142
14144
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: ColumnChooserToolbarDirective, isStandalone: true, selector: "[kendoGridColumnChooserTool]", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll", filterable: "filterable", showSelectAll: "showSelectAll" }, usesInheritance: true, ngImport: i0 });
14143
14145
  }
14144
14146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ColumnChooserToolbarDirective, decorators: [{
@@ -14147,7 +14149,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
14147
14149
  selector: '[kendoGridColumnChooserTool]',
14148
14150
  standalone: true
14149
14151
  }]
14150
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i2.PopupService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i54.RefreshService }, { type: AdaptiveGridService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }], propDecorators: { autoSync: [{
14152
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i2.PopupService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i57.RefreshService }, { type: AdaptiveGridService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }], propDecorators: { autoSync: [{
14151
14153
  type: Input
14152
14154
  }], allowHideAll: [{
14153
14155
  type: Input
@@ -17497,7 +17499,7 @@ class CSVCommandToolbarDirective extends ToolbarToolBase {
17497
17499
  e.preventDefault();
17498
17500
  this.csvService.exportClick.emit();
17499
17501
  }
17500
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CSVCommandToolbarDirective, deps: [{ token: CSVService }, { token: i54.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
17502
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CSVCommandToolbarDirective, deps: [{ token: CSVService }, { token: i57.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
17501
17503
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: CSVCommandToolbarDirective, isStandalone: true, selector: "[kendoGridCSVTool]", usesInheritance: true, ngImport: i0 });
17502
17504
  }
17503
17505
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CSVCommandToolbarDirective, decorators: [{
@@ -17506,7 +17508,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
17506
17508
  selector: '[kendoGridCSVTool]',
17507
17509
  standalone: true
17508
17510
  }]
17509
- }], ctorParameters: () => [{ type: CSVService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
17511
+ }], ctorParameters: () => [{ type: CSVService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
17510
17512
 
17511
17513
  /**
17512
17514
  * @hidden
@@ -19952,14 +19954,15 @@ class HeaderComponent {
19952
19954
  }
19953
19955
  onHeaderKeydown(column, args) {
19954
19956
  const code = normalizeKeys(args);
19955
- if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu && this.isFilterable(column)) {
19957
+ const isColumnGroupComponent = this.isColumnGroupComponent(column);
19958
+ if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu && this.isFilterable(column) && !isColumnGroupComponent) {
19956
19959
  args.preventDefault();
19957
19960
  args.stopImmediatePropagation();
19958
19961
  const filterMenu = this.filterMenus.find(fm => fm.column === column);
19959
19962
  filterMenu.toggle(filterMenu.anchor.nativeElement, filterMenu.template);
19960
19963
  return;
19961
19964
  }
19962
- if (code === Keys.ArrowDown && args.altKey && this.showColumnMenu(column)) {
19965
+ if (code === Keys.ArrowDown && args.altKey && this.showColumnMenu(column) && !isColumnGroupComponent) {
19963
19966
  args.preventDefault();
19964
19967
  args.stopImmediatePropagation();
19965
19968
  const columnMenu = this.columnMenus.find(cm => cm.column === column);
@@ -19968,7 +19971,7 @@ class HeaderComponent {
19968
19971
  }
19969
19972
  const isCtrlOrMeta = args.ctrlKey || args.metaKey;
19970
19973
  const isGroupingKeyShortcut = (code === Keys.Enter || code === Keys.Space) && isCtrlOrMeta;
19971
- if (isGroupingKeyShortcut && this.isGroupable(column)) {
19974
+ if (isGroupingKeyShortcut && this.isGroupable(column) && !isColumnGroupComponent) {
19972
19975
  args.preventDefault();
19973
19976
  args.stopImmediatePropagation();
19974
19977
  const isGroupedByField = this.groups.some(gr => gr.field === column.field);
@@ -19987,22 +19990,29 @@ class HeaderComponent {
19987
19990
  const isReorderingKeyShortcut = isLeftOrRightArrow && isCtrlOrMeta;
19988
19991
  if (isReorderingKeyShortcut && this.isReorderable(column)) {
19989
19992
  args.preventDefault();
19990
- const columnsCount = this.columnInfoService.leafNamedColumns.length;
19993
+ const allColumns = sortColumns(this.columnInfoService.list().toArray()).filter(col => col.level === column.level);
19994
+ const columnsCount = allColumns.length;
19991
19995
  const reorderDirection = code === Keys.ArrowLeft ? -1 : 1;
19992
19996
  const rtlMultiplier = this.contextService.localization.rtl ? -1 : 1;
19993
19997
  const reorderDirectionOffset = reorderDirection * rtlMultiplier;
19994
- const newIndex = column.leafIndex + reorderDirectionOffset;
19998
+ const oldIndex = allColumns.indexOf(column);
19999
+ let newIndex = oldIndex + reorderDirectionOffset;
20000
+ let targetColumn = allColumns[newIndex];
20001
+ while (isPresent(targetColumn) && targetColumn.hidden) {
20002
+ targetColumn = allColumns[newIndex + reorderDirectionOffset];
20003
+ newIndex += reorderDirectionOffset;
20004
+ }
19995
20005
  const normalizedNewIndex = Math.min(Math.max(0, newIndex), columnsCount - 1);
19996
20006
  const gridInstance = this.contextService.grid;
19997
20007
  gridInstance.reorderColumn(column, normalizedNewIndex, { before: reorderDirectionOffset < 0 });
19998
20008
  gridInstance.columnReorder.emit(new ColumnReorderEvent({
19999
20009
  column,
20000
20010
  newIndex: normalizedNewIndex,
20001
- oldIndex: column.leafIndex
20011
+ oldIndex
20002
20012
  }));
20003
20013
  return;
20004
20014
  }
20005
- if (!this.sortable || args.defaultPrevented || column.sortable === false) {
20015
+ if (!this.sortable || args.defaultPrevented || column.sortable === false || isColumnGroupComponent) {
20006
20016
  return;
20007
20017
  }
20008
20018
  if (code === Keys.Enter && isPresent(column.field)) {
@@ -20296,7 +20306,7 @@ class HeaderComponent {
20296
20306
  >
20297
20307
  </th>
20298
20308
  }
20299
- @for (column of columnsForLevel(levelIndex); track column.id; let columnIndex = $index; let last = $last) {
20309
+ @for (column of columnsForLevel(levelIndex); track $index; let columnIndex = $index; let last = $last) {
20300
20310
  @if (!isColumnGroupComponent(column)) {
20301
20311
  <th
20302
20312
  kendoGridLogicalCell
@@ -20443,6 +20453,7 @@ class HeaderComponent {
20443
20453
  [rowSpan]="column.rowspan(totalColumnLevels)"
20444
20454
  [colSpan]="column.colspan"
20445
20455
  [headerLabelText]="column.title || getColumnComponent(column).field"
20456
+ (keydown)="onHeaderKeydown(getColumnComponent(column), $event)"
20446
20457
  kendoDropTarget
20447
20458
  kendoDraggable
20448
20459
  kendoDraggableColumn
@@ -20544,7 +20555,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
20544
20555
  >
20545
20556
  </th>
20546
20557
  }
20547
- @for (column of columnsForLevel(levelIndex); track column.id; let columnIndex = $index; let last = $last) {
20558
+ @for (column of columnsForLevel(levelIndex); track $index; let columnIndex = $index; let last = $last) {
20548
20559
  @if (!isColumnGroupComponent(column)) {
20549
20560
  <th
20550
20561
  kendoGridLogicalCell
@@ -20691,6 +20702,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
20691
20702
  [rowSpan]="column.rowspan(totalColumnLevels)"
20692
20703
  [colSpan]="column.colspan"
20693
20704
  [headerLabelText]="column.title || getColumnComponent(column).field"
20705
+ (keydown)="onHeaderKeydown(getColumnComponent(column), $event)"
20694
20706
  kendoDropTarget
20695
20707
  kendoDraggable
20696
20708
  kendoDraggableColumn
@@ -24124,7 +24136,7 @@ const packageMetadata = {
24124
24136
  productCode: 'KENDOUIANGULAR',
24125
24137
  productCodes: ['KENDOUIANGULAR'],
24126
24138
  publishDate: 0,
24127
- version: '23.0.0-develop.1',
24139
+ version: '23.0.0-develop.11',
24128
24140
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
24129
24141
  };
24130
24142
 
@@ -29097,8 +29109,72 @@ class GridMessages extends ComponentMessages {
29097
29109
  * and the message is rendered as `3 items are selected`.
29098
29110
  */
29099
29111
  multiCheckboxFilterSelectedItemsCount;
29112
+ /**
29113
+ * The aria-label for the Speech to Text button of the Smart Bar tool in AI Assistant mode.
29114
+ */
29115
+ smartBoxSpeechToTextButton;
29116
+ /**
29117
+ * The aria-label for the Submit button of the Smart Bar tool in AI Assistant mode.
29118
+ */
29119
+ smartBoxSubmitPromptButton;
29120
+ /**
29121
+ * The placeholder text for the SmartBox tool Search mode input
29122
+ */
29123
+ smartBoxSearchPlaceholder;
29124
+ /**
29125
+ * The placeholder text for the SmartBox tool Semantic Search mode input
29126
+ */
29127
+ smartBoxSemanticSearchPlaceholder;
29128
+ /**
29129
+ * The placeholder text for the SmartBox tool AI Assistant mode input
29130
+ */
29131
+ smartBoxAIAssistantPlaceholder;
29132
+ /**
29133
+ * The text for the suggested prompts section in the SmartBox tool AI Assistant mode.
29134
+ */
29135
+ smartBoxSuggestedPrompts;
29136
+ /**
29137
+ * The text displayed when there are no previous searches in the SmartBox tool.
29138
+ */
29139
+ smartBoxNoPreviousSearches;
29140
+ /**
29141
+ * The text displayed when there are no previous prompts in the SmartBox tool.
29142
+ */
29143
+ smartBoxNoPreviousPrompts;
29144
+ /**
29145
+ * The text displayed when there is previous search history in the SmartBox tool.
29146
+ */
29147
+ smartBoxPreviouslySearched;
29148
+ /**
29149
+ * The text displayed when there is previous ask history in the SmartBox tool.
29150
+ */
29151
+ smartBoxPreviouslyAsked;
29152
+ /**
29153
+ * The Search mode text displayed in the SmartBox tool search modes list.
29154
+ */
29155
+ searchModeListItemText;
29156
+ /**
29157
+ * The Search mode description displayed in the SmartBox tool search modes list.
29158
+ */
29159
+ searchModeListItemDescription;
29160
+ /**
29161
+ * The Semantic Search mode text displayed in the SmartBox tool search modes list.
29162
+ */
29163
+ semanticSearchModeListItemText;
29164
+ /**
29165
+ * The Semantic Search mode description displayed in the SmartBox tool search modes list.
29166
+ */
29167
+ semanticSearchModeListItemDescription;
29168
+ /**
29169
+ * The text for the Search mode button in the SmartBox tool popup.
29170
+ */
29171
+ smartBoxSearchModePopupButton;
29172
+ /**
29173
+ * The text for the AI Assistant mode button in the SmartBox tool popup.
29174
+ */
29175
+ smartBoxAIAssistantModePopupButton;
29100
29176
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
29101
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GridMessages, isStandalone: true, 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", aiAssistantSelectionNotEnabled: "aiAssistantSelectionNotEnabled", aiAssistantSelectionRowModeRequired: "aiAssistantSelectionRowModeRequired", aiAssistantSelectionCellModeRequired: "aiAssistantSelectionCellModeRequired", 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", columnChooserSelectAll: "columnChooserSelectAll", columnChooserSearchLabel: "columnChooserSearchLabel", columnChooserSelectedColumnsCount: "columnChooserSelectedColumnsCount", 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", csvExportToolbarToolText: "csvExportToolbarToolText", 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", multiCheckboxFilterSearchPlaceholder: "multiCheckboxFilterSearchPlaceholder", multiCheckboxFilterSelectAllLabel: "multiCheckboxFilterSelectAllLabel", multiCheckboxFilterSelectedItemsCount: "multiCheckboxFilterSelectedItemsCount" }, usesInheritance: true, ngImport: i0 });
29177
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GridMessages, isStandalone: true, 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", aiAssistantSelectionNotEnabled: "aiAssistantSelectionNotEnabled", aiAssistantSelectionRowModeRequired: "aiAssistantSelectionRowModeRequired", aiAssistantSelectionCellModeRequired: "aiAssistantSelectionCellModeRequired", 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", columnChooserSelectAll: "columnChooserSelectAll", columnChooserSearchLabel: "columnChooserSearchLabel", columnChooserSelectedColumnsCount: "columnChooserSelectedColumnsCount", 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", csvExportToolbarToolText: "csvExportToolbarToolText", 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", multiCheckboxFilterSearchPlaceholder: "multiCheckboxFilterSearchPlaceholder", multiCheckboxFilterSelectAllLabel: "multiCheckboxFilterSelectAllLabel", multiCheckboxFilterSelectedItemsCount: "multiCheckboxFilterSelectedItemsCount", smartBoxSpeechToTextButton: "smartBoxSpeechToTextButton", smartBoxSubmitPromptButton: "smartBoxSubmitPromptButton", smartBoxSearchPlaceholder: "smartBoxSearchPlaceholder", smartBoxSemanticSearchPlaceholder: "smartBoxSemanticSearchPlaceholder", smartBoxAIAssistantPlaceholder: "smartBoxAIAssistantPlaceholder", smartBoxSuggestedPrompts: "smartBoxSuggestedPrompts", smartBoxNoPreviousSearches: "smartBoxNoPreviousSearches", smartBoxNoPreviousPrompts: "smartBoxNoPreviousPrompts", smartBoxPreviouslySearched: "smartBoxPreviouslySearched", smartBoxPreviouslyAsked: "smartBoxPreviouslyAsked", searchModeListItemText: "searchModeListItemText", searchModeListItemDescription: "searchModeListItemDescription", semanticSearchModeListItemText: "semanticSearchModeListItemText", semanticSearchModeListItemDescription: "semanticSearchModeListItemDescription", smartBoxSearchModePopupButton: "smartBoxSearchModePopupButton", smartBoxAIAssistantModePopupButton: "smartBoxAIAssistantModePopupButton" }, usesInheritance: true, ngImport: i0 });
29102
29178
  }
29103
29179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridMessages, decorators: [{
29104
29180
  type: Directive,
@@ -29374,6 +29450,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
29374
29450
  type: Input
29375
29451
  }], multiCheckboxFilterSelectedItemsCount: [{
29376
29452
  type: Input
29453
+ }], smartBoxSpeechToTextButton: [{
29454
+ type: Input
29455
+ }], smartBoxSubmitPromptButton: [{
29456
+ type: Input
29457
+ }], smartBoxSearchPlaceholder: [{
29458
+ type: Input
29459
+ }], smartBoxSemanticSearchPlaceholder: [{
29460
+ type: Input
29461
+ }], smartBoxAIAssistantPlaceholder: [{
29462
+ type: Input
29463
+ }], smartBoxSuggestedPrompts: [{
29464
+ type: Input
29465
+ }], smartBoxNoPreviousSearches: [{
29466
+ type: Input
29467
+ }], smartBoxNoPreviousPrompts: [{
29468
+ type: Input
29469
+ }], smartBoxPreviouslySearched: [{
29470
+ type: Input
29471
+ }], smartBoxPreviouslyAsked: [{
29472
+ type: Input
29473
+ }], searchModeListItemText: [{
29474
+ type: Input
29475
+ }], searchModeListItemDescription: [{
29476
+ type: Input
29477
+ }], semanticSearchModeListItemText: [{
29478
+ type: Input
29479
+ }], semanticSearchModeListItemDescription: [{
29480
+ type: Input
29481
+ }], smartBoxSearchModePopupButton: [{
29482
+ type: Input
29483
+ }], smartBoxAIAssistantModePopupButton: [{
29484
+ type: Input
29377
29485
  }] } });
29378
29486
 
29379
29487
  /**
@@ -31944,6 +32052,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
31944
32052
  args: [GroupToolbarToolComponent]
31945
32053
  }] } });
31946
32054
 
32055
+ /**
32056
+ * @hidden
32057
+ */
32058
+ class SearchService {
32059
+ /**
32060
+ * Fires when the search descriptor is set.
32061
+ */
32062
+ changes = new Subject();
32063
+ /**
32064
+ * Sets the search descriptor.
32065
+ *
32066
+ * @param {CompositeFilterDescriptor} value - The search descriptor to set.
32067
+ */
32068
+ search(value) {
32069
+ this.changes.next(value);
32070
+ }
32071
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32072
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SearchService });
32073
+ }
32074
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SearchService, decorators: [{
32075
+ type: Injectable
32076
+ }] });
32077
+
31947
32078
  const createControl = (source) => (acc, key) => {
31948
32079
  acc[key] = new FormControl(source[key]);
31949
32080
  return acc;
@@ -33127,7 +33258,7 @@ class GridComponent {
33127
33258
  }
33128
33259
  /**
33129
33260
  * Builds the request body for the AI service based on the provided prompt message.
33130
- * Allows developers to construct their own AI service requests.
33261
+ * Allows developers to construct the AI service requests manually ([see example](slug:ai_assistant_tools_setup#manual-integration)).
33131
33262
  *
33132
33263
  * @param promptMessage - The prompt message to send to the AI service.
33133
33264
  * @returns The request body object ready to be sent to the AI service.
@@ -33147,7 +33278,7 @@ class GridComponent {
33147
33278
  }
33148
33279
  /**
33149
33280
  * Processes an AI service response and applies the commands to the Grid.
33150
- * Allows developers to handle their own AI service responses manually.
33281
+ * Allows developers to handle the AI service responses manually ([see example](slug:ai_assistant_tools_setup#manual-integration)).
33151
33282
  *
33152
33283
  * @param response - The AI service response containing optional message and commands array.
33153
33284
  *
@@ -34407,7 +34538,8 @@ class GridComponent {
34407
34538
  AdaptiveGridService,
34408
34539
  ColumnMenuService,
34409
34540
  MenuTabbingService,
34410
- DataMappingService
34541
+ DataMappingService,
34542
+ SearchService
34411
34543
  ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "statusBarTemplateChildren", predicate: StatusBarTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["dialogContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "windowContainer", first: true, predicate: ["windowContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "adaptiveRenderer", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
34412
34544
  <ng-container kendoGridLocalizedMessages
34413
34545
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
@@ -34811,6 +34943,54 @@ class GridComponent {
34811
34943
 
34812
34944
  i18n-multiCheckboxFilterSelectedItemsCount="kendo.grid.multiCheckboxFilterSelectedItemsCount|The text for the multi-checkbox filter selected items count"
34813
34945
  multiCheckboxFilterSelectedItemsCount="{{ '{selectedItemsCount} selected items' }}"
34946
+
34947
+ i18n-smartBoxSpeechToTextButton="kendo.grid.smartBoxSpeechToTextButton|The aria-label for the Speech to Text button of the SmartBox tool in AI Assistant mode."
34948
+ smartBoxSpeechToTextButton="Voice input"
34949
+
34950
+ i18n-smartBoxSubmitPromptButton="kendo.grid.smartBoxSubmitPromptButton|The aria-label for the Submit button of the SmartBox tool in AI Assistant mode."
34951
+ smartBoxSubmitPromptButton="Submit prompt"
34952
+
34953
+ i18n-smartBoxSearchPlaceholder="kendo.grid.smartBoxSearchPlaceholder|The placeholder text for the SmartBox tool Search mode input"
34954
+ smartBoxSearchPlaceholder="Search..."
34955
+
34956
+ i18n-smartBoxSemanticSearchPlaceholder="kendo.grid.smartBoxSemanticSearchPlaceholder|The placeholder text for the SmartBox tool Semantic Search mode input"
34957
+ smartBoxSemanticSearchPlaceholder="Semantic Search"
34958
+
34959
+ i18n-smartBoxAIAssistantPlaceholder="kendo.grid.smartBoxAIAssistantPlaceholder|The placeholder text for the SmartBox tool AI Assistant mode input"
34960
+ smartBoxAIAssistantPlaceholder="Sort, Filter, or group with AI"
34961
+
34962
+ i18n-smartBoxSuggestedPrompts="kendo.grid.smartBoxSuggestedPrompts|The text for the suggested prompts section in the SmartBox tool AI Assistant mode."
34963
+ smartBoxSuggestedPrompts="Suggested prompts"
34964
+
34965
+ i18n-smartBoxNoPreviousSearches="kendo.grid.smartBoxNoPreviousSearches|The text displayed when there are no previous searches in the SmartBox tool."
34966
+ smartBoxNoPreviousSearches="No previous searches"
34967
+
34968
+ i18n-smartBoxNoPreviousPrompts="kendo.grid.smartBoxNoPreviousPrompts|The text displayed when there are no previous prompts in the SmartBox tool."
34969
+ smartBoxNoPreviousPrompts="No previous prompts"
34970
+
34971
+ i18n-smartBoxPreviouslySearched="kendo.grid.smartBoxPreviouslySearched|The text displayed when there is previous search history in the SmartBox tool."
34972
+ smartBoxPreviouslySearched="Previously Searched"
34973
+
34974
+ i18n-smartBoxPreviouslyAsked="kendo.grid.smartBoxPreviouslyAsked|The text displayed when there is previous ask history in the SmartBox tool."
34975
+ smartBoxPreviouslyAsked="Previously Asked"
34976
+
34977
+ i18n-searchModeListItemText="kendo.grid.searchModeListItemText|The Search mode text displayed in the SmartBox tool search modes list."
34978
+ searchModeListItemText="Search"
34979
+
34980
+ i18n-searchModeListItemDescription="kendo.grid.searchModeListItemDescription|The Search mode description displayed in the SmartBox tool search modes list."
34981
+ searchModeListItemDescription="Looks for exact word matches accross your data."
34982
+
34983
+ i18n-semanticSearchModeListItemText="kendo.grid.semanticSearchModeListItemText|The Semantic Search mode text displayed in the SmartBox tool search modes list."
34984
+ semanticSearchModeListItemText="Semantic Search"
34985
+
34986
+ i18n-semanticSearchModeListItemDescription="kendo.grid.semanticSearchModeListItemDescription|The Semantic Search mode description displayed in the SmartBox tool search modes list."
34987
+ semanticSearchModeListItemDescription="Understands context to surface the most relevant results."
34988
+
34989
+ i18n-smartBoxSearchModePopupButton="kendo.grid.smartBoxSearchModePopupButton|The text for the Search mode button in the SmartBox tool popup."
34990
+ smartBoxSearchModePopupButton="Search"
34991
+
34992
+ i18n-smartBoxAIAssistantModePopupButton="kendo.grid.smartBoxAIAssistantModePopupButton|The text for the AI Assistant mode button in the SmartBox tool popup."
34993
+ smartBoxAIAssistantModePopupButton="AI Assistant"
34814
34994
  >
34815
34995
  </ng-container>
34816
34996
  @if (showTopToolbar) {
@@ -34832,6 +35012,7 @@ class GridComponent {
34832
35012
  [skip]="skip"
34833
35013
  [size]="size"
34834
35014
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
35015
+ [adaptiveMode]="adaptiveMode"
34835
35016
  [buttonCount]="normalizedPageableSettings.buttonCount"
34836
35017
  [info]="normalizedPageableSettings.info"
34837
35018
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -35181,6 +35362,7 @@ class GridComponent {
35181
35362
  [skip]="skip"
35182
35363
  [size]="size"
35183
35364
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
35365
+ [adaptiveMode]="adaptiveMode"
35184
35366
  [buttonCount]="normalizedPageableSettings.buttonCount"
35185
35367
  [info]="normalizedPageableSettings.info"
35186
35368
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -35253,7 +35435,8 @@ class GridComponent {
35253
35435
  <kendo-pager-page-sizes
35254
35436
  [size]="size"
35255
35437
  [pageSizes]="normalizedPageableSettings.pageSizes"
35256
- [showItemsText]="showPagerItemsText">
35438
+ [showItemsText]="showPagerItemsText"
35439
+ [adaptiveMode]="adaptiveMode">
35257
35440
  </kendo-pager-page-sizes>
35258
35441
  }
35259
35442
  @if (normalizedPageableSettings.info) {
@@ -35274,7 +35457,7 @@ class GridComponent {
35274
35457
  @if (showLicenseWatermark) {
35275
35458
  <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
35276
35459
  }
35277
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns", "totalColumnsCount"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "rowsToRender", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass", "rowHeight", "detailRowHeight"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }, { kind: "component", type: i53.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i53.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i53.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["showPageText", "size"] }, { kind: "component", type: i53.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i53.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i53.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i53.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i53.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i53.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange", "pagerInputVisibilityChange", "pageTextVisibilityChange", "itemsTextVisibilityChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-grid-adaptive-renderer" }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], encapsulation: i0.ViewEncapsulation.None });
35460
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns", "totalColumnsCount"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "rowsToRender", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass", "rowHeight", "detailRowHeight"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }, { kind: "component", type: i56.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i56.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i56.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["showPageText", "size"] }, { kind: "component", type: i56.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i56.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i56.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i56.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i56.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i56.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange", "pagerInputVisibilityChange", "pageTextVisibilityChange", "itemsTextVisibilityChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-grid-adaptive-renderer" }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], encapsulation: i0.ViewEncapsulation.None });
35278
35461
  }
35279
35462
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridComponent, decorators: [{
35280
35463
  type: Component,
@@ -35333,7 +35516,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
35333
35516
  AdaptiveGridService,
35334
35517
  ColumnMenuService,
35335
35518
  MenuTabbingService,
35336
- DataMappingService
35519
+ DataMappingService,
35520
+ SearchService
35337
35521
  ],
35338
35522
  selector: 'kendo-grid',
35339
35523
  template: `
@@ -35739,6 +35923,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
35739
35923
 
35740
35924
  i18n-multiCheckboxFilterSelectedItemsCount="kendo.grid.multiCheckboxFilterSelectedItemsCount|The text for the multi-checkbox filter selected items count"
35741
35925
  multiCheckboxFilterSelectedItemsCount="{{ '{selectedItemsCount} selected items' }}"
35926
+
35927
+ i18n-smartBoxSpeechToTextButton="kendo.grid.smartBoxSpeechToTextButton|The aria-label for the Speech to Text button of the SmartBox tool in AI Assistant mode."
35928
+ smartBoxSpeechToTextButton="Voice input"
35929
+
35930
+ i18n-smartBoxSubmitPromptButton="kendo.grid.smartBoxSubmitPromptButton|The aria-label for the Submit button of the SmartBox tool in AI Assistant mode."
35931
+ smartBoxSubmitPromptButton="Submit prompt"
35932
+
35933
+ i18n-smartBoxSearchPlaceholder="kendo.grid.smartBoxSearchPlaceholder|The placeholder text for the SmartBox tool Search mode input"
35934
+ smartBoxSearchPlaceholder="Search..."
35935
+
35936
+ i18n-smartBoxSemanticSearchPlaceholder="kendo.grid.smartBoxSemanticSearchPlaceholder|The placeholder text for the SmartBox tool Semantic Search mode input"
35937
+ smartBoxSemanticSearchPlaceholder="Semantic Search"
35938
+
35939
+ i18n-smartBoxAIAssistantPlaceholder="kendo.grid.smartBoxAIAssistantPlaceholder|The placeholder text for the SmartBox tool AI Assistant mode input"
35940
+ smartBoxAIAssistantPlaceholder="Sort, Filter, or group with AI"
35941
+
35942
+ i18n-smartBoxSuggestedPrompts="kendo.grid.smartBoxSuggestedPrompts|The text for the suggested prompts section in the SmartBox tool AI Assistant mode."
35943
+ smartBoxSuggestedPrompts="Suggested prompts"
35944
+
35945
+ i18n-smartBoxNoPreviousSearches="kendo.grid.smartBoxNoPreviousSearches|The text displayed when there are no previous searches in the SmartBox tool."
35946
+ smartBoxNoPreviousSearches="No previous searches"
35947
+
35948
+ i18n-smartBoxNoPreviousPrompts="kendo.grid.smartBoxNoPreviousPrompts|The text displayed when there are no previous prompts in the SmartBox tool."
35949
+ smartBoxNoPreviousPrompts="No previous prompts"
35950
+
35951
+ i18n-smartBoxPreviouslySearched="kendo.grid.smartBoxPreviouslySearched|The text displayed when there is previous search history in the SmartBox tool."
35952
+ smartBoxPreviouslySearched="Previously Searched"
35953
+
35954
+ i18n-smartBoxPreviouslyAsked="kendo.grid.smartBoxPreviouslyAsked|The text displayed when there is previous ask history in the SmartBox tool."
35955
+ smartBoxPreviouslyAsked="Previously Asked"
35956
+
35957
+ i18n-searchModeListItemText="kendo.grid.searchModeListItemText|The Search mode text displayed in the SmartBox tool search modes list."
35958
+ searchModeListItemText="Search"
35959
+
35960
+ i18n-searchModeListItemDescription="kendo.grid.searchModeListItemDescription|The Search mode description displayed in the SmartBox tool search modes list."
35961
+ searchModeListItemDescription="Looks for exact word matches accross your data."
35962
+
35963
+ i18n-semanticSearchModeListItemText="kendo.grid.semanticSearchModeListItemText|The Semantic Search mode text displayed in the SmartBox tool search modes list."
35964
+ semanticSearchModeListItemText="Semantic Search"
35965
+
35966
+ i18n-semanticSearchModeListItemDescription="kendo.grid.semanticSearchModeListItemDescription|The Semantic Search mode description displayed in the SmartBox tool search modes list."
35967
+ semanticSearchModeListItemDescription="Understands context to surface the most relevant results."
35968
+
35969
+ i18n-smartBoxSearchModePopupButton="kendo.grid.smartBoxSearchModePopupButton|The text for the Search mode button in the SmartBox tool popup."
35970
+ smartBoxSearchModePopupButton="Search"
35971
+
35972
+ i18n-smartBoxAIAssistantModePopupButton="kendo.grid.smartBoxAIAssistantModePopupButton|The text for the AI Assistant mode button in the SmartBox tool popup."
35973
+ smartBoxAIAssistantModePopupButton="AI Assistant"
35742
35974
  >
35743
35975
  </ng-container>
35744
35976
  @if (showTopToolbar) {
@@ -35760,6 +35992,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
35760
35992
  [skip]="skip"
35761
35993
  [size]="size"
35762
35994
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
35995
+ [adaptiveMode]="adaptiveMode"
35763
35996
  [buttonCount]="normalizedPageableSettings.buttonCount"
35764
35997
  [info]="normalizedPageableSettings.info"
35765
35998
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -36109,6 +36342,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
36109
36342
  [skip]="skip"
36110
36343
  [size]="size"
36111
36344
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
36345
+ [adaptiveMode]="adaptiveMode"
36112
36346
  [buttonCount]="normalizedPageableSettings.buttonCount"
36113
36347
  [info]="normalizedPageableSettings.info"
36114
36348
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -36181,7 +36415,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
36181
36415
  <kendo-pager-page-sizes
36182
36416
  [size]="size"
36183
36417
  [pageSizes]="normalizedPageableSettings.pageSizes"
36184
- [showItemsText]="showPagerItemsText">
36418
+ [showItemsText]="showPagerItemsText"
36419
+ [adaptiveMode]="adaptiveMode">
36185
36420
  </kendo-pager-page-sizes>
36186
36421
  }
36187
36422
  @if (normalizedPageableSettings.info) {
@@ -36525,6 +36760,7 @@ class DataBindingDirective {
36525
36760
  changeDetector;
36526
36761
  localDataChangesService;
36527
36762
  rowReorderService;
36763
+ searchService;
36528
36764
  /**
36529
36765
  * Sets the number of records to skip in the Grid.
36530
36766
  *
@@ -36586,11 +36822,14 @@ class DataBindingDirective {
36586
36822
  stateChangeSubscription;
36587
36823
  dataChangedSubscription;
36588
36824
  rowReorderSubscription;
36589
- constructor(grid, changeDetector, localDataChangesService, rowReorderService, ctx) {
36825
+ searchSubscription;
36826
+ searchFilter;
36827
+ constructor(grid, changeDetector, localDataChangesService, rowReorderService, searchService, ctx) {
36590
36828
  this.grid = grid;
36591
36829
  this.changeDetector = changeDetector;
36592
36830
  this.localDataChangesService = localDataChangesService;
36593
36831
  this.rowReorderService = rowReorderService;
36832
+ this.searchService = searchService;
36594
36833
  if (localDataChangesService) {
36595
36834
  this.dataChangedSubscription = this.localDataChangesService.changes.subscribe(this.rebind.bind(this));
36596
36835
  }
@@ -36609,6 +36848,13 @@ class DataBindingDirective {
36609
36848
  .rowReorder
36610
36849
  .subscribe(this.onRowReorder.bind(this));
36611
36850
  }
36851
+ if (this.searchService) {
36852
+ this.searchSubscription = this.searchService
36853
+ .changes
36854
+ .subscribe((searchFilter) => {
36855
+ this.onSearch.bind(this)(searchFilter);
36856
+ });
36857
+ }
36612
36858
  }
36613
36859
  /**
36614
36860
  * @hidden
@@ -36623,6 +36869,9 @@ class DataBindingDirective {
36623
36869
  if (this.rowReorderSubscription) {
36624
36870
  this.rowReorderSubscription.unsubscribe();
36625
36871
  }
36872
+ if (this.searchSubscription) {
36873
+ this.searchSubscription.unsubscribe();
36874
+ }
36626
36875
  }
36627
36876
  ngOnChanges(changes) {
36628
36877
  if (anyChanged(["pageSize", "skip", "sort", "group", "filter"], changes)) {
@@ -36648,6 +36897,18 @@ class DataBindingDirective {
36648
36897
  this.rowReorderService.reorderRows(ev, this.originalData);
36649
36898
  this.rebind();
36650
36899
  }
36900
+ /**
36901
+ * @hidden
36902
+ */
36903
+ onSearch(searchFilter) {
36904
+ this.searchFilter = searchFilter;
36905
+ const combinedFilter = this.combineFilters();
36906
+ const state = { ...this.state, filter: combinedFilter };
36907
+ this.grid.data = this.process(state);
36908
+ this.grid.updateNavigationMetadata();
36909
+ this.grid.ngDoCheck();
36910
+ this.dataChanged = false;
36911
+ }
36651
36912
  /**
36652
36913
  * @hidden
36653
36914
  */
@@ -36694,12 +36955,31 @@ class DataBindingDirective {
36694
36955
  this.state.take = this.grid.pageSize;
36695
36956
  }
36696
36957
  }
36697
- this.grid.data = this.process(this.state);
36958
+ let combinedFilter = null;
36959
+ if (this.searchFilter) {
36960
+ combinedFilter = this.combineFilters();
36961
+ const state = { ...this.state, filter: combinedFilter };
36962
+ this.grid.data = this.process(state);
36963
+ }
36964
+ else {
36965
+ this.grid.data = this.process(this.state);
36966
+ }
36698
36967
  this.grid.updateNavigationMetadata();
36699
36968
  this.grid.ngDoCheck();
36700
36969
  this.dataChanged = false;
36701
36970
  }
36702
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DataBindingDirective, deps: [{ token: GridComponent }, { token: i0.ChangeDetectorRef }, { token: LocalDataChangesService }, { token: RowReorderService }, { token: ContextService }], target: i0.ɵɵFactoryTarget.Directive });
36971
+ combineFilters() {
36972
+ let combinedFilter = null;
36973
+ if (this.state.filter && this.searchFilter) {
36974
+ combinedFilter = {
36975
+ logic: 'and',
36976
+ filters: [...this.state.filter.filters, this.searchFilter]
36977
+ };
36978
+ return combinedFilter;
36979
+ }
36980
+ return this.searchFilter || this.state.filter;
36981
+ }
36982
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DataBindingDirective, deps: [{ token: GridComponent }, { token: i0.ChangeDetectorRef }, { token: LocalDataChangesService }, { token: RowReorderService }, { token: SearchService }, { token: ContextService }], target: i0.ɵɵFactoryTarget.Directive });
36703
36983
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: DataBindingDirective, isStandalone: true, selector: "[kendoGridBinding]", inputs: { skip: "skip", sort: "sort", filter: "filter", pageSize: "pageSize", group: "group", data: ["kendoGridBinding", "data"] }, exportAs: ["kendoGridBinding"], usesOnChanges: true, ngImport: i0 });
36704
36984
  }
36705
36985
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DataBindingDirective, decorators: [{
@@ -36709,7 +36989,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
36709
36989
  exportAs: 'kendoGridBinding',
36710
36990
  standalone: true
36711
36991
  }]
36712
- }], ctorParameters: () => [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }, { type: ContextService }], propDecorators: { skip: [{
36992
+ }], ctorParameters: () => [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }, { type: SearchService }, { type: ContextService }], propDecorators: { skip: [{
36713
36993
  type: Input
36714
36994
  }], sort: [{
36715
36995
  type: Input
@@ -37994,7 +38274,7 @@ class PDFCommandToolbarDirective extends ToolbarToolBase {
37994
38274
  e.preventDefault();
37995
38275
  this.pdfService.exportClick.emit();
37996
38276
  }
37997
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFCommandToolbarDirective, deps: [{ token: PDFService }, { token: i54.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
38277
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFCommandToolbarDirective, deps: [{ token: PDFService }, { token: i57.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
37998
38278
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: PDFCommandToolbarDirective, isStandalone: true, selector: "[kendoGridPDFTool]", usesInheritance: true, ngImport: i0 });
37999
38279
  }
38000
38280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFCommandToolbarDirective, decorators: [{
@@ -38003,7 +38283,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38003
38283
  selector: '[kendoGridPDFTool]',
38004
38284
  standalone: true
38005
38285
  }]
38006
- }], ctorParameters: () => [{ type: PDFService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38286
+ }], ctorParameters: () => [{ type: PDFService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38007
38287
 
38008
38288
  /**
38009
38289
  * Represents the **Export to Excel** toolbar tool of the Grid.
@@ -38039,7 +38319,7 @@ class ExcelCommandToolbarDirective extends ToolbarToolBase {
38039
38319
  e.preventDefault();
38040
38320
  this.excelService.exportClick.emit();
38041
38321
  }
38042
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ExcelCommandToolbarDirective, deps: [{ token: ExcelService }, { token: i54.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
38322
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ExcelCommandToolbarDirective, deps: [{ token: ExcelService }, { token: i57.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
38043
38323
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: ExcelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridExcelTool]", usesInheritance: true, ngImport: i0 });
38044
38324
  }
38045
38325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ExcelCommandToolbarDirective, decorators: [{
@@ -38048,7 +38328,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38048
38328
  selector: '[kendoGridExcelTool]',
38049
38329
  standalone: true
38050
38330
  }]
38051
- }], ctorParameters: () => [{ type: ExcelService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38331
+ }], ctorParameters: () => [{ type: ExcelService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38052
38332
 
38053
38333
  /**
38054
38334
  * @hidden
@@ -38121,13 +38401,13 @@ class ToolbarEditingToolBase extends ToolbarToolBase {
38121
38401
  get isSelectionPresent() {
38122
38402
  return isPresent$1(this.lastSelectionIndex) && this.lastSelectionIndex > -1;
38123
38403
  }
38124
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToolbarEditingToolBase, deps: [{ token: i54.ToolBarButtonComponent }, { token: 'command' }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: EditService }, { token: SelectionService }], target: i0.ɵɵFactoryTarget.Directive });
38404
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToolbarEditingToolBase, deps: [{ token: i57.ToolBarButtonComponent }, { token: 'command' }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: EditService }, { token: SelectionService }], target: i0.ɵɵFactoryTarget.Directive });
38125
38405
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: ToolbarEditingToolBase, isStandalone: true, usesInheritance: true, ngImport: i0 });
38126
38406
  }
38127
38407
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToolbarEditingToolBase, decorators: [{
38128
38408
  type: Directive,
38129
38409
  args: [{}]
38130
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: undefined, decorators: [{
38410
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: undefined, decorators: [{
38131
38411
  type: Inject,
38132
38412
  args: ['command']
38133
38413
  }] }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: EditService }, { type: SelectionService }] });
@@ -38167,7 +38447,7 @@ class AddCommandToolbarDirective extends ToolbarEditingToolBase {
38167
38447
  e.preventDefault();
38168
38448
  this.editService.beginAdd();
38169
38449
  }
38170
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AddCommandToolbarDirective, deps: [{ token: EditService }, { token: i54.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
38450
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AddCommandToolbarDirective, deps: [{ token: EditService }, { token: i57.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
38171
38451
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: AddCommandToolbarDirective, isStandalone: true, selector: "[kendoGridAddTool]", usesInheritance: true, ngImport: i0 });
38172
38452
  }
38173
38453
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AddCommandToolbarDirective, decorators: [{
@@ -38176,7 +38456,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38176
38456
  selector: '[kendoGridAddTool]',
38177
38457
  standalone: true
38178
38458
  }]
38179
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38459
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38180
38460
 
38181
38461
  /**
38182
38462
  * @hidden
@@ -38727,7 +39007,7 @@ class UndoCommandToolbarDirective {
38727
39007
  e.preventDefault();
38728
39008
  this.undoRedoService.onUndo.next(undefined);
38729
39009
  }
38730
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: UndoCommandToolbarDirective, deps: [{ token: UndoRedoService }, { token: i54.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
39010
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: UndoCommandToolbarDirective, deps: [{ token: UndoRedoService }, { token: i57.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
38731
39011
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: UndoCommandToolbarDirective, isStandalone: true, selector: "[kendoGridUndoTool]", ngImport: i0 });
38732
39012
  }
38733
39013
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: UndoCommandToolbarDirective, decorators: [{
@@ -38736,7 +39016,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38736
39016
  selector: '[kendoGridUndoTool]',
38737
39017
  standalone: true,
38738
39018
  }]
38739
- }], ctorParameters: () => [{ type: UndoRedoService }, { type: i54.ToolBarButtonComponent }] });
39019
+ }], ctorParameters: () => [{ type: UndoRedoService }, { type: i57.ToolBarButtonComponent }] });
38740
39020
 
38741
39021
  /**
38742
39022
  * Represents the command that triggers the redo action in the Grid.
@@ -38790,7 +39070,7 @@ class RedoCommandToolbarDirective {
38790
39070
  e.preventDefault();
38791
39071
  this.undoRedoService.onRedo.next(undefined);
38792
39072
  }
38793
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: RedoCommandToolbarDirective, deps: [{ token: UndoRedoService }, { token: i54.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
39073
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: RedoCommandToolbarDirective, deps: [{ token: UndoRedoService }, { token: i57.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
38794
39074
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: RedoCommandToolbarDirective, isStandalone: true, selector: "[kendoGridRedoTool]", ngImport: i0 });
38795
39075
  }
38796
39076
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: RedoCommandToolbarDirective, decorators: [{
@@ -38799,7 +39079,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38799
39079
  selector: '[kendoGridRedoTool]',
38800
39080
  standalone: true,
38801
39081
  }]
38802
- }], ctorParameters: () => [{ type: UndoRedoService }, { type: i54.ToolBarButtonComponent }] });
39082
+ }], ctorParameters: () => [{ type: UndoRedoService }, { type: i57.ToolBarButtonComponent }] });
38803
39083
 
38804
39084
  let incrementingId$2 = 0;
38805
39085
  /**
@@ -38990,7 +39270,7 @@ class SortCommandToolbarDirective {
38990
39270
  get buttonElement() {
38991
39271
  return this.host.getButton();
38992
39272
  }
38993
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SortCommandToolbarDirective, deps: [{ token: i54.ToolBarButtonComponent }, { token: i2.PopupService }, { token: ContextService }, { token: SortService }, { token: ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Directive });
39273
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SortCommandToolbarDirective, deps: [{ token: i57.ToolBarButtonComponent }, { token: i2.PopupService }, { token: ContextService }, { token: SortService }, { token: ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Directive });
38994
39274
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: SortCommandToolbarDirective, isStandalone: true, selector: "[kendoGridSortTool]", ngImport: i0 });
38995
39275
  }
38996
39276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SortCommandToolbarDirective, decorators: [{
@@ -38999,7 +39279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38999
39279
  selector: '[kendoGridSortTool]',
39000
39280
  standalone: true
39001
39281
  }]
39002
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39282
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39003
39283
 
39004
39284
  /**
39005
39285
  * @hidden
@@ -39322,7 +39602,7 @@ class FilterCommandToolbarDirective {
39322
39602
  get buttonElement() {
39323
39603
  return this.host.getButton();
39324
39604
  }
39325
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FilterCommandToolbarDirective, deps: [{ token: i54.ToolBarButtonComponent }, { token: i2.PopupService }, { token: ContextService }, { token: FilterService }, { token: ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Directive });
39605
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FilterCommandToolbarDirective, deps: [{ token: i57.ToolBarButtonComponent }, { token: i2.PopupService }, { token: ContextService }, { token: FilterService }, { token: ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Directive });
39326
39606
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: FilterCommandToolbarDirective, isStandalone: true, selector: "[kendoGridFilterTool]", ngImport: i0 });
39327
39607
  }
39328
39608
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FilterCommandToolbarDirective, decorators: [{
@@ -39331,7 +39611,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39331
39611
  selector: '[kendoGridFilterTool]',
39332
39612
  standalone: true
39333
39613
  }]
39334
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: FilterService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39614
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: FilterService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39335
39615
 
39336
39616
  /**
39337
39617
  * Represents the `edit` command in the Grid. Apply this directive to any `kendo-toolbar-button`
@@ -39367,7 +39647,7 @@ class EditCommandToolbarDirective extends ToolbarEditingToolBase {
39367
39647
  }
39368
39648
  this.editService.beginEdit(this.lastSelectionIndex);
39369
39649
  }
39370
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: EditCommandToolbarDirective, deps: [{ token: EditService }, { token: i54.ToolBarButtonComponent }, { token: SelectionService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
39650
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: EditCommandToolbarDirective, deps: [{ token: EditService }, { token: i57.ToolBarButtonComponent }, { token: SelectionService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
39371
39651
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: EditCommandToolbarDirective, isStandalone: true, selector: "[kendoGridEditTool]", usesInheritance: true, ngImport: i0 });
39372
39652
  }
39373
39653
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: EditCommandToolbarDirective, decorators: [{
@@ -39376,7 +39656,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39376
39656
  selector: '[kendoGridEditTool]',
39377
39657
  standalone: true
39378
39658
  }]
39379
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39659
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39380
39660
 
39381
39661
  /**
39382
39662
  * Represents the `save` command in the Grid. Apply this directive to any `kendo-toolbar-button`
@@ -39417,7 +39697,7 @@ class SaveCommandToolbarDirective extends ToolbarEditingToolBase {
39417
39697
  this.editService.editedIndices.forEach(i => this.editService.save(i.index));
39418
39698
  }
39419
39699
  }
39420
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SaveCommandToolbarDirective, deps: [{ token: EditService }, { token: i54.ToolBarButtonComponent }, { token: SelectionService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
39700
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SaveCommandToolbarDirective, deps: [{ token: EditService }, { token: i57.ToolBarButtonComponent }, { token: SelectionService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
39421
39701
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: SaveCommandToolbarDirective, isStandalone: true, selector: "[kendoGridSaveTool]", usesInheritance: true, ngImport: i0 });
39422
39702
  }
39423
39703
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SaveCommandToolbarDirective, decorators: [{
@@ -39426,7 +39706,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39426
39706
  selector: '[kendoGridSaveTool]',
39427
39707
  standalone: true
39428
39708
  }]
39429
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39709
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39430
39710
 
39431
39711
  /**
39432
39712
  * Represents the `remove` command in the Grid. Apply this directive to any `kendo-toolbar-button`
@@ -39463,7 +39743,7 @@ class RemoveCommandToolbarDirective extends ToolbarEditingToolBase {
39463
39743
  this.editService.remove(this.lastSelectionIndex);
39464
39744
  }
39465
39745
  }
39466
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: RemoveCommandToolbarDirective, deps: [{ token: EditService }, { token: i54.ToolBarButtonComponent }, { token: SelectionService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
39746
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: RemoveCommandToolbarDirective, deps: [{ token: EditService }, { token: i57.ToolBarButtonComponent }, { token: SelectionService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
39467
39747
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: RemoveCommandToolbarDirective, isStandalone: true, selector: "[kendoGridRemoveTool]", usesInheritance: true, ngImport: i0 });
39468
39748
  }
39469
39749
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: RemoveCommandToolbarDirective, decorators: [{
@@ -39472,7 +39752,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39472
39752
  selector: '[kendoGridRemoveTool]',
39473
39753
  standalone: true
39474
39754
  }]
39475
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39755
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39476
39756
 
39477
39757
  /**
39478
39758
  * Represents the `cancel` command in the Grid.
@@ -39512,7 +39792,7 @@ class CancelCommandToolbarDirective extends ToolbarEditingToolBase {
39512
39792
  this.editService.editedIndices.forEach(i => this.editService.endEdit(i.index));
39513
39793
  }
39514
39794
  }
39515
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CancelCommandToolbarDirective, deps: [{ token: EditService }, { token: i54.ToolBarButtonComponent }, { token: SelectionService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
39795
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CancelCommandToolbarDirective, deps: [{ token: EditService }, { token: i57.ToolBarButtonComponent }, { token: SelectionService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
39516
39796
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: CancelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridCancelTool]", usesInheritance: true, ngImport: i0 });
39517
39797
  }
39518
39798
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CancelCommandToolbarDirective, decorators: [{
@@ -39521,7 +39801,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39521
39801
  selector: '[kendoGridCancelTool]',
39522
39802
  standalone: true
39523
39803
  }]
39524
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39804
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39525
39805
 
39526
39806
  let incrementingId = 0;
39527
39807
  /**
@@ -39702,7 +39982,7 @@ class GroupCommandToolbarDirective {
39702
39982
  isGroupingApplied(group) {
39703
39983
  return isPresent$1(group) && group.length > 0;
39704
39984
  }
39705
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GroupCommandToolbarDirective, deps: [{ token: i54.ToolBarButtonComponent }, { token: i2.PopupService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Directive });
39985
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GroupCommandToolbarDirective, deps: [{ token: i57.ToolBarButtonComponent }, { token: i2.PopupService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Directive });
39706
39986
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GroupCommandToolbarDirective, isStandalone: true, selector: "[kendoGridGroupTool]", ngImport: i0 });
39707
39987
  }
39708
39988
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GroupCommandToolbarDirective, decorators: [{
@@ -39711,7 +39991,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39711
39991
  selector: '[kendoGridGroupTool]',
39712
39992
  standalone: true
39713
39993
  }]
39714
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39994
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39715
39995
 
39716
39996
  /**
39717
39997
  * Stores the row and cell highlight state of the Grid.
@@ -39740,14 +40020,19 @@ class HighlightDirective {
39740
40020
  * Sets the column key for a data cell. The Grid uses the column index as the default column key.
39741
40021
  */
39742
40022
  highlightColumnKey;
40023
+ /**
40024
+ * Emits when the `highlightedKeys` collection changes.
40025
+ */
40026
+ highlightedKeysChange = new EventEmitter();
39743
40027
  rowHighlightState = new Set();
39744
40028
  cellHighlightState = new PairSet();
40029
+ lastHighlightState;
39745
40030
  constructor(ctx) {
39746
40031
  this.ctx = ctx;
39747
40032
  this.ctx.highlightDirective = this;
39748
40033
  }
39749
40034
  ngOnChanges(changes) {
39750
- if (isPresent$1(changes['highlightedKeys'])) {
40035
+ if (isPresent$1(changes['highlightedKeys']) && this.lastHighlightState !== this.highlightedKeys) {
39751
40036
  this.setState(this.highlightedKeys);
39752
40037
  }
39753
40038
  }
@@ -39801,6 +40086,8 @@ class HighlightDirective {
39801
40086
  setState(highlightedKeys) {
39802
40087
  this.reset();
39803
40088
  if (!highlightedKeys || highlightedKeys.length === 0) {
40089
+ this.highlightedKeys = [];
40090
+ this.notifyChange();
39804
40091
  return;
39805
40092
  }
39806
40093
  const rowHighlights = highlightedKeys.filter(item => !isPresent$1(item.columnKey));
@@ -39813,13 +40100,19 @@ class HighlightDirective {
39813
40100
  this.rowHighlightState.add(item.itemKey);
39814
40101
  });
39815
40102
  }
40103
+ this.highlightedKeys = highlightedKeys;
40104
+ this.notifyChange();
40105
+ }
40106
+ notifyChange() {
40107
+ this.lastHighlightState = this.highlightedKeys;
40108
+ this.highlightedKeysChange.emit(this.highlightedKeys);
39816
40109
  }
39817
40110
  reset() {
39818
40111
  this.rowHighlightState.clear();
39819
40112
  this.cellHighlightState.clear();
39820
40113
  }
39821
40114
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HighlightDirective, deps: [{ token: ContextService }], target: i0.ɵɵFactoryTarget.Directive });
39822
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: HighlightDirective, isStandalone: true, selector: "[kendoGridHighlight]", inputs: { highlightedKeys: "highlightedKeys", highlightItemKey: ["kendoGridHighlight", "highlightItemKey"], highlightColumnKey: "highlightColumnKey" }, usesOnChanges: true, ngImport: i0 });
40115
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: HighlightDirective, isStandalone: true, selector: "[kendoGridHighlight]", inputs: { highlightedKeys: "highlightedKeys", highlightItemKey: ["kendoGridHighlight", "highlightItemKey"], highlightColumnKey: "highlightColumnKey" }, outputs: { highlightedKeysChange: "highlightedKeysChange" }, usesOnChanges: true, ngImport: i0 });
39823
40116
  }
39824
40117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HighlightDirective, decorators: [{
39825
40118
  type: Directive,
@@ -39834,6 +40127,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39834
40127
  args: ["kendoGridHighlight"]
39835
40128
  }], highlightColumnKey: [{
39836
40129
  type: Input
40130
+ }], highlightedKeysChange: [{
40131
+ type: Output
39837
40132
  }] } });
39838
40133
 
39839
40134
  /**
@@ -39881,7 +40176,6 @@ class AiAssistantComponent {
39881
40176
  http;
39882
40177
  ctx;
39883
40178
  columnInfoService;
39884
- zone;
39885
40179
  aiRequestResponseService;
39886
40180
  aiPrompt;
39887
40181
  activeView = 0;
@@ -39900,11 +40194,10 @@ class AiAssistantComponent {
39900
40194
  columns = [];
39901
40195
  leafColumns = [];
39902
40196
  idCounter = 0;
39903
- constructor(http, ctx, columnInfoService, zone, aiRequestResponseService) {
40197
+ constructor(http, ctx, columnInfoService, aiRequestResponseService) {
39904
40198
  this.http = http;
39905
40199
  this.ctx = ctx;
39906
40200
  this.columnInfoService = columnInfoService;
39907
- this.zone = zone;
39908
40201
  this.aiRequestResponseService = aiRequestResponseService;
39909
40202
  }
39910
40203
  ngAfterViewInit() {
@@ -40022,7 +40315,7 @@ class AiAssistantComponent {
40022
40315
  this.currentRequestSubscription = null;
40023
40316
  }
40024
40317
  }
40025
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AiAssistantComponent, deps: [{ token: i1$8.HttpClient }, { token: ContextService }, { token: ColumnInfoService }, { token: i0.NgZone }, { token: GridAIRequestResponseService }], target: i0.ɵɵFactoryTarget.Component });
40318
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AiAssistantComponent, deps: [{ token: i1$8.HttpClient }, { token: ContextService }, { token: ColumnInfoService }, { token: GridAIRequestResponseService }], target: i0.ɵɵFactoryTarget.Component });
40026
40319
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: AiAssistantComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "aiPrompt", first: true, predicate: AIPromptComponent, descendants: true }], ngImport: i0, template: `
40027
40320
  <kendo-aiprompt
40028
40321
  #aiPrompt
@@ -40126,7 +40419,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40126
40419
  </kendo-aiprompt>
40127
40420
  `
40128
40421
  }]
40129
- }], ctorParameters: () => [{ type: i1$8.HttpClient }, { type: ContextService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: GridAIRequestResponseService }], propDecorators: { aiPrompt: [{
40422
+ }], ctorParameters: () => [{ type: i1$8.HttpClient }, { type: ContextService }, { type: ColumnInfoService }, { type: GridAIRequestResponseService }], propDecorators: { aiPrompt: [{
40130
40423
  type: ViewChild,
40131
40424
  args: [AIPromptComponent]
40132
40425
  }] } });
@@ -40350,7 +40643,7 @@ class AIAssistantToolbarDirective extends ToolbarToolBase {
40350
40643
  this.host.selected = false;
40351
40644
  focusAnchor && this.buttonElement?.focus();
40352
40645
  }
40353
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AIAssistantToolbarDirective, deps: [{ token: i1$7.WindowService }, { token: i54.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i54.RefreshService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
40646
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AIAssistantToolbarDirective, deps: [{ token: i1$7.WindowService }, { token: i57.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i57.RefreshService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
40354
40647
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: AIAssistantToolbarDirective, isStandalone: true, selector: "[kendoGridAIAssistantTool]", inputs: { requestUrl: "requestUrl", requestOptions: "requestOptions", aiWindowSettings: "aiWindowSettings", aiPromptSettings: "aiPromptSettings", autoClose: "autoClose", keepOutputHistory: "keepOutputHistory" }, outputs: { promptRequest: "promptRequest", cancelRequest: "cancelRequest", responseSuccess: "responseSuccess", responseError: "responseError", close: "close", open: "open" }, usesInheritance: true, ngImport: i0 });
40355
40648
  }
40356
40649
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AIAssistantToolbarDirective, decorators: [{
@@ -40359,7 +40652,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40359
40652
  selector: '[kendoGridAIAssistantTool]',
40360
40653
  standalone: true
40361
40654
  }]
40362
- }], ctorParameters: () => [{ type: i1$7.WindowService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i54.RefreshService }, { type: i0.ChangeDetectorRef }], propDecorators: { requestUrl: [{
40655
+ }], ctorParameters: () => [{ type: i1$7.WindowService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i57.RefreshService }, { type: i0.ChangeDetectorRef }], propDecorators: { requestUrl: [{
40363
40656
  type: Input
40364
40657
  }], requestOptions: [{
40365
40658
  type: Input
@@ -40464,6 +40757,2001 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40464
40757
  }]
40465
40758
  }], ctorParameters: () => [{ type: IdService }, { type: ContextService }] });
40466
40759
 
40760
+ /**
40761
+ * @hidden
40762
+ */
40763
+ class SmartBoxResponseErrorEvent extends PreventableEvent$1 {
40764
+ /**
40765
+ * The HTTP error response from the AI service.
40766
+ */
40767
+ error;
40768
+ constructor(error) {
40769
+ super();
40770
+ this.error = error;
40771
+ }
40772
+ }
40773
+ /**
40774
+ * @hidden
40775
+ */
40776
+ class SmartBoxResponseSuccessEvent extends PreventableEvent$1 {
40777
+ /**
40778
+ * The HTTP response from the AI service.
40779
+ */
40780
+ response;
40781
+ constructor(response) {
40782
+ super();
40783
+ this.response = response;
40784
+ }
40785
+ }
40786
+ /**
40787
+ * @hidden
40788
+ */
40789
+ class SmartBoxSearchEvent extends PreventableEvent$1 {
40790
+ /**
40791
+ * The user's input value.
40792
+ */
40793
+ searchValue;
40794
+ /**
40795
+ * The input-based filters that will be applied to the Grid.
40796
+ */
40797
+ filters;
40798
+ /**
40799
+ * The logic applied to the filters.
40800
+ */
40801
+ logic;
40802
+ /**
40803
+ * @hidden
40804
+ */
40805
+ constructor() {
40806
+ super();
40807
+ }
40808
+ }
40809
+
40810
+ /**
40811
+ * Represents the event data when the AI Assistant request completes with an error.
40812
+ */
40813
+ class GridSmartBoxResponseErrorEvent extends SmartBoxResponseErrorEvent {
40814
+ /**
40815
+ * @hidden
40816
+ */
40817
+ constructor(error) {
40818
+ super(error);
40819
+ }
40820
+ }
40821
+ /**
40822
+ * Represents the event data when the AI Assistant request completes successfully.
40823
+ */
40824
+ class GridSmartBoxResponseSuccessEvent extends SmartBoxResponseSuccessEvent {
40825
+ /**
40826
+ * @hidden
40827
+ */
40828
+ constructor(response) {
40829
+ super(response);
40830
+ }
40831
+ }
40832
+ /**
40833
+ * Represents the event data when the user types in Search mode.
40834
+ */
40835
+ class GridSmartBoxSearchEvent extends SmartBoxSearchEvent {
40836
+ /**
40837
+ * @hidden
40838
+ */
40839
+ constructor() {
40840
+ super();
40841
+ }
40842
+ }
40843
+
40844
+ const DEFAULT_SIZE$1 = 'medium';
40845
+ const SIZES_MAP = {
40846
+ small: 'sm',
40847
+ medium: 'md',
40848
+ large: 'lg'
40849
+ };
40850
+ /**
40851
+ * @hidden
40852
+ */
40853
+ class SegmentedControlComponent {
40854
+ renderer;
40855
+ wrapper;
40856
+ cdr;
40857
+ zone;
40858
+ hostClasses = true;
40859
+ hostRole = 'group';
40860
+ thumb;
40861
+ /**
40862
+ * Specifies the collection of buttons that will be rendered inside the SegmentedControlComponent.
40863
+ */
40864
+ buttons = [];
40865
+ /**
40866
+ * Sets the padding of the control.
40867
+ *
40868
+ * @default 'medium'
40869
+ */
40870
+ set size(size) {
40871
+ const newSize = size || DEFAULT_SIZE$1;
40872
+ this.handleSizeClass(newSize, this._size);
40873
+ this._size = newSize;
40874
+ }
40875
+ get size() {
40876
+ return this._size;
40877
+ }
40878
+ /**
40879
+ * Fires when a button is clicked.
40880
+ */
40881
+ buttonClick = new EventEmitter();
40882
+ ngAfterViewInit() {
40883
+ this.handleSizeClass(this._size, null);
40884
+ this.selectedButtonIndex = this.buttons.indexOf(this.buttons.find(b => b.selected)) || 0;
40885
+ this.cdr.detectChanges();
40886
+ this.zone.onStable.pipe(take(1)).subscribe(() => this.showSelectionIndicator());
40887
+ }
40888
+ handleClick(button, index) {
40889
+ this.selectedButtonIndex = index;
40890
+ this.cdr.detectChanges();
40891
+ this.buttonClick.emit(button);
40892
+ this.showSelectionIndicator();
40893
+ }
40894
+ getInnerIconClass(button) {
40895
+ const baseClass = 'k-segmented-control-button-icon';
40896
+ return button.iconInnerCssClass ? `${baseClass} ${button.iconInnerCssClass}` : baseClass;
40897
+ }
40898
+ constructor(renderer, wrapper, cdr, zone) {
40899
+ this.renderer = renderer;
40900
+ this.wrapper = wrapper;
40901
+ this.cdr = cdr;
40902
+ this.zone = zone;
40903
+ }
40904
+ showSelectionIndicator() {
40905
+ const element = this.wrapper.nativeElement;
40906
+ const controlRect = element.getBoundingClientRect();
40907
+ const selectedItem = element.querySelector('.k-segmented-control-button.k-selected');
40908
+ const selectionIndicator = this.thumb ? this.thumb.nativeElement : null;
40909
+ if (!selectedItem || !selectionIndicator) {
40910
+ return;
40911
+ }
40912
+ const itemRect = selectedItem.getBoundingClientRect();
40913
+ const left = itemRect.left - controlRect.left;
40914
+ const right = controlRect.right - itemRect.right;
40915
+ this.renderer.setStyle(selectionIndicator, 'left', `${left}px`);
40916
+ this.renderer.setStyle(selectionIndicator, 'right', `${right}px`);
40917
+ }
40918
+ selectedButtonIndex = 0;
40919
+ _size = DEFAULT_SIZE$1;
40920
+ handleSizeClass(newValue, prevValue) {
40921
+ if (!this.wrapper) {
40922
+ return;
40923
+ }
40924
+ const elem = this.wrapper.nativeElement;
40925
+ const classToRemove = prevValue ? `k-segmented-control-${SIZES_MAP[prevValue]}` : null;
40926
+ const classToAdd = newValue ? `k-segmented-control-${SIZES_MAP[newValue]}` : `k-segmented-control-${SIZES_MAP[DEFAULT_SIZE$1]}`;
40927
+ classToRemove && this.renderer.removeClass(elem, classToRemove);
40928
+ classToAdd && this.renderer.addClass(elem, classToAdd);
40929
+ }
40930
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SegmentedControlComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
40931
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: SegmentedControlComponent, isStandalone: true, selector: "kendo-segmented-control", inputs: { buttons: "buttons", size: "size" }, outputs: { buttonClick: "buttonClick" }, host: { properties: { "class.k-segmented-control": "this.hostClasses", "class.k-segmented-control-stretched": "this.hostClasses", "attr.role": "this.hostRole" } }, viewQueries: [{ propertyName: "thumb", first: true, predicate: ["thumb"], descendants: true }], ngImport: i0, template: `
40932
+ <div class="k-segmented-control-thumb" #thumb [attr.aria-hidden]="true"></div>
40933
+ @for (button of buttons; track $index; let idx = $index) {
40934
+ <button type="button"
40935
+ class="k-segmented-control-button"
40936
+ [class.k-disabled]="button.disabled"
40937
+ [attr.disabled]="button.disabled ? true : null"
40938
+ (click)="handleClick(button, idx)"
40939
+ [class.k-selected]="selectedButtonIndex === idx"
40940
+ [attr.aria-pressed]="selectedButtonIndex === idx ? 'true' : 'false'">
40941
+ <kendo-icon-wrapper
40942
+ [innerCssClass]="getInnerIconClass(button)"
40943
+ [name]="button.icon"
40944
+ [svgIcon]="button.svgIcon">
40945
+ </kendo-icon-wrapper>
40946
+ <span class="k-segmented-control-button-text">{{button.text}}</span>
40947
+ </button>
40948
+ }
40949
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
40950
+ }
40951
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SegmentedControlComponent, decorators: [{
40952
+ type: Component,
40953
+ args: [{
40954
+ selector: 'kendo-segmented-control',
40955
+ standalone: true,
40956
+ imports: [IconWrapperComponent],
40957
+ template: `
40958
+ <div class="k-segmented-control-thumb" #thumb [attr.aria-hidden]="true"></div>
40959
+ @for (button of buttons; track $index; let idx = $index) {
40960
+ <button type="button"
40961
+ class="k-segmented-control-button"
40962
+ [class.k-disabled]="button.disabled"
40963
+ [attr.disabled]="button.disabled ? true : null"
40964
+ (click)="handleClick(button, idx)"
40965
+ [class.k-selected]="selectedButtonIndex === idx"
40966
+ [attr.aria-pressed]="selectedButtonIndex === idx ? 'true' : 'false'">
40967
+ <kendo-icon-wrapper
40968
+ [innerCssClass]="getInnerIconClass(button)"
40969
+ [name]="button.icon"
40970
+ [svgIcon]="button.svgIcon">
40971
+ </kendo-icon-wrapper>
40972
+ <span class="k-segmented-control-button-text">{{button.text}}</span>
40973
+ </button>
40974
+ }
40975
+ `
40976
+ }]
40977
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { hostClasses: [{
40978
+ type: HostBinding,
40979
+ args: ['class.k-segmented-control']
40980
+ }, {
40981
+ type: HostBinding,
40982
+ args: ['class.k-segmented-control-stretched']
40983
+ }], hostRole: [{
40984
+ type: HostBinding,
40985
+ args: ['attr.role']
40986
+ }], thumb: [{
40987
+ type: ViewChild,
40988
+ args: ['thumb']
40989
+ }], buttons: [{
40990
+ type: Input
40991
+ }], size: [{
40992
+ type: Input
40993
+ }], buttonClick: [{
40994
+ type: Output
40995
+ }] } });
40996
+
40997
+ /**
40998
+ * Renders the prompt suggestion content.
40999
+ *
41000
+ * To define the suggestion template, nest a `<ng-template>` tag with the `kendoGridSmartBoxPromptSuggestionTemplate` directive inside the component tag.
41001
+ *
41002
+ * The template context is set to the current suggestion. Use the `let-suggestion` directive to reference the current suggestion.
41003
+ *
41004
+ * @example
41005
+ * ```html
41006
+ * <kendo-smartbox>
41007
+ * <ng-template kendoGridSmartBoxPromptSuggestionTemplate let-suggestion>
41008
+ * <kendo-icon-wrapper name="sort-asc" [svgIcon]="sortAscIcon"></kendo-icon-wrapper>
41009
+ * <span>{{suggestion}}</span>
41010
+ * </ng-template>
41011
+ * </kendo-smartbox>
41012
+ * ```
41013
+ */
41014
+ class GridSmartBoxPromptSuggestionTemplateDirective {
41015
+ templateRef;
41016
+ constructor(templateRef) {
41017
+ this.templateRef = templateRef;
41018
+ }
41019
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxPromptSuggestionTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
41020
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GridSmartBoxPromptSuggestionTemplateDirective, isStandalone: true, selector: "[kendoGridSmartBoxPromptSuggestionTemplate]", ngImport: i0 });
41021
+ }
41022
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxPromptSuggestionTemplateDirective, decorators: [{
41023
+ type: Directive,
41024
+ args: [{
41025
+ selector: '[kendoGridSmartBoxPromptSuggestionTemplate]',
41026
+ standalone: true
41027
+ }]
41028
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
41029
+
41030
+ /**
41031
+ * Renders the history item content.
41032
+ *
41033
+ * To define the history item template, nest a `<ng-template>` tag with the `kendoGridSmartBoxHistoryItemTemplate` directive inside the component tag.
41034
+ *
41035
+ * The template context is set to the current history item. Use the `let-item` directive to reference the current history item.
41036
+ *
41037
+ * @example
41038
+ * ```html
41039
+ * <kendo-smartbox>
41040
+ * <ng-template kendoGridSmartBoxHistoryItemTemplate let-item>
41041
+ * <kendo-icon-wrapper name="clock" [svgIcon]="clockIcon"></kendo-icon-wrapper>
41042
+ * <span>{{item.text}} ({{ item.timestamp | date: 'shortTime' }})</span>
41043
+ * </ng-template>
41044
+ * </kendo-smartbox>
41045
+ * ```
41046
+ */
41047
+ class GridSmartBoxHistoryItemTemplateDirective {
41048
+ templateRef;
41049
+ constructor(templateRef) {
41050
+ this.templateRef = templateRef;
41051
+ }
41052
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxHistoryItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
41053
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GridSmartBoxHistoryItemTemplateDirective, isStandalone: true, selector: "[kendoGridSmartBoxHistoryItemTemplate]", ngImport: i0 });
41054
+ }
41055
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxHistoryItemTemplateDirective, decorators: [{
41056
+ type: Directive,
41057
+ args: [{
41058
+ selector: '[kendoGridSmartBoxHistoryItemTemplate]',
41059
+ standalone: true
41060
+ }]
41061
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
41062
+
41063
+ /**
41064
+ * @hidden
41065
+ */
41066
+ const DEFAULT_HISTORY_SETTINGS = {
41067
+ size: 5,
41068
+ timestampFormat: 'HH:mm:ss'
41069
+ };
41070
+ /**
41071
+ * @hidden
41072
+ */
41073
+ const STB_DEFAULT_SETTINGS = {
41074
+ continuous: false,
41075
+ disabled: false,
41076
+ fillMode: 'clear',
41077
+ integrationMode: 'webSpeech',
41078
+ interimResults: false,
41079
+ lang: 'en-US',
41080
+ maxAlternatives: 1,
41081
+ rounded: 'full',
41082
+ size: 'small',
41083
+ themeColor: 'base'
41084
+ };
41085
+ /**
41086
+ * @hidden
41087
+ */
41088
+ const DEFAULT_SEARCH_SETTINGS = {
41089
+ history: DEFAULT_HISTORY_SETTINGS,
41090
+ placeholder: null,
41091
+ delay: 300,
41092
+ enabled: true,
41093
+ fields: []
41094
+ };
41095
+ /**
41096
+ * @hidden
41097
+ */
41098
+ const DEFAULT_SEMANTIC_SEARCH_SETTINGS = {
41099
+ history: DEFAULT_HISTORY_SETTINGS,
41100
+ placeholder: null,
41101
+ delay: 700,
41102
+ enabled: true
41103
+ };
41104
+ /**
41105
+ * @hidden
41106
+ */
41107
+ const DEFAULT_AI_ASSISTANT_SETTINGS = {
41108
+ history: DEFAULT_HISTORY_SETTINGS,
41109
+ placeholder: null,
41110
+ enabled: true,
41111
+ promptSuggestions: [],
41112
+ requestUrl: '',
41113
+ requestOptions: DEFAULT_AI_REQUEST_OPTIONS,
41114
+ speechToTextButton: true
41115
+ };
41116
+ /**
41117
+ * @hidden
41118
+ */
41119
+ const DEFAULT_SIZE = 'medium';
41120
+ /**
41121
+ * @hidden
41122
+ */
41123
+ const SIZES = {
41124
+ small: 'sm',
41125
+ medium: 'md',
41126
+ large: 'lg'
41127
+ };
41128
+
41129
+ /**
41130
+ * @hidden
41131
+ */
41132
+ class SmartBoxComponent {
41133
+ popupService;
41134
+ wrapper;
41135
+ cdr;
41136
+ zone;
41137
+ intl;
41138
+ ctx;
41139
+ aiRequestResponseService;
41140
+ http;
41141
+ renderer;
41142
+ columnInfoService;
41143
+ searchService;
41144
+ popupTemplate;
41145
+ input;
41146
+ innerWrapper;
41147
+ set searchMode(mode) {
41148
+ const settingsFromComponent = { placeholder: this.placeholder, history: this.history };
41149
+ if (mode === true) {
41150
+ this._searchMode = { ...DEFAULT_SEARCH_SETTINGS, ...settingsFromComponent, enabled: true };
41151
+ }
41152
+ else if (mode === false) {
41153
+ this._searchMode = null;
41154
+ }
41155
+ else {
41156
+ this._searchMode = { ...DEFAULT_SEARCH_SETTINGS, ...settingsFromComponent, ...mode };
41157
+ }
41158
+ this.updateSearchListData();
41159
+ this.updateSelectedView();
41160
+ }
41161
+ get searchMode() {
41162
+ return this._searchMode;
41163
+ }
41164
+ set semanticSearchMode(mode) {
41165
+ const settingsFromComponent = { placeholder: this.placeholder, history: this.history };
41166
+ if (mode === true) {
41167
+ this._semanticSearchMode = { ...DEFAULT_SEMANTIC_SEARCH_SETTINGS, ...settingsFromComponent, enabled: true };
41168
+ }
41169
+ else if (mode === false) {
41170
+ this._semanticSearchMode = null;
41171
+ }
41172
+ else {
41173
+ this._semanticSearchMode = { ...DEFAULT_SEMANTIC_SEARCH_SETTINGS, ...settingsFromComponent, ...mode };
41174
+ }
41175
+ this.updateSearchListData();
41176
+ this.updateSelectedView();
41177
+ }
41178
+ get semanticSearchMode() {
41179
+ return this._semanticSearchMode;
41180
+ }
41181
+ set aiAssistantMode(mode) {
41182
+ const settingsFromComponent = { placeholder: this.placeholder, history: this.history };
41183
+ if (mode === true) {
41184
+ this._aiAssistantMode = { ...DEFAULT_AI_ASSISTANT_SETTINGS, ...settingsFromComponent, enabled: true };
41185
+ }
41186
+ else if (mode === false) {
41187
+ this._aiAssistantMode = null;
41188
+ }
41189
+ else {
41190
+ const mergedRequestOptions = mode?.requestOptions ?
41191
+ { ...DEFAULT_AI_ASSISTANT_SETTINGS.requestOptions, ...mode.requestOptions } :
41192
+ DEFAULT_AI_ASSISTANT_SETTINGS.requestOptions;
41193
+ this._aiAssistantMode = {
41194
+ ...DEFAULT_AI_ASSISTANT_SETTINGS,
41195
+ ...settingsFromComponent,
41196
+ ...mode,
41197
+ requestOptions: mergedRequestOptions
41198
+ };
41199
+ }
41200
+ this.updateSelectedView();
41201
+ this.speechToTextButton = this._aiAssistantMode?.speechToTextButton;
41202
+ }
41203
+ get aiAssistantMode() {
41204
+ return this._aiAssistantMode;
41205
+ }
41206
+ set speechToTextButton(value) {
41207
+ if (value === true) {
41208
+ this._speechToTextButton = STB_DEFAULT_SETTINGS;
41209
+ }
41210
+ else if (value === false) {
41211
+ this._speechToTextButton = null;
41212
+ }
41213
+ else {
41214
+ this._speechToTextButton = { ...STB_DEFAULT_SETTINGS, ...value };
41215
+ }
41216
+ }
41217
+ get speechToTextButton() {
41218
+ return this._speechToTextButton;
41219
+ }
41220
+ get searchHistorySettings() {
41221
+ if (!isPresent$1(this.searchMode?.history)) {
41222
+ return null;
41223
+ }
41224
+ if (typeof this.searchMode.history === 'boolean') {
41225
+ return this.searchMode.history ? DEFAULT_HISTORY_SETTINGS : null;
41226
+ }
41227
+ else {
41228
+ return { ...DEFAULT_HISTORY_SETTINGS, ...this.searchMode.history };
41229
+ }
41230
+ }
41231
+ get semanticSearchHistorySettings() {
41232
+ if (!isPresent$1(this.semanticSearchMode?.history)) {
41233
+ return null;
41234
+ }
41235
+ if (typeof this.semanticSearchMode.history === 'boolean') {
41236
+ return this.semanticSearchMode.history ? DEFAULT_HISTORY_SETTINGS : null;
41237
+ }
41238
+ else {
41239
+ return { ...DEFAULT_HISTORY_SETTINGS, ...this.semanticSearchMode.history };
41240
+ }
41241
+ }
41242
+ get aiAssistantHistorySettings() {
41243
+ if (!isPresent$1(this.aiAssistantMode?.history)) {
41244
+ return null;
41245
+ }
41246
+ if (typeof this.aiAssistantMode.history === 'boolean') {
41247
+ return this.aiAssistantMode.history ? DEFAULT_HISTORY_SETTINGS : null;
41248
+ }
41249
+ else {
41250
+ return { ...DEFAULT_HISTORY_SETTINGS, ...this.aiAssistantMode.history };
41251
+ }
41252
+ }
41253
+ get inputPlaceholder() {
41254
+ return this[`${this.selectedView}Placeholder`] || '';
41255
+ }
41256
+ set activeMode(value) {
41257
+ this._activeMode = value;
41258
+ this.updateSelectedView();
41259
+ }
41260
+ get activeMode() {
41261
+ return this._activeMode;
41262
+ }
41263
+ set history(value) {
41264
+ if (value === true || !isPresent$1(value)) {
41265
+ this._history = DEFAULT_HISTORY_SETTINGS;
41266
+ }
41267
+ else if (value === false) {
41268
+ this._history = null;
41269
+ }
41270
+ else {
41271
+ this._history = {
41272
+ size: value.size ?? DEFAULT_HISTORY_SETTINGS.size,
41273
+ timestampFormat: value.timestampFormat ?? DEFAULT_HISTORY_SETTINGS.timestampFormat
41274
+ };
41275
+ }
41276
+ }
41277
+ get history() {
41278
+ return this._history;
41279
+ }
41280
+ placeholder;
41281
+ set size(size) {
41282
+ const newSize = size || DEFAULT_SIZE;
41283
+ this.handleSizeClass(newSize);
41284
+ this._size = newSize;
41285
+ }
41286
+ get size() {
41287
+ return this._size;
41288
+ }
41289
+ promptSuggestionTemplate;
41290
+ historyItemTemplate;
41291
+ loading = false;
41292
+ open = new EventEmitter();
41293
+ close = new EventEmitter();
41294
+ focus = new EventEmitter();
41295
+ blur = new EventEmitter();
41296
+ aiAssistantPromptRequest = new EventEmitter();
41297
+ aiAssistantResponseSuccess = new EventEmitter();
41298
+ aiAssistantResponseError = new EventEmitter();
41299
+ aiAssistantCancelRequest = new EventEmitter();
41300
+ search = new EventEmitter();
41301
+ semanticSearch = new EventEmitter();
41302
+ modeChange = new EventEmitter();
41303
+ constructor(popupService, wrapper, cdr, zone, intl, ctx, aiRequestResponseService, http, renderer, columnInfoService, searchService) {
41304
+ this.popupService = popupService;
41305
+ this.wrapper = wrapper;
41306
+ this.cdr = cdr;
41307
+ this.zone = zone;
41308
+ this.intl = intl;
41309
+ this.ctx = ctx;
41310
+ this.aiRequestResponseService = aiRequestResponseService;
41311
+ this.http = http;
41312
+ this.renderer = renderer;
41313
+ this.columnInfoService = columnInfoService;
41314
+ this.searchService = searchService;
41315
+ }
41316
+ ngOnChanges(changes) {
41317
+ if (changes['history'] || changes['placeholder']) {
41318
+ this.updateModeSettingsFromSharedInputs();
41319
+ }
41320
+ if (changes['searchMode']) {
41321
+ this.updateSearchListData();
41322
+ this.updateSelectedView();
41323
+ this.updateHistoryData();
41324
+ }
41325
+ if (changes['semanticSearchMode']) {
41326
+ this.updateSearchListData();
41327
+ this.updateSelectedView();
41328
+ this.updateHistoryData();
41329
+ }
41330
+ if (changes['aiAssistantMode']) {
41331
+ this.updateSelectedView();
41332
+ this.updateHistoryData();
41333
+ this.speechToTextButton = this._aiAssistantMode?.speechToTextButton;
41334
+ }
41335
+ if (changes['activeMode']) {
41336
+ this.updateSelectedView();
41337
+ }
41338
+ }
41339
+ ngAfterViewInit() {
41340
+ // Preserve a flat columns array (fields) for highlight utilities.
41341
+ // Use leafNamedColumns as the canonical list of leaf columns with display titles.
41342
+ this.leafColumns = this.columnInfoService.leafNamedColumns || [];
41343
+ this.columns = this.leafColumns.map((col) => ({ field: col.field }));
41344
+ this.handleSizeClass(this._size);
41345
+ this.updateSearchListData();
41346
+ this.updateSelectedView();
41347
+ }
41348
+ ngOnDestroy() {
41349
+ this.destroyPopup();
41350
+ this.clearTypingTimeout();
41351
+ this.unsubscribeCurrentRequest();
41352
+ }
41353
+ focusableId = `k-${guid()}`;
41354
+ selectedView;
41355
+ isOpen = false;
41356
+ checkIcon = checkIcon;
41357
+ clockArrowRotateIcon = clockArrowRotateIcon;
41358
+ fileClockOutlineIcon = fileClockOutlineIcon;
41359
+ searchIcon = searchIcon;
41360
+ zoomSparkleIcon = zoomSparkleIcon;
41361
+ sparklesIcon = sparklesIcon;
41362
+ arrowUpOutlineIcon = arrowUpOutlineIcon;
41363
+ stopSmIcon = stopSmIcon;
41364
+ xIcon = xIcon;
41365
+ lightbulbOutlineIcon = lightbulbOutlineIcon;
41366
+ searchListData = [];
41367
+ aiAssistantHistory = [];
41368
+ searchHistory = [];
41369
+ semanticSearchHistory = [];
41370
+ get segmentedControlButtons() {
41371
+ const buttons = [];
41372
+ if ((this.searchMode?.enabled || this.semanticSearchMode?.enabled) && this.aiAssistantMode?.enabled) {
41373
+ if (this.searchMode?.enabled && !this.semanticSearchMode?.enabled) {
41374
+ buttons.push({ text: this.messageFor('smartBoxSearchModePopupButton'), svgIcon: searchIcon, icon: 'search', selected: this.selectedView === 'search' });
41375
+ }
41376
+ else if (!this.searchMode?.enabled && this.semanticSearchMode?.enabled) {
41377
+ buttons.push({ text: this.messageFor('smartBoxSearchModePopupButton'), svgIcon: zoomSparkleIcon, icon: 'zoom-sparkle', selected: this.selectedView === 'semanticSearch', iconInnerCssClass: this.selectedView === 'semanticSearch' ? 'k-accent-icon' : '' });
41378
+ }
41379
+ else if (this.searchMode?.enabled && this.semanticSearchMode?.enabled) {
41380
+ buttons.push({ text: this.messageFor('smartBoxSearchModePopupButton'), svgIcon: searchIcon, icon: 'search', selected: this.selectedView === 'search' || this.selectedView === 'semanticSearch', iconInnerCssClass: this.selectedView === 'semanticSearch' ? 'k-accent-icon' : '' });
41381
+ }
41382
+ buttons.push({ text: this.messageFor('smartBoxAIAssistantModePopupButton'), svgIcon: sparklesIcon, icon: 'sparkles', selected: this.selectedView === 'aiAssistant', iconInnerCssClass: this.selectedView === 'aiAssistant' ? 'k-accent-icon' : '' });
41383
+ }
41384
+ return buttons;
41385
+ }
41386
+ get prefixIconName() {
41387
+ switch (this.selectedView) {
41388
+ case 'search':
41389
+ return 'search';
41390
+ case 'semanticSearch':
41391
+ return 'zoom-sparkle';
41392
+ case 'aiAssistant':
41393
+ return 'sparkles';
41394
+ default:
41395
+ return 'search';
41396
+ }
41397
+ }
41398
+ get prefixSVGIcon() {
41399
+ switch (this.selectedView) {
41400
+ case 'search':
41401
+ return this.searchIcon;
41402
+ case 'semanticSearch':
41403
+ return this.zoomSparkleIcon;
41404
+ case 'aiAssistant':
41405
+ return this.sparklesIcon;
41406
+ default:
41407
+ return this.searchIcon;
41408
+ }
41409
+ }
41410
+ messageFor(message) {
41411
+ return this.ctx.localization.get(message);
41412
+ }
41413
+ formatDate(date, format) {
41414
+ return this.intl.formatDate(date, format);
41415
+ }
41416
+ onModeChange(button) {
41417
+ this.clearTypingTimeout();
41418
+ let previousView;
41419
+ if (this.searchListData.length > 0) {
41420
+ previousView = this.searchListData.find(i => i.selected)?.text;
41421
+ }
41422
+ if (button.text === 'Search') {
41423
+ if (previousView === 'Search') {
41424
+ this.selectedView = 'search';
41425
+ }
41426
+ else if (previousView === 'Semantic Search') {
41427
+ this.selectedView = 'semanticSearch';
41428
+ }
41429
+ else if (this.searchMode?.enabled) {
41430
+ this.selectedView = 'search';
41431
+ }
41432
+ else if (this.semanticSearchMode?.enabled) {
41433
+ this.selectedView = 'semanticSearch';
41434
+ }
41435
+ }
41436
+ else if (button.text === 'AI Assistant') {
41437
+ this.selectedView = 'aiAssistant';
41438
+ }
41439
+ this.modeChange.emit(this.selectedView);
41440
+ this.clearValue();
41441
+ this.cdr.detectChanges();
41442
+ }
41443
+ onSearchItemClick(item) {
41444
+ this.clearTypingTimeout();
41445
+ this.searchListData.forEach(i => i.selected = false);
41446
+ this.searchListData.find(i => i.text === item.text).selected = true;
41447
+ this.selectedView = item.text === 'Search' ? 'search' : 'semanticSearch';
41448
+ this.modeChange.emit(this.selectedView);
41449
+ this.clearValue();
41450
+ this.cdr.markForCheck();
41451
+ }
41452
+ onListItemClick(item) {
41453
+ if (!this.selectedView) {
41454
+ return;
41455
+ }
41456
+ this.input.nativeElement.value = item;
41457
+ this.togglePopup(false);
41458
+ this.input.nativeElement.focus();
41459
+ if (this.selectedView === 'aiAssistant') {
41460
+ return;
41461
+ }
41462
+ let ev;
41463
+ const fields = this.searchMode?.fields.length > 0 ? this.searchMode.fields :
41464
+ this.ctx.grid.columnList.toArray().map((item) => item.field);
41465
+ const filters = [];
41466
+ fields.forEach(field => {
41467
+ filters.push({
41468
+ field,
41469
+ operator: 'contains',
41470
+ value: this.input.nativeElement.value
41471
+ });
41472
+ });
41473
+ const eventArgs = {
41474
+ searchValue: this.input.nativeElement.value,
41475
+ filters,
41476
+ logic: 'or'
41477
+ };
41478
+ if (this.selectedView === 'search') {
41479
+ ev = Object.assign(new SmartBoxSearchEvent(), eventArgs);
41480
+ }
41481
+ else if (this.selectedView === 'semanticSearch') {
41482
+ ev = { searchValue: this.input.nativeElement.value };
41483
+ }
41484
+ this[this.selectedView].emit(ev);
41485
+ if (this.selectedView === 'search' && !ev.isDefaultPrevented()) {
41486
+ this.zone.run(() => {
41487
+ if (this.input.nativeElement.value === '' || !this.input.nativeElement.value) {
41488
+ this.searchService.changes.next(undefined);
41489
+ }
41490
+ else {
41491
+ this.searchService.changes.next({ filters: ev.filters, logic: ev.logic });
41492
+ }
41493
+ });
41494
+ }
41495
+ if (this.input.nativeElement.value) {
41496
+ const historyItem = {
41497
+ text: this.input.nativeElement.value,
41498
+ timestamp: new Date(),
41499
+ format: this[`${this.selectedView}HistorySettings`].timestampFormat
41500
+ };
41501
+ this[`${this.selectedView}History`].unshift(historyItem);
41502
+ if (this[`${this.selectedView}History`]?.length > this[`${this.selectedView}HistorySettings`].size) {
41503
+ this[`${this.selectedView}History`].splice(this[`${this.selectedView}HistorySettings`].size);
41504
+ }
41505
+ }
41506
+ }
41507
+ handleInput = (_event) => {
41508
+ if (this.input.nativeElement.value) {
41509
+ this.togglePopup(false);
41510
+ }
41511
+ else {
41512
+ this.togglePopup(true);
41513
+ }
41514
+ this.clearTypingTimeout();
41515
+ if (this.selectedView === 'aiAssistant') {
41516
+ return;
41517
+ }
41518
+ this.handleInputValueChange();
41519
+ };
41520
+ handleInputValueChange() {
41521
+ if (!this.selectedView) {
41522
+ return;
41523
+ }
41524
+ const inputValue = this.input.nativeElement.value;
41525
+ let ev;
41526
+ let delay;
41527
+ if (this.selectedView === 'search') {
41528
+ const fields = this.searchMode.fields.length > 0 ? this.searchMode.fields :
41529
+ this.ctx.grid.columnList.toArray().map((item) => item.field);
41530
+ const filters = [];
41531
+ fields.forEach(field => {
41532
+ filters.push({
41533
+ field,
41534
+ operator: 'contains',
41535
+ value: inputValue
41536
+ });
41537
+ });
41538
+ const eventArgs = {
41539
+ searchValue: inputValue,
41540
+ filters,
41541
+ logic: 'or'
41542
+ };
41543
+ ev = Object.assign(new SmartBoxSearchEvent(), eventArgs);
41544
+ delay = this.searchMode.delay;
41545
+ }
41546
+ else if (this.selectedView === 'semanticSearch') {
41547
+ const fields = this.ctx.grid.columnList.toArray().map((item) => item.field);
41548
+ const filters = [];
41549
+ fields.forEach(field => {
41550
+ filters.push({
41551
+ field,
41552
+ operator: 'contains',
41553
+ value: inputValue
41554
+ });
41555
+ });
41556
+ ev = {
41557
+ searchValue: inputValue,
41558
+ filters,
41559
+ logic: 'or'
41560
+ };
41561
+ delay = this.semanticSearchMode.delay;
41562
+ }
41563
+ this.searchTypingTimeout = setTimeout(() => {
41564
+ this.zone.run(() => {
41565
+ this[this.selectedView].emit(ev);
41566
+ });
41567
+ if (this.selectedView === 'search' && !ev.isDefaultPrevented()) {
41568
+ this.zone.run(() => {
41569
+ if (inputValue === '' || !inputValue) {
41570
+ this.searchService.changes.next(undefined);
41571
+ }
41572
+ else {
41573
+ this.searchService.changes.next({ filters: ev.filters, logic: ev.logic });
41574
+ }
41575
+ });
41576
+ }
41577
+ if (inputValue) {
41578
+ const historyItem = {
41579
+ text: inputValue,
41580
+ timestamp: new Date(),
41581
+ format: this[`${this.selectedView}HistorySettings`].timestampFormat
41582
+ };
41583
+ this[`${this.selectedView}History`].unshift(historyItem);
41584
+ if (this[`${this.selectedView}History`]?.length > this[`${this.selectedView}HistorySettings`].size) {
41585
+ this[`${this.selectedView}History`].splice(this[`${this.selectedView}HistorySettings`].size);
41586
+ }
41587
+ }
41588
+ }, delay);
41589
+ }
41590
+ handleInputFocus = () => {
41591
+ if (hasObservers(this.focus)) {
41592
+ this.zone.run(() => {
41593
+ this.focus.emit();
41594
+ });
41595
+ }
41596
+ this.togglePopup(true);
41597
+ };
41598
+ handleInputBlur = () => {
41599
+ if (hasObservers(this.blur)) {
41600
+ this.zone.run(() => {
41601
+ this.blur.emit();
41602
+ });
41603
+ }
41604
+ this.togglePopup(false);
41605
+ };
41606
+ handleInputClick = () => {
41607
+ if (!this.input.nativeElement.value) {
41608
+ this.togglePopup(true);
41609
+ }
41610
+ };
41611
+ handleInputKeydown = (event) => {
41612
+ const code = normalizeKeys(event);
41613
+ const isEnter = code === Keys.Enter;
41614
+ if (!isEnter) {
41615
+ return;
41616
+ }
41617
+ if (this.selectedView === 'aiAssistant') {
41618
+ this.zone.run(() => {
41619
+ this.onPromptSubmit();
41620
+ });
41621
+ }
41622
+ else if (this.selectedView === 'semanticSearch') {
41623
+ this.zone.run(() => {
41624
+ this.clearTypingTimeout();
41625
+ this.handleInputValueChange();
41626
+ });
41627
+ }
41628
+ };
41629
+ onIconClick = () => {
41630
+ this.togglePopup(!this.isOpen);
41631
+ this.input.nativeElement.focus();
41632
+ };
41633
+ onIconMouseDown = (args) => {
41634
+ args.preventDefault();
41635
+ };
41636
+ clearButtonClick(event) {
41637
+ event.stopImmediatePropagation();
41638
+ this.clearValue();
41639
+ this.togglePopup(true);
41640
+ this.clearTypingTimeout();
41641
+ this.handleInputValueChange();
41642
+ }
41643
+ _searchMode;
41644
+ _semanticSearchMode;
41645
+ _aiAssistantMode;
41646
+ _activeMode = 'search';
41647
+ _history;
41648
+ _size = DEFAULT_SIZE;
41649
+ _speechToTextButton;
41650
+ popupRef;
41651
+ popupMouseDownHandler = (event) => event.preventDefault();
41652
+ requestData;
41653
+ currentRequestSubscription = null;
41654
+ columns = [];
41655
+ leafColumns = [];
41656
+ searchTypingTimeout;
41657
+ togglePopup(open) {
41658
+ const sameState = this.isOpen === open;
41659
+ if (sameState) {
41660
+ return;
41661
+ }
41662
+ this._toggle(open);
41663
+ }
41664
+ onPromptSubmit() {
41665
+ if (this.loading) {
41666
+ this.handleResponseCancel();
41667
+ return;
41668
+ }
41669
+ if (this.input.nativeElement.value.length === 0) {
41670
+ return;
41671
+ }
41672
+ this.loading = true;
41673
+ const historyItem = {
41674
+ text: this.input.nativeElement.value,
41675
+ timestamp: new Date(),
41676
+ format: this.aiAssistantHistorySettings?.timestampFormat
41677
+ };
41678
+ this.aiAssistantHistory.unshift(historyItem);
41679
+ if (this.aiAssistantHistory.length > this.aiAssistantHistorySettings?.size) {
41680
+ this.aiAssistantHistory.splice(this.aiAssistantHistorySettings.size);
41681
+ }
41682
+ this.unsubscribeCurrentRequest();
41683
+ this.requestData = {
41684
+ columns: [],
41685
+ promptMessage: this.input.nativeElement.value,
41686
+ url: this.aiAssistantMode.requestUrl,
41687
+ requestOptions: {
41688
+ ...this.aiAssistantMode.requestOptions
41689
+ }
41690
+ };
41691
+ if (!this.aiAssistantMode.requestOptions.body) {
41692
+ this.requestData.requestOptions.body = this.aiRequestResponseService.buildRequestBody(this.requestData.promptMessage, this.requestData.requestOptions.role);
41693
+ }
41694
+ this.zone.run(() => {
41695
+ this.aiAssistantPromptRequest.emit({ requestData: this.requestData });
41696
+ });
41697
+ this.togglePopup(false);
41698
+ this.input.nativeElement.value = '';
41699
+ if (!this.aiAssistantMode.requestUrl) {
41700
+ return;
41701
+ }
41702
+ this.currentRequestSubscription = this.sendPromptRequest().subscribe((res) => {
41703
+ if (res.body) {
41704
+ this.zone.run(() => {
41705
+ this.processResponse(res);
41706
+ this.loading = false;
41707
+ });
41708
+ }
41709
+ this.currentRequestSubscription = null;
41710
+ }, (error) => {
41711
+ this.zone.run(() => {
41712
+ this.handleError(error);
41713
+ this.loading = false;
41714
+ this.currentRequestSubscription = null;
41715
+ });
41716
+ });
41717
+ }
41718
+ onSpeechToTextResult(event) {
41719
+ if (event.alternatives && event.alternatives.length > 0) {
41720
+ if (!isPresent$1(this.input.nativeElement.value)) {
41721
+ this.clearValue();
41722
+ }
41723
+ const newValue = event.alternatives[0].transcript + ' ';
41724
+ this.input.nativeElement.value = newValue;
41725
+ }
41726
+ }
41727
+ onSpeechToTextError(event) {
41728
+ if (isDevMode()) {
41729
+ console.error('Speech to Text error:', event.errorMessage);
41730
+ }
41731
+ }
41732
+ get searchPlaceholder() {
41733
+ return this.searchMode?.placeholder || this.placeholder || this.messageFor('smartBoxSearchPlaceholder');
41734
+ }
41735
+ get semanticSearchPlaceholder() {
41736
+ return this.semanticSearchMode?.placeholder || this.placeholder || this.messageFor('smartBoxSemanticSearchPlaceholder');
41737
+ }
41738
+ get aiAssistantPlaceholder() {
41739
+ return this.aiAssistantMode?.placeholder || this.placeholder || this.messageFor('smartBoxAIAssistantPlaceholder');
41740
+ }
41741
+ get inputDisabled() {
41742
+ return !(this.searchMode?.enabled || this.semanticSearchMode?.enabled || this.aiAssistantMode?.enabled);
41743
+ }
41744
+ createPopup() {
41745
+ this.popupRef = this.popupService.open({
41746
+ anchor: this.wrapper.nativeElement,
41747
+ content: this.popupTemplate,
41748
+ popupClass: 'k-smart-box-popup',
41749
+ positionMode: 'absolute',
41750
+ margin: { horizontal: 0, vertical: 2 }
41751
+ });
41752
+ const popupWrapper = this.popupRef.popupElement;
41753
+ const { min, max } = this.popupWidth;
41754
+ popupWrapper.style.minWidth = min;
41755
+ popupWrapper.style.width = max;
41756
+ popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);
41757
+ this.popupRef.popupOpen.subscribe(() => {
41758
+ this.open.emit();
41759
+ });
41760
+ this.popupRef.popupClose.subscribe(() => {
41761
+ this.close.emit();
41762
+ });
41763
+ this.popupRef.popupAnchorViewportLeave.subscribe(() => this.togglePopup(false));
41764
+ }
41765
+ destroyPopup() {
41766
+ if (this.popupRef) {
41767
+ this.popupRef.popupElement
41768
+ .removeEventListener('mousedown', this.popupMouseDownHandler);
41769
+ this.popupRef.close();
41770
+ this.popupRef = null;
41771
+ }
41772
+ }
41773
+ _toggle(open) {
41774
+ this.isOpen = open;
41775
+ this.destroyPopup();
41776
+ if (this.isOpen) {
41777
+ this.createPopup();
41778
+ }
41779
+ }
41780
+ clearTypingTimeout() {
41781
+ if (this.searchTypingTimeout) {
41782
+ clearTimeout(this.searchTypingTimeout);
41783
+ this.searchTypingTimeout = null;
41784
+ }
41785
+ }
41786
+ sendPromptRequest() {
41787
+ const request = new HttpRequest(this.requestData.requestOptions.method, this.requestData.url, this.requestData.requestOptions.body, this.requestData.requestOptions);
41788
+ return this.http.request(request);
41789
+ }
41790
+ handleResponseCancel() {
41791
+ this.aiAssistantCancelRequest.emit();
41792
+ this.unsubscribeCurrentRequest();
41793
+ this.loading = false;
41794
+ }
41795
+ unsubscribeCurrentRequest() {
41796
+ if (this.currentRequestSubscription) {
41797
+ this.currentRequestSubscription.unsubscribe();
41798
+ this.currentRequestSubscription = null;
41799
+ }
41800
+ }
41801
+ get popupWidth() {
41802
+ let wrapperOffsetWidth = 0;
41803
+ if (isDocumentAvailable()) {
41804
+ wrapperOffsetWidth = this.wrapper.nativeElement.offsetWidth;
41805
+ }
41806
+ const width = wrapperOffsetWidth;
41807
+ const minWidth = isNaN(wrapperOffsetWidth) ? wrapperOffsetWidth : `${wrapperOffsetWidth}px`;
41808
+ const maxWidth = isNaN(width) ? width : `${width}px`;
41809
+ return { min: minWidth, max: maxWidth };
41810
+ }
41811
+ handleSizeClass(currentValue) {
41812
+ const elem = this.innerWrapper?.nativeElement;
41813
+ if (!isPresent$1(elem)) {
41814
+ return;
41815
+ }
41816
+ const prevSizeClass = `k-input-${SIZES[this._size]}`;
41817
+ const newSizeClass = `k-input-${SIZES[currentValue]}`;
41818
+ if (prevSizeClass) {
41819
+ this.renderer.removeClass(elem, prevSizeClass);
41820
+ }
41821
+ if (newSizeClass) {
41822
+ this.renderer.addClass(elem, newSizeClass);
41823
+ }
41824
+ }
41825
+ updateModeSettingsFromSharedInputs() {
41826
+ if (this._searchMode && typeof this._searchMode === 'object') {
41827
+ const currentSettings = { ...this._searchMode };
41828
+ const modeSpecificHistory = currentSettings.history;
41829
+ const modeSpecificPlaceholder = currentSettings.placeholder;
41830
+ delete currentSettings.history;
41831
+ delete currentSettings.placeholder;
41832
+ const settingsFromComponent = {
41833
+ placeholder: modeSpecificPlaceholder ?? this.placeholder,
41834
+ history: modeSpecificHistory ?? this.history
41835
+ };
41836
+ this._searchMode = { ...DEFAULT_SEARCH_SETTINGS, ...currentSettings, ...settingsFromComponent };
41837
+ }
41838
+ if (this._semanticSearchMode && typeof this._semanticSearchMode === 'object') {
41839
+ const currentSettings = { ...this._semanticSearchMode };
41840
+ const modeSpecificHistory = currentSettings.history;
41841
+ const modeSpecificPlaceholder = currentSettings.placeholder;
41842
+ delete currentSettings.history;
41843
+ delete currentSettings.placeholder;
41844
+ const settingsFromComponent = {
41845
+ placeholder: modeSpecificPlaceholder ?? this.placeholder,
41846
+ history: modeSpecificHistory ?? this.history
41847
+ };
41848
+ this._semanticSearchMode = { ...DEFAULT_SEMANTIC_SEARCH_SETTINGS, ...currentSettings, ...settingsFromComponent };
41849
+ }
41850
+ if (this._aiAssistantMode && typeof this._aiAssistantMode === 'object') {
41851
+ const currentSettings = { ...this._aiAssistantMode };
41852
+ const modeSpecificHistory = currentSettings.history;
41853
+ const modeSpecificPlaceholder = currentSettings.placeholder;
41854
+ delete currentSettings.history;
41855
+ delete currentSettings.placeholder;
41856
+ const settingsFromComponent = {
41857
+ placeholder: modeSpecificPlaceholder ?? this.placeholder,
41858
+ history: modeSpecificHistory ?? this.history
41859
+ };
41860
+ this._aiAssistantMode = { ...DEFAULT_AI_ASSISTANT_SETTINGS, ...currentSettings, ...settingsFromComponent };
41861
+ }
41862
+ }
41863
+ updateSearchListData() {
41864
+ if (!this.ctx?.localization) {
41865
+ return;
41866
+ }
41867
+ if (this.searchMode?.enabled && this.semanticSearchMode?.enabled) {
41868
+ this.searchListData = [
41869
+ { text: this.messageFor('searchModeListItemText'), description: this.messageFor('searchModeListItemDescription'), selected: this.selectedView === 'search' },
41870
+ { text: this.messageFor('semanticSearchModeListItemText'), description: this.messageFor('semanticSearchModeListItemDescription'), selected: this.selectedView === 'semanticSearch' }
41871
+ ];
41872
+ }
41873
+ else {
41874
+ this.searchListData = [];
41875
+ }
41876
+ }
41877
+ updateSelectedView() {
41878
+ if (this._activeMode) {
41879
+ const modeSettings = this[`${this._activeMode}Mode`];
41880
+ if (modeSettings?.enabled) {
41881
+ this.selectedView = this._activeMode;
41882
+ return;
41883
+ }
41884
+ }
41885
+ if (this.selectedView && this[`${this.selectedView}Mode`]?.enabled) {
41886
+ return;
41887
+ }
41888
+ if (this.searchMode?.enabled) {
41889
+ this.selectedView = 'search';
41890
+ }
41891
+ else if (this.semanticSearchMode?.enabled) {
41892
+ this.selectedView = 'semanticSearch';
41893
+ }
41894
+ else if (this.aiAssistantMode?.enabled) {
41895
+ this.selectedView = 'aiAssistant';
41896
+ }
41897
+ else {
41898
+ this.selectedView = null;
41899
+ }
41900
+ }
41901
+ updateHistoryData() {
41902
+ if (this.searchHistorySettings && this.searchHistory.length > this.searchHistorySettings.size) {
41903
+ this.searchHistory.splice(this.searchHistorySettings.size);
41904
+ }
41905
+ if (this.semanticSearchHistorySettings && this.semanticSearchHistory.length > this.semanticSearchHistorySettings.size) {
41906
+ this.semanticSearchHistory.splice(this.semanticSearchHistorySettings.size);
41907
+ }
41908
+ if (this.aiAssistantHistorySettings && this.aiAssistantHistory.length > this.aiAssistantHistorySettings.size) {
41909
+ this.aiAssistantHistory.splice(this.aiAssistantHistorySettings.size);
41910
+ }
41911
+ if (this.searchHistorySettings && this.searchHistorySettings.timestampFormat !== this.searchHistory[0]?.format) {
41912
+ this.searchHistory = this.searchHistory.map(item => ({ ...item, format: this.searchHistorySettings.timestampFormat }));
41913
+ }
41914
+ if (this.semanticSearchHistorySettings && this.semanticSearchHistorySettings.timestampFormat !== this.semanticSearchHistory[0]?.format) {
41915
+ this.semanticSearchHistory = this.semanticSearchHistory.map(item => ({ ...item, format: this.semanticSearchHistorySettings.timestampFormat }));
41916
+ }
41917
+ if (this.aiAssistantHistorySettings && this.aiAssistantHistorySettings.timestampFormat !== this.aiAssistantHistory[0]?.format) {
41918
+ this.aiAssistantHistory = this.aiAssistantHistory.map(item => ({ ...item, format: this.aiAssistantHistorySettings.timestampFormat }));
41919
+ }
41920
+ }
41921
+ processResponse(response) {
41922
+ const responseBody = response.body || { commands: [] };
41923
+ const responseSuccessEvent = new GridSmartBoxResponseSuccessEvent(response);
41924
+ this.aiAssistantResponseSuccess.emit(responseSuccessEvent);
41925
+ this.aiRequestResponseService.processCommands(responseBody.commands || [], this.columns, this.leafColumns);
41926
+ }
41927
+ handleError(error) {
41928
+ const responseErrorEvent = new GridSmartBoxResponseErrorEvent(error);
41929
+ this.aiAssistantResponseError.emit(responseErrorEvent);
41930
+ }
41931
+ clearValue() {
41932
+ this.input.nativeElement.value = '';
41933
+ this.input.nativeElement.focus();
41934
+ }
41935
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxComponent, deps: [{ token: i2.PopupService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1$4.IntlService }, { token: ContextService }, { token: GridAIRequestResponseService }, { token: i1$8.HttpClient }, { token: i0.Renderer2 }, { token: ColumnInfoService }, { token: SearchService }], target: i0.ɵɵFactoryTarget.Component });
41936
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: SmartBoxComponent, isStandalone: true, selector: "kendo-smartbox", inputs: { searchMode: "searchMode", semanticSearchMode: "semanticSearchMode", aiAssistantMode: "aiAssistantMode", activeMode: "activeMode", history: "history", placeholder: "placeholder", size: "size", promptSuggestionTemplate: "promptSuggestionTemplate", historyItemTemplate: "historyItemTemplate", loading: "loading" }, outputs: { open: "open", close: "close", focus: "focus", blur: "blur", aiAssistantPromptRequest: "aiAssistantPromptRequest", aiAssistantResponseSuccess: "aiAssistantResponseSuccess", aiAssistantResponseError: "aiAssistantResponseError", aiAssistantCancelRequest: "aiAssistantCancelRequest", search: "search", semanticSearch: "semanticSearch", modeChange: "modeChange" }, providers: [DataService, SelectionService$1, NavigationService$1, DisabledItemsService], viewQueries: [{ propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "innerWrapper", first: true, predicate: ["innerWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
41937
+ <span #innerWrapper
41938
+ class="k-smart-box k-input"
41939
+ [class.k-loading]="loading">
41940
+ @if (!inputDisabled) {
41941
+ <span class="k-input-prefix k-input-prefix-horizontal">
41942
+ <kendo-icon-wrapper
41943
+ class="k-icon"
41944
+ [name]="prefixIconName"
41945
+ [svgIcon]="prefixSVGIcon"
41946
+ [innerCssClass]="(selectedView === 'aiAssistant' || selectedView === 'semanticSearch') ? 'k-accent-icon' : ''"
41947
+ [kendoEventsOutsideAngular]="{
41948
+ click: onIconClick,
41949
+ mousedown: onIconMouseDown
41950
+ }">
41951
+ </kendo-icon-wrapper>
41952
+ </span>
41953
+ }
41954
+ <input #input
41955
+ type="text"
41956
+ class="k-input-inner"
41957
+ [class.k-disabled]="inputDisabled"
41958
+ [disabled]="inputDisabled"
41959
+ [id]="focusableId"
41960
+ [placeholder]="inputPlaceholder"
41961
+ [kendoEventsOutsideAngular]="{
41962
+ input: handleInput,
41963
+ focus: handleInputFocus,
41964
+ blur: handleInputBlur,
41965
+ click: handleInputClick,
41966
+ keydown: handleInputKeydown
41967
+ }"
41968
+ />
41969
+ @if (input.value.length > 0 && (selectedView === 'search' || selectedView === 'semanticSearch')) {
41970
+ <span
41971
+ class="k-clear-value"
41972
+ [attr.title]="messageFor('smartBoxToolClearTitle')"
41973
+ role="button"
41974
+ tabindex="-1"
41975
+ (click)="clearButtonClick($event)"
41976
+ (mousedown)="$event.preventDefault()">
41977
+ <kendo-icon-wrapper
41978
+ class="k-icon"
41979
+ name="x"
41980
+ [svgIcon]="xIcon">
41981
+ </kendo-icon-wrapper>
41982
+ </span>
41983
+ }
41984
+ @if (selectedView === 'aiAssistant') {
41985
+ <span class="k-input-suffix k-input-suffix-horizontal">
41986
+ @if (speechToTextButton) {
41987
+ <button kendoSpeechToTextButton
41988
+ role="button"
41989
+ [continuous]="speechToTextButton?.continuous"
41990
+ [disabled]="speechToTextButton?.disabled"
41991
+ [fillMode]="speechToTextButton?.fillMode"
41992
+ [integrationMode]="speechToTextButton?.integrationMode"
41993
+ [interimResults]="speechToTextButton?.interimResults"
41994
+ [lang]="speechToTextButton?.lang"
41995
+ [maxAlternatives]="speechToTextButton?.maxAlternatives"
41996
+ [rounded]="speechToTextButton?.rounded"
41997
+ [size]="speechToTextButton?.size"
41998
+ [themeColor]="speechToTextButton?.themeColor"
41999
+ [attr.aria-label]="messageFor('smartBoxSpeechToTextButton')"
42000
+ [attr.title]="messageFor('smartBoxSpeechToTextButton')"
42001
+ [attr.aria-disabled]="speechToTextButton?.disabled"
42002
+ (error)="onSpeechToTextError($event)"
42003
+ (result)="onSpeechToTextResult($event)"
42004
+ ></button>
42005
+ }
42006
+ <button kendoButton
42007
+ class="k-smart-box-send"
42008
+ [class.k-processing]="loading"
42009
+ [class.k-active]="loading"
42010
+ type="button"
42011
+ rounded="full"
42012
+ size="small"
42013
+ [attr.title]="messageFor('smartBoxSubmitPromptButton')"
42014
+ [attr.aria-label]="messageFor('smartBoxSubmitPromptButton')"
42015
+ [attr.aria-disabled]="input.value.length === 0"
42016
+ [svgIcon]="loading ? stopSmIcon : arrowUpOutlineIcon"
42017
+ [icon]="loading ? 'stop-sm' : 'arrow-up-outline'"
42018
+ [disabled]="input.value.length === 0"
42019
+ (click)="onPromptSubmit()">
42020
+ </button>
42021
+ </span>
42022
+ }
42023
+ </span>
42024
+
42025
+ <ng-template #popupTemplate>
42026
+ @if (segmentedControlButtons.length > 0) {
42027
+ <kendo-segmented-control
42028
+ [buttons]="segmentedControlButtons"
42029
+ (buttonClick)="onModeChange($event)">
42030
+ </kendo-segmented-control>
42031
+ }
42032
+ <div class="k-list k-list-md">
42033
+ <div class="k-list-content">
42034
+ <ul class="k-list-ul">
42035
+ @if ((selectedView === 'search' || selectedView === 'semanticSearch') && searchListData.length > 0) {
42036
+ @for (item of searchListData; track item) {
42037
+ <li class="k-list-item"
42038
+ (click)="onSearchItemClick(item)">
42039
+ @if (item.selected) {
42040
+ <kendo-icon-wrapper
42041
+ innerCssClass="k-list-item-icon"
42042
+ name="check"
42043
+ [svgIcon]="checkIcon"
42044
+ class="k-list-item-icon-wrapper">
42045
+ </kendo-icon-wrapper>
42046
+ }
42047
+ @if (item.text) {
42048
+ <span class="k-list-item-text">{{item.text}}</span>
42049
+ }
42050
+ @if (item.description) {
42051
+ <span class="k-list-item-description">{{item.description}}</span>
42052
+ }
42053
+ </li>
42054
+ }
42055
+ } @else if (selectedView === 'aiAssistant' && aiAssistantMode.promptSuggestions.length > 0) {
42056
+ <li class="k-list-group-item">
42057
+ <kendo-icon-wrapper
42058
+ innerCssClass="k-list-item-icon"
42059
+ name="lightbulb-outline"
42060
+ [svgIcon]="lightbulbOutlineIcon"
42061
+ class="k-list-item-icon-wrapper">
42062
+ </kendo-icon-wrapper>
42063
+ <span class="k-list-item-text">{{messageFor('smartBoxSuggestedPrompts')}}</span>
42064
+ </li>
42065
+
42066
+ @for (suggestion of aiAssistantMode.promptSuggestions; track $index) {
42067
+ @if (promptSuggestionTemplate?.templateRef) {
42068
+ <ng-template
42069
+ [templateContext]="{ templateRef: promptSuggestionTemplate?.templateRef, $implicit: suggestion }"
42070
+ ></ng-template>
42071
+ } @else {
42072
+ <li class="k-list-item"
42073
+ (click)="onListItemClick(suggestion)"
42074
+ [attr.title]="suggestion">
42075
+ <span class="k-list-item-text">{{suggestion}}</span>
42076
+ </li>
42077
+ }
42078
+ }
42079
+ }
42080
+ </ul>
42081
+
42082
+ @if (selectedView === 'search') {
42083
+ @if (searchHistory.length === 0 && !semanticSearchMode?.enabled) {
42084
+ <span class="k-no-data k-smart-box-no-data">
42085
+ <kendo-icon-wrapper
42086
+ icon="file-report"
42087
+ [svgIcon]="fileClockOutlineIcon"
42088
+ size="xxxlarge">
42089
+ </kendo-icon-wrapper>
42090
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42091
+ </span>
42092
+ } @else if (searchHistory.length > 0) {
42093
+ <ul class="k-list-ul">
42094
+ <li class="k-list-group-item">
42095
+ <kendo-icon-wrapper
42096
+ innerCssClass="k-list-item-icon"
42097
+ name="clock-arrow-rotate"
42098
+ [svgIcon]="clockArrowRotateIcon"
42099
+ class="k-list-item-icon-wrapper">
42100
+ </kendo-icon-wrapper>
42101
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42102
+ </li>
42103
+
42104
+ @for (item of searchHistory; track $index) {
42105
+ @if (historyItemTemplate?.templateRef) {
42106
+ <ng-template
42107
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42108
+ ></ng-template>
42109
+ } @else {
42110
+ <li class="k-list-item"
42111
+ (click)="onListItemClick(item.text)"
42112
+ [attr.title]="item.text">
42113
+ <span class="k-list-item-text">{{item.text}}</span>
42114
+ <span class="k-list-item-description">{{formatDate(item.timestamp, searchHistorySettings?.timestampFormat)}}</span>
42115
+ </li>
42116
+ }
42117
+ }
42118
+ </ul>
42119
+ }
42120
+ } @else if (selectedView === 'semanticSearch') {
42121
+ @if (semanticSearchHistory.length === 0 && !searchMode?.enabled) {
42122
+ <span class="k-no-data k-smart-box-no-data">
42123
+ <kendo-icon-wrapper
42124
+ icon="file-report"
42125
+ [svgIcon]="fileClockOutlineIcon"
42126
+ size="xxxlarge">
42127
+ </kendo-icon-wrapper>
42128
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42129
+ </span>
42130
+ } @else if (semanticSearchHistory.length > 0) {
42131
+ <ul class="k-list-ul">
42132
+ <li class="k-list-group-item">
42133
+ <kendo-icon-wrapper
42134
+ innerCssClass="k-list-item-icon"
42135
+ name="clock-arrow-rotate"
42136
+ [svgIcon]="clockArrowRotateIcon"
42137
+ class="k-list-item-icon-wrapper">
42138
+ </kendo-icon-wrapper>
42139
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42140
+ </li>
42141
+
42142
+ @for (item of semanticSearchHistory; track $index) {
42143
+ @if (historyItemTemplate?.templateRef) {
42144
+ <ng-template
42145
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42146
+ ></ng-template>
42147
+ } @else {
42148
+ <li class="k-list-item"
42149
+ (click)="onListItemClick(item.text)"
42150
+ [attr.title]="item.text">
42151
+ <span class="k-list-item-text">{{item.text}}</span>
42152
+ <span class="k-list-item-description">{{formatDate(item.timestamp, semanticSearchHistorySettings?.timestampFormat)}}</span>
42153
+ </li>
42154
+ }
42155
+ }
42156
+ </ul>
42157
+ }
42158
+ } @else if (selectedView === 'aiAssistant') {
42159
+ @if (aiAssistantHistory.length === 0 && aiAssistantMode?.promptSuggestions.length === 0) {
42160
+ <span class="k-no-data k-smart-box-no-data">
42161
+ <kendo-icon-wrapper
42162
+ icon="file-report"
42163
+ [svgIcon]="fileClockOutlineIcon"
42164
+ size="xxxlarge">
42165
+ </kendo-icon-wrapper>
42166
+ <span>{{messageFor('smartBoxNoPreviousPrompts')}}</span>
42167
+ </span>
42168
+ } @else if (aiAssistantHistory.length > 0) {
42169
+ <ul class="k-list-ul">
42170
+ <li class="k-list-group-item">
42171
+ <kendo-icon-wrapper
42172
+ innerCssClass="k-list-item-icon"
42173
+ name="clock-arrow-rotate"
42174
+ [svgIcon]="clockArrowRotateIcon"
42175
+ class="k-list-item-icon-wrapper">
42176
+ </kendo-icon-wrapper>
42177
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslyAsked')}}</span>
42178
+ </li>
42179
+
42180
+ @for (item of aiAssistantHistory; track $index) {
42181
+ @if (historyItemTemplate?.templateRef) {
42182
+ <ng-template
42183
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42184
+ ></ng-template>
42185
+ } @else {
42186
+ <li class="k-list-item"
42187
+ (click)="onListItemClick(item.text)"
42188
+ [attr.title]="item.text">
42189
+ <span class="k-list-item-text">{{item.text}}</span>
42190
+ <span class="k-list-item-description">{{formatDate(item.timestamp, aiAssistantHistorySettings?.timestampFormat)}}</span>
42191
+ </li>
42192
+ }
42193
+ }
42194
+ </ul>
42195
+ }
42196
+ }
42197
+ </div>
42198
+ </div>
42199
+ </ng-template>
42200
+ `, isInline: true, dependencies: [{ kind: "component", type: SegmentedControlComponent, selector: "kendo-segmented-control", inputs: ["buttons", "size"], outputs: ["buttonClick"] }, { 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"] }, { kind: "component", type: i1$6.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i1$6.SpeechToTextButtonComponent, selector: "button[kendoSpeechToTextButton]", inputs: ["disabled", "size", "rounded", "fillMode", "themeColor", "integrationMode", "lang", "continuous", "interimResults", "maxAlternatives"], outputs: ["start", "end", "result", "error", "click"], exportAs: ["kendoSpeechToTextButton"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
42201
+ }
42202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxComponent, decorators: [{
42203
+ type: Component,
42204
+ args: [{
42205
+ selector: 'kendo-smartbox',
42206
+ standalone: true,
42207
+ imports: [SegmentedControlComponent, EventsOutsideAngularDirective, IconWrapperComponent, KENDO_BUTTONS, TemplateContextDirective],
42208
+ providers: [DataService, SelectionService$1, NavigationService$1, DisabledItemsService],
42209
+ template: `
42210
+ <span #innerWrapper
42211
+ class="k-smart-box k-input"
42212
+ [class.k-loading]="loading">
42213
+ @if (!inputDisabled) {
42214
+ <span class="k-input-prefix k-input-prefix-horizontal">
42215
+ <kendo-icon-wrapper
42216
+ class="k-icon"
42217
+ [name]="prefixIconName"
42218
+ [svgIcon]="prefixSVGIcon"
42219
+ [innerCssClass]="(selectedView === 'aiAssistant' || selectedView === 'semanticSearch') ? 'k-accent-icon' : ''"
42220
+ [kendoEventsOutsideAngular]="{
42221
+ click: onIconClick,
42222
+ mousedown: onIconMouseDown
42223
+ }">
42224
+ </kendo-icon-wrapper>
42225
+ </span>
42226
+ }
42227
+ <input #input
42228
+ type="text"
42229
+ class="k-input-inner"
42230
+ [class.k-disabled]="inputDisabled"
42231
+ [disabled]="inputDisabled"
42232
+ [id]="focusableId"
42233
+ [placeholder]="inputPlaceholder"
42234
+ [kendoEventsOutsideAngular]="{
42235
+ input: handleInput,
42236
+ focus: handleInputFocus,
42237
+ blur: handleInputBlur,
42238
+ click: handleInputClick,
42239
+ keydown: handleInputKeydown
42240
+ }"
42241
+ />
42242
+ @if (input.value.length > 0 && (selectedView === 'search' || selectedView === 'semanticSearch')) {
42243
+ <span
42244
+ class="k-clear-value"
42245
+ [attr.title]="messageFor('smartBoxToolClearTitle')"
42246
+ role="button"
42247
+ tabindex="-1"
42248
+ (click)="clearButtonClick($event)"
42249
+ (mousedown)="$event.preventDefault()">
42250
+ <kendo-icon-wrapper
42251
+ class="k-icon"
42252
+ name="x"
42253
+ [svgIcon]="xIcon">
42254
+ </kendo-icon-wrapper>
42255
+ </span>
42256
+ }
42257
+ @if (selectedView === 'aiAssistant') {
42258
+ <span class="k-input-suffix k-input-suffix-horizontal">
42259
+ @if (speechToTextButton) {
42260
+ <button kendoSpeechToTextButton
42261
+ role="button"
42262
+ [continuous]="speechToTextButton?.continuous"
42263
+ [disabled]="speechToTextButton?.disabled"
42264
+ [fillMode]="speechToTextButton?.fillMode"
42265
+ [integrationMode]="speechToTextButton?.integrationMode"
42266
+ [interimResults]="speechToTextButton?.interimResults"
42267
+ [lang]="speechToTextButton?.lang"
42268
+ [maxAlternatives]="speechToTextButton?.maxAlternatives"
42269
+ [rounded]="speechToTextButton?.rounded"
42270
+ [size]="speechToTextButton?.size"
42271
+ [themeColor]="speechToTextButton?.themeColor"
42272
+ [attr.aria-label]="messageFor('smartBoxSpeechToTextButton')"
42273
+ [attr.title]="messageFor('smartBoxSpeechToTextButton')"
42274
+ [attr.aria-disabled]="speechToTextButton?.disabled"
42275
+ (error)="onSpeechToTextError($event)"
42276
+ (result)="onSpeechToTextResult($event)"
42277
+ ></button>
42278
+ }
42279
+ <button kendoButton
42280
+ class="k-smart-box-send"
42281
+ [class.k-processing]="loading"
42282
+ [class.k-active]="loading"
42283
+ type="button"
42284
+ rounded="full"
42285
+ size="small"
42286
+ [attr.title]="messageFor('smartBoxSubmitPromptButton')"
42287
+ [attr.aria-label]="messageFor('smartBoxSubmitPromptButton')"
42288
+ [attr.aria-disabled]="input.value.length === 0"
42289
+ [svgIcon]="loading ? stopSmIcon : arrowUpOutlineIcon"
42290
+ [icon]="loading ? 'stop-sm' : 'arrow-up-outline'"
42291
+ [disabled]="input.value.length === 0"
42292
+ (click)="onPromptSubmit()">
42293
+ </button>
42294
+ </span>
42295
+ }
42296
+ </span>
42297
+
42298
+ <ng-template #popupTemplate>
42299
+ @if (segmentedControlButtons.length > 0) {
42300
+ <kendo-segmented-control
42301
+ [buttons]="segmentedControlButtons"
42302
+ (buttonClick)="onModeChange($event)">
42303
+ </kendo-segmented-control>
42304
+ }
42305
+ <div class="k-list k-list-md">
42306
+ <div class="k-list-content">
42307
+ <ul class="k-list-ul">
42308
+ @if ((selectedView === 'search' || selectedView === 'semanticSearch') && searchListData.length > 0) {
42309
+ @for (item of searchListData; track item) {
42310
+ <li class="k-list-item"
42311
+ (click)="onSearchItemClick(item)">
42312
+ @if (item.selected) {
42313
+ <kendo-icon-wrapper
42314
+ innerCssClass="k-list-item-icon"
42315
+ name="check"
42316
+ [svgIcon]="checkIcon"
42317
+ class="k-list-item-icon-wrapper">
42318
+ </kendo-icon-wrapper>
42319
+ }
42320
+ @if (item.text) {
42321
+ <span class="k-list-item-text">{{item.text}}</span>
42322
+ }
42323
+ @if (item.description) {
42324
+ <span class="k-list-item-description">{{item.description}}</span>
42325
+ }
42326
+ </li>
42327
+ }
42328
+ } @else if (selectedView === 'aiAssistant' && aiAssistantMode.promptSuggestions.length > 0) {
42329
+ <li class="k-list-group-item">
42330
+ <kendo-icon-wrapper
42331
+ innerCssClass="k-list-item-icon"
42332
+ name="lightbulb-outline"
42333
+ [svgIcon]="lightbulbOutlineIcon"
42334
+ class="k-list-item-icon-wrapper">
42335
+ </kendo-icon-wrapper>
42336
+ <span class="k-list-item-text">{{messageFor('smartBoxSuggestedPrompts')}}</span>
42337
+ </li>
42338
+
42339
+ @for (suggestion of aiAssistantMode.promptSuggestions; track $index) {
42340
+ @if (promptSuggestionTemplate?.templateRef) {
42341
+ <ng-template
42342
+ [templateContext]="{ templateRef: promptSuggestionTemplate?.templateRef, $implicit: suggestion }"
42343
+ ></ng-template>
42344
+ } @else {
42345
+ <li class="k-list-item"
42346
+ (click)="onListItemClick(suggestion)"
42347
+ [attr.title]="suggestion">
42348
+ <span class="k-list-item-text">{{suggestion}}</span>
42349
+ </li>
42350
+ }
42351
+ }
42352
+ }
42353
+ </ul>
42354
+
42355
+ @if (selectedView === 'search') {
42356
+ @if (searchHistory.length === 0 && !semanticSearchMode?.enabled) {
42357
+ <span class="k-no-data k-smart-box-no-data">
42358
+ <kendo-icon-wrapper
42359
+ icon="file-report"
42360
+ [svgIcon]="fileClockOutlineIcon"
42361
+ size="xxxlarge">
42362
+ </kendo-icon-wrapper>
42363
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42364
+ </span>
42365
+ } @else if (searchHistory.length > 0) {
42366
+ <ul class="k-list-ul">
42367
+ <li class="k-list-group-item">
42368
+ <kendo-icon-wrapper
42369
+ innerCssClass="k-list-item-icon"
42370
+ name="clock-arrow-rotate"
42371
+ [svgIcon]="clockArrowRotateIcon"
42372
+ class="k-list-item-icon-wrapper">
42373
+ </kendo-icon-wrapper>
42374
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42375
+ </li>
42376
+
42377
+ @for (item of searchHistory; track $index) {
42378
+ @if (historyItemTemplate?.templateRef) {
42379
+ <ng-template
42380
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42381
+ ></ng-template>
42382
+ } @else {
42383
+ <li class="k-list-item"
42384
+ (click)="onListItemClick(item.text)"
42385
+ [attr.title]="item.text">
42386
+ <span class="k-list-item-text">{{item.text}}</span>
42387
+ <span class="k-list-item-description">{{formatDate(item.timestamp, searchHistorySettings?.timestampFormat)}}</span>
42388
+ </li>
42389
+ }
42390
+ }
42391
+ </ul>
42392
+ }
42393
+ } @else if (selectedView === 'semanticSearch') {
42394
+ @if (semanticSearchHistory.length === 0 && !searchMode?.enabled) {
42395
+ <span class="k-no-data k-smart-box-no-data">
42396
+ <kendo-icon-wrapper
42397
+ icon="file-report"
42398
+ [svgIcon]="fileClockOutlineIcon"
42399
+ size="xxxlarge">
42400
+ </kendo-icon-wrapper>
42401
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42402
+ </span>
42403
+ } @else if (semanticSearchHistory.length > 0) {
42404
+ <ul class="k-list-ul">
42405
+ <li class="k-list-group-item">
42406
+ <kendo-icon-wrapper
42407
+ innerCssClass="k-list-item-icon"
42408
+ name="clock-arrow-rotate"
42409
+ [svgIcon]="clockArrowRotateIcon"
42410
+ class="k-list-item-icon-wrapper">
42411
+ </kendo-icon-wrapper>
42412
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42413
+ </li>
42414
+
42415
+ @for (item of semanticSearchHistory; track $index) {
42416
+ @if (historyItemTemplate?.templateRef) {
42417
+ <ng-template
42418
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42419
+ ></ng-template>
42420
+ } @else {
42421
+ <li class="k-list-item"
42422
+ (click)="onListItemClick(item.text)"
42423
+ [attr.title]="item.text">
42424
+ <span class="k-list-item-text">{{item.text}}</span>
42425
+ <span class="k-list-item-description">{{formatDate(item.timestamp, semanticSearchHistorySettings?.timestampFormat)}}</span>
42426
+ </li>
42427
+ }
42428
+ }
42429
+ </ul>
42430
+ }
42431
+ } @else if (selectedView === 'aiAssistant') {
42432
+ @if (aiAssistantHistory.length === 0 && aiAssistantMode?.promptSuggestions.length === 0) {
42433
+ <span class="k-no-data k-smart-box-no-data">
42434
+ <kendo-icon-wrapper
42435
+ icon="file-report"
42436
+ [svgIcon]="fileClockOutlineIcon"
42437
+ size="xxxlarge">
42438
+ </kendo-icon-wrapper>
42439
+ <span>{{messageFor('smartBoxNoPreviousPrompts')}}</span>
42440
+ </span>
42441
+ } @else if (aiAssistantHistory.length > 0) {
42442
+ <ul class="k-list-ul">
42443
+ <li class="k-list-group-item">
42444
+ <kendo-icon-wrapper
42445
+ innerCssClass="k-list-item-icon"
42446
+ name="clock-arrow-rotate"
42447
+ [svgIcon]="clockArrowRotateIcon"
42448
+ class="k-list-item-icon-wrapper">
42449
+ </kendo-icon-wrapper>
42450
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslyAsked')}}</span>
42451
+ </li>
42452
+
42453
+ @for (item of aiAssistantHistory; track $index) {
42454
+ @if (historyItemTemplate?.templateRef) {
42455
+ <ng-template
42456
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42457
+ ></ng-template>
42458
+ } @else {
42459
+ <li class="k-list-item"
42460
+ (click)="onListItemClick(item.text)"
42461
+ [attr.title]="item.text">
42462
+ <span class="k-list-item-text">{{item.text}}</span>
42463
+ <span class="k-list-item-description">{{formatDate(item.timestamp, aiAssistantHistorySettings?.timestampFormat)}}</span>
42464
+ </li>
42465
+ }
42466
+ }
42467
+ </ul>
42468
+ }
42469
+ }
42470
+ </div>
42471
+ </div>
42472
+ </ng-template>
42473
+ `
42474
+ }]
42475
+ }], ctorParameters: () => [{ type: i2.PopupService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1$4.IntlService }, { type: ContextService }, { type: GridAIRequestResponseService }, { type: i1$8.HttpClient }, { type: i0.Renderer2 }, { type: ColumnInfoService }, { type: SearchService }], propDecorators: { popupTemplate: [{
42476
+ type: ViewChild,
42477
+ args: ['popupTemplate']
42478
+ }], input: [{
42479
+ type: ViewChild,
42480
+ args: ['input']
42481
+ }], innerWrapper: [{
42482
+ type: ViewChild,
42483
+ args: ['innerWrapper']
42484
+ }], searchMode: [{
42485
+ type: Input
42486
+ }], semanticSearchMode: [{
42487
+ type: Input
42488
+ }], aiAssistantMode: [{
42489
+ type: Input
42490
+ }], activeMode: [{
42491
+ type: Input
42492
+ }], history: [{
42493
+ type: Input
42494
+ }], placeholder: [{
42495
+ type: Input
42496
+ }], size: [{
42497
+ type: Input
42498
+ }], promptSuggestionTemplate: [{
42499
+ type: Input
42500
+ }], historyItemTemplate: [{
42501
+ type: Input
42502
+ }], loading: [{
42503
+ type: Input
42504
+ }], open: [{
42505
+ type: Output
42506
+ }], close: [{
42507
+ type: Output
42508
+ }], focus: [{
42509
+ type: Output
42510
+ }], blur: [{
42511
+ type: Output
42512
+ }], aiAssistantPromptRequest: [{
42513
+ type: Output
42514
+ }], aiAssistantResponseSuccess: [{
42515
+ type: Output
42516
+ }], aiAssistantResponseError: [{
42517
+ type: Output
42518
+ }], aiAssistantCancelRequest: [{
42519
+ type: Output
42520
+ }], search: [{
42521
+ type: Output
42522
+ }], semanticSearch: [{
42523
+ type: Output
42524
+ }], modeChange: [{
42525
+ type: Output
42526
+ }] } });
42527
+
42528
+ /**
42529
+ * Represents the toolbar tool for showing a smart bar.
42530
+ * Use this component inside a ToolbarComponent in the Grid.
42531
+ *
42532
+ * @example
42533
+ * ```html
42534
+ * <kendo-grid>
42535
+ * <kendo-toolbar>
42536
+ * <kendo-grid-smartbox-tool></kendo-grid-smartbox-tool>
42537
+ * </kendo-toolbar>
42538
+ * </kendo-grid>
42539
+ * ```
42540
+ */
42541
+ class SmartBoxToolbarToolComponent extends ToolBarToolComponent {
42542
+ promptSuggestionTemplate;
42543
+ historyItemTemplate;
42544
+ /**
42545
+ * Controls the visibility and settings of the Search mode. By default, the mode is enabled.
42546
+ *
42547
+ * @default true
42548
+ */
42549
+ searchMode = true;
42550
+ /**
42551
+ * Controls the visibility and settings of the Semantic Search mode. By default, the mode is disabled.
42552
+ *
42553
+ * @default false
42554
+ */
42555
+ semanticSearchMode = false;
42556
+ /**
42557
+ * Controls the visibility and settings of the AI Assistant mode. By default, the mode is disabled.
42558
+ *
42559
+ * @default false
42560
+ */
42561
+ aiAssistantMode = false;
42562
+ /**
42563
+ * Sets the initially active mode of the tool.
42564
+ *
42565
+ * @default 'search'
42566
+ */
42567
+ activeMode = 'search';
42568
+ /**
42569
+ * Controls the visibility and settings of the history for each mode.
42570
+ */
42571
+ history;
42572
+ /**
42573
+ * Sets the placeholder of the input element in the SmartBox and applies to all modes.
42574
+ */
42575
+ placeholder;
42576
+ /**
42577
+ * Specifies the padding of the input.
42578
+ *
42579
+ * @default 'medium'
42580
+ */
42581
+ size;
42582
+ /**
42583
+ * Emits when the SmartBox tool opens.
42584
+ */
42585
+ open = new EventEmitter();
42586
+ /**
42587
+ * Emits when the SmartBox tool closes.
42588
+ */
42589
+ close = new EventEmitter();
42590
+ /**
42591
+ * Emits when the SmartBox tool input is focused.
42592
+ */
42593
+ inputFocus = new EventEmitter();
42594
+ /**
42595
+ * Emits when the SmartBox tool input is blurred.
42596
+ */
42597
+ inputBlur = new EventEmitter();
42598
+ /**
42599
+ * Emits before the SmartBox tool sends the AI request.
42600
+ * - When you provide a `requestUrl`, you can handle the event to modify the request options.
42601
+ * - When you do not provide a `requestUrl`, you can handle the event to perform an entirely custom request.
42602
+ */
42603
+ aiAssistantPromptRequest = new EventEmitter();
42604
+ /**
42605
+ * Emits when the SmartBox tool completes the AI request successfully.
42606
+ * The event contains the response from the AI service and is preventable to allow stopping the default response handling.
42607
+ */
42608
+ aiAssistantResponseSuccess = new EventEmitter();
42609
+ /**
42610
+ * Emits when the SmartBox tool completes the AI request with an error.
42611
+ * The event contains the error response from the AI service and is preventable to allow stopping the default error handling.
42612
+ */
42613
+ aiAssistantResponseError = new EventEmitter();
42614
+ /**
42615
+ * Emits when the user clicks the Cancel button.
42616
+ */
42617
+ aiAssistantCancelRequest = new EventEmitter();
42618
+ /**
42619
+ * Emits when the user types in Search mode. The event contains the search query and the filter descriptors created based on the query.
42620
+ */
42621
+ search = new EventEmitter();
42622
+ /**
42623
+ * Emits when the user types in Semantic Search mode. The event contains the search query and the filter descriptors created based on the query.
42624
+ */
42625
+ semanticSearch = new EventEmitter();
42626
+ /**
42627
+ * Emits when the mode of the SmartBox tool changes. The event contains the new mode.
42628
+ */
42629
+ modeChange = new EventEmitter();
42630
+ /**
42631
+ * Indicates whether the SmartBox tool is in a loading state. Use this to show a loading indicator in the UI.
42632
+ */
42633
+ loading = false;
42634
+ constructor() { super(); }
42635
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxToolbarToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42636
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: SmartBoxToolbarToolComponent, isStandalone: true, selector: "kendo-grid-smartbox-tool", inputs: { searchMode: "searchMode", semanticSearchMode: "semanticSearchMode", aiAssistantMode: "aiAssistantMode", activeMode: "activeMode", history: "history", placeholder: "placeholder", size: "size" }, outputs: { open: "open", close: "close", inputFocus: "inputFocus", inputBlur: "inputBlur", aiAssistantPromptRequest: "aiAssistantPromptRequest", aiAssistantResponseSuccess: "aiAssistantResponseSuccess", aiAssistantResponseError: "aiAssistantResponseError", aiAssistantCancelRequest: "aiAssistantCancelRequest", search: "search", semanticSearch: "semanticSearch", modeChange: "modeChange" }, providers: [
42637
+ {
42638
+ provide: ToolBarToolComponent,
42639
+ useExisting: forwardRef(() => SmartBoxToolbarToolComponent)
42640
+ }
42641
+ ], queries: [{ propertyName: "promptSuggestionTemplate", first: true, predicate: GridSmartBoxPromptSuggestionTemplateDirective, descendants: true }, { propertyName: "historyItemTemplate", first: true, predicate: GridSmartBoxHistoryItemTemplateDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
42642
+ <ng-template #toolbarTemplate #sectionTemplate #popupTemplate>
42643
+ <kendo-smartbox
42644
+ [searchMode]="searchMode"
42645
+ [semanticSearchMode]="semanticSearchMode"
42646
+ [aiAssistantMode]="aiAssistantMode"
42647
+ [activeMode]="activeMode"
42648
+ [history]="history"
42649
+ [placeholder]="placeholder"
42650
+ [size]="size"
42651
+ (open)="open.emit($event)"
42652
+ (close)="close.emit($event)"
42653
+ (focus)="inputFocus.emit($event)"
42654
+ (blur)="inputBlur.emit($event)"
42655
+ (search)="search.emit($event)"
42656
+ (semanticSearch)="semanticSearch.emit($event)"
42657
+ (aiAssistantPromptRequest)="aiAssistantPromptRequest.emit($event)"
42658
+ (aiAssistantResponseSuccess)="aiAssistantResponseSuccess.emit($event)"
42659
+ (aiAssistantResponseError)="aiAssistantResponseError.emit($event)"
42660
+ (aiAssistantCancelRequest)="aiAssistantCancelRequest.emit()"
42661
+ (modeChange)="modeChange.emit($event)"
42662
+ [promptSuggestionTemplate]="promptSuggestionTemplate"
42663
+ [historyItemTemplate]="historyItemTemplate"
42664
+ [loading]="loading"
42665
+ >
42666
+ </kendo-smartbox>
42667
+ </ng-template>
42668
+ `, isInline: true, dependencies: [{ kind: "component", type: SmartBoxComponent, selector: "kendo-smartbox", inputs: ["searchMode", "semanticSearchMode", "aiAssistantMode", "activeMode", "history", "placeholder", "size", "promptSuggestionTemplate", "historyItemTemplate", "loading"], outputs: ["open", "close", "focus", "blur", "aiAssistantPromptRequest", "aiAssistantResponseSuccess", "aiAssistantResponseError", "aiAssistantCancelRequest", "search", "semanticSearch", "modeChange"] }] });
42669
+ }
42670
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxToolbarToolComponent, decorators: [{
42671
+ type: Component,
42672
+ args: [{
42673
+ providers: [
42674
+ {
42675
+ provide: ToolBarToolComponent,
42676
+ useExisting: forwardRef(() => SmartBoxToolbarToolComponent)
42677
+ }
42678
+ ],
42679
+ selector: 'kendo-grid-smartbox-tool',
42680
+ template: `
42681
+ <ng-template #toolbarTemplate #sectionTemplate #popupTemplate>
42682
+ <kendo-smartbox
42683
+ [searchMode]="searchMode"
42684
+ [semanticSearchMode]="semanticSearchMode"
42685
+ [aiAssistantMode]="aiAssistantMode"
42686
+ [activeMode]="activeMode"
42687
+ [history]="history"
42688
+ [placeholder]="placeholder"
42689
+ [size]="size"
42690
+ (open)="open.emit($event)"
42691
+ (close)="close.emit($event)"
42692
+ (focus)="inputFocus.emit($event)"
42693
+ (blur)="inputBlur.emit($event)"
42694
+ (search)="search.emit($event)"
42695
+ (semanticSearch)="semanticSearch.emit($event)"
42696
+ (aiAssistantPromptRequest)="aiAssistantPromptRequest.emit($event)"
42697
+ (aiAssistantResponseSuccess)="aiAssistantResponseSuccess.emit($event)"
42698
+ (aiAssistantResponseError)="aiAssistantResponseError.emit($event)"
42699
+ (aiAssistantCancelRequest)="aiAssistantCancelRequest.emit()"
42700
+ (modeChange)="modeChange.emit($event)"
42701
+ [promptSuggestionTemplate]="promptSuggestionTemplate"
42702
+ [historyItemTemplate]="historyItemTemplate"
42703
+ [loading]="loading"
42704
+ >
42705
+ </kendo-smartbox>
42706
+ </ng-template>
42707
+ `,
42708
+ standalone: true,
42709
+ imports: [SmartBoxComponent]
42710
+ }]
42711
+ }], ctorParameters: () => [], propDecorators: { promptSuggestionTemplate: [{
42712
+ type: ContentChild,
42713
+ args: [GridSmartBoxPromptSuggestionTemplateDirective]
42714
+ }], historyItemTemplate: [{
42715
+ type: ContentChild,
42716
+ args: [GridSmartBoxHistoryItemTemplateDirective]
42717
+ }], searchMode: [{
42718
+ type: Input
42719
+ }], semanticSearchMode: [{
42720
+ type: Input
42721
+ }], aiAssistantMode: [{
42722
+ type: Input
42723
+ }], activeMode: [{
42724
+ type: Input
42725
+ }], history: [{
42726
+ type: Input
42727
+ }], placeholder: [{
42728
+ type: Input
42729
+ }], size: [{
42730
+ type: Input
42731
+ }], open: [{
42732
+ type: Output
42733
+ }], close: [{
42734
+ type: Output
42735
+ }], inputFocus: [{
42736
+ type: Output
42737
+ }], inputBlur: [{
42738
+ type: Output
42739
+ }], aiAssistantPromptRequest: [{
42740
+ type: Output
42741
+ }], aiAssistantResponseSuccess: [{
42742
+ type: Output
42743
+ }], aiAssistantResponseError: [{
42744
+ type: Output
42745
+ }], aiAssistantCancelRequest: [{
42746
+ type: Output
42747
+ }], search: [{
42748
+ type: Output
42749
+ }], semanticSearch: [{
42750
+ type: Output
42751
+ }], modeChange: [{
42752
+ type: Output
42753
+ }] } });
42754
+
40467
42755
  // DRAGGABLE COLUMN
40468
42756
  /**
40469
42757
  * @hidden
@@ -40694,7 +42982,10 @@ const KENDO_GRID_BODY_EXPORTS = [
40694
42982
  FilterCommandToolbarDirective,
40695
42983
  AIAssistantToolbarDirective,
40696
42984
  GroupCommandToolbarDirective,
40697
- SelectAllToolbarToolComponent
42985
+ SelectAllToolbarToolComponent,
42986
+ SmartBoxToolbarToolComponent,
42987
+ GridSmartBoxHistoryItemTemplateDirective,
42988
+ GridSmartBoxPromptSuggestionTemplateDirective
40698
42989
  ];
40699
42990
  /**
40700
42991
  * @hidden
@@ -40845,9 +43136,9 @@ const KENDO_GRID = [
40845
43136
  */
40846
43137
  class GridModule {
40847
43138
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
40848
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: GridModule, imports: [GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, EditCommandToolbarDirective, SaveCommandToolbarDirective, RemoveCommandToolbarDirective, CancelCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, SortCommandToolbarDirective, FilterCommandToolbarDirective, AIAssistantToolbarDirective, GroupCommandToolbarDirective, SelectAllToolbarToolComponent, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FooterComponent, i53.CustomMessagesComponent, i53.PagerFocusableDirective, i53.PagerInfoComponent, i53.PagerInputComponent, i53.PagerNextButtonsComponent, i53.PagerNumericButtonsComponent, i53.PagerPageSizesComponent, i53.PagerPrevButtonsComponent, i53.PagerTemplateDirective, i53.PagerComponent, i53.PagerSpacerComponent, i54.ToolBarComponent, i54.ToolbarCustomMessagesComponent, i54.ToolBarButtonComponent, i54.ToolBarButtonGroupComponent, i54.ToolBarDropDownButtonComponent, i54.ToolBarSeparatorComponent, i54.ToolBarSpacerComponent, i54.ToolBarSplitButtonComponent, i54.ToolBarToolComponent, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnListComponent, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, ToolbarComponent, LocalizedMessagesDirective, CustomMessagesComponent, DataBindingDirective, ToolbarTemplateDirective, SelectionDirective, HighlightDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExternalEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GridMarqueeDirective, GridSpacerComponent, GridToolbarFocusableDirective, StatusBarComponent, StatusBarTemplateDirective, GridClipboardDirective, FormComponent, DialogFormComponent, FormFormFieldComponent, UndoRedoDirective, i54.ToolBarComponent, i54.ToolbarCustomMessagesComponent, i54.ToolBarButtonComponent, i54.ToolBarButtonGroupComponent, i54.ToolBarDropDownButtonComponent, i54.ToolBarSeparatorComponent, i54.ToolBarSpacerComponent, i54.ToolBarSplitButtonComponent, i54.ToolBarToolComponent, TableDirective,
43139
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: GridModule, imports: [GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, EditCommandToolbarDirective, SaveCommandToolbarDirective, RemoveCommandToolbarDirective, CancelCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, SortCommandToolbarDirective, FilterCommandToolbarDirective, AIAssistantToolbarDirective, GroupCommandToolbarDirective, SelectAllToolbarToolComponent, SmartBoxToolbarToolComponent, GridSmartBoxHistoryItemTemplateDirective, GridSmartBoxPromptSuggestionTemplateDirective, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FooterComponent, i56.CustomMessagesComponent, i56.PagerFocusableDirective, i56.PagerInfoComponent, i56.PagerInputComponent, i56.PagerNextButtonsComponent, i56.PagerNumericButtonsComponent, i56.PagerPageSizesComponent, i56.PagerPrevButtonsComponent, i56.PagerTemplateDirective, i56.PagerComponent, i56.PagerSpacerComponent, i57.ToolBarComponent, i57.ToolbarCustomMessagesComponent, i57.ToolBarButtonComponent, i57.ToolBarButtonGroupComponent, i57.ToolBarDropDownButtonComponent, i57.ToolBarSeparatorComponent, i57.ToolBarSpacerComponent, i57.ToolBarSplitButtonComponent, i57.ToolBarToolComponent, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnListComponent, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, ToolbarComponent, LocalizedMessagesDirective, CustomMessagesComponent, DataBindingDirective, ToolbarTemplateDirective, SelectionDirective, HighlightDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExternalEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GridMarqueeDirective, GridSpacerComponent, GridToolbarFocusableDirective, StatusBarComponent, StatusBarTemplateDirective, GridClipboardDirective, FormComponent, DialogFormComponent, FormFormFieldComponent, UndoRedoDirective, i57.ToolBarComponent, i57.ToolbarCustomMessagesComponent, i57.ToolBarButtonComponent, i57.ToolBarButtonGroupComponent, i57.ToolBarDropDownButtonComponent, i57.ToolBarSeparatorComponent, i57.ToolBarSpacerComponent, i57.ToolBarSplitButtonComponent, i57.ToolBarToolComponent, TableDirective,
40849
43140
  UndoCommandToolbarDirective,
40850
- RedoCommandToolbarDirective], exports: [GridComponent, ToolbarTemplateDirective, ToolbarComponent, GridSpacerComponent, StatusBarTemplateDirective, DataBindingDirective, SelectionDirective, HighlightDirective, CustomMessagesComponent, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExternalEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, EditCommandToolbarDirective, SaveCommandToolbarDirective, RemoveCommandToolbarDirective, CancelCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, SortCommandToolbarDirective, FilterCommandToolbarDirective, AIAssistantToolbarDirective, GroupCommandToolbarDirective, SelectAllToolbarToolComponent, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridClipboardDirective, UndoRedoDirective, UndoCommandToolbarDirective, RedoCommandToolbarDirective, i54.ToolBarComponent, i54.ToolbarCustomMessagesComponent, i54.ToolBarButtonComponent, i54.ToolBarButtonGroupComponent, i54.ToolBarDropDownButtonComponent, i54.ToolBarSeparatorComponent, i54.ToolBarSpacerComponent, i54.ToolBarSplitButtonComponent, i54.ToolBarToolComponent, i53.CustomMessagesComponent, i53.PagerFocusableDirective, i53.PagerInfoComponent, i53.PagerInputComponent, i53.PagerNextButtonsComponent, i53.PagerNumericButtonsComponent, i53.PagerPageSizesComponent, i53.PagerPrevButtonsComponent, i53.PagerTemplateDirective, i53.PagerComponent, i53.PagerSpacerComponent] });
43141
+ RedoCommandToolbarDirective], exports: [GridComponent, ToolbarTemplateDirective, ToolbarComponent, GridSpacerComponent, StatusBarTemplateDirective, DataBindingDirective, SelectionDirective, HighlightDirective, CustomMessagesComponent, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExternalEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, EditCommandToolbarDirective, SaveCommandToolbarDirective, RemoveCommandToolbarDirective, CancelCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, SortCommandToolbarDirective, FilterCommandToolbarDirective, AIAssistantToolbarDirective, GroupCommandToolbarDirective, SelectAllToolbarToolComponent, SmartBoxToolbarToolComponent, GridSmartBoxHistoryItemTemplateDirective, GridSmartBoxPromptSuggestionTemplateDirective, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridClipboardDirective, UndoRedoDirective, UndoCommandToolbarDirective, RedoCommandToolbarDirective, i57.ToolBarComponent, i57.ToolbarCustomMessagesComponent, i57.ToolBarButtonComponent, i57.ToolBarButtonGroupComponent, i57.ToolBarDropDownButtonComponent, i57.ToolBarSeparatorComponent, i57.ToolBarSpacerComponent, i57.ToolBarSplitButtonComponent, i57.ToolBarToolComponent, i56.CustomMessagesComponent, i56.PagerFocusableDirective, i56.PagerInfoComponent, i56.PagerInputComponent, i56.PagerNextButtonsComponent, i56.PagerNumericButtonsComponent, i56.PagerPageSizesComponent, i56.PagerPrevButtonsComponent, i56.PagerTemplateDirective, i56.PagerComponent, i56.PagerSpacerComponent] });
40851
43142
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridModule, providers: [
40852
43143
  PopupService,
40853
43144
  ResizeBatchService,
@@ -40861,8 +43152,8 @@ class GridModule {
40861
43152
  DecadeViewService,
40862
43153
  MonthViewService,
40863
43154
  YearViewService,
40864
- NavigationService$1
40865
- ], imports: [GroupHeaderComponent, GroupPanelComponent, TableBodyComponent, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, SelectAllToolbarToolComponent, HeaderComponent, i53.CustomMessagesComponent, i53.PagerInfoComponent, i53.PagerInputComponent, i53.PagerNextButtonsComponent, i53.PagerNumericButtonsComponent, i53.PagerPageSizesComponent, i53.PagerPrevButtonsComponent, i53.PagerComponent, i53.PagerSpacerComponent, i54.ToolBarComponent, i54.ToolbarCustomMessagesComponent, i54.ToolBarButtonComponent, i54.ToolBarButtonGroupComponent, i54.ToolBarDropDownButtonComponent, i54.ToolBarSeparatorComponent, i54.ToolBarSpacerComponent, i54.ToolBarSplitButtonComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, FilterCellOperatorsComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, FormComponent, DialogFormComponent, FormFormFieldComponent, i54.ToolBarComponent, i54.ToolbarCustomMessagesComponent, i54.ToolBarButtonComponent, i54.ToolBarButtonGroupComponent, i54.ToolBarDropDownButtonComponent, i54.ToolBarSeparatorComponent, i54.ToolBarSpacerComponent, i54.ToolBarSplitButtonComponent] });
43155
+ NavigationService$2
43156
+ ], imports: [GroupHeaderComponent, GroupPanelComponent, TableBodyComponent, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, SelectAllToolbarToolComponent, SmartBoxToolbarToolComponent, HeaderComponent, i56.CustomMessagesComponent, i56.PagerInfoComponent, i56.PagerInputComponent, i56.PagerNextButtonsComponent, i56.PagerNumericButtonsComponent, i56.PagerPageSizesComponent, i56.PagerPrevButtonsComponent, i56.PagerComponent, i56.PagerSpacerComponent, i57.ToolBarComponent, i57.ToolbarCustomMessagesComponent, i57.ToolBarButtonComponent, i57.ToolBarButtonGroupComponent, i57.ToolBarDropDownButtonComponent, i57.ToolBarSeparatorComponent, i57.ToolBarSpacerComponent, i57.ToolBarSplitButtonComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, FilterCellOperatorsComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, FormComponent, DialogFormComponent, FormFormFieldComponent, i57.ToolBarComponent, i57.ToolbarCustomMessagesComponent, i57.ToolBarButtonComponent, i57.ToolBarButtonGroupComponent, i57.ToolBarDropDownButtonComponent, i57.ToolBarSeparatorComponent, i57.ToolBarSpacerComponent, i57.ToolBarSplitButtonComponent] });
40866
43157
  }
40867
43158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridModule, decorators: [{
40868
43159
  type: NgModule,
@@ -40898,7 +43189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40898
43189
  DecadeViewService,
40899
43190
  MonthViewService,
40900
43191
  YearViewService,
40901
- NavigationService$1
43192
+ NavigationService$2
40902
43193
  ]
40903
43194
  }]
40904
43195
  }] });
@@ -41007,5 +43298,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
41007
43298
  * Generated bundle index. Do not edit.
41008
43299
  */
41009
43300
 
41010
- export { AIAssistantToolbarDirective, AdaptiveGridService, AddCommandDirective, AddCommandToolbarDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CSVCommandDirective, CSVCommandToolbarDirective, CSVComponent, CSVExportEvent, CSVModule, CSVService, CancelCommandDirective, CancelCommandToolbarDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionAggregateService, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_AI_REQUEST_OPTIONS, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditCommandToolbarDirective, EditService as EditServiceClass, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, ExternalEditingDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterCommandToolbarDirective, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuTemplateDirective, FilterOperatorBase, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridAIAssistantResponseErrorEvent, GridAIAssistantResponseSuccessEvent, GridClipboardDirective, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupCommandToolbarDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupPanelComponent, GroupsService, HeaderComponent, HeaderTemplateDirective, HighlightDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, KENDO_GRID, KENDO_GRID_BODY_EXPORTS, KENDO_GRID_COLUMN_DRAGANDDROP, KENDO_GRID_COLUMN_MENU_DECLARATIONS, KENDO_GRID_COLUMN_MENU_EXPORTS, KENDO_GRID_CSV_EXPORT, KENDO_GRID_DECLARATIONS, KENDO_GRID_EXCEL_EXPORT, KENDO_GRID_EXPORTS, KENDO_GRID_FILTER_MENU, KENDO_GRID_FILTER_MENU_EXPORTS, KENDO_GRID_FILTER_OPERATORS, KENDO_GRID_FILTER_ROW, KENDO_GRID_FILTER_ROW_EXPORTS, KENDO_GRID_FILTER_SHARED, KENDO_GRID_FOOTER_EXPORTS, KENDO_GRID_GROUP_EXPORTS, KENDO_GRID_HEADER_EXPORTS, KENDO_GRID_PDF_EXPORT, KENDO_GRID_SHARED, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, MultiCheckboxFilterComponent, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFCommandToolbarDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RedoCommandToolbarDirective, RemoveCommandDirective, RemoveCommandToolbarDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, RowEditingDirectiveBase, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, SaveCommandToolbarDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectAllToolbarToolComponent, SelectionCheckboxDirective, SelectionDirective, SelectionService, SinglePopupService, SizingOptionsService, Skip, SortCommandToolbarDirective, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, UndoCommandToolbarDirective, UndoRedoDirective, UndoRedoEvent, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable };
43301
+ export { AIAssistantToolbarDirective, AdaptiveGridService, AddCommandDirective, AddCommandToolbarDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CSVCommandDirective, CSVCommandToolbarDirective, CSVComponent, CSVExportEvent, CSVModule, CSVService, CancelCommandDirective, CancelCommandToolbarDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionAggregateService, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_AI_REQUEST_OPTIONS, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditCommandToolbarDirective, EditService as EditServiceClass, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, ExternalEditingDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterCommandToolbarDirective, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuTemplateDirective, FilterOperatorBase, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridAIAssistantResponseErrorEvent, GridAIAssistantResponseSuccessEvent, GridClipboardDirective, GridComponent, GridModule, GridSmartBoxHistoryItemTemplateDirective, GridSmartBoxPromptSuggestionTemplateDirective, GridSmartBoxResponseErrorEvent, GridSmartBoxResponseSuccessEvent, GridSmartBoxSearchEvent, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupCommandToolbarDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupPanelComponent, GroupsService, HeaderComponent, HeaderTemplateDirective, HighlightDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, KENDO_GRID, KENDO_GRID_BODY_EXPORTS, KENDO_GRID_COLUMN_DRAGANDDROP, KENDO_GRID_COLUMN_MENU_DECLARATIONS, KENDO_GRID_COLUMN_MENU_EXPORTS, KENDO_GRID_CSV_EXPORT, KENDO_GRID_DECLARATIONS, KENDO_GRID_EXCEL_EXPORT, KENDO_GRID_EXPORTS, KENDO_GRID_FILTER_MENU, KENDO_GRID_FILTER_MENU_EXPORTS, KENDO_GRID_FILTER_OPERATORS, KENDO_GRID_FILTER_ROW, KENDO_GRID_FILTER_ROW_EXPORTS, KENDO_GRID_FILTER_SHARED, KENDO_GRID_FOOTER_EXPORTS, KENDO_GRID_GROUP_EXPORTS, KENDO_GRID_HEADER_EXPORTS, KENDO_GRID_PDF_EXPORT, KENDO_GRID_SHARED, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, MultiCheckboxFilterComponent, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFCommandToolbarDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RedoCommandToolbarDirective, RemoveCommandDirective, RemoveCommandToolbarDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, RowEditingDirectiveBase, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, SaveCommandToolbarDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectAllToolbarToolComponent, SelectionCheckboxDirective, SelectionDirective, SelectionService, SinglePopupService, SizingOptionsService, Skip, SmartBoxToolbarToolComponent, SortCommandToolbarDirective, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, UndoCommandToolbarDirective, UndoRedoDirective, UndoRedoEvent, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable };
41011
43302