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

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.10',
24128
24140
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
24129
24141
  };
24130
24142
 
@@ -29097,8 +29109,64 @@ 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;
29100
29168
  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 });
29169
+ 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" }, usesInheritance: true, ngImport: i0 });
29102
29170
  }
29103
29171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridMessages, decorators: [{
29104
29172
  type: Directive,
@@ -29374,6 +29442,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
29374
29442
  type: Input
29375
29443
  }], multiCheckboxFilterSelectedItemsCount: [{
29376
29444
  type: Input
29445
+ }], smartBoxSpeechToTextButton: [{
29446
+ type: Input
29447
+ }], smartBoxSubmitPromptButton: [{
29448
+ type: Input
29449
+ }], smartBoxSearchPlaceholder: [{
29450
+ type: Input
29451
+ }], smartBoxSemanticSearchPlaceholder: [{
29452
+ type: Input
29453
+ }], smartBoxAIAssistantPlaceholder: [{
29454
+ type: Input
29455
+ }], smartBoxSuggestedPrompts: [{
29456
+ type: Input
29457
+ }], smartBoxNoPreviousSearches: [{
29458
+ type: Input
29459
+ }], smartBoxNoPreviousPrompts: [{
29460
+ type: Input
29461
+ }], smartBoxPreviouslySearched: [{
29462
+ type: Input
29463
+ }], smartBoxPreviouslyAsked: [{
29464
+ type: Input
29465
+ }], searchModeListItemText: [{
29466
+ type: Input
29467
+ }], searchModeListItemDescription: [{
29468
+ type: Input
29469
+ }], semanticSearchModeListItemText: [{
29470
+ type: Input
29471
+ }], semanticSearchModeListItemDescription: [{
29472
+ type: Input
29377
29473
  }] } });
29378
29474
 
29379
29475
  /**
@@ -31944,6 +32040,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
31944
32040
  args: [GroupToolbarToolComponent]
31945
32041
  }] } });
31946
32042
 
32043
+ /**
32044
+ * @hidden
32045
+ */
32046
+ class SearchService {
32047
+ /**
32048
+ * Fires when the search descriptor is set.
32049
+ */
32050
+ changes = new Subject();
32051
+ /**
32052
+ * Sets the search descriptor.
32053
+ *
32054
+ * @param {CompositeFilterDescriptor} value - The search descriptor to set.
32055
+ */
32056
+ search(value) {
32057
+ this.changes.next(value);
32058
+ }
32059
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32060
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SearchService });
32061
+ }
32062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SearchService, decorators: [{
32063
+ type: Injectable
32064
+ }] });
32065
+
31947
32066
  const createControl = (source) => (acc, key) => {
31948
32067
  acc[key] = new FormControl(source[key]);
31949
32068
  return acc;
@@ -33127,7 +33246,7 @@ class GridComponent {
33127
33246
  }
33128
33247
  /**
33129
33248
  * Builds the request body for the AI service based on the provided prompt message.
33130
- * Allows developers to construct their own AI service requests.
33249
+ * Allows developers to construct the AI service requests manually ([see example](slug:ai_assistant_tools_setup#manual-integration)).
33131
33250
  *
33132
33251
  * @param promptMessage - The prompt message to send to the AI service.
33133
33252
  * @returns The request body object ready to be sent to the AI service.
@@ -33147,7 +33266,7 @@ class GridComponent {
33147
33266
  }
33148
33267
  /**
33149
33268
  * Processes an AI service response and applies the commands to the Grid.
33150
- * Allows developers to handle their own AI service responses manually.
33269
+ * Allows developers to handle the AI service responses manually ([see example](slug:ai_assistant_tools_setup#manual-integration)).
33151
33270
  *
33152
33271
  * @param response - The AI service response containing optional message and commands array.
33153
33272
  *
@@ -34407,7 +34526,8 @@ class GridComponent {
34407
34526
  AdaptiveGridService,
34408
34527
  ColumnMenuService,
34409
34528
  MenuTabbingService,
34410
- DataMappingService
34529
+ DataMappingService,
34530
+ SearchService
34411
34531
  ], 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
34532
  <ng-container kendoGridLocalizedMessages
34413
34533
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
@@ -34811,6 +34931,48 @@ class GridComponent {
34811
34931
 
34812
34932
  i18n-multiCheckboxFilterSelectedItemsCount="kendo.grid.multiCheckboxFilterSelectedItemsCount|The text for the multi-checkbox filter selected items count"
34813
34933
  multiCheckboxFilterSelectedItemsCount="{{ '{selectedItemsCount} selected items' }}"
34934
+
34935
+ i18n-smartBoxSpeechToTextButton="kendo.grid.smartBoxSpeechToTextButton|The aria-label for the Speech to Text button of the SmartBox tool in AI Assistant mode."
34936
+ smartBoxSpeechToTextButton="Voice input"
34937
+
34938
+ i18n-smartBoxSubmitPromptButton="kendo.grid.smartBoxSubmitPromptButton|The aria-label for the Submit button of the SmartBox tool in AI Assistant mode."
34939
+ smartBoxSubmitPromptButton="Submit prompt"
34940
+
34941
+ i18n-smartBoxSearchPlaceholder="kendo.grid.smartBoxSearchPlaceholder|The placeholder text for the SmartBox tool Search mode input"
34942
+ smartBoxSearchPlaceholder="Search..."
34943
+
34944
+ i18n-smartBoxSemanticSearchPlaceholder="kendo.grid.smartBoxSemanticSearchPlaceholder|The placeholder text for the SmartBox tool Semantic Search mode input"
34945
+ smartBoxSemanticSearchPlaceholder="Semantic Search"
34946
+
34947
+ i18n-smartBoxAIAssistantPlaceholder="kendo.grid.smartBoxAIAssistantPlaceholder|The placeholder text for the SmartBox tool AI Assistant mode input"
34948
+ smartBoxAIAssistantPlaceholder="Sort, Filter, or group with AI"
34949
+
34950
+ i18n-smartBoxSuggestedPrompts="kendo.grid.smartBoxSuggestedPrompts|The text for the suggested prompts section in the SmartBox tool AI Assistant mode."
34951
+ smartBoxSuggestedPrompts="Suggested prompts"
34952
+
34953
+ i18n-smartBoxNoPreviousSearches="kendo.grid.smartBoxNoPreviousSearches|The text displayed when there are no previous searches in the SmartBox tool."
34954
+ smartBoxNoPreviousSearches="No previous searches"
34955
+
34956
+ i18n-smartBoxNoPreviousPrompts="kendo.grid.smartBoxNoPreviousPrompts|The text displayed when there are no previous prompts in the SmartBox tool."
34957
+ smartBoxNoPreviousPrompts="No previous prompts"
34958
+
34959
+ i18n-smartBoxPreviouslySearched="kendo.grid.smartBoxPreviouslySearched|The text displayed when there is previous search history in the SmartBox tool."
34960
+ smartBoxPreviouslySearched="Previously Searched"
34961
+
34962
+ i18n-smartBoxPreviouslyAsked="kendo.grid.smartBoxPreviouslyAsked|The text displayed when there is previous ask history in the SmartBox tool."
34963
+ smartBoxPreviouslyAsked="Previously Asked"
34964
+
34965
+ i18n-searchModeListItemText="kendo.grid.searchModeListItemText|The Search mode text displayed in the SmartBox tool search modes list."
34966
+ searchModeListItemText="Search"
34967
+
34968
+ i18n-searchModeListItemDescription="kendo.grid.searchModeListItemDescription|The Search mode description displayed in the SmartBox tool search modes list."
34969
+ searchModeListItemDescription="Looks for exact word matches accross your data."
34970
+
34971
+ i18n-semanticSearchModeListItemText="kendo.grid.semanticSearchModeListItemText|The Semantic Search mode text displayed in the SmartBox tool search modes list."
34972
+ semanticSearchModeListItemText="Semantic Search"
34973
+
34974
+ i18n-semanticSearchModeListItemDescription="kendo.grid.semanticSearchModeListItemDescription|The Semantic Search mode description displayed in the SmartBox tool search modes list."
34975
+ semanticSearchModeListItemDescription="Understands context to surface the most relevant results."
34814
34976
  >
34815
34977
  </ng-container>
34816
34978
  @if (showTopToolbar) {
@@ -34832,6 +34994,7 @@ class GridComponent {
34832
34994
  [skip]="skip"
34833
34995
  [size]="size"
34834
34996
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
34997
+ [adaptiveMode]="adaptiveMode"
34835
34998
  [buttonCount]="normalizedPageableSettings.buttonCount"
34836
34999
  [info]="normalizedPageableSettings.info"
34837
35000
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -35181,6 +35344,7 @@ class GridComponent {
35181
35344
  [skip]="skip"
35182
35345
  [size]="size"
35183
35346
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
35347
+ [adaptiveMode]="adaptiveMode"
35184
35348
  [buttonCount]="normalizedPageableSettings.buttonCount"
35185
35349
  [info]="normalizedPageableSettings.info"
35186
35350
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -35253,7 +35417,8 @@ class GridComponent {
35253
35417
  <kendo-pager-page-sizes
35254
35418
  [size]="size"
35255
35419
  [pageSizes]="normalizedPageableSettings.pageSizes"
35256
- [showItemsText]="showPagerItemsText">
35420
+ [showItemsText]="showPagerItemsText"
35421
+ [adaptiveMode]="adaptiveMode">
35257
35422
  </kendo-pager-page-sizes>
35258
35423
  }
35259
35424
  @if (normalizedPageableSettings.info) {
@@ -35274,7 +35439,7 @@ class GridComponent {
35274
35439
  @if (showLicenseWatermark) {
35275
35440
  <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
35276
35441
  }
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 });
35442
+ `, 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
35443
  }
35279
35444
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridComponent, decorators: [{
35280
35445
  type: Component,
@@ -35333,7 +35498,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
35333
35498
  AdaptiveGridService,
35334
35499
  ColumnMenuService,
35335
35500
  MenuTabbingService,
35336
- DataMappingService
35501
+ DataMappingService,
35502
+ SearchService
35337
35503
  ],
35338
35504
  selector: 'kendo-grid',
35339
35505
  template: `
@@ -35739,6 +35905,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
35739
35905
 
35740
35906
  i18n-multiCheckboxFilterSelectedItemsCount="kendo.grid.multiCheckboxFilterSelectedItemsCount|The text for the multi-checkbox filter selected items count"
35741
35907
  multiCheckboxFilterSelectedItemsCount="{{ '{selectedItemsCount} selected items' }}"
35908
+
35909
+ i18n-smartBoxSpeechToTextButton="kendo.grid.smartBoxSpeechToTextButton|The aria-label for the Speech to Text button of the SmartBox tool in AI Assistant mode."
35910
+ smartBoxSpeechToTextButton="Voice input"
35911
+
35912
+ i18n-smartBoxSubmitPromptButton="kendo.grid.smartBoxSubmitPromptButton|The aria-label for the Submit button of the SmartBox tool in AI Assistant mode."
35913
+ smartBoxSubmitPromptButton="Submit prompt"
35914
+
35915
+ i18n-smartBoxSearchPlaceholder="kendo.grid.smartBoxSearchPlaceholder|The placeholder text for the SmartBox tool Search mode input"
35916
+ smartBoxSearchPlaceholder="Search..."
35917
+
35918
+ i18n-smartBoxSemanticSearchPlaceholder="kendo.grid.smartBoxSemanticSearchPlaceholder|The placeholder text for the SmartBox tool Semantic Search mode input"
35919
+ smartBoxSemanticSearchPlaceholder="Semantic Search"
35920
+
35921
+ i18n-smartBoxAIAssistantPlaceholder="kendo.grid.smartBoxAIAssistantPlaceholder|The placeholder text for the SmartBox tool AI Assistant mode input"
35922
+ smartBoxAIAssistantPlaceholder="Sort, Filter, or group with AI"
35923
+
35924
+ i18n-smartBoxSuggestedPrompts="kendo.grid.smartBoxSuggestedPrompts|The text for the suggested prompts section in the SmartBox tool AI Assistant mode."
35925
+ smartBoxSuggestedPrompts="Suggested prompts"
35926
+
35927
+ i18n-smartBoxNoPreviousSearches="kendo.grid.smartBoxNoPreviousSearches|The text displayed when there are no previous searches in the SmartBox tool."
35928
+ smartBoxNoPreviousSearches="No previous searches"
35929
+
35930
+ i18n-smartBoxNoPreviousPrompts="kendo.grid.smartBoxNoPreviousPrompts|The text displayed when there are no previous prompts in the SmartBox tool."
35931
+ smartBoxNoPreviousPrompts="No previous prompts"
35932
+
35933
+ i18n-smartBoxPreviouslySearched="kendo.grid.smartBoxPreviouslySearched|The text displayed when there is previous search history in the SmartBox tool."
35934
+ smartBoxPreviouslySearched="Previously Searched"
35935
+
35936
+ i18n-smartBoxPreviouslyAsked="kendo.grid.smartBoxPreviouslyAsked|The text displayed when there is previous ask history in the SmartBox tool."
35937
+ smartBoxPreviouslyAsked="Previously Asked"
35938
+
35939
+ i18n-searchModeListItemText="kendo.grid.searchModeListItemText|The Search mode text displayed in the SmartBox tool search modes list."
35940
+ searchModeListItemText="Search"
35941
+
35942
+ i18n-searchModeListItemDescription="kendo.grid.searchModeListItemDescription|The Search mode description displayed in the SmartBox tool search modes list."
35943
+ searchModeListItemDescription="Looks for exact word matches accross your data."
35944
+
35945
+ i18n-semanticSearchModeListItemText="kendo.grid.semanticSearchModeListItemText|The Semantic Search mode text displayed in the SmartBox tool search modes list."
35946
+ semanticSearchModeListItemText="Semantic Search"
35947
+
35948
+ i18n-semanticSearchModeListItemDescription="kendo.grid.semanticSearchModeListItemDescription|The Semantic Search mode description displayed in the SmartBox tool search modes list."
35949
+ semanticSearchModeListItemDescription="Understands context to surface the most relevant results."
35742
35950
  >
35743
35951
  </ng-container>
35744
35952
  @if (showTopToolbar) {
@@ -35760,6 +35968,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
35760
35968
  [skip]="skip"
35761
35969
  [size]="size"
35762
35970
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
35971
+ [adaptiveMode]="adaptiveMode"
35763
35972
  [buttonCount]="normalizedPageableSettings.buttonCount"
35764
35973
  [info]="normalizedPageableSettings.info"
35765
35974
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -36109,6 +36318,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
36109
36318
  [skip]="skip"
36110
36319
  [size]="size"
36111
36320
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
36321
+ [adaptiveMode]="adaptiveMode"
36112
36322
  [buttonCount]="normalizedPageableSettings.buttonCount"
36113
36323
  [info]="normalizedPageableSettings.info"
36114
36324
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -36181,7 +36391,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
36181
36391
  <kendo-pager-page-sizes
36182
36392
  [size]="size"
36183
36393
  [pageSizes]="normalizedPageableSettings.pageSizes"
36184
- [showItemsText]="showPagerItemsText">
36394
+ [showItemsText]="showPagerItemsText"
36395
+ [adaptiveMode]="adaptiveMode">
36185
36396
  </kendo-pager-page-sizes>
36186
36397
  }
36187
36398
  @if (normalizedPageableSettings.info) {
@@ -36525,6 +36736,7 @@ class DataBindingDirective {
36525
36736
  changeDetector;
36526
36737
  localDataChangesService;
36527
36738
  rowReorderService;
36739
+ searchService;
36528
36740
  /**
36529
36741
  * Sets the number of records to skip in the Grid.
36530
36742
  *
@@ -36586,11 +36798,14 @@ class DataBindingDirective {
36586
36798
  stateChangeSubscription;
36587
36799
  dataChangedSubscription;
36588
36800
  rowReorderSubscription;
36589
- constructor(grid, changeDetector, localDataChangesService, rowReorderService, ctx) {
36801
+ searchSubscription;
36802
+ searchFilter;
36803
+ constructor(grid, changeDetector, localDataChangesService, rowReorderService, searchService, ctx) {
36590
36804
  this.grid = grid;
36591
36805
  this.changeDetector = changeDetector;
36592
36806
  this.localDataChangesService = localDataChangesService;
36593
36807
  this.rowReorderService = rowReorderService;
36808
+ this.searchService = searchService;
36594
36809
  if (localDataChangesService) {
36595
36810
  this.dataChangedSubscription = this.localDataChangesService.changes.subscribe(this.rebind.bind(this));
36596
36811
  }
@@ -36609,6 +36824,13 @@ class DataBindingDirective {
36609
36824
  .rowReorder
36610
36825
  .subscribe(this.onRowReorder.bind(this));
36611
36826
  }
36827
+ if (this.searchService) {
36828
+ this.searchSubscription = this.searchService
36829
+ .changes
36830
+ .subscribe((searchFilter) => {
36831
+ this.onSearch.bind(this)(searchFilter);
36832
+ });
36833
+ }
36612
36834
  }
36613
36835
  /**
36614
36836
  * @hidden
@@ -36623,6 +36845,9 @@ class DataBindingDirective {
36623
36845
  if (this.rowReorderSubscription) {
36624
36846
  this.rowReorderSubscription.unsubscribe();
36625
36847
  }
36848
+ if (this.searchSubscription) {
36849
+ this.searchSubscription.unsubscribe();
36850
+ }
36626
36851
  }
36627
36852
  ngOnChanges(changes) {
36628
36853
  if (anyChanged(["pageSize", "skip", "sort", "group", "filter"], changes)) {
@@ -36648,6 +36873,18 @@ class DataBindingDirective {
36648
36873
  this.rowReorderService.reorderRows(ev, this.originalData);
36649
36874
  this.rebind();
36650
36875
  }
36876
+ /**
36877
+ * @hidden
36878
+ */
36879
+ onSearch(searchFilter) {
36880
+ this.searchFilter = searchFilter;
36881
+ const combinedFilter = this.combineFilters();
36882
+ const state = { ...this.state, filter: combinedFilter };
36883
+ this.grid.data = this.process(state);
36884
+ this.grid.updateNavigationMetadata();
36885
+ this.grid.ngDoCheck();
36886
+ this.dataChanged = false;
36887
+ }
36651
36888
  /**
36652
36889
  * @hidden
36653
36890
  */
@@ -36694,12 +36931,31 @@ class DataBindingDirective {
36694
36931
  this.state.take = this.grid.pageSize;
36695
36932
  }
36696
36933
  }
