@progress/kendo-angular-grid 23.0.0-develop.4 → 23.0.0-develop.5

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
 
@@ -13930,13 +13930,13 @@ class ToolbarToolBase {
13930
13930
  get buttonElement() {
13931
13931
  return this.host.getButton();
13932
13932
  }
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 });
13933
+ 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
13934
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: ToolbarToolBase, isStandalone: true, ngImport: i0 });
13935
13935
  }
13936
13936
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToolbarToolBase, decorators: [{
13937
13937
  type: Directive,
13938
13938
  args: [{}]
13939
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: undefined, decorators: [{
13939
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: undefined, decorators: [{
13940
13940
  type: Inject,
13941
13941
  args: ['command']
13942
13942
  }] }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
@@ -14138,7 +14138,7 @@ class ColumnChooserToolbarDirective extends ToolbarToolBase {
14138
14138
  this.host.selected = false;
14139
14139
  focusAnchor && this.buttonElement?.focus({ preventScroll: true });
14140
14140
  }
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 });
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: i57.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i57.RefreshService }, { token: AdaptiveGridService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
14142
14142
  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
14143
  }
14144
14144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ColumnChooserToolbarDirective, decorators: [{
@@ -14147,7 +14147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
14147
14147
  selector: '[kendoGridColumnChooserTool]',
14148
14148
  standalone: true
14149
14149
  }]
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: [{
14150
+ }], 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
14151
  type: Input
14152
14152
  }], allowHideAll: [{
14153
14153
  type: Input
@@ -17497,7 +17497,7 @@ class CSVCommandToolbarDirective extends ToolbarToolBase {
17497
17497
  e.preventDefault();
17498
17498
  this.csvService.exportClick.emit();
17499
17499
  }
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 });
17500
+ 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
17501
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: CSVCommandToolbarDirective, isStandalone: true, selector: "[kendoGridCSVTool]", usesInheritance: true, ngImport: i0 });
17502
17502
  }
17503
17503
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CSVCommandToolbarDirective, decorators: [{
@@ -17506,7 +17506,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
17506
17506
  selector: '[kendoGridCSVTool]',
17507
17507
  standalone: true
17508
17508
  }]
17509
- }], ctorParameters: () => [{ type: CSVService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
17509
+ }], ctorParameters: () => [{ type: CSVService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
17510
17510
 
17511
17511
  /**
17512
17512
  * @hidden
@@ -24124,7 +24124,7 @@ const packageMetadata = {
24124
24124
  productCode: 'KENDOUIANGULAR',
24125
24125
  productCodes: ['KENDOUIANGULAR'],
24126
24126
  publishDate: 0,
24127
- version: '23.0.0-develop.4',
24127
+ version: '23.0.0-develop.5',
24128
24128
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
24129
24129
  };
24130
24130
 
@@ -29097,8 +29097,64 @@ class GridMessages extends ComponentMessages {
29097
29097
  * and the message is rendered as `3 items are selected`.
29098
29098
  */
29099
29099
  multiCheckboxFilterSelectedItemsCount;
29100
+ /**
29101
+ * The aria-label for the Speech to Text button of the Smart Bar tool in AI Assistant mode.
29102
+ */
29103
+ smartBoxSpeechToTextButton;
29104
+ /**
29105
+ * The aria-label for the Submit button of the Smart Bar tool in AI Assistant mode.
29106
+ */
29107
+ smartBoxSubmitPromptButton;
29108
+ /**
29109
+ * The placeholder text for the SmartBox tool Search mode input
29110
+ */
29111
+ smartBoxSearchPlaceholder;
29112
+ /**
29113
+ * The placeholder text for the SmartBox tool Semantic Search mode input
29114
+ */
29115
+ smartBoxSemanticSearchPlaceholder;
29116
+ /**
29117
+ * The placeholder text for the SmartBox tool AI Assistant mode input
29118
+ */
29119
+ smartBoxAIAssistantPlaceholder;
29120
+ /**
29121
+ * The text for the suggested prompts section in the SmartBox tool AI Assistant mode.
29122
+ */
29123
+ smartBoxSuggestedPrompts;
29124
+ /**
29125
+ * The text displayed when there are no previous searches in the SmartBox tool.
29126
+ */
29127
+ smartBoxNoPreviousSearches;
29128
+ /**
29129
+ * The text displayed when there are no previous prompts in the SmartBox tool.
29130
+ */
29131
+ smartBoxNoPreviousPrompts;
29132
+ /**
29133
+ * The text displayed when there is previous search history in the SmartBox tool.
29134
+ */
29135
+ smartBoxPreviouslySearched;
29136
+ /**
29137
+ * The text displayed when there is previous ask history in the SmartBox tool.
29138
+ */
29139
+ smartBoxPreviouslyAsked;
29140
+ /**
29141
+ * The Search mode text displayed in the SmartBox tool search modes list.
29142
+ */
29143
+ searchModeListItemText;
29144
+ /**
29145
+ * The Search mode description displayed in the SmartBox tool search modes list.
29146
+ */
29147
+ searchModeListItemDescription;
29148
+ /**
29149
+ * The Semantic Search mode text displayed in the SmartBox tool search modes list.
29150
+ */
29151
+ semanticSearchModeListItemText;
29152
+ /**
29153
+ * The Semantic Search mode description displayed in the SmartBox tool search modes list.
29154
+ */
29155
+ semanticSearchModeListItemDescription;
29100
29156
  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 });
29157
+ 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
29158
  }
29103
29159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridMessages, decorators: [{
29104
29160
  type: Directive,
@@ -29374,6 +29430,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
29374
29430
  type: Input
29375
29431
  }], multiCheckboxFilterSelectedItemsCount: [{
29376
29432
  type: Input
29433
+ }], smartBoxSpeechToTextButton: [{
29434
+ type: Input
29435
+ }], smartBoxSubmitPromptButton: [{
29436
+ type: Input
29437
+ }], smartBoxSearchPlaceholder: [{
29438
+ type: Input
29439
+ }], smartBoxSemanticSearchPlaceholder: [{
29440
+ type: Input
29441
+ }], smartBoxAIAssistantPlaceholder: [{
29442
+ type: Input
29443
+ }], smartBoxSuggestedPrompts: [{
29444
+ type: Input
29445
+ }], smartBoxNoPreviousSearches: [{
29446
+ type: Input
29447
+ }], smartBoxNoPreviousPrompts: [{
29448
+ type: Input
29449
+ }], smartBoxPreviouslySearched: [{
29450
+ type: Input
29451
+ }], smartBoxPreviouslyAsked: [{
29452
+ type: Input
29453
+ }], searchModeListItemText: [{
29454
+ type: Input
29455
+ }], searchModeListItemDescription: [{
29456
+ type: Input
29457
+ }], semanticSearchModeListItemText: [{
29458
+ type: Input
29459
+ }], semanticSearchModeListItemDescription: [{
29460
+ type: Input
29377
29461
  }] } });
29378
29462
 
29379
29463
  /**
@@ -31944,6 +32028,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
31944
32028
  args: [GroupToolbarToolComponent]
31945
32029
  }] } });
31946
32030
 
32031
+ /**
32032
+ * @hidden
32033
+ */
32034
+ class SearchService {
32035
+ /**
32036
+ * Fires when the search descriptor is set.
32037
+ */
32038
+ changes = new Subject();
32039
+ /**
32040
+ * Sets the search descriptor.
32041
+ *
32042
+ * @param {CompositeFilterDescriptor} value - The search descriptor to set.
32043
+ */
32044
+ search(value) {
32045
+ this.changes.next(value);
32046
+ }
32047
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32048
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SearchService });
32049
+ }
32050
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SearchService, decorators: [{
32051
+ type: Injectable
32052
+ }] });
32053
+
31947
32054
  const createControl = (source) => (acc, key) => {
31948
32055
  acc[key] = new FormControl(source[key]);
31949
32056
  return acc;
@@ -34407,7 +34514,8 @@ class GridComponent {
34407
34514
  AdaptiveGridService,
34408
34515
  ColumnMenuService,
34409
34516
  MenuTabbingService,
34410
- DataMappingService
34517
+ DataMappingService,
34518
+ SearchService
34411
34519
  ], 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
34520
  <ng-container kendoGridLocalizedMessages
34413
34521
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
@@ -34811,6 +34919,48 @@ class GridComponent {
34811
34919
 
34812
34920
  i18n-multiCheckboxFilterSelectedItemsCount="kendo.grid.multiCheckboxFilterSelectedItemsCount|The text for the multi-checkbox filter selected items count"
34813
34921
  multiCheckboxFilterSelectedItemsCount="{{ '{selectedItemsCount} selected items' }}"
34922
+
34923
+ i18n-smartBoxSpeechToTextButton="kendo.grid.smartBoxSpeechToTextButton|The aria-label for the Speech to Text button of the SmartBox tool in AI Assistant mode."
34924
+ smartBoxSpeechToTextButton="Voice input"
34925
+
34926
+ i18n-smartBoxSubmitPromptButton="kendo.grid.smartBoxSubmitPromptButton|The aria-label for the Submit button of the SmartBox tool in AI Assistant mode."
34927
+ smartBoxSubmitPromptButton="Submit prompt"
34928
+
34929
+ i18n-smartBoxSearchPlaceholder="kendo.grid.smartBoxSearchPlaceholder|The placeholder text for the SmartBox tool Search mode input"
34930
+ smartBoxSearchPlaceholder="Search..."
34931
+
34932
+ i18n-smartBoxSemanticSearchPlaceholder="kendo.grid.smartBoxSemanticSearchPlaceholder|The placeholder text for the SmartBox tool Semantic Search mode input"
34933
+ smartBoxSemanticSearchPlaceholder="Semantic Search"
34934
+
34935
+ i18n-smartBoxAIAssistantPlaceholder="kendo.grid.smartBoxAIAssistantPlaceholder|The placeholder text for the SmartBox tool AI Assistant mode input"
34936
+ smartBoxAIAssistantPlaceholder="Sort, Filter, or group with AI"
34937
+
34938
+ i18n-smartBoxSuggestedPrompts="kendo.grid.smartBoxSuggestedPrompts|The text for the suggested prompts section in the SmartBox tool AI Assistant mode."
34939
+ smartBoxSuggestedPrompts="Suggested prompts"
34940
+
34941
+ i18n-smartBoxNoPreviousSearches="kendo.grid.smartBoxNoPreviousSearches|The text displayed when there are no previous searches in the SmartBox tool."
34942
+ smartBoxNoPreviousSearches="No previous searches"
34943
+
34944
+ i18n-smartBoxNoPreviousPrompts="kendo.grid.smartBoxNoPreviousPrompts|The text displayed when there are no previous prompts in the SmartBox tool."
34945
+ smartBoxNoPreviousPrompts="No previous prompts"
34946
+
34947
+ i18n-smartBoxPreviouslySearched="kendo.grid.smartBoxPreviouslySearched|The text displayed when there is previous search history in the SmartBox tool."
34948
+ smartBoxPreviouslySearched="Previously Searched"
34949
+
34950
+ i18n-smartBoxPreviouslyAsked="kendo.grid.smartBoxPreviouslyAsked|The text displayed when there is previous ask history in the SmartBox tool."
34951
+ smartBoxPreviouslyAsked="Previously Asked"
34952
+
34953
+ i18n-searchModeListItemText="kendo.grid.searchModeListItemText|The Search mode text displayed in the SmartBox tool search modes list."
34954
+ searchModeListItemText="Search"
34955
+
34956
+ i18n-searchModeListItemDescription="kendo.grid.searchModeListItemDescription|The Search mode description displayed in the SmartBox tool search modes list."
34957
+ searchModeListItemDescription="Looks for exact word matches accross your data."
34958
+
34959
+ i18n-semanticSearchModeListItemText="kendo.grid.semanticSearchModeListItemText|The Semantic Search mode text displayed in the SmartBox tool search modes list."
34960
+ semanticSearchModeListItemText="Semantic Search"
34961
+
34962
+ i18n-semanticSearchModeListItemDescription="kendo.grid.semanticSearchModeListItemDescription|The Semantic Search mode description displayed in the SmartBox tool search modes list."
34963
+ semanticSearchModeListItemDescription="Understands context to surface the most relevant results."
34814
34964
  >
34815
34965
  </ng-container>
34816
34966
  @if (showTopToolbar) {
@@ -35274,7 +35424,7 @@ class GridComponent {
35274
35424
  @if (showLicenseWatermark) {
35275
35425
  <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
35276
35426
  }
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 });
35427
+ `, 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
35428
  }
35279
35429
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridComponent, decorators: [{
35280
35430
  type: Component,
@@ -35333,7 +35483,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
35333
35483
  AdaptiveGridService,
35334
35484
  ColumnMenuService,
35335
35485
  MenuTabbingService,
35336
- DataMappingService
35486
+ DataMappingService,
35487
+ SearchService
35337
35488
  ],
35338
35489
  selector: 'kendo-grid',
35339
35490
  template: `
@@ -35739,6 +35890,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
35739
35890
 
35740
35891
  i18n-multiCheckboxFilterSelectedItemsCount="kendo.grid.multiCheckboxFilterSelectedItemsCount|The text for the multi-checkbox filter selected items count"
35741
35892
  multiCheckboxFilterSelectedItemsCount="{{ '{selectedItemsCount} selected items' }}"
35893
+
35894
+ i18n-smartBoxSpeechToTextButton="kendo.grid.smartBoxSpeechToTextButton|The aria-label for the Speech to Text button of the SmartBox tool in AI Assistant mode."
35895
+ smartBoxSpeechToTextButton="Voice input"
35896
+
35897
+ i18n-smartBoxSubmitPromptButton="kendo.grid.smartBoxSubmitPromptButton|The aria-label for the Submit button of the SmartBox tool in AI Assistant mode."
35898
+ smartBoxSubmitPromptButton="Submit prompt"
35899
+
35900
+ i18n-smartBoxSearchPlaceholder="kendo.grid.smartBoxSearchPlaceholder|The placeholder text for the SmartBox tool Search mode input"
35901
+ smartBoxSearchPlaceholder="Search..."
35902
+
35903
+ i18n-smartBoxSemanticSearchPlaceholder="kendo.grid.smartBoxSemanticSearchPlaceholder|The placeholder text for the SmartBox tool Semantic Search mode input"
35904
+ smartBoxSemanticSearchPlaceholder="Semantic Search"
35905
+
35906
+ i18n-smartBoxAIAssistantPlaceholder="kendo.grid.smartBoxAIAssistantPlaceholder|The placeholder text for the SmartBox tool AI Assistant mode input"
35907
+ smartBoxAIAssistantPlaceholder="Sort, Filter, or group with AI"
35908
+
35909
+ i18n-smartBoxSuggestedPrompts="kendo.grid.smartBoxSuggestedPrompts|The text for the suggested prompts section in the SmartBox tool AI Assistant mode."
35910
+ smartBoxSuggestedPrompts="Suggested prompts"
35911
+
35912
+ i18n-smartBoxNoPreviousSearches="kendo.grid.smartBoxNoPreviousSearches|The text displayed when there are no previous searches in the SmartBox tool."
35913
+ smartBoxNoPreviousSearches="No previous searches"
35914
+
35915
+ i18n-smartBoxNoPreviousPrompts="kendo.grid.smartBoxNoPreviousPrompts|The text displayed when there are no previous prompts in the SmartBox tool."
35916
+ smartBoxNoPreviousPrompts="No previous prompts"
35917
+
35918
+ i18n-smartBoxPreviouslySearched="kendo.grid.smartBoxPreviouslySearched|The text displayed when there is previous search history in the SmartBox tool."
35919
+ smartBoxPreviouslySearched="Previously Searched"
35920
+
35921
+ i18n-smartBoxPreviouslyAsked="kendo.grid.smartBoxPreviouslyAsked|The text displayed when there is previous ask history in the SmartBox tool."
35922
+ smartBoxPreviouslyAsked="Previously Asked"
35923
+
35924
+ i18n-searchModeListItemText="kendo.grid.searchModeListItemText|The Search mode text displayed in the SmartBox tool search modes list."
35925
+ searchModeListItemText="Search"
35926
+
35927
+ i18n-searchModeListItemDescription="kendo.grid.searchModeListItemDescription|The Search mode description displayed in the SmartBox tool search modes list."
35928
+ searchModeListItemDescription="Looks for exact word matches accross your data."
35929
+
35930
+ i18n-semanticSearchModeListItemText="kendo.grid.semanticSearchModeListItemText|The Semantic Search mode text displayed in the SmartBox tool search modes list."
35931
+ semanticSearchModeListItemText="Semantic Search"
35932
+
35933
+ i18n-semanticSearchModeListItemDescription="kendo.grid.semanticSearchModeListItemDescription|The Semantic Search mode description displayed in the SmartBox tool search modes list."
35934
+ semanticSearchModeListItemDescription="Understands context to surface the most relevant results."
35742
35935
  >
35743
35936
  </ng-container>
35744
35937
  @if (showTopToolbar) {
@@ -36525,6 +36718,7 @@ class DataBindingDirective {
36525
36718
  changeDetector;
36526
36719
  localDataChangesService;
36527
36720
  rowReorderService;
36721
+ searchService;
36528
36722
  /**
36529
36723
  * Sets the number of records to skip in the Grid.
36530
36724
  *
@@ -36586,11 +36780,14 @@ class DataBindingDirective {
36586
36780
  stateChangeSubscription;
36587
36781
  dataChangedSubscription;
36588
36782
  rowReorderSubscription;
36589
- constructor(grid, changeDetector, localDataChangesService, rowReorderService, ctx) {
36783
+ searchSubscription;
36784
+ searchFilter;
36785
+ constructor(grid, changeDetector, localDataChangesService, rowReorderService, searchService, ctx) {
36590
36786
  this.grid = grid;
36591
36787
  this.changeDetector = changeDetector;
36592
36788
  this.localDataChangesService = localDataChangesService;
36593
36789
  this.rowReorderService = rowReorderService;
36790
+ this.searchService = searchService;
36594
36791
  if (localDataChangesService) {
36595
36792
  this.dataChangedSubscription = this.localDataChangesService.changes.subscribe(this.rebind.bind(this));
36596
36793
  }
@@ -36609,6 +36806,13 @@ class DataBindingDirective {
36609
36806
  .rowReorder
36610
36807
  .subscribe(this.onRowReorder.bind(this));
36611
36808
  }
36809
+ if (this.searchService) {
36810
+ this.searchSubscription = this.searchService
36811
+ .changes
36812
+ .subscribe((searchFilter) => {
36813
+ this.onSearch.bind(this)(searchFilter);
36814
+ });
36815
+ }
36612
36816
  }
36613
36817
  /**
36614
36818
  * @hidden
@@ -36623,6 +36827,9 @@ class DataBindingDirective {
36623
36827
  if (this.rowReorderSubscription) {
36624
36828
  this.rowReorderSubscription.unsubscribe();
36625
36829
  }
36830
+ if (this.searchSubscription) {
36831
+ this.searchSubscription.unsubscribe();
36832
+ }
36626
36833
  }
36627
36834
  ngOnChanges(changes) {
36628
36835
  if (anyChanged(["pageSize", "skip", "sort", "group", "filter"], changes)) {
@@ -36648,6 +36855,18 @@ class DataBindingDirective {
36648
36855
  this.rowReorderService.reorderRows(ev, this.originalData);
36649
36856
  this.rebind();
36650
36857
  }
36858
+ /**
36859
+ * @hidden
36860
+ */
36861
+ onSearch(searchFilter) {
36862
+ this.searchFilter = searchFilter;
36863
+ const combinedFilter = this.combineFilters();
36864
+ const state = { ...this.state, filter: combinedFilter };
36865
+ this.grid.data = this.process(state);
36866
+ this.grid.updateNavigationMetadata();
36867
+ this.grid.ngDoCheck();
36868
+ this.dataChanged = false;
36869
+ }
36651
36870
  /**
36652
36871
  * @hidden
36653
36872
  */
@@ -36694,12 +36913,31 @@ class DataBindingDirective {
36694
36913
  this.state.take = this.grid.pageSize;
36695
36914
  }
36696
36915
  }
36697
- this.grid.data = this.process(this.state);
36916
+ let combinedFilter = null;
36917
+ if (this.searchFilter) {
36918
+ combinedFilter = this.combineFilters();
36919
+ const state = { ...this.state, filter: combinedFilter };
36920
+ this.grid.data = this.process(state);
36921
+ }
36922
+ else {
36923
+ this.grid.data = this.process(this.state);
36924
+ }
36698
36925
  this.grid.updateNavigationMetadata();
36699
36926
  this.grid.ngDoCheck();
36700
36927
  this.dataChanged = false;
36701
36928
  }
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 });
36929
+ combineFilters() {
36930
+ let combinedFilter = null;
36931
+ if (this.state.filter && this.searchFilter) {
36932
+ combinedFilter = {
36933
+ logic: 'and',
36934
+ filters: [...this.state.filter.filters, this.searchFilter]
36935
+ };
36936
+ return combinedFilter;
36937
+ }
36938
+ return this.searchFilter || this.state.filter;
36939
+ }
36940
+ 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
36941
  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