36697
- this.grid.data = this.process(this.state);
36934
+ let combinedFilter = null;
36935
+ if (this.searchFilter) {
36936
+ combinedFilter = this.combineFilters();
36937
+ const state = { ...this.state, filter: combinedFilter };
36938
+ this.grid.data = this.process(state);
36939
+ }
36940
+ else {
36941
+ this.grid.data = this.process(this.state);
36942
+ }
36698
36943
  this.grid.updateNavigationMetadata();
36699
36944
  this.grid.ngDoCheck();
36700
36945
  this.dataChanged = false;
36701
36946
  }
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 });
36947
+ combineFilters() {
36948
+ let combinedFilter = null;
36949
+ if (this.state.filter && this.searchFilter) {
36950
+ combinedFilter = {
36951
+ logic: 'and',
36952
+ filters: [...this.state.filter.filters, this.searchFilter]
36953
+ };
36954
+ return combinedFilter;
36955
+ }
36956
+ return this.searchFilter || this.state.filter;
36957
+ }
36958
+ 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
36959
  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
36960
  }
36705
36961
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DataBindingDirective, decorators: [{
@@ -36709,7 +36965,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
36709
36965
  exportAs: 'kendoGridBinding',
36710
36966
  standalone: true
36711
36967
  }]
36712
- }], ctorParameters: () => [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }, { type: ContextService }], propDecorators: { skip: [{
36968
+ }], ctorParameters: () => [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }, { type: SearchService }, { type: ContextService }], propDecorators: { skip: [{
36713
36969
  type: Input
36714
36970
  }], sort: [{
36715
36971
  type: Input
@@ -37994,7 +38250,7 @@ class PDFCommandToolbarDirective extends ToolbarToolBase {
37994
38250
  e.preventDefault();
37995
38251
  this.pdfService.exportClick.emit();
37996
38252
  }
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 });
38253
+ 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
38254
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: PDFCommandToolbarDirective, isStandalone: true, selector: "[kendoGridPDFTool]", usesInheritance: true, ngImport: i0 });
37999
38255
  }
38000
38256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFCommandToolbarDirective, decorators: [{
@@ -38003,7 +38259,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38003
38259
  selector: '[kendoGridPDFTool]',
38004
38260
  standalone: true
38005
38261
  }]
38006
- }], ctorParameters: () => [{ type: PDFService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38262
+ }], ctorParameters: () => [{ type: PDFService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38007
38263
 
38008
38264
  /**
38009
38265
  * Represents the **Export to Excel** toolbar tool of the Grid.
@@ -38039,7 +38295,7 @@ class ExcelCommandToolbarDirective extends ToolbarToolBase {
38039
38295
  e.preventDefault();
38040
38296
  this.excelService.exportClick.emit();
38041
38297
  }
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 });
38298
+ 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
38299
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: ExcelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridExcelTool]", usesInheritance: true, ngImport: i0 });
38044
38300
  }
38045
38301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ExcelCommandToolbarDirective, decorators: [{
@@ -38048,7 +38304,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38048
38304
  selector: '[kendoGridExcelTool]',
38049
38305
  standalone: true
38050
38306
  }]
38051
- }], ctorParameters: () => [{ type: ExcelService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38307
+ }], ctorParameters: () => [{ type: ExcelService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38052
38308
 
38053
38309
  /**
38054
38310
  * @hidden
@@ -38121,13 +38377,13 @@ class ToolbarEditingToolBase extends ToolbarToolBase {
38121
38377
  get isSelectionPresent() {
38122
38378
  return isPresent$1(this.lastSelectionIndex) && this.lastSelectionIndex > -1;
38123
38379
  }
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 });
38380
+ 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
38381
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: ToolbarEditingToolBase, isStandalone: true, usesInheritance: true, ngImport: i0 });
38126
38382
  }
38127
38383
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToolbarEditingToolBase, decorators: [{
38128
38384
  type: Directive,
38129
38385
  args: [{}]
38130
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: undefined, decorators: [{
38386
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: undefined, decorators: [{
38131
38387
  type: Inject,
38132
38388
  args: ['command']
38133
38389
  }] }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: EditService }, { type: SelectionService }] });
@@ -38167,7 +38423,7 @@ class AddCommandToolbarDirective extends ToolbarEditingToolBase {
38167
38423
  e.preventDefault();
38168
38424
  this.editService.beginAdd();
38169
38425
  }
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 });
38426
+ 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
38427
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: AddCommandToolbarDirective, isStandalone: true, selector: "[kendoGridAddTool]", usesInheritance: true, ngImport: i0 });
38172
38428
  }
38173
38429
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AddCommandToolbarDirective, decorators: [{
@@ -38176,7 +38432,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38176
38432
  selector: '[kendoGridAddTool]',
38177
38433
  standalone: true
38178
38434
  }]
38179
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38435
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38180
38436
 
38181
38437
  /**
38182
38438
  * @hidden
@@ -38727,7 +38983,7 @@ class UndoCommandToolbarDirective {
38727
38983
  e.preventDefault();
38728
38984
  this.undoRedoService.onUndo.next(undefined);
38729
38985
  }
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 });
38986
+ 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
38987
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: UndoCommandToolbarDirective, isStandalone: true, selector: "[kendoGridUndoTool]", ngImport: i0 });
38732
38988
  }
38733
38989
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: UndoCommandToolbarDirective, decorators: [{
@@ -38736,7 +38992,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38736
38992
  selector: '[kendoGridUndoTool]',
38737
38993
  standalone: true,
38738
38994
  }]
38739
- }], ctorParameters: () => [{ type: UndoRedoService }, { type: i54.ToolBarButtonComponent }] });
38995
+ }], ctorParameters: () => [{ type: UndoRedoService }, { type: i57.ToolBarButtonComponent }] });
38740
38996
 
38741
38997
  /**
38742
38998
  * Represents the command that triggers the redo action in the Grid.
@@ -38790,7 +39046,7 @@ class RedoCommandToolbarDirective {
38790
39046
  e.preventDefault();
38791
39047
  this.undoRedoService.onRedo.next(undefined);
38792
39048
  }
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 });
39049
+ 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
39050
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: RedoCommandToolbarDirective, isStandalone: true, selector: "[kendoGridRedoTool]", ngImport: i0 });
38795
39051
  }
38796
39052
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: RedoCommandToolbarDirective, decorators: [{
@@ -38799,7 +39055,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38799
39055
  selector: '[kendoGridRedoTool]',
38800
39056
  standalone: true,
38801
39057
  }]
38802
- }], ctorParameters: () => [{ type: UndoRedoService }, { type: i54.ToolBarButtonComponent }] });
39058
+ }], ctorParameters: () => [{ type: UndoRedoService }, { type: i57.ToolBarButtonComponent }] });
38803
39059
 
38804
39060
  let incrementingId$2 = 0;
38805
39061
  /**
@@ -38990,7 +39246,7 @@ class SortCommandToolbarDirective {
38990
39246
  get buttonElement() {
38991
39247
  return this.host.getButton();
38992
39248
  }
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 });
39249
+ 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
39250
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: SortCommandToolbarDirective, isStandalone: true, selector: "[kendoGridSortTool]", ngImport: i0 });
38995
39251
  }
38996
39252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SortCommandToolbarDirective, decorators: [{
@@ -38999,7 +39255,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38999
39255
  selector: '[kendoGridSortTool]',
39000
39256
  standalone: true
39001
39257
  }]
39002
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39258
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39003
39259
 
39004
39260
  /**
39005
39261
  * @hidden
@@ -39322,7 +39578,7 @@ class FilterCommandToolbarDirective {
39322
39578
  get buttonElement() {
39323
39579
  return this.host.getButton();
39324
39580
  }
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 });
39581
+ 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
39582
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: FilterCommandToolbarDirective, isStandalone: true, selector: "[kendoGridFilterTool]", ngImport: i0 });
39327
39583
  }
39328
39584
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FilterCommandToolbarDirective, decorators: [{
@@ -39331,7 +39587,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39331
39587
  selector: '[kendoGridFilterTool]',
39332
39588
  standalone: true
39333
39589
  }]
39334
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: FilterService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39590
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: FilterService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39335
39591
 
39336
39592
  /**
39337
39593
  * Represents the `edit` command in the Grid. Apply this directive to any `kendo-toolbar-button`
@@ -39367,7 +39623,7 @@ class EditCommandToolbarDirective extends ToolbarEditingToolBase {
39367
39623
  }
39368
39624
  this.editService.beginEdit(this.lastSelectionIndex);
39369
39625
  }
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 });
39626
+ 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
39627
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: EditCommandToolbarDirective, isStandalone: true, selector: "[kendoGridEditTool]", usesInheritance: true, ngImport: i0 });
39372
39628
  }
39373
39629
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: EditCommandToolbarDirective, decorators: [{
@@ -39376,7 +39632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39376
39632
  selector: '[kendoGridEditTool]',
39377
39633
  standalone: true
39378
39634
  }]
39379
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39635
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39380
39636
 
39381
39637
  /**
39382
39638
  * Represents the `save` command in the Grid. Apply this directive to any `kendo-toolbar-button`
@@ -39417,7 +39673,7 @@ class SaveCommandToolbarDirective extends ToolbarEditingToolBase {
39417
39673
  this.editService.editedIndices.forEach(i => this.editService.save(i.index));
39418
39674
  }
39419
39675
  }
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 });
39676
+ 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
39677
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: SaveCommandToolbarDirective, isStandalone: true, selector: "[kendoGridSaveTool]", usesInheritance: true, ngImport: i0 });
39422
39678
  }
39423
39679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SaveCommandToolbarDirective, decorators: [{
@@ -39426,7 +39682,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39426
39682
  selector: '[kendoGridSaveTool]',
39427
39683
  standalone: true
39428
39684
  }]
39429
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39685
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39430
39686
 
39431
39687
  /**
39432
39688
  * Represents the `remove` command in the Grid. Apply this directive to any `kendo-toolbar-button`
@@ -39463,7 +39719,7 @@ class RemoveCommandToolbarDirective extends ToolbarEditingToolBase {
39463
39719
  this.editService.remove(this.lastSelectionIndex);
39464
39720
  }
39465
39721
  }
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 });
39722
+ 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
39723
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: RemoveCommandToolbarDirective, isStandalone: true, selector: "[kendoGridRemoveTool]", usesInheritance: true, ngImport: i0 });
39468
39724
  }
39469
39725
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: RemoveCommandToolbarDirective, decorators: [{
@@ -39472,7 +39728,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39472
39728
  selector: '[kendoGridRemoveTool]',
39473
39729
  standalone: true
39474
39730
  }]
39475
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39731
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39476
39732
 
39477
39733
  /**
39478
39734
  * Represents the `cancel` command in the Grid.
@@ -39512,7 +39768,7 @@ class CancelCommandToolbarDirective extends ToolbarEditingToolBase {
39512
39768
  this.editService.editedIndices.forEach(i => this.editService.endEdit(i.index));
39513
39769
  }
39514
39770
  }
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 });
39771
+ 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
39772
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: CancelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridCancelTool]", usesInheritance: true, ngImport: i0 });
39517
39773
  }
39518
39774
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CancelCommandToolbarDirective, decorators: [{
@@ -39521,7 +39777,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39521
39777
  selector: '[kendoGridCancelTool]',
39522
39778
  standalone: true
39523
39779
  }]
39524
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39780
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39525
39781
 
39526
39782
  let incrementingId = 0;
39527
39783
  /**
@@ -39702,7 +39958,7 @@ class GroupCommandToolbarDirective {
39702
39958
  isGroupingApplied(group) {
39703
39959
  return isPresent$1(group) && group.length > 0;
39704
39960
  }
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 });
39961
+ 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
39962
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GroupCommandToolbarDirective, isStandalone: true, selector: "[kendoGridGroupTool]", ngImport: i0 });
39707
39963
  }
39708
39964
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GroupCommandToolbarDirective, decorators: [{
@@ -39711,7 +39967,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39711
39967
  selector: '[kendoGridGroupTool]',
39712
39968
  standalone: true
39713
39969
  }]
39714
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39970
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39715
39971
 
39716
39972
  /**
39717
39973
  * Stores the row and cell highlight state of the Grid.
@@ -39740,14 +39996,19 @@ class HighlightDirective {
39740
39996
  * Sets the column key for a data cell. The Grid uses the column index as the default column key.
39741
39997
  */
39742
39998
  highlightColumnKey;
39999
+ /**
40000
+ * Emits when the `highlightedKeys` collection changes.
40001
+ */
40002
+ highlightedKeysChange = new EventEmitter();
39743
40003
  rowHighlightState = new Set();
39744
40004
  cellHighlightState = new PairSet();
40005
+ lastHighlightState;
39745
40006
  constructor(ctx) {
39746
40007
  this.ctx = ctx;
39747
40008
  this.ctx.highlightDirective = this;
39748
40009
  }
39749
40010
  ngOnChanges(changes) {
39750
- if (isPresent$1(changes['highlightedKeys'])) {
40011
+ if (isPresent$1(changes['highlightedKeys']) && this.lastHighlightState !== this.highlightedKeys) {
39751
40012
  this.setState(this.highlightedKeys);
39752
40013
  }
39753
40014
  }
@@ -39801,6 +40062,8 @@ class HighlightDirective {
39801
40062
  setState(highlightedKeys) {
39802
40063
  this.reset();
39803
40064
  if (!highlightedKeys || highlightedKeys.length === 0) {
40065
+ this.highlightedKeys = [];
40066
+ this.notifyChange();
39804
40067
  return;
39805
40068
  }
39806
40069
  const rowHighlights = highlightedKeys.filter(item => !isPresent$1(item.columnKey));
@@ -39813,13 +40076,19 @@ class HighlightDirective {
39813
40076
  this.rowHighlightState.add(item.itemKey);
39814
40077
  });
39815
40078
  }
40079
+ this.highlightedKeys = highlightedKeys;
40080
+ this.notifyChange();
40081
+ }
40082
+ notifyChange() {
40083
+ this.lastHighlightState = this.highlightedKeys;
40084
+ this.highlightedKeysChange.emit(this.highlightedKeys);
39816
40085
  }
39817
40086
  reset() {
39818
40087
  this.rowHighlightState.clear();
39819
40088
  this.cellHighlightState.clear();
39820
40089
  }
39821
40090
  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 });
40091
+ 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
40092
  }
39824
40093
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HighlightDirective, decorators: [{
39825
40094
  type: Directive,
@@ -39834,6 +40103,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39834
40103
  args: ["kendoGridHighlight"]
39835
40104
  }], highlightColumnKey: [{
39836
40105
  type: Input
40106
+ }], highlightedKeysChange: [{
40107
+ type: Output
39837
40108
  }] } });
39838
40109
 
39839
40110
  /**
@@ -39881,7 +40152,6 @@ class AiAssistantComponent {
39881
40152
  http;
39882
40153
  ctx;
39883
40154
  columnInfoService;
39884
- zone;
39885
40155
  aiRequestResponseService;
39886
40156
  aiPrompt;
39887
40157
  activeView = 0;
@@ -39900,11 +40170,10 @@ class AiAssistantComponent {
39900
40170
  columns = [];
39901
40171
  leafColumns = [];
39902
40172
  idCounter = 0;
39903
- constructor(http, ctx, columnInfoService, zone, aiRequestResponseService) {
40173
+ constructor(http, ctx, columnInfoService, aiRequestResponseService) {
39904
40174
  this.http = http;
39905
40175
  this.ctx = ctx;
39906
40176
  this.columnInfoService = columnInfoService;
39907
- this.zone = zone;
39908
40177
  this.aiRequestResponseService = aiRequestResponseService;
39909
40178
  }
39910
40179
  ngAfterViewInit() {
@@ -40022,7 +40291,7 @@ class AiAssistantComponent {
40022
40291
  this.currentRequestSubscription = null;
40023
40292
  }
40024
40293
  }
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 });
40294
+ 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
40295
  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
40296
  <kendo-aiprompt
40028
40297
  #aiPrompt
@@ -40126,7 +40395,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40126
40395
  </kendo-aiprompt>
40127
40396
  `
40128
40397
  }]
40129
- }], ctorParameters: () => [{ type: i1$8.HttpClient }, { type: ContextService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: GridAIRequestResponseService }], propDecorators: { aiPrompt: [{
40398
+ }], ctorParameters: () => [{ type: i1$8.HttpClient }, { type: ContextService }, { type: ColumnInfoService }, { type: GridAIRequestResponseService }], propDecorators: { aiPrompt: [{
40130
40399
  type: ViewChild,
40131
40400
  args: [AIPromptComponent]
40132
40401
  }] } });
@@ -40350,7 +40619,7 @@ class AIAssistantToolbarDirective extends ToolbarToolBase {
40350
40619
  this.host.selected = false;
40351
40620
  focusAnchor && this.buttonElement?.focus();
40352
40621
  }
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 });
40622
+ 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
40623
  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
40624
  }
40356
40625
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AIAssistantToolbarDirective, decorators: [{
@@ -40359,7 +40628,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40359
40628
  selector: '[kendoGridAIAssistantTool]',
40360
40629
  standalone: true
40361
40630
  }]
40362
- }], ctorParameters: () => [{ type: i1$7.WindowService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i54.RefreshService }, { type: i0.ChangeDetectorRef }], propDecorators: { requestUrl: [{
40631
+ }], ctorParameters: () => [{ type: i1$7.WindowService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i57.RefreshService }, { type: i0.ChangeDetectorRef }], propDecorators: { requestUrl: [{
40363
40632
  type: Input
40364
40633
  }], requestOptions: [{
40365
40634
  type: Input
@@ -40464,6 +40733,1999 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40464
40733
  }]
40465
40734
  }], ctorParameters: () => [{ type: IdService }, { type: ContextService }] });
40466
40735
 
40736
+ /**
40737
+ * @hidden
40738
+ */
40739
+ class SmartBoxResponseErrorEvent extends PreventableEvent$1 {
40740
+ /**
40741
+ * The HTTP error response from the AI service.
40742
+ */
40743
+ error;
40744
+ constructor(error) {
40745
+ super();
40746
+ this.error = error;
40747
+ }
40748
+ }
40749
+ /**
40750
+ * @hidden
40751
+ */
40752
+ class SmartBoxResponseSuccessEvent extends PreventableEvent$1 {
40753
+ /**
40754
+ * The HTTP response from the AI service.
40755
+ */
40756
+ response;
40757
+ constructor(response) {
40758
+ super();
40759
+ this.response = response;
40760
+ }
40761
+ }
40762
+ /**
40763
+ * @hidden
40764
+ */
40765
+ class SmartBoxSearchEvent extends PreventableEvent$1 {
40766
+ /**
40767
+ * The user's input value.
40768
+ */
40769
+ searchValue;
40770
+ /**
40771
+ * The input-based filters that will be applied to the Grid.
40772
+ */
40773
+ filters;
40774
+ /**
40775
+ * The logic applied to the filters.
40776
+ */
40777
+ logic;
40778
+ /**
40779
+ * @hidden
40780
+ */
40781
+ constructor() {
40782
+ super();
40783
+ }
40784
+ }
40785
+
40786
+ /**
40787
+ * Represents the event data when the AI Assistant request completes with an error.
40788
+ */
40789
+ class GridSmartBoxResponseErrorEvent extends SmartBoxResponseErrorEvent {
40790
+ /**
40791
+ * @hidden
40792
+ */
40793
+ constructor(error) {
40794
+ super(error);
40795
+ }
40796
+ }
40797
+ /**
40798
+ * Represents the event data when the AI Assistant request completes successfully.
40799
+ */
40800
+ class GridSmartBoxResponseSuccessEvent extends SmartBoxResponseSuccessEvent {
40801
+ /**
40802
+ * @hidden
40803
+ */
40804
+ constructor(response) {
40805
+ super(response);
40806
+ }
40807
+ }
40808
+ /**
40809
+ * Represents the event data when the user types in Search mode.
40810
+ */
40811
+ class GridSmartBoxSearchEvent extends SmartBoxSearchEvent {
40812
+ /**
40813
+ * @hidden
40814
+ */
40815
+ constructor() {
40816
+ super();
40817
+ }
40818
+ }
40819
+
40820
+ const DEFAULT_SIZE$1 = 'medium';
40821
+ const SIZES_MAP = {
40822
+ small: 'sm',
40823
+ medium: 'md',
40824
+ large: 'lg'
40825
+ };
40826
+ /**
40827
+ * @hidden
40828
+ */
40829
+ class SegmentedControlComponent {
40830
+ renderer;
40831
+ wrapper;
40832
+ cdr;
40833
+ zone;
40834
+ hostClasses = true;
40835
+ hostRole = 'group';
40836
+ thumb;
40837
+ /**
40838
+ * Specifies the collection of buttons that will be rendered inside the SegmentedControlComponent.
40839
+ */
40840
+ buttons = [];
40841
+ /**
40842
+ * Sets the padding of the control.
40843
+ *
40844
+ * @default 'medium'
40845
+ */
40846
+ set size(size) {
40847
+ const newSize = size || DEFAULT_SIZE$1;
40848
+ this.handleSizeClass(newSize, this._size);
40849
+ this._size = newSize;
40850
+ }
40851
+ get size() {
40852
+ return this._size;
40853
+ }
40854
+ /**
40855
+ * Fires when a button is clicked.
40856
+ */
40857
+ buttonClick = new EventEmitter();
40858
+ ngAfterViewInit() {
40859
+ this.handleSizeClass(this._size, null);
40860
+ this.selectedButtonIndex = this.buttons.indexOf(this.buttons.find(b => b.selected)) || 0;
40861
+ this.cdr.detectChanges();
40862
+ this.zone.onStable.pipe(take(1)).subscribe(() => this.showSelectionIndicator());
40863
+ }
40864
+ handleClick(button, index) {
40865
+ this.selectedButtonIndex = index;
40866
+ this.cdr.detectChanges();
40867
+ this.buttonClick.emit(button);
40868
+ this.showSelectionIndicator();
40869
+ }
40870
+ getInnerIconClass(button) {
40871
+ const baseClass = 'k-segmented-control-button-icon';
40872
+ return button.iconInnerCssClass ? `${baseClass} ${button.iconInnerCssClass}` : baseClass;
40873
+ }
40874
+ constructor(renderer, wrapper, cdr, zone) {
40875
+ this.renderer = renderer;
40876
+ this.wrapper = wrapper;
40877
+ this.cdr = cdr;
40878
+ this.zone = zone;
40879
+ }
40880
+ showSelectionIndicator() {
40881
+ const element = this.wrapper.nativeElement;
40882
+ const controlRect = element.getBoundingClientRect();
40883
+ const selectedItem = element.querySelector('.k-segmented-control-button.k-selected');
40884
+ const selectionIndicator = this.thumb ? this.thumb.nativeElement : null;
40885
+ if (!selectedItem || !selectionIndicator) {
40886
+ return;
40887
+ }
40888
+ const itemRect = selectedItem.getBoundingClientRect();
40889
+ const left = itemRect.left - controlRect.left;
40890
+ const right = controlRect.right - itemRect.right;
40891
+ this.renderer.setStyle(selectionIndicator, 'left', `${left}px`);
40892
+ this.renderer.setStyle(selectionIndicator, 'right', `${right}px`);
40893
+ }
40894
+ selectedButtonIndex = 0;
40895
+ _size = DEFAULT_SIZE$1;
40896
+ handleSizeClass(newValue, prevValue) {
40897
+ if (!this.wrapper) {
40898
+ return;
40899
+ }
40900
+ const elem = this.wrapper.nativeElement;
40901
+ const classToRemove = prevValue ? `k-segmented-control-${SIZES_MAP[prevValue]}` : null;
40902
+ const classToAdd = newValue ? `k-segmented-control-${SIZES_MAP[newValue]}` : `k-segmented-control-${SIZES_MAP[DEFAULT_SIZE$1]}`;
40903
+ classToRemove && this.renderer.removeClass(elem, classToRemove);
40904
+ classToAdd && this.renderer.addClass(elem, classToAdd);
40905
+ }
40906
+ 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 });
40907
+ 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: `
40908
+ <div class="k-segmented-control-thumb" #thumb [attr.aria-hidden]="true"></div>
40909
+ @for (button of buttons; track $index; let idx = $index) {
40910
+ <button type="button"
40911
+ class="k-segmented-control-button"
40912
+ [class.k-disabled]="button.disabled"
40913
+ [attr.disabled]="button.disabled ? true : null"
40914
+ (click)="handleClick(button, idx)"
40915
+ [class.k-selected]="selectedButtonIndex === idx"
40916
+ [attr.aria-pressed]="selectedButtonIndex === idx ? 'true' : 'false'">
40917
+ <kendo-icon-wrapper
40918
+ [innerCssClass]="getInnerIconClass(button)"
40919
+ [name]="button.icon"
40920
+ [svgIcon]="button.svgIcon">
40921
+ </kendo-icon-wrapper>
40922
+ <span class="k-segmented-control-button-text">{{button.text}}</span>
40923
+ </button>
40924
+ }
40925
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
40926
+ }
40927
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SegmentedControlComponent, decorators: [{
40928
+ type: Component,
40929
+ args: [{
40930
+ selector: 'kendo-segmented-control',
40931
+ standalone: true,
40932
+ imports: [IconWrapperComponent],
40933
+ template: `
40934
+ <div class="k-segmented-control-thumb" #thumb [attr.aria-hidden]="true"></div>
40935
+ @for (button of buttons; track $index; let idx = $index) {
40936
+ <button type="button"
40937
+ class="k-segmented-control-button"
40938
+ [class.k-disabled]="button.disabled"
40939
+ [attr.disabled]="button.disabled ? true : null"
40940
+ (click)="handleClick(button, idx)"
40941
+ [class.k-selected]="selectedButtonIndex === idx"
40942
+ [attr.aria-pressed]="selectedButtonIndex === idx ? 'true' : 'false'">
40943
+ <kendo-icon-wrapper
40944
+ [innerCssClass]="getInnerIconClass(button)"
40945
+ [name]="button.icon"
40946
+ [svgIcon]="button.svgIcon">
40947
+ </kendo-icon-wrapper>
40948
+ <span class="k-segmented-control-button-text">{{button.text}}</span>
40949
+ </button>
40950
+ }
40951
+ `
40952
+ }]
40953
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { hostClasses: [{
40954
+ type: HostBinding,
40955
+ args: ['class.k-segmented-control']
40956
+ }, {
40957
+ type: HostBinding,
40958
+ args: ['class.k-segmented-control-stretched']
40959
+ }], hostRole: [{
40960
+ type: HostBinding,
40961
+ args: ['attr.role']
40962
+ }], thumb: [{
40963
+ type: ViewChild,
40964
+ args: ['thumb']
40965
+ }], buttons: [{
40966
+ type: Input
40967
+ }], size: [{
40968
+ type: Input
40969
+ }], buttonClick: [{
40970
+ type: Output
40971
+ }] } });
40972
+
40973
+ /**
40974
+ * Renders the prompt suggestion content.
40975
+ *
40976
+ * To define the suggestion template, nest a `<ng-template>` tag with the `kendoGridSmartBoxPromptSuggestionTemplate` directive inside the component tag.
40977
+ *
40978
+ * The template context is set to the current suggestion. Use the `let-suggestion` directive to reference the current suggestion.
40979
+ *
40980
+ * @example
40981
+ * ```html
40982
+ * <kendo-smartbox>
40983
+ * <ng-template kendoGridSmartBoxPromptSuggestionTemplate let-suggestion>
40984
+ * <kendo-icon-wrapper name="sort-asc" [svgIcon]="sortAscIcon"></kendo-icon-wrapper>
40985
+ * <span>{{suggestion}}</span>
40986
+ * </ng-template>
40987
+ * </kendo-smartbox>
40988
+ * ```
40989
+ */
40990
+ class GridSmartBoxPromptSuggestionTemplateDirective {
40991
+ templateRef;
40992
+ constructor(templateRef) {
40993
+ this.templateRef = templateRef;
40994
+ }
40995
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxPromptSuggestionTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
40996
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GridSmartBoxPromptSuggestionTemplateDirective, isStandalone: true, selector: "[kendoGridSmartBoxPromptSuggestionTemplate]", ngImport: i0 });
40997
+ }
40998
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxPromptSuggestionTemplateDirective, decorators: [{
40999
+ type: Directive,
41000
+ args: [{
41001
+ selector: '[kendoGridSmartBoxPromptSuggestionTemplate]',
41002
+ standalone: true
41003
+ }]
41004
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
41005
+
41006
+ /**
41007
+ * Renders the history item content.
41008
+ *
41009
+ * To define the history item template, nest a `<ng-template>` tag with the `kendoGridSmartBoxHistoryItemTemplate` directive inside the component tag.
41010
+ *
41011
+ * The template context is set to the current history item. Use the `let-item` directive to reference the current history item.
41012
+ *
41013
+ * @example
41014
+ * ```html
41015
+ * <kendo-smartbox>
41016
+ * <ng-template kendoGridSmartBoxHistoryItemTemplate let-item>
41017
+ * <kendo-icon-wrapper name="clock" [svgIcon]="clockIcon"></kendo-icon-wrapper>
41018
+ * <span>{{item.text}} ({{ item.timestamp | date: 'shortTime' }})</span>
41019
+ * </ng-template>
41020
+ * </kendo-smartbox>
41021
+ * ```
41022
+ */
41023
+ class GridSmartBoxHistoryItemTemplateDirective {
41024
+ templateRef;
41025
+ constructor(templateRef) {
41026
+ this.templateRef = templateRef;
41027
+ }
41028
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxHistoryItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
41029
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GridSmartBoxHistoryItemTemplateDirective, isStandalone: true, selector: "[kendoGridSmartBoxHistoryItemTemplate]", ngImport: i0 });
41030
+ }
41031
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxHistoryItemTemplateDirective, decorators: [{
41032
+ type: Directive,
41033
+ args: [{
41034
+ selector: '[kendoGridSmartBoxHistoryItemTemplate]',
41035
+ standalone: true
41036
+ }]
41037
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
41038
+
41039
+ /**
41040
+ * @hidden
41041
+ */
41042
+ const DEFAULT_HISTORY_SETTINGS = {
41043
+ size: 5,
41044
+ timestampFormat: 'HH:mm:ss'
41045
+ };
41046
+ /**
41047
+ * @hidden
41048
+ */
41049
+ const STB_DEFAULT_SETTINGS = {
41050
+ continuous: false,
41051
+ disabled: false,
41052
+ fillMode: 'clear',
41053
+ integrationMode: 'webSpeech',
41054
+ interimResults: false,
41055
+ lang: 'en-US',
41056
+ maxAlternatives: 1,
41057
+ rounded: 'full',
41058
+ size: 'small',
41059
+ themeColor: 'base'
41060
+ };
41061
+ /**
41062
+ * @hidden
41063
+ */
41064
+ const DEFAULT_SEARCH_SETTINGS = {
41065
+ history: DEFAULT_HISTORY_SETTINGS,
41066
+ placeholder: null,
41067
+ delay: 300,
41068
+ enabled: true,
41069
+ fields: []
41070
+ };
41071
+ /**
41072
+ * @hidden
41073
+ */
41074
+ const DEFAULT_SEMANTIC_SEARCH_SETTINGS = {
41075
+ history: DEFAULT_HISTORY_SETTINGS,
41076
+ placeholder: null,
41077
+ delay: 700,
41078
+ enabled: true
41079
+ };
41080
+ /**
41081
+ * @hidden
41082
+ */
41083
+ const DEFAULT_AI_ASSISTANT_SETTINGS = {
41084
+ history: DEFAULT_HISTORY_SETTINGS,
41085
+ placeholder: null,
41086
+ enabled: true,
41087
+ promptSuggestions: [],
41088
+ requestUrl: '',
41089
+ requestOptions: DEFAULT_AI_REQUEST_OPTIONS,
41090
+ speechToTextButton: true
41091
+ };
41092
+ /**
41093
+ * @hidden
41094
+ */
41095
+ const DEFAULT_SIZE = 'medium';
41096
+ /**
41097
+ * @hidden
41098
+ */
41099
+ const SIZES = {
41100
+ small: 'sm',
41101
+ medium: 'md',
41102
+ large: 'lg'
41103
+ };
41104
+
41105
+ /**
41106
+ * @hidden
41107
+ */
41108
+ class SmartBoxComponent {
41109
+ popupService;
41110
+ wrapper;
41111
+ cdr;
41112
+ zone;
41113
+ intl;
41114
+ ctx;
41115
+ aiRequestResponseService;
41116
+ http;
41117
+ renderer;
41118
+ columnInfoService;
41119
+ searchService;
41120
+ popupTemplate;
41121
+ input;
41122
+ innerWrapper;
41123
+ set searchMode(mode) {
41124
+ const settingsFromComponent = { placeholder: this.placeholder, history: this.history };
41125
+ if (mode === true) {
41126
+ this._searchMode = { ...DEFAULT_SEARCH_SETTINGS, ...settingsFromComponent, enabled: true };
41127
+ }
41128
+ else if (mode === false) {
41129
+ this._searchMode = null;
41130
+ }
41131
+ else {
41132
+ this._searchMode = { ...DEFAULT_SEARCH_SETTINGS, ...settingsFromComponent, ...mode };
41133
+ }
41134
+ this.updateSearchListData();
41135
+ this.updateSelectedView();
41136
+ }
41137
+ get searchMode() {
41138
+ return this._searchMode;
41139
+ }
41140
+ set semanticSearchMode(mode) {
41141
+ const settingsFromComponent = { placeholder: this.placeholder, history: this.history };
41142
+ if (mode === true) {
41143
+ this._semanticSearchMode = { ...DEFAULT_SEMANTIC_SEARCH_SETTINGS, ...settingsFromComponent, enabled: true };
41144
+ }
41145
+ else if (mode === false) {
41146
+ this._semanticSearchMode = null;
41147
+ }
41148
+ else {
41149
+ this._semanticSearchMode = { ...DEFAULT_SEMANTIC_SEARCH_SETTINGS, ...settingsFromComponent, ...mode };
41150
+ }
41151
+ this.updateSearchListData();
41152
+ this.updateSelectedView();
41153
+ }
41154
+ get semanticSearchMode() {
41155
+ return this._semanticSearchMode;
41156
+ }
41157
+ set aiAssistantMode(mode) {
41158
+ const settingsFromComponent = { placeholder: this.placeholder, history: this.history };
41159
+ if (mode === true) {
41160
+ this._aiAssistantMode = { ...DEFAULT_AI_ASSISTANT_SETTINGS, ...settingsFromComponent, enabled: true };
41161
+ }
41162
+ else if (mode === false) {
41163
+ this._aiAssistantMode = null;
41164
+ }
41165
+ else {
41166
+ const mergedRequestOptions = mode?.requestOptions ?
41167
+ { ...DEFAULT_AI_ASSISTANT_SETTINGS.requestOptions, ...mode.requestOptions } :
41168
+ DEFAULT_AI_ASSISTANT_SETTINGS.requestOptions;
41169
+ this._aiAssistantMode = {
41170
+ ...DEFAULT_AI_ASSISTANT_SETTINGS,
41171
+ ...settingsFromComponent,
41172
+ ...mode,
41173
+ requestOptions: mergedRequestOptions
41174
+ };
41175
+ }
41176
+ this.updateSelectedView();
41177
+ this.speechToTextButton = this._aiAssistantMode?.speechToTextButton;
41178
+ }
41179
+ get aiAssistantMode() {
41180
+ return this._aiAssistantMode;
41181
+ }
41182
+ set speechToTextButton(value) {
41183
+ if (value === true) {
41184
+ this._speechToTextButton = STB_DEFAULT_SETTINGS;
41185
+ }
41186
+ else if (value === false) {
41187
+ this._speechToTextButton = null;
41188
+ }
41189
+ else {
41190
+ this._speechToTextButton = { ...STB_DEFAULT_SETTINGS, ...value };
41191
+ }
41192
+ }
41193
+ get speechToTextButton() {
41194
+ return this._speechToTextButton;
41195
+ }
41196
+ get searchHistorySettings() {
41197
+ if (!isPresent$1(this.searchMode?.history)) {
41198
+ return null;
41199
+ }
41200
+ if (typeof this.searchMode.history === 'boolean') {
41201
+ return this.searchMode.history ? DEFAULT_HISTORY_SETTINGS : null;
41202
+ }
41203
+ else {
41204
+ return { ...DEFAULT_HISTORY_SETTINGS, ...this.searchMode.history };
41205
+ }
41206
+ }
41207
+ get semanticSearchHistorySettings() {
41208
+ if (!isPresent$1(this.semanticSearchMode?.history)) {
41209
+ return null;
41210
+ }
41211
+ if (typeof this.semanticSearchMode.history === 'boolean') {
41212
+ return this.semanticSearchMode.history ? DEFAULT_HISTORY_SETTINGS : null;
41213
+ }
41214
+ else {
41215
+ return { ...DEFAULT_HISTORY_SETTINGS, ...this.semanticSearchMode.history };
41216
+ }
41217
+ }
41218
+ get aiAssistantHistorySettings() {
41219
+ if (!isPresent$1(this.aiAssistantMode?.history)) {
41220
+ return null;
41221
+ }
41222
+ if (typeof this.aiAssistantMode.history === 'boolean') {
41223
+ return this.aiAssistantMode.history ? DEFAULT_HISTORY_SETTINGS : null;
41224
+ }
41225
+ else {
41226
+ return { ...DEFAULT_HISTORY_SETTINGS, ...this.aiAssistantMode.history };
41227
+ }
41228
+ }
41229
+ get inputPlaceholder() {
41230
+ return this[`${this.selectedView}Placeholder`] || '';
41231
+ }
41232
+ set activeMode(value) {
41233
+ this._activeMode = value;
41234
+ this.updateSelectedView();
41235
+ }
41236
+ get activeMode() {
41237
+ return this._activeMode;
41238
+ }
41239
+ set history(value) {
41240
+ if (value === true || !isPresent$1(value)) {
41241
+ this._history = DEFAULT_HISTORY_SETTINGS;
41242
+ }
41243
+ else if (value === false) {
41244
+ this._history = null;
41245
+ }
41246
+ else {
41247
+ this._history = {
41248
+ size: value.size ?? DEFAULT_HISTORY_SETTINGS.size,
41249
+ timestampFormat: value.timestampFormat ?? DEFAULT_HISTORY_SETTINGS.timestampFormat
41250
+ };
41251
+ }
41252
+ }
41253
+ get history() {
41254
+ return this._history;
41255
+ }
41256
+ placeholder;
41257
+ set size(size) {
41258
+ const newSize = size || DEFAULT_SIZE;
41259
+ this.handleSizeClass(newSize);
41260
+ this._size = newSize;
41261
+ }
41262
+ get size() {
41263
+ return this._size;
41264
+ }
41265
+ promptSuggestionTemplate;
41266
+ historyItemTemplate;
41267
+ loading = false;
41268
+ open = new EventEmitter();
41269
+ close = new EventEmitter();
41270
+ focus = new EventEmitter();
41271
+ blur = new EventEmitter();
41272
+ aiAssistantPromptRequest = new EventEmitter();
41273
+ aiAssistantResponseSuccess = new EventEmitter();
41274
+ aiAssistantResponseError = new EventEmitter();
41275
+ aiAssistantCancelRequest = new EventEmitter();
41276
+ search = new EventEmitter();
41277
+ semanticSearch = new EventEmitter();
41278
+ modeChange = new EventEmitter();
41279
+ constructor(popupService, wrapper, cdr, zone, intl, ctx, aiRequestResponseService, http, renderer, columnInfoService, searchService) {
41280
+ this.popupService = popupService;
41281
+ this.wrapper = wrapper;
41282
+ this.cdr = cdr;
41283
+ this.zone = zone;
41284
+ this.intl = intl;
41285
+ this.ctx = ctx;
41286
+ this.aiRequestResponseService = aiRequestResponseService;
41287
+ this.http = http;
41288
+ this.renderer = renderer;
41289
+ this.columnInfoService = columnInfoService;
41290
+ this.searchService = searchService;
41291
+ }
41292
+ ngOnChanges(changes) {
41293
+ if (changes['history'] || changes['placeholder']) {
41294
+ this.updateModeSettingsFromSharedInputs();
41295
+ }
41296
+ if (changes['searchMode']) {
41297
+ this.updateSearchListData();
41298
+ this.updateSelectedView();
41299
+ this.updateHistoryData();
41300
+ }
41301
+ if (changes['semanticSearchMode']) {
41302
+ this.updateSearchListData();
41303
+ this.updateSelectedView();
41304
+ this.updateHistoryData();
41305
+ }
41306
+ if (changes['aiAssistantMode']) {
41307
+ this.updateSelectedView();
41308
+ this.updateHistoryData();
41309
+ this.speechToTextButton = this._aiAssistantMode?.speechToTextButton;
41310
+ }
41311
+ if (changes['activeMode']) {
41312
+ this.updateSelectedView();
41313
+ }
41314
+ }
41315
+ ngAfterViewInit() {
41316
+ // Preserve a flat columns array (fields) for highlight utilities.
41317
+ // Use leafNamedColumns as the canonical list of leaf columns with display titles.
41318
+ this.leafColumns = this.columnInfoService.leafNamedColumns || [];
41319
+ this.columns = this.leafColumns.map((col) => ({ field: col.field }));
41320
+ this.handleSizeClass(this._size);
41321
+ this.updateSearchListData();
41322
+ this.updateSelectedView();
41323
+ }
41324
+ ngOnDestroy() {
41325
+ this.destroyPopup();
41326
+ this.clearTypingTimeout();
41327
+ this.unsubscribeCurrentRequest();
41328
+ }
41329
+ focusableId = `k-${guid()}`;
41330
+ selectedView;
41331
+ isOpen = false;
41332
+ checkIcon = checkIcon;
41333
+ clockArrowRotateIcon = clockArrowRotateIcon;
41334
+ fileClockOutlineIcon = fileClockOutlineIcon;
41335
+ searchIcon = searchIcon;
41336
+ zoomSparkleIcon = zoomSparkleIcon;
41337
+ sparklesIcon = sparklesIcon;
41338
+ arrowUpOutlineIcon = arrowUpOutlineIcon;
41339
+ stopSmIcon = stopSmIcon;
41340
+ xIcon = xIcon;
41341
+ lightbulbOutlineIcon = lightbulbOutlineIcon;
41342
+ searchListData = [];
41343
+ aiAssistantHistory = [];
41344
+ searchHistory = [];
41345
+ semanticSearchHistory = [];
41346
+ get segmentedControlButtons() {
41347
+ const buttons = [];
41348
+ if ((this.searchMode?.enabled || this.semanticSearchMode?.enabled) && this.aiAssistantMode?.enabled) {
41349
+ if (this.searchMode?.enabled && !this.semanticSearchMode?.enabled) {
41350
+ buttons.push({ text: 'Search', svgIcon: searchIcon, icon: 'search', selected: this.selectedView === 'search' });
41351
+ }
41352
+ else if (!this.searchMode?.enabled && this.semanticSearchMode?.enabled) {
41353
+ buttons.push({ text: 'Search', svgIcon: zoomSparkleIcon, icon: 'zoom-sparkle', selected: this.selectedView === 'semanticSearch', iconInnerCssClass: this.selectedView === 'semanticSearch' ? 'k-accent-icon' : '' });
41354
+ }
41355
+ else if (this.searchMode?.enabled && this.semanticSearchMode?.enabled) {
41356
+ buttons.push({ text: 'Search', svgIcon: searchIcon, icon: 'search', selected: this.selectedView === 'search' || this.selectedView === 'semanticSearch', iconInnerCssClass: this.selectedView === 'semanticSearch' ? 'k-accent-icon' : '' });
41357
+ }
41358
+ buttons.push({ text: 'AI Assistant', svgIcon: sparklesIcon, icon: 'sparkles', selected: this.selectedView === 'aiAssistant', iconInnerCssClass: this.selectedView === 'aiAssistant' ? 'k-accent-icon' : '' });
41359
+ }
41360
+ return buttons;
41361
+ }
41362
+ get prefixIconName() {
41363
+ switch (this.selectedView) {
41364
+ case 'search':
41365
+ return 'search';
41366
+ case 'semanticSearch':
41367
+ return 'zoom-sparkle';
41368
+ case 'aiAssistant':
41369
+ return 'sparkles';
41370
+ default:
41371
+ return 'search';
41372
+ }
41373
+ }
41374
+ get prefixSVGIcon() {
41375
+ switch (this.selectedView) {
41376
+ case 'search':
41377
+ return this.searchIcon;
41378
+ case 'semanticSearch':
41379
+ return this.zoomSparkleIcon;
41380
+ case 'aiAssistant':
41381
+ return this.sparklesIcon;
41382
+ default:
41383
+ return this.searchIcon;
41384
+ }
41385
+ }
41386
+ messageFor(message) {
41387
+ return this.ctx.localization.get(message);
41388
+ }
41389
+ formatDate(date, format) {
41390
+ return this.intl.formatDate(date, format);
41391
+ }
41392
+ onModeChange(button) {
41393
+ let previousView;
41394
+ if (this.searchListData.length > 0) {
41395
+ previousView = this.searchListData.find(i => i.selected)?.text;
41396
+ }
41397
+ if (button.text === 'Search') {
41398
+ if (previousView === 'Search') {
41399
+ this.selectedView = 'search';
41400
+ }
41401
+ else if (previousView === 'Semantic Search') {
41402
+ this.selectedView = 'semanticSearch';
41403
+ }
41404
+ else if (this.searchMode?.enabled) {
41405
+ this.selectedView = 'search';
41406
+ }
41407
+ else if (this.semanticSearchMode?.enabled) {
41408
+ this.selectedView = 'semanticSearch';
41409
+ }
41410
+ }
41411
+ else if (button.text === 'AI Assistant') {
41412
+ this.selectedView = 'aiAssistant';
41413
+ }
41414
+ this.modeChange.emit(this.selectedView);
41415
+ this.clearValue();
41416
+ this.cdr.detectChanges();
41417
+ }
41418
+ onSearchItemClick(item) {
41419
+ this.searchListData.forEach(i => i.selected = false);
41420
+ this.searchListData.find(i => i.text === item.text).selected = true;
41421
+ this.selectedView = item.text === 'Search' ? 'search' : 'semanticSearch';
41422
+ this.modeChange.emit(this.selectedView);
41423
+ this.clearValue();
41424
+ this.cdr.markForCheck();
41425
+ }
41426
+ onListItemClick(item) {
41427
+ if (!this.selectedView) {
41428
+ return;
41429
+ }
41430
+ this.input.nativeElement.value = item;
41431
+ this.togglePopup(false);
41432
+ this.input.nativeElement.focus();
41433
+ if (this.selectedView === 'aiAssistant') {
41434
+ return;
41435
+ }
41436
+ let ev;
41437
+ const fields = this.searchMode?.fields.length > 0 ? this.searchMode.fields :
41438
+ this.ctx.grid.columnList.toArray().map((item) => item.field);
41439
+ const filters = [];
41440
+ fields.forEach(field => {
41441
+ filters.push({
41442
+ field,
41443
+ operator: 'contains',
41444
+ value: this.input.nativeElement.value
41445
+ });
41446
+ });
41447
+ const eventArgs = {
41448
+ searchValue: this.input.nativeElement.value,
41449
+ filters,
41450
+ logic: 'or'
41451
+ };
41452
+ if (this.selectedView === 'search') {
41453
+ ev = Object.assign(new SmartBoxSearchEvent(), eventArgs);
41454
+ }
41455
+ else if (this.selectedView === 'semanticSearch') {
41456
+ ev = { searchValue: this.input.nativeElement.value };
41457
+ }
41458
+ this[this.selectedView].emit(ev);
41459
+ if (this.selectedView === 'search' && !ev.isDefaultPrevented()) {
41460
+ this.zone.run(() => {
41461
+ if (this.input.nativeElement.value === '' || !this.input.nativeElement.value) {
41462
+ this.searchService.changes.next(undefined);
41463
+ }
41464
+ else {
41465
+ this.searchService.changes.next({ filters: ev.filters, logic: ev.logic });
41466
+ }
41467
+ });
41468
+ }
41469
+ if (this.input.nativeElement.value) {
41470
+ const historyItem = {
41471
+ text: this.input.nativeElement.value,
41472
+ timestamp: new Date(),
41473
+ format: this[`${this.selectedView}HistorySettings`].timestampFormat
41474
+ };
41475
+ this[`${this.selectedView}History`].unshift(historyItem);
41476
+ if (this[`${this.selectedView}History`]?.length > this[`${this.selectedView}HistorySettings`].size) {
41477
+ this[`${this.selectedView}History`].splice(this[`${this.selectedView}HistorySettings`].size);
41478
+ }
41479
+ }
41480
+ }
41481
+ handleInput = (_event) => {
41482
+ if (this.input.nativeElement.value) {
41483
+ this.togglePopup(false);
41484
+ }
41485
+ else {
41486
+ this.togglePopup(true);
41487
+ }
41488
+ this.clearTypingTimeout();
41489
+ if (this.selectedView === 'aiAssistant') {
41490
+ return;
41491
+ }
41492
+ this.handleInputValueChange();
41493
+ };
41494
+ handleInputValueChange() {
41495
+ if (!this.selectedView) {
41496
+ return;
41497
+ }
41498
+ const inputValue = this.input.nativeElement.value;
41499
+ let ev;
41500
+ let delay;
41501
+ if (this.selectedView === 'search') {
41502
+ const fields = this.searchMode.fields.length > 0 ? this.searchMode.fields :
41503
+ this.ctx.grid.columnList.toArray().map((item) => item.field);
41504
+ const filters = [];
41505
+ fields.forEach(field => {
41506
+ filters.push({
41507
+ field,
41508
+ operator: 'contains',
41509
+ value: inputValue
41510
+ });
41511
+ });
41512
+ const eventArgs = {
41513
+ searchValue: inputValue,
41514
+ filters,
41515
+ logic: 'or'
41516
+ };
41517
+ ev = Object.assign(new SmartBoxSearchEvent(), eventArgs);
41518
+ delay = this.searchMode.delay;
41519
+ }
41520
+ else if (this.selectedView === 'semanticSearch') {
41521
+ const fields = this.ctx.grid.columnList.toArray().map((item) => item.field);
41522
+ const filters = [];
41523
+ fields.forEach(field => {
41524
+ filters.push({
41525
+ field,
41526
+ operator: 'contains',
41527
+ value: inputValue
41528
+ });
41529
+ });
41530
+ ev = {
41531
+ searchValue: inputValue,
41532
+ filters,
41533
+ logic: 'or'
41534
+ };
41535
+ delay = this.semanticSearchMode.delay;
41536
+ }
41537
+ this.searchTypingTimeout = setTimeout(() => {
41538
+ this.zone.run(() => {
41539
+ this[this.selectedView].emit(ev);
41540
+ });
41541
+ if (this.selectedView === 'search' && !ev.isDefaultPrevented()) {
41542
+ this.zone.run(() => {
41543
+ if (inputValue === '' || !inputValue) {
41544
+ this.searchService.changes.next(undefined);
41545
+ }
41546
+ else {
41547
+ this.searchService.changes.next({ filters: ev.filters, logic: ev.logic });
41548
+ }
41549
+ });
41550
+ }
41551
+ if (inputValue) {
41552
+ const historyItem = {
41553
+ text: inputValue,
41554
+ timestamp: new Date(),
41555
+ format: this[`${this.selectedView}HistorySettings`].timestampFormat
41556
+ };
41557
+ this[`${this.selectedView}History`].unshift(historyItem);
41558
+ if (this[`${this.selectedView}History`]?.length > this[`${this.selectedView}HistorySettings`].size) {
41559
+ this[`${this.selectedView}History`].splice(this[`${this.selectedView}HistorySettings`].size);
41560
+ }
41561
+ }
41562
+ }, delay);
41563
+ }
41564
+ handleInputFocus = () => {
41565
+ if (hasObservers(this.focus)) {
41566
+ this.zone.run(() => {
41567
+ this.focus.emit();
41568
+ });
41569
+ }
41570
+ this.togglePopup(true);
41571
+ };
41572
+ handleInputBlur = () => {
41573
+ if (hasObservers(this.blur)) {
41574
+ this.zone.run(() => {
41575
+ this.blur.emit();
41576
+ });
41577
+ }
41578
+ this.togglePopup(false);
41579
+ };
41580
+ handleInputClick = () => {
41581
+ if (!this.input.nativeElement.value) {
41582
+ this.togglePopup(true);
41583
+ }
41584
+ };
41585
+ handleInputKeydown = (event) => {
41586
+ const code = normalizeKeys(event);
41587
+ const isEnter = code === Keys.Enter;
41588
+ if (!isEnter) {
41589
+ return;
41590
+ }
41591
+ if (this.selectedView === 'aiAssistant') {
41592
+ this.zone.run(() => {
41593
+ this.onPromptSubmit();
41594
+ });
41595
+ }
41596
+ else if (this.selectedView === 'semanticSearch') {
41597
+ this.zone.run(() => {
41598
+ this.clearTypingTimeout();
41599
+ this.handleInputValueChange();
41600
+ });
41601
+ }
41602
+ };
41603
+ onIconClick = () => {
41604
+ this.togglePopup(!this.isOpen);
41605
+ this.input.nativeElement.focus();
41606
+ };
41607
+ onIconMouseDown = (args) => {
41608
+ args.preventDefault();
41609
+ };
41610
+ clearButtonClick(event) {
41611
+ event.stopImmediatePropagation();
41612
+ this.clearValue();
41613
+ this.togglePopup(true);
41614
+ this.clearTypingTimeout();
41615
+ this.handleInputValueChange();
41616
+ }
41617
+ _searchMode;
41618
+ _semanticSearchMode;
41619
+ _aiAssistantMode;
41620
+ _activeMode = 'search';
41621
+ _history;
41622
+ _size = DEFAULT_SIZE;
41623
+ _speechToTextButton;
41624
+ popupRef;
41625
+ popupMouseDownHandler = (event) => event.preventDefault();
41626
+ requestData;
41627
+ currentRequestSubscription = null;
41628
+ columns = [];
41629
+ leafColumns = [];
41630
+ searchTypingTimeout;
41631
+ togglePopup(open) {
41632
+ const sameState = this.isOpen === open;
41633
+ if (sameState) {
41634
+ return;
41635
+ }
41636
+ this._toggle(open);
41637
+ }
41638
+ onPromptSubmit() {
41639
+ if (this.loading) {
41640
+ this.handleResponseCancel();
41641
+ return;
41642
+ }
41643
+ if (this.input.nativeElement.value.length === 0) {
41644
+ return;
41645
+ }
41646
+ this.loading = true;
41647
+ const historyItem = {
41648
+ text: this.input.nativeElement.value,
41649
+ timestamp: new Date(),
41650
+ format: this.aiAssistantHistorySettings?.timestampFormat
41651
+ };
41652
+ this.aiAssistantHistory.unshift(historyItem);
41653
+ if (this.aiAssistantHistory.length > this.aiAssistantHistorySettings?.size) {
41654
+ this.aiAssistantHistory.splice(this.aiAssistantHistorySettings.size);
41655
+ }
41656
+ this.unsubscribeCurrentRequest();
41657
+ this.requestData = {
41658
+ columns: [],
41659
+ promptMessage: this.input.nativeElement.value,
41660
+ url: this.aiAssistantMode.requestUrl,
41661
+ requestOptions: {
41662
+ ...this.aiAssistantMode.requestOptions
41663
+ }
41664
+ };
41665
+ if (!this.aiAssistantMode.requestOptions.body) {
41666
+ this.requestData.requestOptions.body = this.aiRequestResponseService.buildRequestBody(this.requestData.promptMessage, this.requestData.requestOptions.role);
41667
+ }
41668
+ this.zone.run(() => {
41669
+ this.aiAssistantPromptRequest.emit({ requestData: this.requestData });
41670
+ });
41671
+ this.togglePopup(false);
41672
+ this.clearValue();
41673
+ if (!this.aiAssistantMode.requestUrl) {
41674
+ return;
41675
+ }
41676
+ this.currentRequestSubscription = this.sendPromptRequest().subscribe((res) => {
41677
+ if (res.body) {
41678
+ this.zone.run(() => {
41679
+ this.processResponse(res);
41680
+ this.loading = false;
41681
+ });
41682
+ }
41683
+ this.currentRequestSubscription = null;
41684
+ }, (error) => {
41685
+ this.zone.run(() => {
41686
+ this.handleError(error);
41687
+ this.loading = false;
41688
+ this.currentRequestSubscription = null;
41689
+ });
41690
+ });
41691
+ }
41692
+ onSpeechToTextResult(event) {
41693
+ if (event.alternatives && event.alternatives.length > 0) {
41694
+ if (!isPresent$1(this.input.nativeElement.value)) {
41695
+ this.clearValue();
41696
+ }
41697
+ const newValue = event.alternatives[0].transcript + ' ';
41698
+ this.input.nativeElement.value = newValue;
41699
+ }
41700
+ }
41701
+ onSpeechToTextError(event) {
41702
+ if (isDevMode()) {
41703
+ console.error('Speech to Text error:', event.errorMessage);
41704
+ }
41705
+ }
41706
+ get searchPlaceholder() {
41707
+ return this.searchMode?.placeholder || this.placeholder || this.messageFor('smartBoxSearchPlaceholder');
41708
+ }
41709
+ get semanticSearchPlaceholder() {
41710
+ return this.semanticSearchMode?.placeholder || this.placeholder || this.messageFor('smartBoxSemanticSearchPlaceholder');
41711
+ }
41712
+ get aiAssistantPlaceholder() {
41713
+ return this.aiAssistantMode?.placeholder || this.placeholder || this.messageFor('smartBoxAIAssistantPlaceholder');
41714
+ }
41715
+ get inputDisabled() {
41716
+ return !(this.searchMode?.enabled || this.semanticSearchMode?.enabled || this.aiAssistantMode?.enabled);
41717
+ }
41718
+ createPopup() {
41719
+ this.popupRef = this.popupService.open({
41720
+ anchor: this.wrapper.nativeElement,
41721
+ content: this.popupTemplate,
41722
+ popupClass: 'k-smart-box-popup',
41723
+ positionMode: 'absolute',
41724
+ margin: { horizontal: 0, vertical: 2 }
41725
+ });
41726
+ const popupWrapper = this.popupRef.popupElement;
41727
+ const { min, max } = this.popupWidth;
41728
+ popupWrapper.style.minWidth = min;
41729
+ popupWrapper.style.width = max;
41730
+ popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);
41731
+ this.popupRef.popupOpen.subscribe(() => {
41732
+ this.open.emit();
41733
+ });
41734
+ this.popupRef.popupClose.subscribe(() => {
41735
+ this.close.emit();
41736
+ });
41737
+ this.popupRef.popupAnchorViewportLeave.subscribe(() => this.togglePopup(false));
41738
+ }
41739
+ destroyPopup() {
41740
+ if (this.popupRef) {
41741
+ this.popupRef.popupElement
41742
+ .removeEventListener('mousedown', this.popupMouseDownHandler);
41743
+ this.popupRef.close();
41744
+ this.popupRef = null;
41745
+ }
41746
+ }
41747
+ _toggle(open) {
41748
+ this.isOpen = open;
41749
+ this.destroyPopup();
41750
+ if (this.isOpen) {
41751
+ this.createPopup();
41752
+ }
41753
+ }
41754
+ clearTypingTimeout() {
41755
+ if (this.searchTypingTimeout) {
41756
+ clearTimeout(this.searchTypingTimeout);
41757
+ this.searchTypingTimeout = null;
41758
+ }
41759
+ }
41760
+ sendPromptRequest() {
41761
+ const request = new HttpRequest(this.requestData.requestOptions.method, this.requestData.url, this.requestData.requestOptions.body, this.requestData.requestOptions);
41762
+ return this.http.request(request);
41763
+ }
41764
+ handleResponseCancel() {
41765
+ this.aiAssistantCancelRequest.emit();
41766
+ this.unsubscribeCurrentRequest();
41767
+ this.loading = false;
41768
+ }
41769
+ unsubscribeCurrentRequest() {
41770
+ if (this.currentRequestSubscription) {
41771
+ this.currentRequestSubscription.unsubscribe();
41772
+ this.currentRequestSubscription = null;
41773
+ }
41774
+ }
41775
+ get popupWidth() {
41776
+ let wrapperOffsetWidth = 0;
41777
+ if (isDocumentAvailable()) {
41778
+ wrapperOffsetWidth = this.wrapper.nativeElement.offsetWidth;
41779
+ }
41780
+ const width = wrapperOffsetWidth;
41781
+ const minWidth = isNaN(wrapperOffsetWidth) ? wrapperOffsetWidth : `${wrapperOffsetWidth}px`;
41782
+ const maxWidth = isNaN(width) ? width : `${width}px`;
41783
+ return { min: minWidth, max: maxWidth };
41784
+ }
41785
+ handleSizeClass(currentValue) {
41786
+ const elem = this.innerWrapper?.nativeElement;
41787
+ if (!isPresent$1(elem)) {
41788
+ return;
41789
+ }
41790
+ const prevSizeClass = `k-input-${SIZES[this._size]}`;
41791
+ const newSizeClass = `k-input-${SIZES[currentValue]}`;
41792
+ if (prevSizeClass) {
41793
+ this.renderer.removeClass(elem, prevSizeClass);
41794
+ }
41795
+ if (newSizeClass) {
41796
+ this.renderer.addClass(elem, newSizeClass);
41797
+ }
41798
+ }
41799
+ updateModeSettingsFromSharedInputs() {
41800
+ if (this._searchMode && typeof this._searchMode === 'object') {
41801
+ const currentSettings = { ...this._searchMode };
41802
+ const modeSpecificHistory = currentSettings.history;
41803
+ const modeSpecificPlaceholder = currentSettings.placeholder;
41804
+ delete currentSettings.history;
41805
+ delete currentSettings.placeholder;
41806
+ const settingsFromComponent = {
41807
+ placeholder: modeSpecificPlaceholder ?? this.placeholder,
41808
+ history: modeSpecificHistory ?? this.history
41809
+ };
41810
+ this._searchMode = { ...DEFAULT_SEARCH_SETTINGS, ...currentSettings, ...settingsFromComponent };
41811
+ }
41812
+ if (this._semanticSearchMode && typeof this._semanticSearchMode === 'object') {
41813
+ const currentSettings = { ...this._semanticSearchMode };
41814
+ const modeSpecificHistory = currentSettings.history;
41815
+ const modeSpecificPlaceholder = currentSettings.placeholder;
41816
+ delete currentSettings.history;
41817
+ delete currentSettings.placeholder;
41818
+ const settingsFromComponent = {
41819
+ placeholder: modeSpecificPlaceholder ?? this.placeholder,
41820
+ history: modeSpecificHistory ?? this.history
41821
+ };
41822
+ this._semanticSearchMode = { ...DEFAULT_SEMANTIC_SEARCH_SETTINGS, ...currentSettings, ...settingsFromComponent };
41823
+ }
41824
+ if (this._aiAssistantMode && typeof this._aiAssistantMode === 'object') {
41825
+ const currentSettings = { ...this._aiAssistantMode };
41826
+ const modeSpecificHistory = currentSettings.history;
41827
+ const modeSpecificPlaceholder = currentSettings.placeholder;
41828
+ delete currentSettings.history;
41829
+ delete currentSettings.placeholder;
41830
+ const settingsFromComponent = {
41831
+ placeholder: modeSpecificPlaceholder ?? this.placeholder,
41832
+ history: modeSpecificHistory ?? this.history
41833
+ };
41834
+ this._aiAssistantMode = { ...DEFAULT_AI_ASSISTANT_SETTINGS, ...currentSettings, ...settingsFromComponent };
41835
+ }
41836
+ }
41837
+ updateSearchListData() {
41838
+ if (!this.ctx?.localization) {
41839
+ return;
41840
+ }
41841
+ if (this.searchMode?.enabled && this.semanticSearchMode?.enabled) {
41842
+ this.searchListData = [
41843
+ { text: this.messageFor('searchModeListItemText'), description: this.messageFor('searchModeListItemDescription'), selected: this.selectedView === 'search' },
41844
+ { text: this.messageFor('semanticSearchModeListItemText'), description: this.messageFor('semanticSearchModeListItemDescription'), selected: this.selectedView === 'semanticSearch' }
41845
+ ];
41846
+ }
41847
+ else {
41848
+ this.searchListData = [];
41849
+ }
41850
+ }
41851
+ updateSelectedView() {
41852
+ if (this._activeMode) {
41853
+ const modeSettings = this[`${this._activeMode}Mode`];
41854
+ if (modeSettings?.enabled) {
41855
+ this.selectedView = this._activeMode;
41856
+ return;
41857
+ }
41858
+ }
41859
+ if (this.selectedView && this[`${this.selectedView}Mode`]?.enabled) {
41860
+ return;
41861
+ }
41862
+ if (this.searchMode?.enabled) {
41863
+ this.selectedView = 'search';
41864
+ }
41865
+ else if (this.semanticSearchMode?.enabled) {
41866
+ this.selectedView = 'semanticSearch';
41867
+ }
41868
+ else if (this.aiAssistantMode?.enabled) {
41869
+ this.selectedView = 'aiAssistant';
41870
+ }
41871
+ else {
41872
+ this.selectedView = null;
41873
+ }
41874
+ }
41875
+ updateHistoryData() {
41876
+ if (this.searchHistorySettings && this.searchHistory.length > this.searchHistorySettings.size) {
41877
+ this.searchHistory.splice(this.searchHistorySettings.size);
41878
+ }
41879
+ if (this.semanticSearchHistorySettings && this.semanticSearchHistory.length > this.semanticSearchHistorySettings.size) {
41880
+ this.semanticSearchHistory.splice(this.semanticSearchHistorySettings.size);
41881
+ }
41882
+ if (this.aiAssistantHistorySettings && this.aiAssistantHistory.length > this.aiAssistantHistorySettings.size) {
41883
+ this.aiAssistantHistory.splice(this.aiAssistantHistorySettings.size);
41884
+ }
41885
+ if (this.searchHistorySettings && this.searchHistorySettings.timestampFormat !== this.searchHistory[0]?.format) {
41886
+ this.searchHistory = this.searchHistory.map(item => ({ ...item, format: this.searchHistorySettings.timestampFormat }));
41887
+ }
41888
+ if (this.semanticSearchHistorySettings && this.semanticSearchHistorySettings.timestampFormat !== this.semanticSearchHistory[0]?.format) {
41889
+ this.semanticSearchHistory = this.semanticSearchHistory.map(item => ({ ...item, format: this.semanticSearchHistorySettings.timestampFormat }));
41890
+ }
41891
+ if (this.aiAssistantHistorySettings && this.aiAssistantHistorySettings.timestampFormat !== this.aiAssistantHistory[0]?.format) {
41892
+ this.aiAssistantHistory = this.aiAssistantHistory.map(item => ({ ...item, format: this.aiAssistantHistorySettings.timestampFormat }));
41893
+ }
41894
+ }
41895
+ processResponse(response) {
41896
+ const responseBody = response.body || { commands: [] };
41897
+ const responseSuccessEvent = new GridSmartBoxResponseSuccessEvent(response);
41898
+ this.aiAssistantResponseSuccess.emit(responseSuccessEvent);
41899
+ this.aiRequestResponseService.processCommands(responseBody.commands || [], this.columns, this.leafColumns);
41900
+ }
41901
+ handleError(error) {
41902
+ const responseErrorEvent = new GridSmartBoxResponseErrorEvent(error);
41903
+ this.aiAssistantResponseError.emit(responseErrorEvent);
41904
+ }
41905
+ clearValue() {
41906
+ this.input.nativeElement.value = '';
41907
+ this.input.nativeElement.focus();
41908
+ }
41909
+ 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 });
41910
+ 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: `
41911
+ <span #innerWrapper
41912
+ class="k-smart-box k-input"
41913
+ [class.k-loading]="loading">
41914
+ @if (!inputDisabled) {
41915
+ <span class="k-input-prefix k-input-prefix-horizontal">
41916
+ <kendo-icon-wrapper
41917
+ class="k-icon"
41918
+ [name]="prefixIconName"
41919
+ [svgIcon]="prefixSVGIcon"
41920
+ [innerCssClass]="(selectedView === 'aiAssistant' || selectedView === 'semanticSearch') ? 'k-accent-icon' : ''"
41921
+ [kendoEventsOutsideAngular]="{
41922
+ click: onIconClick,
41923
+ mousedown: onIconMouseDown
41924
+ }">
41925
+ </kendo-icon-wrapper>
41926
+ </span>
41927
+ }
41928
+ <input #input
41929
+ type="text"
41930
+ class="k-input-inner"
41931
+ [class.k-disabled]="inputDisabled"
41932
+ [disabled]="inputDisabled"
41933
+ [id]="focusableId"
41934
+ [placeholder]="inputPlaceholder"
41935
+ [kendoEventsOutsideAngular]="{
41936
+ input: handleInput,
41937
+ focus: handleInputFocus,
41938
+ blur: handleInputBlur,
41939
+ click: handleInputClick,
41940
+ keydown: handleInputKeydown
41941
+ }"
41942
+ />
41943
+ @if (input.value.length > 0 && (selectedView === 'search' || selectedView === 'semanticSearch')) {
41944
+ <span
41945
+ class="k-clear-value"
41946
+ [attr.title]="messageFor('smartBoxToolClearTitle')"
41947
+ role="button"
41948
+ tabindex="-1"
41949
+ (click)="clearButtonClick($event)"
41950
+ (mousedown)="$event.preventDefault()">
41951
+ <kendo-icon-wrapper
41952
+ class="k-icon"
41953
+ name="x"
41954
+ [svgIcon]="xIcon">
41955
+ </kendo-icon-wrapper>
41956
+ </span>
41957
+ }
41958
+ @if (selectedView === 'aiAssistant') {
41959
+ <span class="k-input-suffix k-input-suffix-horizontal">
41960
+ @if (speechToTextButton) {
41961
+ <button kendoSpeechToTextButton
41962
+ role="button"
41963
+ [continuous]="speechToTextButton?.continuous"
41964
+ [disabled]="speechToTextButton?.disabled"
41965
+ [fillMode]="speechToTextButton?.fillMode"
41966
+ [integrationMode]="speechToTextButton?.integrationMode"
41967
+ [interimResults]="speechToTextButton?.interimResults"
41968
+ [lang]="speechToTextButton?.lang"
41969
+ [maxAlternatives]="speechToTextButton?.maxAlternatives"
41970
+ [rounded]="speechToTextButton?.rounded"
41971
+ [size]="speechToTextButton?.size"
41972
+ [themeColor]="speechToTextButton?.themeColor"
41973
+ [attr.aria-label]="messageFor('smartBoxSpeechToTextButton')"
41974
+ [attr.title]="messageFor('smartBoxSpeechToTextButton')"
41975
+ [attr.aria-disabled]="speechToTextButton?.disabled"
41976
+ (error)="onSpeechToTextError($event)"
41977
+ (result)="onSpeechToTextResult($event)"
41978
+ ></button>
41979
+ }
41980
+ <button kendoButton
41981
+ class="k-smart-box-send"
41982
+ [class.k-processing]="loading"
41983
+ [class.k-active]="loading"
41984
+ type="button"
41985
+ rounded="full"
41986
+ size="small"
41987
+ [attr.title]="messageFor('smartBoxSubmitPromptButton')"
41988
+ [attr.aria-label]="messageFor('smartBoxSubmitPromptButton')"
41989
+ [attr.aria-disabled]="input.value.length === 0"
41990
+ [svgIcon]="loading ? stopSmIcon : arrowUpOutlineIcon"
41991
+ [icon]="loading ? 'stop-sm' : 'arrow-up-outline'"
41992
+ [disabled]="input.value.length === 0"
41993
+ (click)="onPromptSubmit()">
41994
+ </button>
41995
+ </span>
41996
+ }
41997
+ </span>
41998
+
41999
+ <ng-template #popupTemplate>
42000
+ @if (segmentedControlButtons.length > 0) {
42001
+ <kendo-segmented-control
42002
+ [buttons]="segmentedControlButtons"
42003
+ (buttonClick)="onModeChange($event)">
42004
+ </kendo-segmented-control>
42005
+ }
42006
+ <div class="k-list k-list-md">
42007
+ <div class="k-list-content">
42008
+ <ul class="k-list-ul">
42009
+ @if ((selectedView === 'search' || selectedView === 'semanticSearch') && searchListData.length > 0) {
42010
+ @for (item of searchListData; track item) {
42011
+ <li class="k-list-item"
42012
+ (click)="onSearchItemClick(item)">
42013
+ @if (item.selected) {
42014
+ <kendo-icon-wrapper
42015
+ innerCssClass="k-list-item-icon"
42016
+ name="check"
42017
+ [svgIcon]="checkIcon"
42018
+ class="k-list-item-icon-wrapper">
42019
+ </kendo-icon-wrapper>
42020
+ }
42021
+ @if (item.text) {
42022
+ <span class="k-list-item-text">{{item.text}}</span>
42023
+ }
42024
+ @if (item.description) {
42025
+ <span class="k-list-item-description">{{item.description}}</span>
42026
+ }
42027
+ </li>
42028
+ }
42029
+ } @else if (selectedView === 'aiAssistant' && aiAssistantMode.promptSuggestions.length > 0) {
42030
+ <li class="k-list-group-item">
42031
+ <kendo-icon-wrapper
42032
+ innerCssClass="k-list-item-icon"
42033
+ name="lightbulb-outline"
42034
+ [svgIcon]="lightbulbOutlineIcon"
42035
+ class="k-list-item-icon-wrapper">
42036
+ </kendo-icon-wrapper>
42037
+ <span class="k-list-item-text">{{messageFor('smartBoxSuggestedPrompts')}}</span>
42038
+ </li>
42039
+
42040
+ @for (suggestion of aiAssistantMode.promptSuggestions; track $index) {
42041
+ @if (promptSuggestionTemplate?.templateRef) {
42042
+ <ng-template
42043
+ [templateContext]="{ templateRef: promptSuggestionTemplate?.templateRef, $implicit: suggestion }"
42044
+ ></ng-template>
42045
+ } @else {
42046
+ <li class="k-list-item"
42047
+ (click)="onListItemClick(suggestion)"
42048
+ [attr.title]="suggestion">
42049
+ <span class="k-list-item-text">{{suggestion}}</span>
42050
+ </li>
42051
+ }
42052
+ }
42053
+ }
42054
+ </ul>
42055
+
42056
+ @if (selectedView === 'search') {
42057
+ @if (searchHistory.length === 0 && !semanticSearchMode?.enabled) {
42058
+ <span class="k-no-data k-smart-box-no-data">
42059
+ <kendo-icon-wrapper
42060
+ icon="file-report"
42061
+ [svgIcon]="fileClockOutlineIcon"
42062
+ size="xxxlarge">
42063
+ </kendo-icon-wrapper>
42064
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42065
+ </span>
42066
+ } @else if (searchHistory.length > 0) {
42067
+ <ul class="k-list-ul">
42068
+ <li class="k-list-group-item">
42069
+ <kendo-icon-wrapper
42070
+ innerCssClass="k-list-item-icon"
42071
+ name="clock-arrow-rotate"
42072
+ [svgIcon]="clockArrowRotateIcon"
42073
+ class="k-list-item-icon-wrapper">
42074
+ </kendo-icon-wrapper>
42075
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42076
+ </li>
42077
+
42078
+ @for (item of searchHistory; track $index) {
42079
+ @if (historyItemTemplate?.templateRef) {
42080
+ <ng-template
42081
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42082
+ ></ng-template>
42083
+ } @else {
42084
+ <li class="k-list-item"
42085
+ (click)="onListItemClick(item.text)"
42086
+ [attr.title]="item.text">
42087
+ <span class="k-list-item-text">{{item.text}}</span>
42088
+ <span class="k-list-item-description">{{formatDate(item.timestamp, searchHistorySettings?.timestampFormat)}}</span>
42089
+ </li>
42090
+ }
42091
+ }
42092
+ </ul>
42093
+ }
42094
+ } @else if (selectedView === 'semanticSearch') {
42095
+ @if (semanticSearchHistory.length === 0 && !searchMode?.enabled) {
42096
+ <span class="k-no-data k-smart-box-no-data">
42097
+ <kendo-icon-wrapper
42098
+ icon="file-report"
42099
+ [svgIcon]="fileClockOutlineIcon"
42100
+ size="xxxlarge">
42101
+ </kendo-icon-wrapper>
42102
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42103
+ </span>
42104
+ } @else if (semanticSearchHistory.length > 0) {
42105
+ <ul class="k-list-ul">
42106
+ <li class="k-list-group-item">
42107
+ <kendo-icon-wrapper
42108
+ innerCssClass="k-list-item-icon"
42109
+ name="clock-arrow-rotate"
42110
+ [svgIcon]="clockArrowRotateIcon"
42111
+ class="k-list-item-icon-wrapper">
42112
+ </kendo-icon-wrapper>
42113
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42114
+ </li>
42115
+
42116
+ @for (item of semanticSearchHistory; track $index) {
42117
+ @if (historyItemTemplate?.templateRef) {
42118
+ <ng-template
42119
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42120
+ ></ng-template>
42121
+ } @else {
42122
+ <li class="k-list-item"
42123
+ (click)="onListItemClick(item.text)"
42124
+ [attr.title]="item.text">
42125
+ <span class="k-list-item-text">{{item.text}}</span>
42126
+ <span class="k-list-item-description">{{formatDate(item.timestamp, semanticSearchHistorySettings?.timestampFormat)}}</span>
42127
+ </li>
42128
+ }
42129
+ }
42130
+ </ul>
42131
+ }
42132
+ } @else if (selectedView === 'aiAssistant') {
42133
+ @if (aiAssistantHistory.length === 0 && aiAssistantMode?.promptSuggestions.length === 0) {
42134
+ <span class="k-no-data k-smart-box-no-data">
42135
+ <kendo-icon-wrapper
42136
+ icon="file-report"
42137
+ [svgIcon]="fileClockOutlineIcon"
42138
+ size="xxxlarge">
42139
+ </kendo-icon-wrapper>
42140
+ <span>{{messageFor('smartBoxNoPreviousPrompts')}}</span>
42141
+ </span>
42142
+ } @else if (aiAssistantHistory.length > 0) {
42143
+ <ul class="k-list-ul">
42144
+ <li class="k-list-group-item">
42145
+ <kendo-icon-wrapper
42146
+ innerCssClass="k-list-item-icon"
42147
+ name="clock-arrow-rotate"
42148
+ [svgIcon]="clockArrowRotateIcon"
42149
+ class="k-list-item-icon-wrapper">
42150
+ </kendo-icon-wrapper>
42151
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslyAsked')}}</span>
42152
+ </li>
42153
+
42154
+ @for (item of aiAssistantHistory; track $index) {
42155
+ @if (historyItemTemplate?.templateRef) {
42156
+ <ng-template
42157
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42158
+ ></ng-template>
42159
+ } @else {
42160
+ <li class="k-list-item"
42161
+ (click)="onListItemClick(item.text)"
42162
+ [attr.title]="item.text">
42163
+ <span class="k-list-item-text">{{item.text}}</span>
42164
+ <span class="k-list-item-description">{{formatDate(item.timestamp, aiAssistantHistorySettings?.timestampFormat)}}</span>
42165
+ </li>
42166
+ }
42167
+ }
42168
+ </ul>
42169
+ }
42170
+ }
42171
+ </div>
42172
+ </div>
42173
+ </ng-template>
42174
+ `, 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"] }] });
42175
+ }
42176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxComponent, decorators: [{
42177
+ type: Component,
42178
+ args: [{
42179
+ selector: 'kendo-smartbox',
42180
+ standalone: true,
42181
+ imports: [SegmentedControlComponent, EventsOutsideAngularDirective, IconWrapperComponent, KENDO_BUTTONS, TemplateContextDirective],
42182
+ providers: [DataService, SelectionService$1, NavigationService$1, DisabledItemsService],
42183
+ template: `
42184
+ <span #innerWrapper
42185
+ class="k-smart-box k-input"
42186
+ [class.k-loading]="loading">
42187
+ @if (!inputDisabled) {
42188
+ <span class="k-input-prefix k-input-prefix-horizontal">
42189
+ <kendo-icon-wrapper
42190
+ class="k-icon"
42191
+ [name]="prefixIconName"
42192
+ [svgIcon]="prefixSVGIcon"
42193
+ [innerCssClass]="(selectedView === 'aiAssistant' || selectedView === 'semanticSearch') ? 'k-accent-icon' : ''"
42194
+ [kendoEventsOutsideAngular]="{
42195
+ click: onIconClick,
42196
+ mousedown: onIconMouseDown
42197
+ }">
42198
+ </kendo-icon-wrapper>
42199
+ </span>
42200
+ }
42201
+ <input #input
42202
+ type="text"
42203
+ class="k-input-inner"
42204
+ [class.k-disabled]="inputDisabled"
42205
+ [disabled]="inputDisabled"
42206
+ [id]="focusableId"
42207
+ [placeholder]="inputPlaceholder"
42208
+ [kendoEventsOutsideAngular]="{
42209
+ input: handleInput,
42210
+ focus: handleInputFocus,
42211
+ blur: handleInputBlur,
42212
+ click: handleInputClick,
42213
+ keydown: handleInputKeydown
42214
+ }"
42215
+ />
42216
+ @if (input.value.length > 0 && (selectedView === 'search' || selectedView === 'semanticSearch')) {
42217
+ <span
42218
+ class="k-clear-value"
42219
+ [attr.title]="messageFor('smartBoxToolClearTitle')"
42220
+ role="button"
42221
+ tabindex="-1"
42222
+ (click)="clearButtonClick($event)"
42223
+ (mousedown)="$event.preventDefault()">
42224
+ <kendo-icon-wrapper
42225
+ class="k-icon"
42226
+ name="x"
42227
+ [svgIcon]="xIcon">
42228
+ </kendo-icon-wrapper>
42229
+ </span>
42230
+ }
42231
+ @if (selectedView === 'aiAssistant') {
42232
+ <span class="k-input-suffix k-input-suffix-horizontal">
42233
+ @if (speechToTextButton) {
42234
+ <button kendoSpeechToTextButton
42235
+ role="button"
42236
+ [continuous]="speechToTextButton?.continuous"
42237
+ [disabled]="speechToTextButton?.disabled"
42238
+ [fillMode]="speechToTextButton?.fillMode"
42239
+ [integrationMode]="speechToTextButton?.integrationMode"
42240
+ [interimResults]="speechToTextButton?.interimResults"
42241
+ [lang]="speechToTextButton?.lang"
42242
+ [maxAlternatives]="speechToTextButton?.maxAlternatives"
42243
+ [rounded]="speechToTextButton?.rounded"
42244
+ [size]="speechToTextButton?.size"
42245
+ [themeColor]="speechToTextButton?.themeColor"
42246
+ [attr.aria-label]="messageFor('smartBoxSpeechToTextButton')"
42247
+ [attr.title]="messageFor('smartBoxSpeechToTextButton')"
42248
+ [attr.aria-disabled]="speechToTextButton?.disabled"
42249
+ (error)="onSpeechToTextError($event)"
42250
+ (result)="onSpeechToTextResult($event)"
42251
+ ></button>
42252
+ }
42253
+ <button kendoButton
42254
+ class="k-smart-box-send"
42255
+ [class.k-processing]="loading"
42256
+ [class.k-active]="loading"
42257
+ type="button"
42258
+ rounded="full"
42259
+ size="small"
42260
+ [attr.title]="messageFor('smartBoxSubmitPromptButton')"
42261
+ [attr.aria-label]="messageFor('smartBoxSubmitPromptButton')"
42262
+ [attr.aria-disabled]="input.value.length === 0"
42263
+ [svgIcon]="loading ? stopSmIcon : arrowUpOutlineIcon"
42264
+ [icon]="loading ? 'stop-sm' : 'arrow-up-outline'"
42265
+ [disabled]="input.value.length === 0"
42266
+ (click)="onPromptSubmit()">
42267
+ </button>
42268
+ </span>
42269
+ }
42270
+ </span>
42271
+
42272
+ <ng-template #popupTemplate>
42273
+ @if (segmentedControlButtons.length > 0) {
42274
+ <kendo-segmented-control
42275
+ [buttons]="segmentedControlButtons"
42276
+ (buttonClick)="onModeChange($event)">
42277
+ </kendo-segmented-control>
42278
+ }
42279
+ <div class="k-list k-list-md">
42280
+ <div class="k-list-content">
42281
+ <ul class="k-list-ul">
42282
+ @if ((selectedView === 'search' || selectedView === 'semanticSearch') && searchListData.length > 0) {
42283
+ @for (item of searchListData; track item) {
42284
+ <li class="k-list-item"
42285
+ (click)="onSearchItemClick(item)">
42286
+ @if (item.selected) {
42287
+ <kendo-icon-wrapper
42288
+ innerCssClass="k-list-item-icon"
42289
+ name="check"
42290
+ [svgIcon]="checkIcon"
42291
+ class="k-list-item-icon-wrapper">
42292
+ </kendo-icon-wrapper>
42293
+ }
42294
+ @if (item.text) {
42295
+ <span class="k-list-item-text">{{item.text}}</span>
42296
+ }
42297
+ @if (item.description) {
42298
+ <span class="k-list-item-description">{{item.description}}</span>
42299
+ }
42300
+ </li>
42301
+ }
42302
+ } @else if (selectedView === 'aiAssistant' && aiAssistantMode.promptSuggestions.length > 0) {
42303
+ <li class="k-list-group-item">
42304
+ <kendo-icon-wrapper
42305
+ innerCssClass="k-list-item-icon"
42306
+ name="lightbulb-outline"
42307
+ [svgIcon]="lightbulbOutlineIcon"
42308
+ class="k-list-item-icon-wrapper">
42309
+ </kendo-icon-wrapper>
42310
+ <span class="k-list-item-text">{{messageFor('smartBoxSuggestedPrompts')}}</span>
42311
+ </li>
42312
+
42313
+ @for (suggestion of aiAssistantMode.promptSuggestions; track $index) {
42314
+ @if (promptSuggestionTemplate?.templateRef) {
42315
+ <ng-template
42316
+ [templateContext]="{ templateRef: promptSuggestionTemplate?.templateRef, $implicit: suggestion }"
42317
+ ></ng-template>
42318
+ } @else {
42319
+ <li class="k-list-item"
42320
+ (click)="onListItemClick(suggestion)"
42321
+ [attr.title]="suggestion">
42322
+ <span class="k-list-item-text">{{suggestion}}</span>
42323
+ </li>
42324
+ }
42325
+ }
42326
+ }
42327
+ </ul>
42328
+
42329
+ @if (selectedView === 'search') {
42330
+ @if (searchHistory.length === 0 && !semanticSearchMode?.enabled) {
42331
+ <span class="k-no-data k-smart-box-no-data">
42332
+ <kendo-icon-wrapper
42333
+ icon="file-report"
42334
+ [svgIcon]="fileClockOutlineIcon"
42335
+ size="xxxlarge">
42336
+ </kendo-icon-wrapper>
42337
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42338
+ </span>
42339
+ } @else if (searchHistory.length > 0) {
42340
+ <ul class="k-list-ul">
42341
+ <li class="k-list-group-item">
42342
+ <kendo-icon-wrapper
42343
+ innerCssClass="k-list-item-icon"
42344
+ name="clock-arrow-rotate"
42345
+ [svgIcon]="clockArrowRotateIcon"
42346
+ class="k-list-item-icon-wrapper">
42347
+ </kendo-icon-wrapper>
42348
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42349
+ </li>
42350
+
42351
+ @for (item of searchHistory; track $index) {
42352
+ @if (historyItemTemplate?.templateRef) {
42353
+ <ng-template
42354
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42355
+ ></ng-template>
42356
+ } @else {
42357
+ <li class="k-list-item"
42358
+ (click)="onListItemClick(item.text)"
42359
+ [attr.title]="item.text">
42360
+ <span class="k-list-item-text">{{item.text}}</span>
42361
+ <span class="k-list-item-description">{{formatDate(item.timestamp, searchHistorySettings?.timestampFormat)}}</span>
42362
+ </li>
42363
+ }
42364
+ }
42365
+ </ul>
42366
+ }
42367
+ } @else if (selectedView === 'semanticSearch') {
42368
+ @if (semanticSearchHistory.length === 0 && !searchMode?.enabled) {
42369
+ <span class="k-no-data k-smart-box-no-data">
42370
+ <kendo-icon-wrapper
42371
+ icon="file-report"
42372
+ [svgIcon]="fileClockOutlineIcon"
42373
+ size="xxxlarge">
42374
+ </kendo-icon-wrapper>
42375
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42376
+ </span>
42377
+ } @else if (semanticSearchHistory.length > 0) {
42378
+ <ul class="k-list-ul">
42379
+ <li class="k-list-group-item">
42380
+ <kendo-icon-wrapper
42381
+ innerCssClass="k-list-item-icon"
42382
+ name="clock-arrow-rotate"
42383
+ [svgIcon]="clockArrowRotateIcon"
42384
+ class="k-list-item-icon-wrapper">
42385
+ </kendo-icon-wrapper>
42386
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42387
+ </li>
42388
+
42389
+ @for (item of semanticSearchHistory; track $index) {
42390
+ @if (historyItemTemplate?.templateRef) {
42391
+ <ng-template
42392
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42393
+ ></ng-template>
42394
+ } @else {
42395
+ <li class="k-list-item"
42396
+ (click)="onListItemClick(item.text)"
42397
+ [attr.title]="item.text">
42398
+ <span class="k-list-item-text">{{item.text}}</span>
42399
+ <span class="k-list-item-description">{{formatDate(item.timestamp, semanticSearchHistorySettings?.timestampFormat)}}</span>
42400
+ </li>
42401
+ }
42402
+ }
42403
+ </ul>
42404
+ }
42405
+ } @else if (selectedView === 'aiAssistant') {
42406
+ @if (aiAssistantHistory.length === 0 && aiAssistantMode?.promptSuggestions.length === 0) {
42407
+ <span class="k-no-data k-smart-box-no-data">
42408
+ <kendo-icon-wrapper
42409
+ icon="file-report"
42410
+ [svgIcon]="fileClockOutlineIcon"
42411
+ size="xxxlarge">
42412
+ </kendo-icon-wrapper>
42413
+ <span>{{messageFor('smartBoxNoPreviousPrompts')}}</span>
42414
+ </span>
42415
+ } @else if (aiAssistantHistory.length > 0) {
42416
+ <ul class="k-list-ul">
42417
+ <li class="k-list-group-item">
42418
+ <kendo-icon-wrapper
42419
+ innerCssClass="k-list-item-icon"
42420
+ name="clock-arrow-rotate"
42421
+ [svgIcon]="clockArrowRotateIcon"
42422
+ class="k-list-item-icon-wrapper">
42423
+ </kendo-icon-wrapper>
42424
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslyAsked')}}</span>
42425
+ </li>
42426
+
42427
+ @for (item of aiAssistantHistory; track $index) {
42428
+ @if (historyItemTemplate?.templateRef) {
42429
+ <ng-template
42430
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42431
+ ></ng-template>
42432
+ } @else {
42433
+ <li class="k-list-item"
42434
+ (click)="onListItemClick(item.text)"
42435
+ [attr.title]="item.text">
42436
+ <span class="k-list-item-text">{{item.text}}</span>
42437
+ <span class="k-list-item-description">{{formatDate(item.timestamp, aiAssistantHistorySettings?.timestampFormat)}}</span>
42438
+ </li>
42439
+ }
42440
+ }
42441
+ </ul>
42442
+ }
42443
+ }
42444
+ </div>
42445
+ </div>
42446
+ </ng-template>
42447
+ `
42448
+ }]
42449
+ }], 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: [{
42450
+ type: ViewChild,
42451
+ args: ['popupTemplate']
42452
+ }], input: [{
42453
+ type: ViewChild,
42454
+ args: ['input']
42455
+ }], innerWrapper: [{
42456
+ type: ViewChild,
42457
+ args: ['innerWrapper']
42458
+ }], searchMode: [{
42459
+ type: Input
42460
+ }], semanticSearchMode: [{
42461
+ type: Input
42462
+ }], aiAssistantMode: [{
42463
+ type: Input
42464
+ }], activeMode: [{
42465
+ type: Input
42466
+ }], history: [{
42467
+ type: Input
42468
+ }], placeholder: [{
42469
+ type: Input
42470
+ }], size: [{
42471
+ type: Input
42472
+ }], promptSuggestionTemplate: [{
42473
+ type: Input
42474
+ }], historyItemTemplate: [{
42475
+ type: Input
42476
+ }], loading: [{
42477
+ type: Input
42478
+ }], open: [{
42479
+ type: Output
42480
+ }], close: [{
42481
+ type: Output
42482
+ }], focus: [{
42483
+ type: Output
42484
+ }], blur: [{
42485
+ type: Output
42486
+ }], aiAssistantPromptRequest: [{
42487
+ type: Output
42488
+ }], aiAssistantResponseSuccess: [{
42489
+ type: Output
42490
+ }], aiAssistantResponseError: [{
42491
+ type: Output
42492
+ }], aiAssistantCancelRequest: [{
42493
+ type: Output
42494
+ }], search: [{
42495
+ type: Output
42496
+ }], semanticSearch: [{
42497
+ type: Output
42498
+ }], modeChange: [{
42499
+ type: Output
42500
+ }] } });
42501
+
42502
+ /**
42503
+ * Represents the toolbar tool for showing a smart bar.
42504
+ * Use this component inside a ToolbarComponent in the Grid.
42505
+ *
42506
+ * @example
42507
+ * ```html
42508
+ * <kendo-grid>
42509
+ * <kendo-toolbar>
42510
+ * <kendo-grid-smartbox-tool></kendo-grid-smartbox-tool>
42511
+ * </kendo-toolbar>
42512
+ * </kendo-grid>
42513
+ * ```
42514
+ */
42515
+ class SmartBoxToolbarToolComponent extends ToolBarToolComponent {
42516
+ promptSuggestionTemplate;
42517
+ historyItemTemplate;
42518
+ /**
42519
+ * Controls the visibility and settings of the Search mode. By default, the mode is enabled.
42520
+ *
42521
+ * @default true
42522
+ */
42523
+ searchMode = true;
42524
+ /**
42525
+ * Controls the visibility and settings of the Semantic Search mode. By default, the mode is disabled.
42526
+ *
42527
+ * @default false
42528
+ */
42529
+ semanticSearchMode = false;
42530
+ /**
42531
+ * Controls the visibility and settings of the AI Assistant mode. By default, the mode is disabled.
42532
+ *
42533
+ * @default false
42534
+ */
42535
+ aiAssistantMode = false;
42536
+ /**
42537
+ * Sets the initially active mode of the tool.
42538
+ *
42539
+ * @default 'search'
42540
+ */
42541
+ activeMode = 'search';
42542
+ /**
42543
+ * Controls the visibility and settings of the history for each mode.
42544
+ */
42545
+ history;
42546
+ /**
42547
+ * Sets the placeholder of the input element in the SmartBox and applies to all modes.
42548
+ */
42549
+ placeholder;
42550
+ /**
42551
+ * Specifies the padding of the input.
42552
+ *
42553
+ * @default 'medium'
42554
+ */
42555
+ size;
42556
+ /**
42557
+ * Emits when the SmartBox tool opens.
42558
+ */
42559
+ open = new EventEmitter();
42560
+ /**
42561
+ * Emits when the SmartBox tool closes.
42562
+ */
42563
+ close = new EventEmitter();
42564
+ /**
42565
+ * Emits when the SmartBox tool input is focused.
42566
+ */
42567
+ inputFocus = new EventEmitter();
42568
+ /**
42569
+ * Emits when the SmartBox tool input is blurred.
42570
+ */
42571
+ inputBlur = new EventEmitter();
42572
+ /**
42573
+ * Emits before the SmartBox tool sends the AI request.
42574
+ * - When you provide a `requestUrl`, you can handle the event to modify the request options.
42575
+ * - When you do not provide a `requestUrl`, you can handle the event to perform an entirely custom request.
42576
+ */
42577
+ aiAssistantPromptRequest = new EventEmitter();
42578
+ /**
42579
+ * Emits when the SmartBox tool completes the AI request successfully.
42580
+ * The event contains the response from the AI service and is preventable to allow stopping the default response handling.
42581
+ */
42582
+ aiAssistantResponseSuccess = new EventEmitter();
42583
+ /**
42584
+ * Emits when the SmartBox tool completes the AI request with an error.
42585
+ * The event contains the error response from the AI service and is preventable to allow stopping the default error handling.
42586
+ */
42587
+ aiAssistantResponseError = new EventEmitter();
42588
+ /**
42589
+ * Emits when the user clicks the Cancel button.
42590
+ */
42591
+ aiAssistantCancelRequest = new EventEmitter();
42592
+ /**
42593
+ * Emits when the user types in Search mode. The event contains the search query and the filter descriptors created based on the query.
42594
+ */
42595
+ search = new EventEmitter();
42596
+ /**
42597
+ * Emits when the user types in Semantic Search mode. The event contains the search query and the filter descriptors created based on the query.
42598
+ */
42599
+ semanticSearch = new EventEmitter();
42600
+ /**
42601
+ * Emits when the mode of the SmartBox tool changes. The event contains the new mode.
42602
+ */
42603
+ modeChange = new EventEmitter();
42604
+ /**
42605
+ * Indicates whether the SmartBox tool is in a loading state. Use this to show a loading indicator in the UI.
42606
+ */
42607
+ loading = false;
42608
+ constructor() { super(); }
42609
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxToolbarToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42610
+ 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: [
42611
+ {
42612
+ provide: ToolBarToolComponent,
42613
+ useExisting: forwardRef(() => SmartBoxToolbarToolComponent)
42614
+ }
42615
+ ], queries: [{ propertyName: "promptSuggestionTemplate", first: true, predicate: GridSmartBoxPromptSuggestionTemplateDirective, descendants: true }, { propertyName: "historyItemTemplate", first: true, predicate: GridSmartBoxHistoryItemTemplateDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
42616
+ <ng-template #toolbarTemplate #sectionTemplate #popupTemplate>
42617
+ <kendo-smartbox
42618
+ [searchMode]="searchMode"
42619
+ [semanticSearchMode]="semanticSearchMode"
42620
+ [aiAssistantMode]="aiAssistantMode"
42621
+ [activeMode]="activeMode"
42622
+ [history]="history"
42623
+ [placeholder]="placeholder"
42624
+ [size]="size"
42625
+ (open)="open.emit($event)"
42626
+ (close)="close.emit($event)"
42627
+ (focus)="inputFocus.emit($event)"
42628
+ (blur)="inputBlur.emit($event)"
42629
+ (search)="search.emit($event)"
42630
+ (semanticSearch)="semanticSearch.emit($event)"
42631
+ (aiAssistantPromptRequest)="aiAssistantPromptRequest.emit($event)"
42632
+ (aiAssistantResponseSuccess)="aiAssistantResponseSuccess.emit($event)"
42633
+ (aiAssistantResponseError)="aiAssistantResponseError.emit($event)"
42634
+ (aiAssistantCancelRequest)="aiAssistantCancelRequest.emit()"
42635
+ (modeChange)="modeChange.emit($event)"
42636
+ [promptSuggestionTemplate]="promptSuggestionTemplate"
42637
+ [historyItemTemplate]="historyItemTemplate"
42638
+ [loading]="loading"
42639
+ >
42640
+ </kendo-smartbox>
42641
+ </ng-template>
42642
+ `, 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"] }] });
42643
+ }
42644
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxToolbarToolComponent, decorators: [{
42645
+ type: Component,
42646
+ args: [{
42647
+ providers: [
42648
+ {
42649
+ provide: ToolBarToolComponent,
42650
+ useExisting: forwardRef(() => SmartBoxToolbarToolComponent)
42651
+ }
42652
+ ],
42653
+ selector: 'kendo-grid-smartbox-tool',
42654
+ template: `
42655
+ <ng-template #toolbarTemplate #sectionTemplate #popupTemplate>
42656
+ <kendo-smartbox
42657
+ [searchMode]="searchMode"
42658
+ [semanticSearchMode]="semanticSearchMode"
42659
+ [aiAssistantMode]="aiAssistantMode"
42660
+ [activeMode]="activeMode"
42661
+ [history]="history"
42662
+ [placeholder]="placeholder"
42663
+ [size]="size"
42664
+ (open)="open.emit($event)"
42665
+ (close)="close.emit($event)"
42666
+ (focus)="inputFocus.emit($event)"
42667
+ (blur)="inputBlur.emit($event)"
42668
+ (search)="search.emit($event)"
42669
+ (semanticSearch)="semanticSearch.emit($event)"
42670
+ (aiAssistantPromptRequest)="aiAssistantPromptRequest.emit($event)"
42671
+ (aiAssistantResponseSuccess)="aiAssistantResponseSuccess.emit($event)"
42672
+ (aiAssistantResponseError)="aiAssistantResponseError.emit($event)"
42673
+ (aiAssistantCancelRequest)="aiAssistantCancelRequest.emit()"
42674
+ (modeChange)="modeChange.emit($event)"
42675
+ [promptSuggestionTemplate]="promptSuggestionTemplate"
42676
+ [historyItemTemplate]="historyItemTemplate"
42677
+ [loading]="loading"
42678
+ >
42679
+ </kendo-smartbox>
42680
+ </ng-template>
42681
+ `,
42682
+ standalone: true,
42683
+ imports: [SmartBoxComponent]
42684
+ }]
42685
+ }], ctorParameters: () => [], propDecorators: { promptSuggestionTemplate: [{
42686
+ type: ContentChild,
42687
+ args: [GridSmartBoxPromptSuggestionTemplateDirective]
42688
+ }], historyItemTemplate: [{
42689
+ type: ContentChild,
42690
+ args: [GridSmartBoxHistoryItemTemplateDirective]
42691
+ }], searchMode: [{
42692
+ type: Input
42693
+ }], semanticSearchMode: [{
42694
+ type: Input
42695
+ }], aiAssistantMode: [{
42696
+ type: Input
42697
+ }], activeMode: [{
42698
+ type: Input
42699
+ }], history: [{
42700
+ type: Input
42701
+ }], placeholder: [{
42702
+ type: Input
42703
+ }], size: [{
42704
+ type: Input
42705
+ }], open: [{
42706
+ type: Output
42707
+ }], close: [{
42708
+ type: Output
42709
+ }], inputFocus: [{
42710
+ type: Output
42711
+ }], inputBlur: [{
42712
+ type: Output
42713
+ }], aiAssistantPromptRequest: [{
42714
+ type: Output
42715
+ }], aiAssistantResponseSuccess: [{
42716
+ type: Output
42717
+ }], aiAssistantResponseError: [{
42718
+ type: Output
42719
+ }], aiAssistantCancelRequest: [{
42720
+ type: Output
42721
+ }], search: [{
42722
+ type: Output
42723
+ }], semanticSearch: [{
42724
+ type: Output
42725
+ }], modeChange: [{
42726
+ type: Output
42727
+ }] } });
42728
+
40467
42729
  // DRAGGABLE COLUMN