36942
  }
36705
36943
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DataBindingDirective, decorators: [{
@@ -36709,7 +36947,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
36709
36947
  exportAs: 'kendoGridBinding',
36710
36948
  standalone: true
36711
36949
  }]
36712
- }], ctorParameters: () => [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }, { type: ContextService }], propDecorators: { skip: [{
36950
+ }], ctorParameters: () => [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }, { type: SearchService }, { type: ContextService }], propDecorators: { skip: [{
36713
36951
  type: Input
36714
36952
  }], sort: [{
36715
36953
  type: Input
@@ -37994,7 +38232,7 @@ class PDFCommandToolbarDirective extends ToolbarToolBase {
37994
38232
  e.preventDefault();
37995
38233
  this.pdfService.exportClick.emit();
37996
38234
  }
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 });
38235
+ 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
38236
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: PDFCommandToolbarDirective, isStandalone: true, selector: "[kendoGridPDFTool]", usesInheritance: true, ngImport: i0 });
37999
38237
  }
38000
38238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFCommandToolbarDirective, decorators: [{
@@ -38003,7 +38241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38003
38241
  selector: '[kendoGridPDFTool]',
38004
38242
  standalone: true
38005
38243
  }]
38006
- }], ctorParameters: () => [{ type: PDFService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38244
+ }], ctorParameters: () => [{ type: PDFService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38007
38245
 
38008
38246
  /**
38009
38247
  * Represents the **Export to Excel** toolbar tool of the Grid.
@@ -38039,7 +38277,7 @@ class ExcelCommandToolbarDirective extends ToolbarToolBase {
38039
38277
  e.preventDefault();
38040
38278
  this.excelService.exportClick.emit();
38041
38279
  }
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 });
38280
+ 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
38281
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: ExcelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridExcelTool]", usesInheritance: true, ngImport: i0 });
38044
38282
  }
38045
38283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ExcelCommandToolbarDirective, decorators: [{
@@ -38048,7 +38286,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38048
38286
  selector: '[kendoGridExcelTool]',
38049
38287
  standalone: true
38050
38288
  }]
38051
- }], ctorParameters: () => [{ type: ExcelService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38289
+ }], ctorParameters: () => [{ type: ExcelService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38052
38290
 
38053
38291
  /**
38054
38292
  * @hidden
@@ -38121,13 +38359,13 @@ class ToolbarEditingToolBase extends ToolbarToolBase {
38121
38359
  get isSelectionPresent() {
38122
38360
  return isPresent$1(this.lastSelectionIndex) && this.lastSelectionIndex > -1;
38123
38361
  }
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 });
38362
+ 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
38363
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: ToolbarEditingToolBase, isStandalone: true, usesInheritance: true, ngImport: i0 });
38126
38364
  }
38127
38365
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToolbarEditingToolBase, decorators: [{
38128
38366
  type: Directive,
38129
38367
  args: [{}]
38130
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: undefined, decorators: [{
38368
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: undefined, decorators: [{
38131
38369
  type: Inject,
38132
38370
  args: ['command']
38133
38371
  }] }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: EditService }, { type: SelectionService }] });
@@ -38167,7 +38405,7 @@ class AddCommandToolbarDirective extends ToolbarEditingToolBase {
38167
38405
  e.preventDefault();
38168
38406
  this.editService.beginAdd();
38169
38407
  }
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 });
38408
+ 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
38409
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: AddCommandToolbarDirective, isStandalone: true, selector: "[kendoGridAddTool]", usesInheritance: true, ngImport: i0 });
38172
38410
  }
38173
38411
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AddCommandToolbarDirective, decorators: [{
@@ -38176,7 +38414,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38176
38414
  selector: '[kendoGridAddTool]',
38177
38415
  standalone: true
38178
38416
  }]
38179
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38417
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
38180
38418
 
38181
38419
  /**
38182
38420
  * @hidden
@@ -38727,7 +38965,7 @@ class UndoCommandToolbarDirective {
38727
38965
  e.preventDefault();
38728
38966
  this.undoRedoService.onUndo.next(undefined);
38729
38967
  }
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 });
38968
+ 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
38969
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: UndoCommandToolbarDirective, isStandalone: true, selector: "[kendoGridUndoTool]", ngImport: i0 });
38732
38970
  }
38733
38971
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: UndoCommandToolbarDirective, decorators: [{
@@ -38736,7 +38974,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38736
38974
  selector: '[kendoGridUndoTool]',
38737
38975
  standalone: true,
38738
38976
  }]
38739
- }], ctorParameters: () => [{ type: UndoRedoService }, { type: i54.ToolBarButtonComponent }] });
38977
+ }], ctorParameters: () => [{ type: UndoRedoService }, { type: i57.ToolBarButtonComponent }] });
38740
38978
 
38741
38979
  /**
38742
38980
  * Represents the command that triggers the redo action in the Grid.
@@ -38790,7 +39028,7 @@ class RedoCommandToolbarDirective {
38790
39028
  e.preventDefault();
38791
39029
  this.undoRedoService.onRedo.next(undefined);
38792
39030
  }
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 });
39031
+ 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
39032
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: RedoCommandToolbarDirective, isStandalone: true, selector: "[kendoGridRedoTool]", ngImport: i0 });
38795
39033
  }
38796
39034
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: RedoCommandToolbarDirective, decorators: [{
@@ -38799,7 +39037,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38799
39037
  selector: '[kendoGridRedoTool]',
38800
39038
  standalone: true,
38801
39039
  }]
38802
- }], ctorParameters: () => [{ type: UndoRedoService }, { type: i54.ToolBarButtonComponent }] });
39040
+ }], ctorParameters: () => [{ type: UndoRedoService }, { type: i57.ToolBarButtonComponent }] });
38803
39041
 
38804
39042
  let incrementingId$2 = 0;
38805
39043
  /**
@@ -38990,7 +39228,7 @@ class SortCommandToolbarDirective {
38990
39228
  get buttonElement() {
38991
39229
  return this.host.getButton();
38992
39230
  }
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 });
39231
+ 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
39232
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: SortCommandToolbarDirective, isStandalone: true, selector: "[kendoGridSortTool]", ngImport: i0 });
38995
39233
  }
38996
39234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SortCommandToolbarDirective, decorators: [{
@@ -38999,7 +39237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
38999
39237
  selector: '[kendoGridSortTool]',
39000
39238
  standalone: true
39001
39239
  }]
39002
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39240
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39003
39241
 
39004
39242
  /**
39005
39243
  * @hidden
@@ -39322,7 +39560,7 @@ class FilterCommandToolbarDirective {
39322
39560
  get buttonElement() {
39323
39561
  return this.host.getButton();
39324
39562
  }
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 });
39563
+ 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
39564
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: FilterCommandToolbarDirective, isStandalone: true, selector: "[kendoGridFilterTool]", ngImport: i0 });
39327
39565
  }
39328
39566
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FilterCommandToolbarDirective, decorators: [{
@@ -39331,7 +39569,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39331
39569
  selector: '[kendoGridFilterTool]',
39332
39570
  standalone: true
39333
39571
  }]
39334
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: FilterService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39572
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: FilterService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39335
39573
 
39336
39574
  /**
39337
39575
  * Represents the `edit` command in the Grid. Apply this directive to any `kendo-toolbar-button`
@@ -39367,7 +39605,7 @@ class EditCommandToolbarDirective extends ToolbarEditingToolBase {
39367
39605
  }
39368
39606
  this.editService.beginEdit(this.lastSelectionIndex);
39369
39607
  }
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 });
39608
+ 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
39609
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: EditCommandToolbarDirective, isStandalone: true, selector: "[kendoGridEditTool]", usesInheritance: true, ngImport: i0 });
39372
39610
  }
39373
39611
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: EditCommandToolbarDirective, decorators: [{
@@ -39376,7 +39614,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39376
39614
  selector: '[kendoGridEditTool]',
39377
39615
  standalone: true
39378
39616
  }]
39379
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39617
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39380
39618
 
39381
39619
  /**
39382
39620
  * Represents the `save` command in the Grid. Apply this directive to any `kendo-toolbar-button`
@@ -39417,7 +39655,7 @@ class SaveCommandToolbarDirective extends ToolbarEditingToolBase {
39417
39655
  this.editService.editedIndices.forEach(i => this.editService.save(i.index));
39418
39656
  }
39419
39657
  }
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 });
39658
+ 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
39659
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: SaveCommandToolbarDirective, isStandalone: true, selector: "[kendoGridSaveTool]", usesInheritance: true, ngImport: i0 });
39422
39660
  }
39423
39661
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SaveCommandToolbarDirective, decorators: [{
@@ -39426,7 +39664,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39426
39664
  selector: '[kendoGridSaveTool]',
39427
39665
  standalone: true
39428
39666
  }]
39429
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39667
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39430
39668
 
39431
39669
  /**
39432
39670
  * Represents the `remove` command in the Grid. Apply this directive to any `kendo-toolbar-button`
@@ -39463,7 +39701,7 @@ class RemoveCommandToolbarDirective extends ToolbarEditingToolBase {
39463
39701
  this.editService.remove(this.lastSelectionIndex);
39464
39702
  }
39465
39703
  }
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 });
39704
+ 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
39705
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: RemoveCommandToolbarDirective, isStandalone: true, selector: "[kendoGridRemoveTool]", usesInheritance: true, ngImport: i0 });
39468
39706
  }
39469
39707
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: RemoveCommandToolbarDirective, decorators: [{
@@ -39472,7 +39710,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39472
39710
  selector: '[kendoGridRemoveTool]',
39473
39711
  standalone: true
39474
39712
  }]
39475
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39713
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39476
39714
 
39477
39715
  /**
39478
39716
  * Represents the `cancel` command in the Grid.
@@ -39512,7 +39750,7 @@ class CancelCommandToolbarDirective extends ToolbarEditingToolBase {
39512
39750
  this.editService.editedIndices.forEach(i => this.editService.endEdit(i.index));
39513
39751
  }
39514
39752
  }
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 });
39753
+ 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
39754
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: CancelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridCancelTool]", usesInheritance: true, ngImport: i0 });
39517
39755
  }
39518
39756
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CancelCommandToolbarDirective, decorators: [{
@@ -39521,7 +39759,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39521
39759
  selector: '[kendoGridCancelTool]',
39522
39760
  standalone: true
39523
39761
  }]
39524
- }], ctorParameters: () => [{ type: EditService }, { type: i54.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39762
+ }], ctorParameters: () => [{ type: EditService }, { type: i57.ToolBarButtonComponent }, { type: SelectionService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
39525
39763
 
39526
39764
  let incrementingId = 0;
39527
39765
  /**
@@ -39702,7 +39940,7 @@ class GroupCommandToolbarDirective {
39702
39940
  isGroupingApplied(group) {
39703
39941
  return isPresent$1(group) && group.length > 0;
39704
39942
  }
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 });
39943
+ 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
39944
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GroupCommandToolbarDirective, isStandalone: true, selector: "[kendoGridGroupTool]", ngImport: i0 });
39707
39945
  }
39708
39946
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GroupCommandToolbarDirective, decorators: [{
@@ -39711,7 +39949,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39711
39949
  selector: '[kendoGridGroupTool]',
39712
39950
  standalone: true
39713
39951
  }]
39714
- }], ctorParameters: () => [{ type: i54.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39952
+ }], ctorParameters: () => [{ type: i57.ToolBarButtonComponent }, { type: i2.PopupService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: AdaptiveGridService }] });
39715
39953
 
39716
39954
  /**
39717
39955
  * Stores the row and cell highlight state of the Grid.
@@ -39740,14 +39978,19 @@ class HighlightDirective {
39740
39978
  * Sets the column key for a data cell. The Grid uses the column index as the default column key.
39741
39979
  */
39742
39980
  highlightColumnKey;
39981
+ /**
39982
+ * Emits when the `highlightedKeys` collection changes.
39983
+ */
39984
+ highlightedKeysChange = new EventEmitter();
39743
39985
  rowHighlightState = new Set();
39744
39986
  cellHighlightState = new PairSet();
39987
+ lastHighlightState;
39745
39988
  constructor(ctx) {
39746
39989
  this.ctx = ctx;
39747
39990
  this.ctx.highlightDirective = this;
39748
39991
  }
39749
39992
  ngOnChanges(changes) {
39750
- if (isPresent$1(changes['highlightedKeys'])) {
39993
+ if (isPresent$1(changes['highlightedKeys']) && this.lastHighlightState !== this.highlightedKeys) {
39751
39994
  this.setState(this.highlightedKeys);
39752
39995
  }
39753
39996
  }
@@ -39801,6 +40044,7 @@ class HighlightDirective {
39801
40044
  setState(highlightedKeys) {
39802
40045
  this.reset();
39803
40046
  if (!highlightedKeys || highlightedKeys.length === 0) {
40047
+ this.notifyChange();
39804
40048
  return;
39805
40049
  }
39806
40050
  const rowHighlights = highlightedKeys.filter(item => !isPresent$1(item.columnKey));
@@ -39813,13 +40057,18 @@ class HighlightDirective {
39813
40057
  this.rowHighlightState.add(item.itemKey);
39814
40058
  });
39815
40059
  }
40060
+ this.notifyChange();
40061
+ }
40062
+ notifyChange() {
40063
+ this.lastHighlightState = this.highlightedKeys;
40064
+ this.highlightedKeysChange.emit(this.highlightedKeys);
39816
40065
  }
39817
40066
  reset() {
39818
40067
  this.rowHighlightState.clear();
39819
40068
  this.cellHighlightState.clear();
39820
40069
  }
39821
40070
  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 });