40468
42730
  /**
40469
42731
  * @hidden
@@ -40694,7 +42956,10 @@ const KENDO_GRID_BODY_EXPORTS = [
40694
42956
  FilterCommandToolbarDirective,
40695
42957
  AIAssistantToolbarDirective,
40696
42958
  GroupCommandToolbarDirective,
40697
- SelectAllToolbarToolComponent
42959
+ SelectAllToolbarToolComponent,
42960
+ SmartBoxToolbarToolComponent,
42961
+ GridSmartBoxHistoryItemTemplateDirective,
42962
+ GridSmartBoxPromptSuggestionTemplateDirective
40698
42963
  ];
40699
42964
  /**
40700
42965
  * @hidden
@@ -40845,9 +43110,9 @@ const KENDO_GRID = [
40845
43110
  */
40846
43111
  class GridModule {
40847
43112
  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,
43113
+ 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
43114
  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] });
43115
+ 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
43116
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridModule, providers: [
40852
43117
  PopupService,
40853
43118
  ResizeBatchService,
@@ -40861,8 +43126,8 @@ class GridModule {
40861
43126
  DecadeViewService,
40862
43127
  MonthViewService,
40863
43128
  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] });
43129
+ NavigationService$2
43130
+ ], 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
43131
  }
40867
43132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridModule, decorators: [{
40868
43133
  type: NgModule,
@@ -40898,7 +43163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40898
43163
  DecadeViewService,
40899
43164
  MonthViewService,
40900
43165
  YearViewService,
40901
- NavigationService$1
43166
+ NavigationService$2
40902
43167
  ]
40903
43168
  }]
40904
43169
  }] });
@@ -41007,5 +43272,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
41007
43272
  * Generated bundle index. Do not edit.
41008
43273
  */
41009
43274
 
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 };
43275
+ 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
43276