40071
+ 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
40072
  }
39824
40073
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HighlightDirective, decorators: [{
39825
40074
  type: Directive,
@@ -39834,6 +40083,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
39834
40083
  args: ["kendoGridHighlight"]
39835
40084
  }], highlightColumnKey: [{
39836
40085
  type: Input
40086
+ }], highlightedKeysChange: [{
40087
+ type: Output
39837
40088
  }] } });
39838
40089
 
39839
40090
  /**
@@ -39881,7 +40132,6 @@ class AiAssistantComponent {
39881
40132
  http;
39882
40133
  ctx;
39883
40134
  columnInfoService;
39884
- zone;
39885
40135
  aiRequestResponseService;
39886
40136
  aiPrompt;
39887
40137
  activeView = 0;
@@ -39900,11 +40150,10 @@ class AiAssistantComponent {
39900
40150
  columns = [];
39901
40151
  leafColumns = [];
39902
40152
  idCounter = 0;
39903
- constructor(http, ctx, columnInfoService, zone, aiRequestResponseService) {
40153
+ constructor(http, ctx, columnInfoService, aiRequestResponseService) {
39904
40154
  this.http = http;
39905
40155
  this.ctx = ctx;
39906
40156
  this.columnInfoService = columnInfoService;
39907
- this.zone = zone;
39908
40157
  this.aiRequestResponseService = aiRequestResponseService;
39909
40158
  }
39910
40159
  ngAfterViewInit() {
@@ -40022,7 +40271,7 @@ class AiAssistantComponent {
40022
40271
  this.currentRequestSubscription = null;
40023
40272
  }
40024
40273
  }
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 });
40274
+ 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
40275
  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
40276
  <kendo-aiprompt
40028
40277
  #aiPrompt
@@ -40126,7 +40375,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40126
40375
  </kendo-aiprompt>
40127
40376
  `
40128
40377
  }]
40129
- }], ctorParameters: () => [{ type: i1$8.HttpClient }, { type: ContextService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: GridAIRequestResponseService }], propDecorators: { aiPrompt: [{
40378
+ }], ctorParameters: () => [{ type: i1$8.HttpClient }, { type: ContextService }, { type: ColumnInfoService }, { type: GridAIRequestResponseService }], propDecorators: { aiPrompt: [{
40130
40379
  type: ViewChild,
40131
40380
  args: [AIPromptComponent]
40132
40381
  }] } });
@@ -40350,7 +40599,7 @@ class AIAssistantToolbarDirective extends ToolbarToolBase {
40350
40599
  this.host.selected = false;
40351
40600
  focusAnchor && this.buttonElement?.focus();
40352
40601
  }
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 });
40602
+ 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
40603
  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
40604
  }
40356
40605
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AIAssistantToolbarDirective, decorators: [{
@@ -40359,7 +40608,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40359
40608
  selector: '[kendoGridAIAssistantTool]',
40360
40609
  standalone: true
40361
40610
  }]
40362
- }], ctorParameters: () => [{ type: i1$7.WindowService }, { type: i54.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i54.RefreshService }, { type: i0.ChangeDetectorRef }], propDecorators: { requestUrl: [{
40611
+ }], ctorParameters: () => [{ type: i1$7.WindowService }, { type: i57.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i57.RefreshService }, { type: i0.ChangeDetectorRef }], propDecorators: { requestUrl: [{
40363
40612
  type: Input
40364
40613
  }], requestOptions: [{
40365
40614
  type: Input
@@ -40464,6 +40713,1917 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40464
40713
  }]
40465
40714
  }], ctorParameters: () => [{ type: IdService }, { type: ContextService }] });
40466
40715
 
40716
+ /**
40717
+ * @hidden
40718
+ */
40719
+ class SmartBoxResponseErrorEvent extends PreventableEvent$1 {
40720
+ /**
40721
+ * The HTTP error response from the AI service.
40722
+ */
40723
+ error;
40724
+ constructor(error) {
40725
+ super();
40726
+ this.error = error;
40727
+ }
40728
+ }
40729
+ /**
40730
+ * @hidden
40731
+ */
40732
+ class SmartBoxResponseSuccessEvent extends PreventableEvent$1 {
40733
+ /**
40734
+ * The HTTP response from the AI service.
40735
+ */
40736
+ response;
40737
+ constructor(response) {
40738
+ super();
40739
+ this.response = response;
40740
+ }
40741
+ }
40742
+ /**
40743
+ * @hidden
40744
+ */
40745
+ class SmartBoxSearchEvent extends PreventableEvent$1 {
40746
+ /**
40747
+ * The user's input value.
40748
+ */
40749
+ searchValue;
40750
+ /**
40751
+ * The input-based filters that will be applied to the Grid.
40752
+ */
40753
+ filters;
40754
+ /**
40755
+ * The logic applied to the filters.
40756
+ */
40757
+ logic;
40758
+ /**
40759
+ * @hidden
40760
+ */
40761
+ constructor() {
40762
+ super();
40763
+ }
40764
+ }
40765
+
40766
+ /**
40767
+ * Represents the event data when the AI Assistant request completes with an error.
40768
+ */
40769
+ class GridSmartBoxResponseErrorEvent extends SmartBoxResponseErrorEvent {
40770
+ /**
40771
+ * @hidden
40772
+ */
40773
+ constructor(error) {
40774
+ super(error);
40775
+ }
40776
+ }
40777
+ /**
40778
+ * Represents the event data when the AI Assistant request completes successfully.
40779
+ */
40780
+ class GridSmartBoxResponseSuccessEvent extends SmartBoxResponseSuccessEvent {
40781
+ /**
40782
+ * @hidden
40783
+ */
40784
+ constructor(response) {
40785
+ super(response);
40786
+ }
40787
+ }
40788
+ /**
40789
+ * Represents the event data when the user types in Search mode.
40790
+ */
40791
+ class GridSmartBoxSearchEvent extends SmartBoxSearchEvent {
40792
+ /**
40793
+ * @hidden
40794
+ */
40795
+ constructor() {
40796
+ super();
40797
+ }
40798
+ }
40799
+
40800
+ const DEFAULT_SIZE$1 = 'medium';
40801
+ const SIZES_MAP = {
40802
+ small: 'sm',
40803
+ medium: 'md',
40804
+ large: 'lg'
40805
+ };
40806
+ /**
40807
+ * @hidden
40808
+ */
40809
+ class SegmentedControlComponent {
40810
+ renderer;
40811
+ wrapper;
40812
+ cdr;
40813
+ zone;
40814
+ hostClasses = true;
40815
+ hostRole = 'group';
40816
+ thumb;
40817
+ /**
40818
+ * Specifies the collection of buttons that will be rendered inside the SegmentedControlComponent.
40819
+ */
40820
+ buttons = [];
40821
+ /**
40822
+ * Sets the padding of the control.
40823
+ *
40824
+ * @default 'medium'
40825
+ */
40826
+ set size(size) {
40827
+ const newSize = size || DEFAULT_SIZE$1;
40828
+ this.handleSizeClass(newSize, this._size);
40829
+ this._size = newSize;
40830
+ }
40831
+ get size() {
40832
+ return this._size;
40833
+ }
40834
+ /**
40835
+ * Fires when a button is clicked.
40836
+ */
40837
+ buttonClick = new EventEmitter();
40838
+ ngAfterViewInit() {
40839
+ this.handleSizeClass(this._size, null);
40840
+ this.selectedButtonIndex = this.buttons.indexOf(this.buttons.find(b => b.selected)) || 0;
40841
+ this.cdr.detectChanges();
40842
+ this.zone.onStable.pipe(take(1)).subscribe(() => this.showSelectionIndicator());
40843
+ }
40844
+ handleClick(button, index) {
40845
+ this.selectedButtonIndex = index;
40846
+ this.cdr.detectChanges();
40847
+ this.buttonClick.emit(button);
40848
+ this.showSelectionIndicator();
40849
+ }
40850
+ getInnerIconClass(button) {
40851
+ const baseClass = 'k-segmented-control-button-icon';
40852
+ return button.iconInnerCssClass ? `${baseClass} ${button.iconInnerCssClass}` : baseClass;
40853
+ }
40854
+ constructor(renderer, wrapper, cdr, zone) {
40855
+ this.renderer = renderer;
40856
+ this.wrapper = wrapper;
40857
+ this.cdr = cdr;
40858
+ this.zone = zone;
40859
+ }
40860
+ showSelectionIndicator() {
40861
+ const element = this.wrapper.nativeElement;
40862
+ const controlRect = element.getBoundingClientRect();
40863
+ const selectedItem = element.querySelector('.k-segmented-control-button.k-selected');
40864
+ const selectionIndicator = this.thumb ? this.thumb.nativeElement : null;
40865
+ if (!selectedItem || !selectionIndicator) {
40866
+ return;
40867
+ }
40868
+ const itemRect = selectedItem.getBoundingClientRect();
40869
+ const left = itemRect.left - controlRect.left;
40870
+ const right = controlRect.right - itemRect.right;
40871
+ this.renderer.setStyle(selectionIndicator, 'left', `${left}px`);
40872
+ this.renderer.setStyle(selectionIndicator, 'right', `${right}px`);
40873
+ }
40874
+ selectedButtonIndex = 0;
40875
+ _size = DEFAULT_SIZE$1;
40876
+ handleSizeClass(newValue, prevValue) {
40877
+ if (!this.wrapper) {
40878
+ return;
40879
+ }
40880
+ const elem = this.wrapper.nativeElement;
40881
+ const classToRemove = prevValue ? `k-segmented-control-${SIZES_MAP[prevValue]}` : null;
40882
+ const classToAdd = newValue ? `k-segmented-control-${SIZES_MAP[newValue]}` : `k-segmented-control-${SIZES_MAP[DEFAULT_SIZE$1]}`;
40883
+ classToRemove && this.renderer.removeClass(elem, classToRemove);
40884
+ classToAdd && this.renderer.addClass(elem, classToAdd);
40885
+ }
40886
+ 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 });
40887
+ 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: `
40888
+ <div class="k-segmented-control-thumb" #thumb [attr.aria-hidden]="true"></div>
40889
+ @for (button of buttons; track $index; let idx = $index) {
40890
+ <button type="button"
40891
+ class="k-segmented-control-button"
40892
+ [class.k-disabled]="button.disabled"
40893
+ [attr.disabled]="button.disabled ? true : null"
40894
+ (click)="handleClick(button, idx)"
40895
+ [class.k-selected]="selectedButtonIndex === idx"
40896
+ [attr.aria-pressed]="selectedButtonIndex === idx ? 'true' : 'false'">
40897
+ <kendo-icon-wrapper
40898
+ [innerCssClass]="getInnerIconClass(button)"
40899
+ [name]="button.icon"
40900
+ [svgIcon]="button.svgIcon">
40901
+ </kendo-icon-wrapper>
40902
+ <span class="k-segmented-control-button-text">{{button.text}}</span>
40903
+ </button>
40904
+ }
40905
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
40906
+ }
40907
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SegmentedControlComponent, decorators: [{
40908
+ type: Component,
40909
+ args: [{
40910
+ selector: 'kendo-segmented-control',
40911
+ standalone: true,
40912
+ imports: [IconWrapperComponent],
40913
+ template: `
40914
+ <div class="k-segmented-control-thumb" #thumb [attr.aria-hidden]="true"></div>
40915
+ @for (button of buttons; track $index; let idx = $index) {
40916
+ <button type="button"
40917
+ class="k-segmented-control-button"
40918
+ [class.k-disabled]="button.disabled"
40919
+ [attr.disabled]="button.disabled ? true : null"
40920
+ (click)="handleClick(button, idx)"
40921
+ [class.k-selected]="selectedButtonIndex === idx"
40922
+ [attr.aria-pressed]="selectedButtonIndex === idx ? 'true' : 'false'">
40923
+ <kendo-icon-wrapper
40924
+ [innerCssClass]="getInnerIconClass(button)"
40925
+ [name]="button.icon"
40926
+ [svgIcon]="button.svgIcon">
40927
+ </kendo-icon-wrapper>
40928
+ <span class="k-segmented-control-button-text">{{button.text}}</span>
40929
+ </button>
40930
+ }
40931
+ `
40932
+ }]
40933
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { hostClasses: [{
40934
+ type: HostBinding,
40935
+ args: ['class.k-segmented-control']
40936
+ }, {
40937
+ type: HostBinding,
40938
+ args: ['class.k-segmented-control-stretched']
40939
+ }], hostRole: [{
40940
+ type: HostBinding,
40941
+ args: ['attr.role']
40942
+ }], thumb: [{
40943
+ type: ViewChild,
40944
+ args: ['thumb']
40945
+ }], buttons: [{
40946
+ type: Input
40947
+ }], size: [{
40948
+ type: Input
40949
+ }], buttonClick: [{
40950
+ type: Output
40951
+ }] } });
40952
+
40953
+ /**
40954
+ * @hidden
40955
+ * Renders the prompt suggestion content.
40956
+ *
40957
+ * To define the suggestion template, nest a `<ng-template>` tag with the `kendoGridSmartBoxPromptSuggestionTemplate` directive inside the component tag.
40958
+ *
40959
+ * The template context is set to the current suggestion. Use the `let-suggestion` directive to reference the current suggestion.
40960
+ *
40961
+ * @example
40962
+ * ```html
40963
+ * <kendo-smartbox>
40964
+ * <ng-template kendoGridSmartBoxPromptSuggestionTemplate let-suggestion>
40965
+ * <kendo-icon-wrapper name="sort-asc" [svgIcon]="sortAscIcon"></kendo-icon-wrapper>
40966
+ * <span>{{suggestion}}</span>
40967
+ * </ng-template>
40968
+ * </kendo-smartbox>
40969
+ * ```
40970
+ */
40971
+ class GridSmartBoxPromptSuggestionTemplateDirective {
40972
+ templateRef;
40973
+ constructor(templateRef) {
40974
+ this.templateRef = templateRef;
40975
+ }
40976
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxPromptSuggestionTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
40977
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GridSmartBoxPromptSuggestionTemplateDirective, isStandalone: true, selector: "[kendoGridSmartBoxPromptSuggestionTemplate]", ngImport: i0 });
40978
+ }
40979
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxPromptSuggestionTemplateDirective, decorators: [{
40980
+ type: Directive,
40981
+ args: [{
40982
+ selector: '[kendoGridSmartBoxPromptSuggestionTemplate]',
40983
+ standalone: true
40984
+ }]
40985
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
40986
+
40987
+ /**
40988
+ * @hidden
40989
+ * Renders the history item content.
40990
+ *
40991
+ * To define the history item template, nest a `<ng-template>` tag with the `kendoGridSmartBoxHistoryItemTemplate` directive inside the component tag.
40992
+ *
40993
+ * The template context is set to the current history item. Use the `let-item` directive to reference the current history item.
40994
+ *
40995
+ * @example
40996
+ * ```html
40997
+ * <kendo-smartbox>
40998
+ * <ng-template kendoGridSmartBoxHistoryItemTemplate let-item>
40999
+ * <kendo-icon-wrapper name="clock" [svgIcon]="clockIcon"></kendo-icon-wrapper>
41000
+ * <span>{{item.text}} ({{ item.timestamp | date: 'shortTime' }})</span>
41001
+ * </ng-template>
41002
+ * </kendo-smartbox>
41003
+ * ```
41004
+ */
41005
+ class GridSmartBoxHistoryItemTemplateDirective {
41006
+ templateRef;
41007
+ constructor(templateRef) {
41008
+ this.templateRef = templateRef;
41009
+ }
41010
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxHistoryItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
41011
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: GridSmartBoxHistoryItemTemplateDirective, isStandalone: true, selector: "[kendoGridSmartBoxHistoryItemTemplate]", ngImport: i0 });
41012
+ }
41013
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridSmartBoxHistoryItemTemplateDirective, decorators: [{
41014
+ type: Directive,
41015
+ args: [{
41016
+ selector: '[kendoGridSmartBoxHistoryItemTemplate]',
41017
+ standalone: true
41018
+ }]
41019
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
41020
+
41021
+ /**
41022
+ * @hidden
41023
+ */
41024
+ const DEFAULT_HISTORY_SETTINGS = {
41025
+ size: 5,
41026
+ timestampFormat: 'HH:mm:ss'
41027
+ };
41028
+ /**
41029
+ * @hidden
41030
+ */
41031
+ const STB_DEFAULT_SETTINGS = {
41032
+ continuous: false,
41033
+ disabled: false,
41034
+ fillMode: 'clear',
41035
+ integrationMode: 'webSpeech',
41036
+ interimResults: false,
41037
+ lang: 'en-US',
41038
+ maxAlternatives: 1,
41039
+ rounded: 'full',
41040
+ size: 'small',
41041
+ themeColor: 'base'
41042
+ };
41043
+ /**
41044
+ * @hidden
41045
+ */
41046
+ const DEFAULT_SEARCH_SETTINGS = {
41047
+ history: DEFAULT_HISTORY_SETTINGS,
41048
+ placeholder: null,
41049
+ delay: 300,
41050
+ enabled: true,
41051
+ fields: []
41052
+ };
41053
+ /**
41054
+ * @hidden
41055
+ */
41056
+ const DEFAULT_SEMANTIC_SEARCH_SETTINGS = {
41057
+ history: DEFAULT_HISTORY_SETTINGS,
41058
+ placeholder: null,
41059
+ delay: 700,
41060
+ enabled: true
41061
+ };
41062
+ /**
41063
+ * @hidden
41064
+ */
41065
+ const DEFAULT_AI_ASSISTANT_SETTINGS = {
41066
+ history: DEFAULT_HISTORY_SETTINGS,
41067
+ placeholder: null,
41068
+ enabled: true,
41069
+ promptSuggestions: [],
41070
+ requestUrl: '',
41071
+ requestOptions: DEFAULT_AI_REQUEST_OPTIONS,
41072
+ speechToTextButton: true
41073
+ };
41074
+ /**
41075
+ * @hidden
41076
+ */
41077
+ const DEFAULT_SIZE = 'medium';
41078
+ /**
41079
+ * @hidden
41080
+ */
41081
+ const SIZES = {
41082
+ small: 'sm',
41083
+ medium: 'md',
41084
+ large: 'lg'
41085
+ };
41086
+
41087
+ /**
41088
+ * @hidden
41089
+ */
41090
+ class SmartBoxComponent {
41091
+ popupService;
41092
+ wrapper;
41093
+ cdr;
41094
+ zone;
41095
+ intl;
41096
+ ctx;
41097
+ aiRequestResponseService;
41098
+ http;
41099
+ renderer;
41100
+ columnInfoService;
41101
+ searchService;
41102
+ popupTemplate;
41103
+ input;
41104
+ innerWrapper;
41105
+ set searchMode(mode) {
41106
+ const settingsFromComponent = { placeholder: this.placeholder, history: this.history };
41107
+ if (mode === true) {
41108
+ this._searchMode = { ...DEFAULT_SEARCH_SETTINGS, ...settingsFromComponent, enabled: true };
41109
+ }
41110
+ else if (mode === false) {
41111
+ this._searchMode = null;
41112
+ }
41113
+ else {
41114
+ this._searchMode = { ...DEFAULT_SEARCH_SETTINGS, ...settingsFromComponent, ...mode };
41115
+ }
41116
+ this.updateSearchListData();
41117
+ this.updateSelectedView();
41118
+ }
41119
+ get searchMode() {
41120
+ return this._searchMode;
41121
+ }
41122
+ set semanticSearchMode(mode) {
41123
+ const settingsFromComponent = { placeholder: this.placeholder, history: this.history };
41124
+ if (mode === true) {
41125
+ this._semanticSearchMode = { ...DEFAULT_SEMANTIC_SEARCH_SETTINGS, ...settingsFromComponent, enabled: true };
41126
+ }
41127
+ else if (mode === false) {
41128
+ this._semanticSearchMode = null;
41129
+ }
41130
+ else {
41131
+ this._semanticSearchMode = { ...DEFAULT_SEMANTIC_SEARCH_SETTINGS, ...settingsFromComponent, ...mode };
41132
+ }
41133
+ this.updateSearchListData();
41134
+ this.updateSelectedView();
41135
+ }
41136
+ get semanticSearchMode() {
41137
+ return this._semanticSearchMode;
41138
+ }
41139
+ set aiAssistantMode(mode) {
41140
+ const settingsFromComponent = { placeholder: this.placeholder, history: this.history };
41141
+ if (mode === true) {
41142
+ this._aiAssistantMode = { ...DEFAULT_AI_ASSISTANT_SETTINGS, ...settingsFromComponent, enabled: true };
41143
+ }
41144
+ else if (mode === false) {
41145
+ this._aiAssistantMode = null;
41146
+ }
41147
+ else {
41148
+ const mergedRequestOptions = mode?.requestOptions ?
41149
+ { ...DEFAULT_AI_ASSISTANT_SETTINGS.requestOptions, ...mode.requestOptions } :
41150
+ DEFAULT_AI_ASSISTANT_SETTINGS.requestOptions;
41151
+ this._aiAssistantMode = {
41152
+ ...DEFAULT_AI_ASSISTANT_SETTINGS,
41153
+ ...settingsFromComponent,
41154
+ ...mode,
41155
+ requestOptions: mergedRequestOptions
41156
+ };
41157
+ }
41158
+ this.updateSelectedView();
41159
+ this.speechToTextButton = this._aiAssistantMode?.speechToTextButton;
41160
+ }
41161
+ get aiAssistantMode() {
41162
+ return this._aiAssistantMode;
41163
+ }
41164
+ set speechToTextButton(value) {
41165
+ if (value === true) {
41166
+ this._speechToTextButton = STB_DEFAULT_SETTINGS;
41167
+ }
41168
+ else if (value === false) {
41169
+ this._speechToTextButton = null;
41170
+ }
41171
+ else {
41172
+ this._speechToTextButton = { ...STB_DEFAULT_SETTINGS, ...value };
41173
+ }
41174
+ }
41175
+ get speechToTextButton() {
41176
+ return this._speechToTextButton;
41177
+ }
41178
+ get searchHistorySettings() {
41179
+ if (!isPresent$1(this.searchMode?.history)) {
41180
+ return null;
41181
+ }
41182
+ if (typeof this.searchMode.history === 'boolean') {
41183
+ return this.searchMode.history ? DEFAULT_HISTORY_SETTINGS : null;
41184
+ }
41185
+ else {
41186
+ return { ...DEFAULT_HISTORY_SETTINGS, ...this.searchMode.history };
41187
+ }
41188
+ }
41189
+ get semanticSearchHistorySettings() {
41190
+ if (!isPresent$1(this.semanticSearchMode?.history)) {
41191
+ return null;
41192
+ }
41193
+ if (typeof this.semanticSearchMode.history === 'boolean') {
41194
+ return this.semanticSearchMode.history ? DEFAULT_HISTORY_SETTINGS : null;
41195
+ }
41196
+ else {
41197
+ return { ...DEFAULT_HISTORY_SETTINGS, ...this.semanticSearchMode.history };
41198
+ }
41199
+ }
41200
+ get aiAssistantHistorySettings() {
41201
+ if (!isPresent$1(this.aiAssistantMode?.history)) {
41202
+ return null;
41203
+ }
41204
+ if (typeof this.aiAssistantMode.history === 'boolean') {
41205
+ return this.aiAssistantMode.history ? DEFAULT_HISTORY_SETTINGS : null;
41206
+ }
41207
+ else {
41208
+ return { ...DEFAULT_HISTORY_SETTINGS, ...this.aiAssistantMode.history };
41209
+ }
41210
+ }
41211
+ get inputPlaceholder() {
41212
+ return this[`${this.selectedView}Placeholder`] || '';
41213
+ }
41214
+ set activeMode(value) {
41215
+ this._activeMode = value;
41216
+ this.updateSelectedView();
41217
+ }
41218
+ get activeMode() {
41219
+ return this._activeMode;
41220
+ }
41221
+ set history(value) {
41222
+ if (value === true || !isPresent$1(value)) {
41223
+ this._history = DEFAULT_HISTORY_SETTINGS;
41224
+ }
41225
+ else if (value === false) {
41226
+ this._history = null;
41227
+ }
41228
+ else {
41229
+ this._history = {
41230
+ size: value.size ?? DEFAULT_HISTORY_SETTINGS.size,
41231
+ timestampFormat: value.timestampFormat ?? DEFAULT_HISTORY_SETTINGS.timestampFormat
41232
+ };
41233
+ }
41234
+ }
41235
+ get history() {
41236
+ return this._history;
41237
+ }
41238
+ placeholder;
41239
+ set size(size) {
41240
+ const newSize = size || DEFAULT_SIZE;
41241
+ this.handleSizeClass(newSize);
41242
+ this._size = newSize;
41243
+ }
41244
+ get size() {
41245
+ return this._size;
41246
+ }
41247
+ promptSuggestionTemplate;
41248
+ historyItemTemplate;
41249
+ loading = false;
41250
+ open = new EventEmitter();
41251
+ close = new EventEmitter();
41252
+ focus = new EventEmitter();
41253
+ blur = new EventEmitter();
41254
+ aiAssistantPromptRequest = new EventEmitter();
41255
+ aiAssistantResponseSuccess = new EventEmitter();
41256
+ aiAssistantResponseError = new EventEmitter();
41257
+ aiAssistantCancelRequest = new EventEmitter();
41258
+ search = new EventEmitter();
41259
+ semanticSearch = new EventEmitter();
41260
+ constructor(popupService, wrapper, cdr, zone, intl, ctx, aiRequestResponseService, http, renderer, columnInfoService, searchService) {
41261
+ this.popupService = popupService;
41262
+ this.wrapper = wrapper;
41263
+ this.cdr = cdr;
41264
+ this.zone = zone;
41265
+ this.intl = intl;
41266
+ this.ctx = ctx;
41267
+ this.aiRequestResponseService = aiRequestResponseService;
41268
+ this.http = http;
41269
+ this.renderer = renderer;
41270
+ this.columnInfoService = columnInfoService;
41271
+ this.searchService = searchService;
41272
+ }
41273
+ ngOnChanges(changes) {
41274
+ if (changes['history'] || changes['placeholder']) {
41275
+ this.updateModeSettingsFromSharedInputs();
41276
+ }
41277
+ if (changes['searchMode']) {
41278
+ this.updateSearchListData();
41279
+ this.updateSelectedView();
41280
+ this.updateHistoryData();
41281
+ }
41282
+ if (changes['semanticSearchMode']) {
41283
+ this.updateSearchListData();
41284
+ this.updateSelectedView();
41285
+ this.updateHistoryData();
41286
+ }
41287
+ if (changes['aiAssistantMode']) {
41288
+ this.updateSelectedView();
41289
+ this.updateHistoryData();
41290
+ this.speechToTextButton = this._aiAssistantMode?.speechToTextButton;
41291
+ }
41292
+ if (changes['activeMode']) {
41293
+ this.updateSelectedView();
41294
+ }
41295
+ }
41296
+ ngAfterViewInit() {
41297
+ // Preserve a flat columns array (fields) for highlight utilities.
41298
+ // Use leafNamedColumns as the canonical list of leaf columns with display titles.
41299
+ this.leafColumns = this.columnInfoService.leafNamedColumns || [];
41300
+ this.columns = this.leafColumns.map((col) => ({ field: col.field }));
41301
+ this.handleSizeClass(this._size);
41302
+ this.updateSearchListData();
41303
+ this.updateSelectedView();
41304
+ }
41305
+ ngOnDestroy() {
41306
+ this.destroyPopup();
41307
+ this.clearTypingTimeout();
41308
+ this.unsubscribeCurrentRequest();
41309
+ }
41310
+ focusableId = `k-${guid()}`;
41311
+ selectedView;
41312
+ isOpen = false;
41313
+ checkIcon = checkIcon;
41314
+ clockArrowRotateIcon = clockArrowRotateIcon;
41315
+ fileClockOutlineIcon = fileClockOutlineIcon;
41316
+ searchIcon = searchIcon;
41317
+ zoomSparkleIcon = zoomSparkleIcon;
41318
+ sparklesIcon = sparklesIcon;
41319
+ arrowUpOutlineIcon = arrowUpOutlineIcon;
41320
+ stopSmIcon = stopSmIcon;
41321
+ xIcon = xIcon;
41322
+ lightbulbOutlineIcon = lightbulbOutlineIcon;
41323
+ searchListData = [];
41324
+ aiAssistantHistory = [];
41325
+ searchHistory = [];
41326
+ semanticSearchHistory = [];
41327
+ get segmentedControlButtons() {
41328
+ const buttons = [];
41329
+ if ((this.searchMode?.enabled || this.semanticSearchMode?.enabled) && this.aiAssistantMode?.enabled) {
41330
+ if (this.searchMode?.enabled && !this.semanticSearchMode?.enabled) {
41331
+ buttons.push({ text: 'Search', svgIcon: searchIcon, icon: 'search', selected: this.selectedView === 'search' });
41332
+ }
41333
+ else if (!this.searchMode?.enabled && this.semanticSearchMode?.enabled) {
41334
+ buttons.push({ text: 'Search', svgIcon: zoomSparkleIcon, icon: 'zoom-sparkle', selected: this.selectedView === 'semanticSearch', iconInnerCssClass: this.selectedView === 'semanticSearch' ? 'k-accent-icon' : '' });
41335
+ }
41336
+ else if (this.searchMode?.enabled && this.semanticSearchMode?.enabled) {
41337
+ buttons.push({ text: 'Search', svgIcon: searchIcon, icon: 'search', selected: this.selectedView === 'search' || this.selectedView === 'semanticSearch', iconInnerCssClass: this.selectedView === 'semanticSearch' ? 'k-accent-icon' : '' });
41338
+ }
41339
+ buttons.push({ text: 'AI Assistant', svgIcon: sparklesIcon, icon: 'sparkles', selected: this.selectedView === 'aiAssistant', iconInnerCssClass: this.selectedView === 'aiAssistant' ? 'k-accent-icon' : '' });
41340
+ }
41341
+ return buttons;
41342
+ }
41343
+ get prefixIconName() {
41344
+ switch (this.selectedView) {
41345
+ case 'search':
41346
+ return 'search';
41347
+ case 'semanticSearch':
41348
+ return 'zoom-sparkle';
41349
+ case 'aiAssistant':
41350
+ return 'sparkles';
41351
+ default:
41352
+ return 'search';
41353
+ }
41354
+ }
41355
+ get prefixSVGIcon() {
41356
+ switch (this.selectedView) {
41357
+ case 'search':
41358
+ return this.searchIcon;
41359
+ case 'semanticSearch':
41360
+ return this.zoomSparkleIcon;
41361
+ case 'aiAssistant':
41362
+ return this.sparklesIcon;
41363
+ default:
41364
+ return this.searchIcon;
41365
+ }
41366
+ }
41367
+ messageFor(message) {
41368
+ return this.ctx.localization.get(message);
41369
+ }
41370
+ formatDate(date, format) {
41371
+ return this.intl.formatDate(date, format);
41372
+ }
41373
+ onModeChange(button) {
41374
+ let previousView;
41375
+ if (this.searchListData.length > 0) {
41376
+ previousView = this.searchListData.find(i => i.selected)?.text;
41377
+ }
41378
+ if (button.text === 'Search') {
41379
+ if (previousView === 'Search') {
41380
+ this.selectedView = 'search';
41381
+ }
41382
+ else if (previousView === 'Semantic Search') {
41383
+ this.selectedView = 'semanticSearch';
41384
+ }
41385
+ else if (this.searchMode?.enabled) {
41386
+ this.selectedView = 'search';
41387
+ }
41388
+ else if (this.semanticSearchMode?.enabled) {
41389
+ this.selectedView = 'semanticSearch';
41390
+ }
41391
+ }
41392
+ else if (button.text === 'AI Assistant') {
41393
+ this.selectedView = 'aiAssistant';
41394
+ }
41395
+ this.input.nativeElement.value = '';
41396
+ this.cdr.detectChanges();
41397
+ }
41398
+ onSearchItemClick(item) {
41399
+ this.searchListData.forEach(i => i.selected = false);
41400
+ this.searchListData.find(i => i.text === item.text).selected = true;
41401
+ this.selectedView = item.text === 'Search' ? 'search' : 'semanticSearch';
41402
+ this.input.nativeElement.value = '';
41403
+ this.cdr.markForCheck();
41404
+ }
41405
+ onListItemClick(item) {
41406
+ if (!this.selectedView) {
41407
+ return;
41408
+ }
41409
+ this.input.nativeElement.value = item;
41410
+ this.togglePopup(false);
41411
+ this.input.nativeElement.focus();
41412
+ if (this.selectedView === 'aiAssistant') {
41413
+ return;
41414
+ }
41415
+ let ev;
41416
+ const fields = this.searchMode?.fields.length > 0 ? this.searchMode.fields :
41417
+ this.ctx.grid.columnList.toArray().map((item) => item.field);
41418
+ const filters = [];
41419
+ fields.forEach(field => {
41420
+ filters.push({
41421
+ field,
41422
+ operator: 'contains',
41423
+ value: this.input.nativeElement.value
41424
+ });
41425
+ });
41426
+ const eventArgs = {
41427
+ searchValue: this.input.nativeElement.value,
41428
+ filters,
41429
+ logic: 'or'
41430
+ };
41431
+ if (this.selectedView === 'search') {
41432
+ ev = Object.assign(new SmartBoxSearchEvent(), eventArgs);
41433
+ }
41434
+ else if (this.selectedView === 'semanticSearch') {
41435
+ ev = { searchValue: this.input.nativeElement.value };
41436
+ }
41437
+ this[this.selectedView].emit(ev);
41438
+ if (this.selectedView === 'search' && !ev.isDefaultPrevented()) {
41439
+ this.zone.run(() => {
41440
+ if (this.input.nativeElement.value === '' || !this.input.nativeElement.value) {
41441
+ this.searchService.changes.next(undefined);
41442
+ }
41443
+ else {
41444
+ this.searchService.changes.next({ filters: ev.filters, logic: ev.logic });
41445
+ }
41446
+ });
41447
+ }
41448
+ if (this.input.nativeElement.value) {
41449
+ const historyItem = {
41450
+ text: this.input.nativeElement.value,
41451
+ timestamp: new Date(),
41452
+ format: this[`${this.selectedView}HistorySettings`].timestampFormat
41453
+ };
41454
+ this[`${this.selectedView}History`].unshift(historyItem);
41455
+ if (this[`${this.selectedView}History`]?.length > this[`${this.selectedView}HistorySettings`].size) {
41456
+ this[`${this.selectedView}History`].splice(this[`${this.selectedView}HistorySettings`].size);
41457
+ }
41458
+ }
41459
+ }
41460
+ handleInput = (_event) => {
41461
+ if (this.input.nativeElement.value) {
41462
+ this.togglePopup(false);
41463
+ }
41464
+ else {
41465
+ this.togglePopup(true);
41466
+ }
41467
+ this.clearTypingTimeout();
41468
+ if (this.selectedView === 'aiAssistant') {
41469
+ return;
41470
+ }
41471
+ this.handleInputValueChange();
41472
+ };
41473
+ handleInputValueChange() {
41474
+ if (!this.selectedView) {
41475
+ return;
41476
+ }
41477
+ const inputValue = this.input.nativeElement.value;
41478
+ let ev;
41479
+ let delay;
41480
+ if (this.selectedView === 'search') {
41481
+ const fields = this.searchMode.fields.length > 0 ? this.searchMode.fields :
41482
+ this.ctx.grid.columnList.toArray().map((item) => item.field);
41483
+ const filters = [];
41484
+ fields.forEach(field => {
41485
+ filters.push({
41486
+ field,
41487
+ operator: 'contains',
41488
+ value: inputValue
41489
+ });
41490
+ });
41491
+ const eventArgs = {
41492
+ searchValue: inputValue,
41493
+ filters,
41494
+ logic: 'or'
41495
+ };
41496
+ ev = Object.assign(new SmartBoxSearchEvent(), eventArgs);
41497
+ delay = this.searchMode.delay;
41498
+ }
41499
+ else if (this.selectedView === 'semanticSearch') {
41500
+ const fields = this.ctx.grid.columnList.toArray().map((item) => item.field);
41501
+ const filters = [];
41502
+ fields.forEach(field => {
41503
+ filters.push({
41504
+ field,
41505
+ operator: 'contains',
41506
+ value: inputValue
41507
+ });
41508
+ });
41509
+ ev = {
41510
+ searchValue: inputValue,
41511
+ filters,
41512
+ logic: 'or'
41513
+ };
41514
+ delay = this.semanticSearchMode.delay;
41515
+ }
41516
+ this.searchTypingTimeout = setTimeout(() => {
41517
+ this.zone.run(() => {
41518
+ this[this.selectedView].emit(ev);
41519
+ });
41520
+ if (this.selectedView === 'search' && !ev.isDefaultPrevented()) {
41521
+ this.zone.run(() => {
41522
+ if (inputValue === '' || !inputValue) {
41523
+ this.searchService.changes.next(undefined);
41524
+ }
41525
+ else {
41526
+ this.searchService.changes.next({ filters: ev.filters, logic: ev.logic });
41527
+ }
41528
+ });
41529
+ }
41530
+ if (inputValue) {
41531
+ const historyItem = {
41532
+ text: inputValue,
41533
+ timestamp: new Date(),
41534
+ format: this[`${this.selectedView}HistorySettings`].timestampFormat
41535
+ };
41536
+ this[`${this.selectedView}History`].unshift(historyItem);
41537
+ if (this[`${this.selectedView}History`]?.length > this[`${this.selectedView}HistorySettings`].size) {
41538
+ this[`${this.selectedView}History`].splice(this[`${this.selectedView}HistorySettings`].size);
41539
+ }
41540
+ }
41541
+ }, delay);
41542
+ }
41543
+ handleInputFocus = () => {
41544
+ if (hasObservers(this.focus)) {
41545
+ this.zone.run(() => {
41546
+ this.focus.emit();
41547
+ });
41548
+ }
41549
+ this.togglePopup(true);
41550
+ };
41551
+ handleInputBlur = () => {
41552
+ if (hasObservers(this.blur)) {
41553
+ this.zone.run(() => {
41554
+ this.blur.emit();
41555
+ });
41556
+ }
41557
+ this.togglePopup(false);
41558
+ };
41559
+ handleInputClick = () => {
41560
+ if (!this.input.nativeElement.value) {
41561
+ this.togglePopup(true);
41562
+ }
41563
+ };
41564
+ handleInputKeydown = (event) => {
41565
+ const code = normalizeKeys(event);
41566
+ const isEnter = code === Keys.Enter;
41567
+ if (!isEnter) {
41568
+ return;
41569
+ }
41570
+ if (this.selectedView === 'aiAssistant') {
41571
+ this.zone.run(() => {
41572
+ this.onPromptSubmit();
41573
+ });
41574
+ }
41575
+ else if (this.selectedView === 'semanticSearch') {
41576
+ this.zone.run(() => {
41577
+ this.clearTypingTimeout();
41578
+ this.handleInputValueChange();
41579
+ });
41580
+ }
41581
+ };
41582
+ onIconClick = () => {
41583
+ this.togglePopup(!this.isOpen);
41584
+ this.input.nativeElement.focus();
41585
+ };
41586
+ onIconMouseDown = (args) => {
41587
+ args.preventDefault();
41588
+ };
41589
+ clearValue(event) {
41590
+ event.stopImmediatePropagation();
41591
+ this.input.nativeElement.value = '';
41592
+ this.input.nativeElement.focus();
41593
+ this.togglePopup(true);
41594
+ this.clearTypingTimeout();
41595
+ this.handleInputValueChange();
41596
+ }
41597
+ _searchMode;
41598
+ _semanticSearchMode;
41599
+ _aiAssistantMode;
41600
+ _activeMode = 'search';
41601
+ _history;
41602
+ _size = DEFAULT_SIZE;
41603
+ _speechToTextButton;
41604
+ popupRef;
41605
+ popupMouseDownHandler = (event) => event.preventDefault();
41606
+ requestData;
41607
+ currentRequestSubscription = null;
41608
+ columns = [];
41609
+ leafColumns = [];
41610
+ searchTypingTimeout;
41611
+ togglePopup(open) {
41612
+ const sameState = this.isOpen === open;
41613
+ if (sameState) {
41614
+ return;
41615
+ }
41616
+ this._toggle(open);
41617
+ }
41618
+ onPromptSubmit() {
41619
+ if (this.loading) {
41620
+ this.handleResponseCancel();
41621
+ return;
41622
+ }
41623
+ if (this.input.nativeElement.value.length === 0) {
41624
+ return;
41625
+ }
41626
+ this.loading = true;
41627
+ const historyItem = {
41628
+ text: this.input.nativeElement.value,
41629
+ timestamp: new Date(),
41630
+ format: this.aiAssistantHistorySettings?.timestampFormat
41631
+ };
41632
+ this.aiAssistantHistory.unshift(historyItem);
41633
+ if (this.aiAssistantHistory.length > this.aiAssistantHistorySettings?.size) {
41634
+ this.aiAssistantHistory.splice(this.aiAssistantHistorySettings.size);
41635
+ }
41636
+ this.unsubscribeCurrentRequest();
41637
+ this.requestData = {
41638
+ columns: [],
41639
+ promptMessage: this.input.nativeElement.value,
41640
+ url: this.aiAssistantMode.requestUrl,
41641
+ requestOptions: {
41642
+ ...this.aiAssistantMode.requestOptions
41643
+ }
41644
+ };
41645
+ if (!this.aiAssistantMode.requestOptions.body) {
41646
+ this.requestData.requestOptions.body = this.aiRequestResponseService.buildRequestBody(this.requestData.promptMessage, this.requestData.requestOptions.role);
41647
+ }
41648
+ this.zone.run(() => {
41649
+ this.aiAssistantPromptRequest.emit({ requestData: this.requestData });
41650
+ });
41651
+ this.togglePopup(false);
41652
+ this.input.nativeElement.value = '';
41653
+ if (!this.aiAssistantMode.requestUrl) {
41654
+ return;
41655
+ }
41656
+ this.currentRequestSubscription = this.sendPromptRequest().subscribe((res) => {
41657
+ if (res.body) {
41658
+ this.zone.run(() => {
41659
+ this.processResponse(res);
41660
+ this.loading = false;
41661
+ });
41662
+ }
41663
+ this.currentRequestSubscription = null;
41664
+ }, (error) => {
41665
+ this.zone.run(() => {
41666
+ this.handleError(error);
41667
+ this.loading = false;
41668
+ this.currentRequestSubscription = null;
41669
+ });
41670
+ });
41671
+ }
41672
+ onSpeechToTextResult(event) {
41673
+ if (event.alternatives && event.alternatives.length > 0) {
41674
+ if (!isPresent$1(this.input.nativeElement.value)) {
41675
+ this.input.nativeElement.value = '';
41676
+ }
41677
+ const newValue = event.alternatives[0].transcript + ' ';
41678
+ this.input.nativeElement.value = newValue;
41679
+ }
41680
+ }
41681
+ onSpeechToTextError(event) {
41682
+ if (isDevMode()) {
41683
+ console.error('Speech to Text error:', event.errorMessage);
41684
+ }
41685
+ }
41686
+ get searchPlaceholder() {
41687
+ return this.searchMode?.placeholder || this.placeholder || this.messageFor('smartBoxSearchPlaceholder');
41688
+ }
41689
+ get semanticSearchPlaceholder() {
41690
+ return this.semanticSearchMode?.placeholder || this.placeholder || this.messageFor('smartBoxSemanticSearchPlaceholder');
41691
+ }
41692
+ get aiAssistantPlaceholder() {
41693
+ return this.aiAssistantMode?.placeholder || this.placeholder || this.messageFor('smartBoxAIAssistantPlaceholder');
41694
+ }
41695
+ get inputDisabled() {
41696
+ return !(this.searchMode?.enabled || this.semanticSearchMode?.enabled || this.aiAssistantMode?.enabled);
41697
+ }
41698
+ createPopup() {
41699
+ this.popupRef = this.popupService.open({
41700
+ anchor: this.wrapper.nativeElement,
41701
+ content: this.popupTemplate,
41702
+ popupClass: 'k-smart-box-popup',
41703
+ positionMode: 'absolute',
41704
+ margin: { horizontal: 0, vertical: 2 }
41705
+ });
41706
+ const popupWrapper = this.popupRef.popupElement;
41707
+ const { min, max } = this.popupWidth;
41708
+ popupWrapper.style.minWidth = min;
41709
+ popupWrapper.style.width = max;
41710
+ popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);
41711
+ this.popupRef.popupOpen.subscribe(() => {
41712
+ this.open.emit();
41713
+ });
41714
+ this.popupRef.popupClose.subscribe(() => {
41715
+ this.close.emit();
41716
+ });
41717
+ this.popupRef.popupAnchorViewportLeave.subscribe(() => this.togglePopup(false));
41718
+ }
41719
+ destroyPopup() {
41720
+ if (this.popupRef) {
41721
+ this.popupRef.popupElement
41722
+ .removeEventListener('mousedown', this.popupMouseDownHandler);
41723
+ this.popupRef.close();
41724
+ this.popupRef = null;
41725
+ }
41726
+ }
41727
+ _toggle(open) {
41728
+ this.isOpen = open;
41729
+ this.destroyPopup();
41730
+ if (this.isOpen) {
41731
+ this.createPopup();
41732
+ }
41733
+ }
41734
+ clearTypingTimeout() {
41735
+ if (this.searchTypingTimeout) {
41736
+ clearTimeout(this.searchTypingTimeout);
41737
+ this.searchTypingTimeout = null;
41738
+ }
41739
+ }
41740
+ sendPromptRequest() {
41741
+ const request = new HttpRequest(this.requestData.requestOptions.method, this.requestData.url, this.requestData.requestOptions.body, this.requestData.requestOptions);
41742
+ return this.http.request(request);
41743
+ }
41744
+ handleResponseCancel() {
41745
+ this.aiAssistantCancelRequest.emit();
41746
+ this.unsubscribeCurrentRequest();
41747
+ this.loading = false;
41748
+ }
41749
+ unsubscribeCurrentRequest() {
41750
+ if (this.currentRequestSubscription) {
41751
+ this.currentRequestSubscription.unsubscribe();
41752
+ this.currentRequestSubscription = null;
41753
+ }
41754
+ }
41755
+ get popupWidth() {
41756
+ let wrapperOffsetWidth = 0;
41757
+ if (isDocumentAvailable()) {
41758
+ wrapperOffsetWidth = this.wrapper.nativeElement.offsetWidth;
41759
+ }
41760
+ const width = wrapperOffsetWidth;
41761
+ const minWidth = isNaN(wrapperOffsetWidth) ? wrapperOffsetWidth : `${wrapperOffsetWidth}px`;
41762
+ const maxWidth = isNaN(width) ? width : `${width}px`;
41763
+ return { min: minWidth, max: maxWidth };
41764
+ }
41765
+ handleSizeClass(currentValue) {
41766
+ const elem = this.innerWrapper?.nativeElement;
41767
+ if (!isPresent$1(elem)) {
41768
+ return;
41769
+ }
41770
+ const prevSizeClass = `k-input-${SIZES[this._size]}`;
41771
+ const newSizeClass = `k-input-${SIZES[currentValue]}`;
41772
+ if (prevSizeClass) {
41773
+ this.renderer.removeClass(elem, prevSizeClass);
41774
+ }
41775
+ if (newSizeClass) {
41776
+ this.renderer.addClass(elem, newSizeClass);
41777
+ }
41778
+ }
41779
+ updateModeSettingsFromSharedInputs() {
41780
+ if (this._searchMode && typeof this._searchMode === 'object') {
41781
+ const currentSettings = { ...this._searchMode };
41782
+ const modeSpecificHistory = currentSettings.history;
41783
+ const modeSpecificPlaceholder = currentSettings.placeholder;
41784
+ delete currentSettings.history;
41785
+ delete currentSettings.placeholder;
41786
+ const settingsFromComponent = {
41787
+ placeholder: modeSpecificPlaceholder ?? this.placeholder,
41788
+ history: modeSpecificHistory ?? this.history
41789
+ };
41790
+ this._searchMode = { ...DEFAULT_SEARCH_SETTINGS, ...currentSettings, ...settingsFromComponent };
41791
+ }
41792
+ if (this._semanticSearchMode && typeof this._semanticSearchMode === 'object') {
41793
+ const currentSettings = { ...this._semanticSearchMode };
41794
+ const modeSpecificHistory = currentSettings.history;
41795
+ const modeSpecificPlaceholder = currentSettings.placeholder;
41796
+ delete currentSettings.history;
41797
+ delete currentSettings.placeholder;
41798
+ const settingsFromComponent = {
41799
+ placeholder: modeSpecificPlaceholder ?? this.placeholder,
41800
+ history: modeSpecificHistory ?? this.history
41801
+ };
41802
+ this._semanticSearchMode = { ...DEFAULT_SEMANTIC_SEARCH_SETTINGS, ...currentSettings, ...settingsFromComponent };
41803
+ }
41804
+ if (this._aiAssistantMode && typeof this._aiAssistantMode === 'object') {
41805
+ const currentSettings = { ...this._aiAssistantMode };
41806
+ const modeSpecificHistory = currentSettings.history;
41807
+ const modeSpecificPlaceholder = currentSettings.placeholder;
41808
+ delete currentSettings.history;
41809
+ delete currentSettings.placeholder;
41810
+ const settingsFromComponent = {
41811
+ placeholder: modeSpecificPlaceholder ?? this.placeholder,
41812
+ history: modeSpecificHistory ?? this.history
41813
+ };
41814
+ this._aiAssistantMode = { ...DEFAULT_AI_ASSISTANT_SETTINGS, ...currentSettings, ...settingsFromComponent };
41815
+ }
41816
+ }
41817
+ updateSearchListData() {
41818
+ if (!this.ctx?.localization) {
41819
+ return;
41820
+ }
41821
+ if (this.searchMode?.enabled && this.semanticSearchMode?.enabled) {
41822
+ this.searchListData = [
41823
+ { text: this.messageFor('searchModeListItemText'), description: this.messageFor('searchModeListItemDescription'), selected: this.selectedView === 'search' },
41824
+ { text: this.messageFor('semanticSearchModeListItemText'), description: this.messageFor('semanticSearchModeListItemDescription'), selected: this.selectedView === 'semanticSearch' }
41825
+ ];
41826
+ }
41827
+ else {
41828
+ this.searchListData = [];
41829
+ }
41830
+ }
41831
+ updateSelectedView() {
41832
+ if (this._activeMode) {
41833
+ const modeSettings = this[`${this._activeMode}Mode`];
41834
+ if (modeSettings?.enabled) {
41835
+ this.selectedView = this._activeMode;
41836
+ return;
41837
+ }
41838
+ }
41839
+ if (this.selectedView && this[`${this.selectedView}Mode`]?.enabled) {
41840
+ return;
41841
+ }
41842
+ if (this.searchMode?.enabled) {
41843
+ this.selectedView = 'search';
41844
+ }
41845
+ else if (this.semanticSearchMode?.enabled) {
41846
+ this.selectedView = 'semanticSearch';
41847
+ }
41848
+ else if (this.aiAssistantMode?.enabled) {
41849
+ this.selectedView = 'aiAssistant';
41850
+ }
41851
+ else {
41852
+ this.selectedView = null;
41853
+ }
41854
+ }
41855
+ updateHistoryData() {
41856
+ if (this.searchHistorySettings && this.searchHistory.length > this.searchHistorySettings.size) {
41857
+ this.searchHistory.splice(this.searchHistorySettings.size);
41858
+ }
41859
+ if (this.semanticSearchHistorySettings && this.semanticSearchHistory.length > this.semanticSearchHistorySettings.size) {
41860
+ this.semanticSearchHistory.splice(this.semanticSearchHistorySettings.size);
41861
+ }
41862
+ if (this.aiAssistantHistorySettings && this.aiAssistantHistory.length > this.aiAssistantHistorySettings.size) {
41863
+ this.aiAssistantHistory.splice(this.aiAssistantHistorySettings.size);
41864
+ }
41865
+ if (this.searchHistorySettings && this.searchHistorySettings.timestampFormat !== this.searchHistory[0]?.format) {
41866
+ this.searchHistory = this.searchHistory.map(item => ({ ...item, format: this.searchHistorySettings.timestampFormat }));
41867
+ }
41868
+ if (this.semanticSearchHistorySettings && this.semanticSearchHistorySettings.timestampFormat !== this.semanticSearchHistory[0]?.format) {
41869
+ this.semanticSearchHistory = this.semanticSearchHistory.map(item => ({ ...item, format: this.semanticSearchHistorySettings.timestampFormat }));
41870
+ }
41871
+ if (this.aiAssistantHistorySettings && this.aiAssistantHistorySettings.timestampFormat !== this.aiAssistantHistory[0]?.format) {
41872
+ this.aiAssistantHistory = this.aiAssistantHistory.map(item => ({ ...item, format: this.aiAssistantHistorySettings.timestampFormat }));
41873
+ }
41874
+ }
41875
+ processResponse(response) {
41876
+ const responseBody = response.body || { commands: [] };
41877
+ const responseSuccessEvent = new GridSmartBoxResponseSuccessEvent(response);
41878
+ this.aiAssistantResponseSuccess.emit(responseSuccessEvent);
41879
+ this.aiRequestResponseService.processCommands(responseBody.commands || [], this.columns, this.leafColumns);
41880
+ }
41881
+ handleError(error) {
41882
+ const responseErrorEvent = new GridSmartBoxResponseErrorEvent(error);
41883
+ this.aiAssistantResponseError.emit(responseErrorEvent);
41884
+ }
41885
+ 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 });
41886
+ 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" }, 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: `
41887
+ <span #innerWrapper
41888
+ class="k-smart-box k-input"
41889
+ [class.k-loading]="loading">
41890
+ @if (!inputDisabled) {
41891
+ <span class="k-input-prefix k-input-prefix-horizontal">
41892
+ <kendo-icon-wrapper
41893
+ class="k-icon"
41894
+ [name]="prefixIconName"
41895
+ [svgIcon]="prefixSVGIcon"
41896
+ [innerCssClass]="(selectedView === 'aiAssistant' || selectedView === 'semanticSearch') ? 'k-accent-icon' : ''"
41897
+ [kendoEventsOutsideAngular]="{
41898
+ click: onIconClick,
41899
+ mousedown: onIconMouseDown
41900
+ }">
41901
+ </kendo-icon-wrapper>
41902
+ </span>
41903
+ }
41904
+ <input #input
41905
+ type="text"
41906
+ class="k-input-inner"
41907
+ [class.k-disabled]="inputDisabled"
41908
+ [disabled]="inputDisabled"
41909
+ [id]="focusableId"
41910
+ [placeholder]="inputPlaceholder"
41911
+ [kendoEventsOutsideAngular]="{
41912
+ input: handleInput,
41913
+ focus: handleInputFocus,
41914
+ blur: handleInputBlur,
41915
+ click: handleInputClick,
41916
+ keydown: handleInputKeydown
41917
+ }"
41918
+ />
41919
+ @if (input.value.length > 0 && (selectedView === 'search' || selectedView === 'semanticSearch')) {
41920
+ <span
41921
+ class="k-clear-value"
41922
+ [attr.title]="messageFor('smartBoxToolClearTitle')"
41923
+ role="button"
41924
+ tabindex="-1"
41925
+ (click)="clearValue($event)"
41926
+ (mousedown)="$event.preventDefault()">
41927
+ <kendo-icon-wrapper
41928
+ class="k-icon"
41929
+ name="x"
41930
+ [svgIcon]="xIcon">
41931
+ </kendo-icon-wrapper>
41932
+ </span>
41933
+ }
41934
+ @if (selectedView === 'aiAssistant') {
41935
+ <span class="k-input-suffix k-input-suffix-horizontal">
41936
+ @if (speechToTextButton) {
41937
+ <button kendoSpeechToTextButton
41938
+ role="button"
41939
+ [continuous]="speechToTextButton?.continuous"
41940
+ [disabled]="speechToTextButton?.disabled"
41941
+ [fillMode]="speechToTextButton?.fillMode"
41942
+ [integrationMode]="speechToTextButton?.integrationMode"
41943
+ [interimResults]="speechToTextButton?.interimResults"
41944
+ [lang]="speechToTextButton?.lang"
41945
+ [maxAlternatives]="speechToTextButton?.maxAlternatives"
41946
+ [rounded]="speechToTextButton?.rounded"
41947
+ [size]="speechToTextButton?.size"
41948
+ [themeColor]="speechToTextButton?.themeColor"
41949
+ [attr.aria-label]="messageFor('smartBoxSpeechToTextButton')"
41950
+ [attr.title]="messageFor('smartBoxSpeechToTextButton')"
41951
+ [attr.aria-disabled]="speechToTextButton?.disabled"
41952
+ (error)="onSpeechToTextError($event)"
41953
+ (result)="onSpeechToTextResult($event)"
41954
+ ></button>
41955
+ }
41956
+ <button kendoButton
41957
+ class="k-smart-box-send"
41958
+ [class.k-processing]="loading"
41959
+ [class.k-active]="loading"
41960
+ type="button"
41961
+ rounded="full"
41962
+ size="small"
41963
+ [attr.title]="messageFor('smartBoxSubmitPromptButton')"
41964
+ [attr.aria-label]="messageFor('smartBoxSubmitPromptButton')"
41965
+ [attr.aria-disabled]="input.value.length === 0"
41966
+ [svgIcon]="loading ? stopSmIcon : arrowUpOutlineIcon"
41967
+ [icon]="loading ? 'stop-sm' : 'arrow-up-outline'"
41968
+ [disabled]="input.value.length === 0"
41969
+ (click)="onPromptSubmit()">
41970
+ </button>
41971
+ </span>
41972
+ }
41973
+ </span>
41974
+
41975
+ <ng-template #popupTemplate>
41976
+ @if (segmentedControlButtons.length > 0) {
41977
+ <kendo-segmented-control
41978
+ [buttons]="segmentedControlButtons"
41979
+ (buttonClick)="onModeChange($event)">
41980
+ </kendo-segmented-control>
41981
+ }
41982
+ <div class="k-list k-list-md">
41983
+ <div class="k-list-content">
41984
+ <ul class="k-list-ul">
41985
+ @if ((selectedView === 'search' || selectedView === 'semanticSearch') && searchListData.length > 0) {
41986
+ @for (item of searchListData; track item) {
41987
+ <li class="k-list-item"
41988
+ (click)="onSearchItemClick(item)">
41989
+ @if (item.selected) {
41990
+ <kendo-icon-wrapper
41991
+ innerCssClass="k-list-item-icon"
41992
+ name="check"
41993
+ [svgIcon]="checkIcon"
41994
+ class="k-list-item-icon-wrapper">
41995
+ </kendo-icon-wrapper>
41996
+ }
41997
+ @if (item.text) {
41998
+ <span class="k-list-item-text">{{item.text}}</span>
41999
+ }
42000
+ @if (item.description) {
42001
+ <span class="k-list-item-description">{{item.description}}</span>
42002
+ }
42003
+ </li>
42004
+ }
42005
+ } @else if (selectedView === 'aiAssistant' && aiAssistantMode.promptSuggestions.length > 0) {
42006
+ <li class="k-list-group-item">
42007
+ <kendo-icon-wrapper
42008
+ innerCssClass="k-list-item-icon"
42009
+ name="lightbulb-outline"
42010
+ [svgIcon]="lightbulbOutlineIcon"
42011
+ class="k-list-item-icon-wrapper">
42012
+ </kendo-icon-wrapper>
42013
+ <span class="k-list-item-text">{{messageFor('smartBoxSuggestedPrompts')}}</span>
42014
+ </li>
42015
+
42016
+ @for (suggestion of aiAssistantMode.promptSuggestions; track $index) {
42017
+ @if (promptSuggestionTemplate?.templateRef) {
42018
+ <ng-template
42019
+ [templateContext]="{ templateRef: promptSuggestionTemplate?.templateRef, $implicit: suggestion }"
42020
+ ></ng-template>
42021
+ } @else {
42022
+ <li class="k-list-item"
42023
+ (click)="onListItemClick(suggestion)"
42024
+ [attr.title]="suggestion">
42025
+ <span class="k-list-item-text">{{suggestion}}</span>
42026
+ </li>
42027
+ }
42028
+ }
42029
+ }
42030
+ </ul>
42031
+
42032
+ @if (selectedView === 'search') {
42033
+ @if (searchHistory.length === 0 && !semanticSearchMode?.enabled) {
42034
+ <span class="k-no-data k-smart-box-no-data">
42035
+ <kendo-icon-wrapper
42036
+ icon="file-report"
42037
+ [svgIcon]="fileClockOutlineIcon"
42038
+ size="xxxlarge">
42039
+ </kendo-icon-wrapper>
42040
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42041
+ </span>
42042
+ } @else if (searchHistory.length > 0) {
42043
+ <ul class="k-list-ul">
42044
+ <li class="k-list-group-item">
42045
+ <kendo-icon-wrapper
42046
+ innerCssClass="k-list-item-icon"
42047
+ name="clock-arrow-rotate"
42048
+ [svgIcon]="clockArrowRotateIcon"
42049
+ class="k-list-item-icon-wrapper">
42050
+ </kendo-icon-wrapper>
42051
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42052
+ </li>
42053
+
42054
+ @for (item of searchHistory; track $index) {
42055
+ @if (historyItemTemplate?.templateRef) {
42056
+ <ng-template
42057
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42058
+ ></ng-template>
42059
+ } @else {
42060
+ <li class="k-list-item"
42061
+ (click)="onListItemClick(item.text)"
42062
+ [attr.title]="item.text">
42063
+ <span class="k-list-item-text">{{item.text}}</span>
42064
+ <span class="k-list-item-description">{{formatDate(item.timestamp, searchHistorySettings?.timestampFormat)}}</span>
42065
+ </li>
42066
+ }
42067
+ }
42068
+ </ul>
42069
+ }
42070
+ } @else if (selectedView === 'semanticSearch') {
42071
+ @if (semanticSearchHistory.length === 0 && !searchMode?.enabled) {
42072
+ <span class="k-no-data k-smart-box-no-data">
42073
+ <kendo-icon-wrapper
42074
+ icon="file-report"
42075
+ [svgIcon]="fileClockOutlineIcon"
42076
+ size="xxxlarge">
42077
+ </kendo-icon-wrapper>
42078
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42079
+ </span>
42080
+ } @else if (semanticSearchHistory.length > 0) {
42081
+ <ul class="k-list-ul">
42082
+ <li class="k-list-group-item">
42083
+ <kendo-icon-wrapper
42084
+ innerCssClass="k-list-item-icon"
42085
+ name="clock-arrow-rotate"
42086
+ [svgIcon]="clockArrowRotateIcon"
42087
+ class="k-list-item-icon-wrapper">
42088
+ </kendo-icon-wrapper>
42089
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42090
+ </li>
42091
+
42092
+ @for (item of semanticSearchHistory; track $index) {
42093
+ @if (historyItemTemplate?.templateRef) {
42094
+ <ng-template
42095
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42096
+ ></ng-template>
42097
+ } @else {
42098
+ <li class="k-list-item"
42099
+ (click)="onListItemClick(item.text)"
42100
+ [attr.title]="item.text">
42101
+ <span class="k-list-item-text">{{item.text}}</span>
42102
+ <span class="k-list-item-description">{{formatDate(item.timestamp, semanticSearchHistorySettings?.timestampFormat)}}</span>
42103
+ </li>
42104
+ }
42105
+ }
42106
+ </ul>
42107
+ }
42108
+ } @else if (selectedView === 'aiAssistant') {
42109
+ @if (aiAssistantHistory.length === 0 && aiAssistantMode?.promptSuggestions.length === 0) {
42110
+ <span class="k-no-data k-smart-box-no-data">
42111
+ <kendo-icon-wrapper
42112
+ icon="file-report"
42113
+ [svgIcon]="fileClockOutlineIcon"
42114
+ size="xxxlarge">
42115
+ </kendo-icon-wrapper>
42116
+ <span>{{messageFor('smartBoxNoPreviousPrompts')}}</span>
42117
+ </span>
42118
+ } @else if (aiAssistantHistory.length > 0) {
42119
+ <ul class="k-list-ul">
42120
+ <li class="k-list-group-item">
42121
+ <kendo-icon-wrapper
42122
+ innerCssClass="k-list-item-icon"
42123
+ name="clock-arrow-rotate"
42124
+ [svgIcon]="clockArrowRotateIcon"
42125
+ class="k-list-item-icon-wrapper">
42126
+ </kendo-icon-wrapper>
42127
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslyAsked')}}</span>
42128
+ </li>
42129
+
42130
+ @for (item of aiAssistantHistory; track $index) {
42131
+ @if (historyItemTemplate?.templateRef) {
42132
+ <ng-template
42133
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42134
+ ></ng-template>
42135
+ } @else {
42136
+ <li class="k-list-item"
42137
+ (click)="onListItemClick(item.text)"
42138
+ [attr.title]="item.text">
42139
+ <span class="k-list-item-text">{{item.text}}</span>
42140
+ <span class="k-list-item-description">{{formatDate(item.timestamp, aiAssistantHistorySettings?.timestampFormat)}}</span>
42141
+ </li>
42142
+ }
42143
+ }
42144
+ </ul>
42145
+ }
42146
+ }
42147
+ </div>
42148
+ </div>
42149
+ </ng-template>
42150
+ `, 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"] }] });
42151
+ }
42152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxComponent, decorators: [{
42153
+ type: Component,
42154
+ args: [{
42155
+ selector: 'kendo-smartbox',
42156
+ standalone: true,
42157
+ imports: [SegmentedControlComponent, EventsOutsideAngularDirective, IconWrapperComponent, KENDO_BUTTONS, TemplateContextDirective],
42158
+ providers: [DataService, SelectionService$1, NavigationService$1, DisabledItemsService],
42159
+ template: `
42160
+ <span #innerWrapper
42161
+ class="k-smart-box k-input"
42162
+ [class.k-loading]="loading">
42163
+ @if (!inputDisabled) {
42164
+ <span class="k-input-prefix k-input-prefix-horizontal">
42165
+ <kendo-icon-wrapper
42166
+ class="k-icon"
42167
+ [name]="prefixIconName"
42168
+ [svgIcon]="prefixSVGIcon"
42169
+ [innerCssClass]="(selectedView === 'aiAssistant' || selectedView === 'semanticSearch') ? 'k-accent-icon' : ''"
42170
+ [kendoEventsOutsideAngular]="{
42171
+ click: onIconClick,
42172
+ mousedown: onIconMouseDown
42173
+ }">
42174
+ </kendo-icon-wrapper>
42175
+ </span>
42176
+ }
42177
+ <input #input
42178
+ type="text"
42179
+ class="k-input-inner"
42180
+ [class.k-disabled]="inputDisabled"
42181
+ [disabled]="inputDisabled"
42182
+ [id]="focusableId"
42183
+ [placeholder]="inputPlaceholder"
42184
+ [kendoEventsOutsideAngular]="{
42185
+ input: handleInput,
42186
+ focus: handleInputFocus,
42187
+ blur: handleInputBlur,
42188
+ click: handleInputClick,
42189
+ keydown: handleInputKeydown
42190
+ }"
42191
+ />
42192
+ @if (input.value.length > 0 && (selectedView === 'search' || selectedView === 'semanticSearch')) {
42193
+ <span
42194
+ class="k-clear-value"
42195
+ [attr.title]="messageFor('smartBoxToolClearTitle')"
42196
+ role="button"
42197
+ tabindex="-1"
42198
+ (click)="clearValue($event)"
42199
+ (mousedown)="$event.preventDefault()">
42200
+ <kendo-icon-wrapper
42201
+ class="k-icon"
42202
+ name="x"
42203
+ [svgIcon]="xIcon">
42204
+ </kendo-icon-wrapper>
42205
+ </span>
42206
+ }
42207
+ @if (selectedView === 'aiAssistant') {
42208
+ <span class="k-input-suffix k-input-suffix-horizontal">
42209
+ @if (speechToTextButton) {
42210
+ <button kendoSpeechToTextButton
42211
+ role="button"
42212
+ [continuous]="speechToTextButton?.continuous"
42213
+ [disabled]="speechToTextButton?.disabled"
42214
+ [fillMode]="speechToTextButton?.fillMode"
42215
+ [integrationMode]="speechToTextButton?.integrationMode"
42216
+ [interimResults]="speechToTextButton?.interimResults"
42217
+ [lang]="speechToTextButton?.lang"
42218
+ [maxAlternatives]="speechToTextButton?.maxAlternatives"
42219
+ [rounded]="speechToTextButton?.rounded"
42220
+ [size]="speechToTextButton?.size"
42221
+ [themeColor]="speechToTextButton?.themeColor"
42222
+ [attr.aria-label]="messageFor('smartBoxSpeechToTextButton')"
42223
+ [attr.title]="messageFor('smartBoxSpeechToTextButton')"
42224
+ [attr.aria-disabled]="speechToTextButton?.disabled"
42225
+ (error)="onSpeechToTextError($event)"
42226
+ (result)="onSpeechToTextResult($event)"
42227
+ ></button>
42228
+ }
42229
+ <button kendoButton
42230
+ class="k-smart-box-send"
42231
+ [class.k-processing]="loading"
42232
+ [class.k-active]="loading"
42233
+ type="button"
42234
+ rounded="full"
42235
+ size="small"
42236
+ [attr.title]="messageFor('smartBoxSubmitPromptButton')"
42237
+ [attr.aria-label]="messageFor('smartBoxSubmitPromptButton')"
42238
+ [attr.aria-disabled]="input.value.length === 0"
42239
+ [svgIcon]="loading ? stopSmIcon : arrowUpOutlineIcon"
42240
+ [icon]="loading ? 'stop-sm' : 'arrow-up-outline'"
42241
+ [disabled]="input.value.length === 0"
42242
+ (click)="onPromptSubmit()">
42243
+ </button>
42244
+ </span>
42245
+ }
42246
+ </span>
42247
+
42248
+ <ng-template #popupTemplate>
42249
+ @if (segmentedControlButtons.length > 0) {
42250
+ <kendo-segmented-control
42251
+ [buttons]="segmentedControlButtons"
42252
+ (buttonClick)="onModeChange($event)">
42253
+ </kendo-segmented-control>
42254
+ }
42255
+ <div class="k-list k-list-md">
42256
+ <div class="k-list-content">
42257
+ <ul class="k-list-ul">
42258
+ @if ((selectedView === 'search' || selectedView === 'semanticSearch') && searchListData.length > 0) {
42259
+ @for (item of searchListData; track item) {
42260
+ <li class="k-list-item"
42261
+ (click)="onSearchItemClick(item)">
42262
+ @if (item.selected) {
42263
+ <kendo-icon-wrapper
42264
+ innerCssClass="k-list-item-icon"
42265
+ name="check"
42266
+ [svgIcon]="checkIcon"
42267
+ class="k-list-item-icon-wrapper">
42268
+ </kendo-icon-wrapper>
42269
+ }
42270
+ @if (item.text) {
42271
+ <span class="k-list-item-text">{{item.text}}</span>
42272
+ }
42273
+ @if (item.description) {
42274
+ <span class="k-list-item-description">{{item.description}}</span>
42275
+ }
42276
+ </li>
42277
+ }
42278
+ } @else if (selectedView === 'aiAssistant' && aiAssistantMode.promptSuggestions.length > 0) {
42279
+ <li class="k-list-group-item">
42280
+ <kendo-icon-wrapper
42281
+ innerCssClass="k-list-item-icon"
42282
+ name="lightbulb-outline"
42283
+ [svgIcon]="lightbulbOutlineIcon"
42284
+ class="k-list-item-icon-wrapper">
42285
+ </kendo-icon-wrapper>
42286
+ <span class="k-list-item-text">{{messageFor('smartBoxSuggestedPrompts')}}</span>
42287
+ </li>
42288
+
42289
+ @for (suggestion of aiAssistantMode.promptSuggestions; track $index) {
42290
+ @if (promptSuggestionTemplate?.templateRef) {
42291
+ <ng-template
42292
+ [templateContext]="{ templateRef: promptSuggestionTemplate?.templateRef, $implicit: suggestion }"
42293
+ ></ng-template>
42294
+ } @else {
42295
+ <li class="k-list-item"
42296
+ (click)="onListItemClick(suggestion)"
42297
+ [attr.title]="suggestion">
42298
+ <span class="k-list-item-text">{{suggestion}}</span>
42299
+ </li>
42300
+ }
42301
+ }
42302
+ }
42303
+ </ul>
42304
+
42305
+ @if (selectedView === 'search') {
42306
+ @if (searchHistory.length === 0 && !semanticSearchMode?.enabled) {
42307
+ <span class="k-no-data k-smart-box-no-data">
42308
+ <kendo-icon-wrapper
42309
+ icon="file-report"
42310
+ [svgIcon]="fileClockOutlineIcon"
42311
+ size="xxxlarge">
42312
+ </kendo-icon-wrapper>
42313
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42314
+ </span>
42315
+ } @else if (searchHistory.length > 0) {
42316
+ <ul class="k-list-ul">
42317
+ <li class="k-list-group-item">
42318
+ <kendo-icon-wrapper
42319
+ innerCssClass="k-list-item-icon"
42320
+ name="clock-arrow-rotate"
42321
+ [svgIcon]="clockArrowRotateIcon"
42322
+ class="k-list-item-icon-wrapper">
42323
+ </kendo-icon-wrapper>
42324
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42325
+ </li>
42326
+
42327
+ @for (item of searchHistory; track $index) {
42328
+ @if (historyItemTemplate?.templateRef) {
42329
+ <ng-template
42330
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42331
+ ></ng-template>
42332
+ } @else {
42333
+ <li class="k-list-item"
42334
+ (click)="onListItemClick(item.text)"
42335
+ [attr.title]="item.text">
42336
+ <span class="k-list-item-text">{{item.text}}</span>
42337
+ <span class="k-list-item-description">{{formatDate(item.timestamp, searchHistorySettings?.timestampFormat)}}</span>
42338
+ </li>
42339
+ }
42340
+ }
42341
+ </ul>
42342
+ }
42343
+ } @else if (selectedView === 'semanticSearch') {
42344
+ @if (semanticSearchHistory.length === 0 && !searchMode?.enabled) {
42345
+ <span class="k-no-data k-smart-box-no-data">
42346
+ <kendo-icon-wrapper
42347
+ icon="file-report"
42348
+ [svgIcon]="fileClockOutlineIcon"
42349
+ size="xxxlarge">
42350
+ </kendo-icon-wrapper>
42351
+ <span>{{messageFor('smartBoxNoPreviousSearches')}}</span>
42352
+ </span>
42353
+ } @else if (semanticSearchHistory.length > 0) {
42354
+ <ul class="k-list-ul">
42355
+ <li class="k-list-group-item">
42356
+ <kendo-icon-wrapper
42357
+ innerCssClass="k-list-item-icon"
42358
+ name="clock-arrow-rotate"
42359
+ [svgIcon]="clockArrowRotateIcon"
42360
+ class="k-list-item-icon-wrapper">
42361
+ </kendo-icon-wrapper>
42362
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslySearched')}}</span>
42363
+ </li>
42364
+
42365
+ @for (item of semanticSearchHistory; track $index) {
42366
+ @if (historyItemTemplate?.templateRef) {
42367
+ <ng-template
42368
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42369
+ ></ng-template>
42370
+ } @else {
42371
+ <li class="k-list-item"
42372
+ (click)="onListItemClick(item.text)"
42373
+ [attr.title]="item.text">
42374
+ <span class="k-list-item-text">{{item.text}}</span>
42375
+ <span class="k-list-item-description">{{formatDate(item.timestamp, semanticSearchHistorySettings?.timestampFormat)}}</span>
42376
+ </li>
42377
+ }
42378
+ }
42379
+ </ul>
42380
+ }
42381
+ } @else if (selectedView === 'aiAssistant') {
42382
+ @if (aiAssistantHistory.length === 0 && aiAssistantMode?.promptSuggestions.length === 0) {
42383
+ <span class="k-no-data k-smart-box-no-data">
42384
+ <kendo-icon-wrapper
42385
+ icon="file-report"
42386
+ [svgIcon]="fileClockOutlineIcon"
42387
+ size="xxxlarge">
42388
+ </kendo-icon-wrapper>
42389
+ <span>{{messageFor('smartBoxNoPreviousPrompts')}}</span>
42390
+ </span>
42391
+ } @else if (aiAssistantHistory.length > 0) {
42392
+ <ul class="k-list-ul">
42393
+ <li class="k-list-group-item">
42394
+ <kendo-icon-wrapper
42395
+ innerCssClass="k-list-item-icon"
42396
+ name="clock-arrow-rotate"
42397
+ [svgIcon]="clockArrowRotateIcon"
42398
+ class="k-list-item-icon-wrapper">
42399
+ </kendo-icon-wrapper>
42400
+ <span class="k-list-item-text">{{messageFor('smartBoxPreviouslyAsked')}}</span>
42401
+ </li>
42402
+
42403
+ @for (item of aiAssistantHistory; track $index) {
42404
+ @if (historyItemTemplate?.templateRef) {
42405
+ <ng-template
42406
+ [templateContext]="{ templateRef: historyItemTemplate?.templateRef, $implicit: item }"
42407
+ ></ng-template>
42408
+ } @else {
42409
+ <li class="k-list-item"
42410
+ (click)="onListItemClick(item.text)"
42411
+ [attr.title]="item.text">
42412
+ <span class="k-list-item-text">{{item.text}}</span>
42413
+ <span class="k-list-item-description">{{formatDate(item.timestamp, aiAssistantHistorySettings?.timestampFormat)}}</span>
42414
+ </li>
42415
+ }
42416
+ }
42417
+ </ul>
42418
+ }
42419
+ }
42420
+ </div>
42421
+ </div>
42422
+ </ng-template>
42423
+ `
42424
+ }]
42425
+ }], 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: [{
42426
+ type: ViewChild,
42427
+ args: ['popupTemplate']
42428
+ }], input: [{
42429
+ type: ViewChild,
42430
+ args: ['input']
42431
+ }], innerWrapper: [{
42432
+ type: ViewChild,
42433
+ args: ['innerWrapper']
42434
+ }], searchMode: [{
42435
+ type: Input
42436
+ }], semanticSearchMode: [{
42437
+ type: Input
42438
+ }], aiAssistantMode: [{
42439
+ type: Input
42440
+ }], activeMode: [{
42441
+ type: Input
42442
+ }], history: [{
42443
+ type: Input
42444
+ }], placeholder: [{
42445
+ type: Input
42446
+ }], size: [{
42447
+ type: Input
42448
+ }], promptSuggestionTemplate: [{
42449
+ type: Input
42450
+ }], historyItemTemplate: [{
42451
+ type: Input
42452
+ }], loading: [{
42453
+ type: Input
42454
+ }], open: [{
42455
+ type: Output
42456
+ }], close: [{
42457
+ type: Output
42458
+ }], focus: [{
42459
+ type: Output
42460
+ }], blur: [{
42461
+ type: Output
42462
+ }], aiAssistantPromptRequest: [{
42463
+ type: Output
42464
+ }], aiAssistantResponseSuccess: [{
42465
+ type: Output
42466
+ }], aiAssistantResponseError: [{
42467
+ type: Output
42468
+ }], aiAssistantCancelRequest: [{
42469
+ type: Output
42470
+ }], search: [{
42471
+ type: Output
42472
+ }], semanticSearch: [{
42473
+ type: Output
42474
+ }] } });
42475
+
42476
+ /**
42477
+ * Represents the toolbar tool for showing a smart bar.
42478
+ * Use this component inside a ToolbarComponent in the Grid.
42479
+ *
42480
+ * @example
42481
+ * ```html
42482
+ * <kendo-grid>
42483
+ * <kendo-toolbar>
42484
+ * <kendo-grid-smartbox-tool></kendo-grid-smartbox-tool>
42485
+ * </kendo-toolbar>
42486
+ * </kendo-grid>
42487
+ * ```
42488
+ */
42489
+ class SmartBoxToolbarToolComponent extends ToolBarToolComponent {
42490
+ promptSuggestionTemplate;
42491
+ historyItemTemplate;
42492
+ searchMode = true;
42493
+ semanticSearchMode = false;
42494
+ aiAssistantMode = false;
42495
+ activeMode = 'search';
42496
+ history;
42497
+ placeholder;
42498
+ size;
42499
+ open = new EventEmitter();
42500
+ close = new EventEmitter();
42501
+ inputFocus = new EventEmitter();
42502
+ inputBlur = new EventEmitter();
42503
+ aiAssistantPromptRequest = new EventEmitter();
42504
+ aiAssistantResponseSuccess = new EventEmitter();
42505
+ aiAssistantResponseError = new EventEmitter();
42506
+ aiAssistantCancelRequest = new EventEmitter();
42507
+ search = new EventEmitter();
42508
+ semanticSearch = new EventEmitter();
42509
+ loading = false;
42510
+ constructor() { super(); }
42511
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxToolbarToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42512
+ 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" }, providers: [
42513
+ {
42514
+ provide: ToolBarToolComponent,
42515
+ useExisting: forwardRef(() => SmartBoxToolbarToolComponent)
42516
+ }
42517
+ ], queries: [{ propertyName: "promptSuggestionTemplate", first: true, predicate: GridSmartBoxPromptSuggestionTemplateDirective, descendants: true }, { propertyName: "historyItemTemplate", first: true, predicate: GridSmartBoxHistoryItemTemplateDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
42518
+ <ng-template #toolbarTemplate #sectionTemplate #popupTemplate>
42519
+ <kendo-smartbox
42520
+ [searchMode]="searchMode"
42521
+ [semanticSearchMode]="semanticSearchMode"
42522
+ [aiAssistantMode]="aiAssistantMode"
42523
+ [activeMode]="activeMode"
42524
+ [history]="history"
42525
+ [placeholder]="placeholder"
42526
+ [size]="size"
42527
+ (open)="open.emit($event)"
42528
+ (close)="close.emit($event)"
42529
+ (focus)="inputFocus.emit($event)"
42530
+ (blur)="inputBlur.emit($event)"
42531
+ (search)="search.emit($event)"
42532
+ (semanticSearch)="semanticSearch.emit($event)"
42533
+ (aiAssistantPromptRequest)="aiAssistantPromptRequest.emit($event)"
42534
+ (aiAssistantResponseSuccess)="aiAssistantResponseSuccess.emit($event)"
42535
+ (aiAssistantResponseError)="aiAssistantResponseError.emit($event)"
42536
+ (aiAssistantCancelRequest)="aiAssistantCancelRequest.emit()"
42537
+ [promptSuggestionTemplate]="promptSuggestionTemplate"
42538
+ [historyItemTemplate]="historyItemTemplate"
42539
+ [loading]="loading"
42540
+ >
42541
+ </kendo-smartbox>
42542
+ </ng-template>
42543
+ `, 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"] }] });
42544
+ }
42545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxToolbarToolComponent, decorators: [{
42546
+ type: Component,
42547
+ args: [{
42548
+ providers: [
42549
+ {
42550
+ provide: ToolBarToolComponent,
42551
+ useExisting: forwardRef(() => SmartBoxToolbarToolComponent)
42552
+ }
42553
+ ],
42554
+ selector: 'kendo-grid-smartbox-tool',
42555
+ template: `
42556
+ <ng-template #toolbarTemplate #sectionTemplate #popupTemplate>
42557
+ <kendo-smartbox
42558
+ [searchMode]="searchMode"
42559
+ [semanticSearchMode]="semanticSearchMode"
42560
+ [aiAssistantMode]="aiAssistantMode"
42561
+ [activeMode]="activeMode"
42562
+ [history]="history"
42563
+ [placeholder]="placeholder"
42564
+ [size]="size"
42565
+ (open)="open.emit($event)"
42566
+ (close)="close.emit($event)"
42567
+ (focus)="inputFocus.emit($event)"
42568
+ (blur)="inputBlur.emit($event)"
42569
+ (search)="search.emit($event)"
42570
+ (semanticSearch)="semanticSearch.emit($event)"
42571
+ (aiAssistantPromptRequest)="aiAssistantPromptRequest.emit($event)"
42572
+ (aiAssistantResponseSuccess)="aiAssistantResponseSuccess.emit($event)"
42573
+ (aiAssistantResponseError)="aiAssistantResponseError.emit($event)"
42574
+ (aiAssistantCancelRequest)="aiAssistantCancelRequest.emit()"
42575
+ [promptSuggestionTemplate]="promptSuggestionTemplate"
42576
+ [historyItemTemplate]="historyItemTemplate"
42577
+ [loading]="loading"
42578
+ >
42579
+ </kendo-smartbox>
42580
+ </ng-template>
42581
+ `,
42582
+ standalone: true,
42583
+ imports: [SmartBoxComponent]
42584
+ }]
42585
+ }], ctorParameters: () => [], propDecorators: { promptSuggestionTemplate: [{
42586
+ type: ContentChild,
42587
+ args: [GridSmartBoxPromptSuggestionTemplateDirective]
42588
+ }], historyItemTemplate: [{
42589
+ type: ContentChild,
42590
+ args: [GridSmartBoxHistoryItemTemplateDirective]
42591
+ }], searchMode: [{
42592
+ type: Input
42593
+ }], semanticSearchMode: [{
42594
+ type: Input
42595
+ }], aiAssistantMode: [{
42596
+ type: Input
42597
+ }], activeMode: [{
42598
+ type: Input
42599
+ }], history: [{
42600
+ type: Input
42601
+ }], placeholder: [{
42602
+ type: Input
42603
+ }], size: [{
42604
+ type: Input
42605
+ }], open: [{
42606
+ type: Output
42607
+ }], close: [{
42608
+ type: Output
42609
+ }], inputFocus: [{
42610
+ type: Output
42611
+ }], inputBlur: [{
42612
+ type: Output
42613
+ }], aiAssistantPromptRequest: [{
42614
+ type: Output
42615
+ }], aiAssistantResponseSuccess: [{
42616
+ type: Output
42617
+ }], aiAssistantResponseError: [{
42618
+ type: Output
42619
+ }], aiAssistantCancelRequest: [{
42620
+ type: Output
42621
+ }], search: [{
42622
+ type: Output
42623
+ }], semanticSearch: [{
42624
+ type: Output
42625
+ }] } });
42626
+
40467
42627
  // DRAGGABLE COLUMN
40468
42628
  /**
40469
42629
  * @hidden
@@ -40694,7 +42854,10 @@ const KENDO_GRID_BODY_EXPORTS = [
40694
42854
  FilterCommandToolbarDirective,
40695
42855
  AIAssistantToolbarDirective,
40696
42856
  GroupCommandToolbarDirective,
40697
- SelectAllToolbarToolComponent
42857
+ SelectAllToolbarToolComponent,
42858
+ SmartBoxToolbarToolComponent,
42859
+ GridSmartBoxHistoryItemTemplateDirective,
42860
+ GridSmartBoxPromptSuggestionTemplateDirective
40698
42861
  ];
40699
42862
  /**
40700
42863
  * @hidden
@@ -40845,9 +43008,9 @@ const KENDO_GRID = [
40845
43008
  */
40846
43009
  class GridModule {
40847
43010
  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,
43011
+ 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
43012
  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] });
43013
+ 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
43014
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridModule, providers: [
40852
43015
  PopupService,
40853
43016
  ResizeBatchService,
@@ -40861,8 +43024,8 @@ class GridModule {
40861
43024
  DecadeViewService,
40862
43025
  MonthViewService,
40863
43026
  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] });
43027
+ NavigationService$2
43028
+ ], 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
43029
  }
40867
43030
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: GridModule, decorators: [{
40868
43031
  type: NgModule,
@@ -40898,7 +43061,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
40898
43061
  DecadeViewService,
40899
43062
  MonthViewService,
40900
43063
  YearViewService,
40901
- NavigationService$1
43064
+ NavigationService$2
40902
43065
  ]
40903
43066
  }]
40904
43067
  }] });
@@ -41007,5 +43170,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
41007
43170
  * Generated bundle index. Do not edit.
41008
43171
  */
41009
43172
 
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 };
43173
+ 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
43174