@progress/kendo-angular-grid 23.0.0-develop.6 → 23.0.0-develop.8

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.
@@ -16,7 +16,7 @@ export declare class ColumnInfoService {
16
16
  stickyChange: EventEmitter<any>;
17
17
  columnRangeChange: EventEmitter<any>;
18
18
  columnsContainer: ColumnsContainer;
19
- private list;
19
+ list: () => ColumnList;
20
20
  private stickyColumns;
21
21
  get lockedLeafColumns(): QueryList<ColumnBase>;
22
22
  get nonLockedLeafColumns(): QueryList<ColumnBase>;
@@ -19954,14 +19954,15 @@ class HeaderComponent {
19954
19954
  }
19955
19955
  onHeaderKeydown(column, args) {
19956
19956
  const code = normalizeKeys(args);
19957
- if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu && this.isFilterable(column)) {
19957
+ const isColumnGroupComponent = this.isColumnGroupComponent(column);
19958
+ if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu && this.isFilterable(column) && !isColumnGroupComponent) {
19958
19959
  args.preventDefault();
19959
19960
  args.stopImmediatePropagation();
19960
19961
  const filterMenu = this.filterMenus.find(fm => fm.column === column);
19961
19962
  filterMenu.toggle(filterMenu.anchor.nativeElement, filterMenu.template);
19962
19963
  return;
19963
19964
  }
19964
- if (code === Keys.ArrowDown && args.altKey && this.showColumnMenu(column)) {
19965
+ if (code === Keys.ArrowDown && args.altKey && this.showColumnMenu(column) && !isColumnGroupComponent) {
19965
19966
  args.preventDefault();
19966
19967
  args.stopImmediatePropagation();
19967
19968
  const columnMenu = this.columnMenus.find(cm => cm.column === column);
@@ -19970,7 +19971,7 @@ class HeaderComponent {
19970
19971
  }
19971
19972
  const isCtrlOrMeta = args.ctrlKey || args.metaKey;
19972
19973
  const isGroupingKeyShortcut = (code === Keys.Enter || code === Keys.Space) && isCtrlOrMeta;
19973
- if (isGroupingKeyShortcut && this.isGroupable(column)) {
19974
+ if (isGroupingKeyShortcut && this.isGroupable(column) && !isColumnGroupComponent) {
19974
19975
  args.preventDefault();
19975
19976
  args.stopImmediatePropagation();
19976
19977
  const isGroupedByField = this.groups.some(gr => gr.field === column.field);
@@ -19989,22 +19990,29 @@ class HeaderComponent {
19989
19990
  const isReorderingKeyShortcut = isLeftOrRightArrow && isCtrlOrMeta;
19990
19991
  if (isReorderingKeyShortcut && this.isReorderable(column)) {
19991
19992
  args.preventDefault();
19992
- const columnsCount = this.columnInfoService.leafNamedColumns.length;
19993
+ const allColumns = sortColumns(this.columnInfoService.list().toArray()).filter(col => col.level === column.level);
19994
+ const columnsCount = allColumns.length;
19993
19995
  const reorderDirection = code === Keys.ArrowLeft ? -1 : 1;
19994
19996
  const rtlMultiplier = this.contextService.localization.rtl ? -1 : 1;
19995
19997
  const reorderDirectionOffset = reorderDirection * rtlMultiplier;
19996
- const newIndex = column.leafIndex + reorderDirectionOffset;
19998
+ const oldIndex = allColumns.indexOf(column);
19999
+ let newIndex = oldIndex + reorderDirectionOffset;
20000
+ let targetColumn = allColumns[newIndex];
20001
+ while (isPresent(targetColumn) && targetColumn.hidden) {
20002
+ targetColumn = allColumns[newIndex + reorderDirectionOffset];
20003
+ newIndex += reorderDirectionOffset;
20004
+ }
19997
20005
  const normalizedNewIndex = Math.min(Math.max(0, newIndex), columnsCount - 1);
19998
20006
  const gridInstance = this.contextService.grid;
19999
20007
  gridInstance.reorderColumn(column, normalizedNewIndex, { before: reorderDirectionOffset < 0 });
20000
20008
  gridInstance.columnReorder.emit(new ColumnReorderEvent({
20001
20009
  column,
20002
20010
  newIndex: normalizedNewIndex,
20003
- oldIndex: column.leafIndex
20011
+ oldIndex
20004
20012
  }));
20005
20013
  return;
20006
20014
  }
20007
- if (!this.sortable || args.defaultPrevented || column.sortable === false) {
20015
+ if (!this.sortable || args.defaultPrevented || column.sortable === false || isColumnGroupComponent) {
20008
20016
  return;
20009
20017
  }
20010
20018
  if (code === Keys.Enter && isPresent(column.field)) {
@@ -20298,7 +20306,7 @@ class HeaderComponent {
20298
20306
  >
20299
20307
  </th>
20300
20308
  }
20301
- @for (column of columnsForLevel(levelIndex); track column.id; let columnIndex = $index; let last = $last) {
20309
+ @for (column of columnsForLevel(levelIndex); track $index; let columnIndex = $index; let last = $last) {
20302
20310
  @if (!isColumnGroupComponent(column)) {
20303
20311
  <th
20304
20312
  kendoGridLogicalCell
@@ -20445,6 +20453,7 @@ class HeaderComponent {
20445
20453
  [rowSpan]="column.rowspan(totalColumnLevels)"
20446
20454
  [colSpan]="column.colspan"
20447
20455
  [headerLabelText]="column.title || getColumnComponent(column).field"
20456
+ (keydown)="onHeaderKeydown(getColumnComponent(column), $event)"
20448
20457
  kendoDropTarget
20449
20458
  kendoDraggable
20450
20459
  kendoDraggableColumn
@@ -20546,7 +20555,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
20546
20555
  >
20547
20556
  </th>
20548
20557
  }
20549
- @for (column of columnsForLevel(levelIndex); track column.id; let columnIndex = $index; let last = $last) {
20558
+ @for (column of columnsForLevel(levelIndex); track $index; let columnIndex = $index; let last = $last) {
20550
20559
  @if (!isColumnGroupComponent(column)) {
20551
20560
  <th
20552
20561
  kendoGridLogicalCell
@@ -20693,6 +20702,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
20693
20702
  [rowSpan]="column.rowspan(totalColumnLevels)"
20694
20703
  [colSpan]="column.colspan"
20695
20704
  [headerLabelText]="column.title || getColumnComponent(column).field"
20705
+ (keydown)="onHeaderKeydown(getColumnComponent(column), $event)"
20696
20706
  kendoDropTarget
20697
20707
  kendoDraggable
20698
20708
  kendoDraggableColumn
@@ -24126,7 +24136,7 @@ const packageMetadata = {
24126
24136
  productCode: 'KENDOUIANGULAR',
24127
24137
  productCodes: ['KENDOUIANGULAR'],
24128
24138
  publishDate: 0,
24129
- version: '23.0.0-develop.6',
24139
+ version: '23.0.0-develop.8',
24130
24140
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
24131
24141
  };
24132
24142
 
@@ -34984,6 +34994,7 @@ class GridComponent {
34984
34994
  [skip]="skip"
34985
34995
  [size]="size"
34986
34996
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
34997
+ [adaptiveMode]="adaptiveMode"
34987
34998
  [buttonCount]="normalizedPageableSettings.buttonCount"
34988
34999
  [info]="normalizedPageableSettings.info"
34989
35000
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -35333,6 +35344,7 @@ class GridComponent {
35333
35344
  [skip]="skip"
35334
35345
  [size]="size"
35335
35346
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
35347
+ [adaptiveMode]="adaptiveMode"
35336
35348
  [buttonCount]="normalizedPageableSettings.buttonCount"
35337
35349
  [info]="normalizedPageableSettings.info"
35338
35350
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -35405,7 +35417,8 @@ class GridComponent {
35405
35417
  <kendo-pager-page-sizes
35406
35418
  [size]="size"
35407
35419
  [pageSizes]="normalizedPageableSettings.pageSizes"
35408
- [showItemsText]="showPagerItemsText">
35420
+ [showItemsText]="showPagerItemsText"
35421
+ [adaptiveMode]="adaptiveMode">
35409
35422
  </kendo-pager-page-sizes>
35410
35423
  }
35411
35424
  @if (normalizedPageableSettings.info) {
@@ -35955,6 +35968,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
35955
35968
  [skip]="skip"
35956
35969
  [size]="size"
35957
35970
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
35971
+ [adaptiveMode]="adaptiveMode"
35958
35972
  [buttonCount]="normalizedPageableSettings.buttonCount"
35959
35973
  [info]="normalizedPageableSettings.info"
35960
35974
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -36304,6 +36318,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
36304
36318
  [skip]="skip"
36305
36319
  [size]="size"
36306
36320
  [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
36321
+ [adaptiveMode]="adaptiveMode"
36307
36322
  [buttonCount]="normalizedPageableSettings.buttonCount"
36308
36323
  [info]="normalizedPageableSettings.info"
36309
36324
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
@@ -36376,7 +36391,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
36376
36391
  <kendo-pager-page-sizes
36377
36392
  [size]="size"
36378
36393
  [pageSizes]="normalizedPageableSettings.pageSizes"
36379
- [showItemsText]="showPagerItemsText">
36394
+ [showItemsText]="showPagerItemsText"
36395
+ [adaptiveMode]="adaptiveMode">
36380
36396
  </kendo-pager-page-sizes>
36381
36397
  }
36382
36398
  @if (normalizedPageableSettings.info) {
@@ -41259,6 +41275,7 @@ class SmartBoxComponent {
41259
41275
  aiAssistantCancelRequest = new EventEmitter();
41260
41276
  search = new EventEmitter();
41261
41277
  semanticSearch = new EventEmitter();
41278
+ modeChange = new EventEmitter();
41262
41279
  constructor(popupService, wrapper, cdr, zone, intl, ctx, aiRequestResponseService, http, renderer, columnInfoService, searchService) {
41263
41280
  this.popupService = popupService;
41264
41281
  this.wrapper = wrapper;
@@ -41394,14 +41411,16 @@ class SmartBoxComponent {
41394
41411
  else if (button.text === 'AI Assistant') {
41395
41412
  this.selectedView = 'aiAssistant';
41396
41413
  }
41397
- this.input.nativeElement.value = '';
41414
+ this.modeChange.emit(this.selectedView);
41415
+ this.clearValue();
41398
41416
  this.cdr.detectChanges();
41399
41417
  }
41400
41418
  onSearchItemClick(item) {
41401
41419
  this.searchListData.forEach(i => i.selected = false);
41402
41420
  this.searchListData.find(i => i.text === item.text).selected = true;
41403
41421
  this.selectedView = item.text === 'Search' ? 'search' : 'semanticSearch';
41404
- this.input.nativeElement.value = '';
41422
+ this.modeChange.emit(this.selectedView);
41423
+ this.clearValue();
41405
41424
  this.cdr.markForCheck();
41406
41425
  }
41407
41426
  onListItemClick(item) {
@@ -41588,10 +41607,9 @@ class SmartBoxComponent {
41588
41607
  onIconMouseDown = (args) => {
41589
41608
  args.preventDefault();
41590
41609
  };
41591
- clearValue(event) {
41610
+ clearButtonClick(event) {
41592
41611
  event.stopImmediatePropagation();
41593
- this.input.nativeElement.value = '';
41594
- this.input.nativeElement.focus();
41612
+ this.clearValue();
41595
41613
  this.togglePopup(true);
41596
41614
  this.clearTypingTimeout();
41597
41615
  this.handleInputValueChange();
@@ -41651,7 +41669,7 @@ class SmartBoxComponent {
41651
41669
  this.aiAssistantPromptRequest.emit({ requestData: this.requestData });
41652
41670
  });
41653
41671
  this.togglePopup(false);
41654
- this.input.nativeElement.value = '';
41672
+ this.clearValue();
41655
41673
  if (!this.aiAssistantMode.requestUrl) {
41656
41674
  return;
41657
41675
  }
@@ -41674,7 +41692,7 @@ class SmartBoxComponent {
41674
41692
  onSpeechToTextResult(event) {
41675
41693
  if (event.alternatives && event.alternatives.length > 0) {
41676
41694
  if (!isPresent$1(this.input.nativeElement.value)) {
41677
- this.input.nativeElement.value = '';
41695
+ this.clearValue();
41678
41696
  }
41679
41697
  const newValue = event.alternatives[0].transcript + ' ';
41680
41698
  this.input.nativeElement.value = newValue;
@@ -41884,8 +41902,12 @@ class SmartBoxComponent {
41884
41902
  const responseErrorEvent = new GridSmartBoxResponseErrorEvent(error);
41885
41903
  this.aiAssistantResponseError.emit(responseErrorEvent);
41886
41904
  }
41905
+ clearValue() {
41906
+ this.input.nativeElement.value = '';
41907
+ this.input.nativeElement.focus();
41908
+ }
41887
41909
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxComponent, deps: [{ token: i2.PopupService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1$4.IntlService }, { token: ContextService }, { token: GridAIRequestResponseService }, { token: i1$8.HttpClient }, { token: i0.Renderer2 }, { token: ColumnInfoService }, { token: SearchService }], target: i0.ɵɵFactoryTarget.Component });
41888
- 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: `
41910
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: SmartBoxComponent, isStandalone: true, selector: "kendo-smartbox", inputs: { searchMode: "searchMode", semanticSearchMode: "semanticSearchMode", aiAssistantMode: "aiAssistantMode", activeMode: "activeMode", history: "history", placeholder: "placeholder", size: "size", promptSuggestionTemplate: "promptSuggestionTemplate", historyItemTemplate: "historyItemTemplate", loading: "loading" }, outputs: { open: "open", close: "close", focus: "focus", blur: "blur", aiAssistantPromptRequest: "aiAssistantPromptRequest", aiAssistantResponseSuccess: "aiAssistantResponseSuccess", aiAssistantResponseError: "aiAssistantResponseError", aiAssistantCancelRequest: "aiAssistantCancelRequest", search: "search", semanticSearch: "semanticSearch", modeChange: "modeChange" }, providers: [DataService, SelectionService$1, NavigationService$1, DisabledItemsService], viewQueries: [{ propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "innerWrapper", first: true, predicate: ["innerWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
41889
41911
  <span #innerWrapper
41890
41912
  class="k-smart-box k-input"
41891
41913
  [class.k-loading]="loading">
@@ -41924,7 +41946,7 @@ class SmartBoxComponent {
41924
41946
  [attr.title]="messageFor('smartBoxToolClearTitle')"
41925
41947
  role="button"
41926
41948
  tabindex="-1"
41927
- (click)="clearValue($event)"
41949
+ (click)="clearButtonClick($event)"
41928
41950
  (mousedown)="$event.preventDefault()">
41929
41951
  <kendo-icon-wrapper
41930
41952
  class="k-icon"
@@ -42197,7 +42219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
42197
42219
  [attr.title]="messageFor('smartBoxToolClearTitle')"
42198
42220
  role="button"
42199
42221
  tabindex="-1"
42200
- (click)="clearValue($event)"
42222
+ (click)="clearButtonClick($event)"
42201
42223
  (mousedown)="$event.preventDefault()">
42202
42224
  <kendo-icon-wrapper
42203
42225
  class="k-icon"
@@ -42473,6 +42495,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
42473
42495
  type: Output
42474
42496
  }], semanticSearch: [{
42475
42497
  type: Output
42498
+ }], modeChange: [{
42499
+ type: Output
42476
42500
  }] } });
42477
42501
 
42478
42502
  /**
@@ -42491,27 +42515,99 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
42491
42515
  class SmartBoxToolbarToolComponent extends ToolBarToolComponent {
42492
42516
  promptSuggestionTemplate;
42493
42517
  historyItemTemplate;
42518
+ /**
42519
+ * Controls the visibility and settings of the Search mode. By default, the mode is enabled.
42520
+ *
42521
+ * @default true
42522
+ */
42494
42523
  searchMode = true;
42524
+ /**
42525
+ * Controls the visibility and settings of the Semantic Search mode. By default, the mode is disabled.
42526
+ *
42527
+ * @default false
42528
+ */
42495
42529
  semanticSearchMode = false;
42530
+ /**
42531
+ * Controls the visibility and settings of the AI Assistant mode. By default, the mode is disabled.
42532
+ *
42533
+ * @default false
42534
+ */
42496
42535
  aiAssistantMode = false;
42536
+ /**
42537
+ * Sets the initially active mode of the tool.
42538
+ *
42539
+ * @default 'search'
42540
+ */
42497
42541
  activeMode = 'search';
42542
+ /**
42543
+ * Controls the visibility and settings of the history for each mode.
42544
+ */
42498
42545
  history;
42546
+ /**
42547
+ * Sets the placeholder of the input element in the SmartBox and applies to all modes.
42548
+ */
42499
42549
  placeholder;
42550
+ /**
42551
+ * Specifies the padding of the input.
42552
+ *
42553
+ * @default 'medium'
42554
+ */
42500
42555
  size;
42556
+ /**
42557
+ * Emits when the SmartBox tool opens.
42558
+ */
42501
42559
  open = new EventEmitter();
42560
+ /**
42561
+ * Emits when the SmartBox tool closes.
42562
+ */
42502
42563
  close = new EventEmitter();
42564
+ /**
42565
+ * Emits when the SmartBox tool input is focused.
42566
+ */
42503
42567
  inputFocus = new EventEmitter();
42568
+ /**
42569
+ * Emits when the SmartBox tool input is blurred.
42570
+ */
42504
42571
  inputBlur = new EventEmitter();
42572
+ /**
42573
+ * Emits before the SmartBox tool sends the AI request.
42574
+ * - When you provide a `requestUrl`, you can handle the event to modify the request options.
42575
+ * - When you do not provide a `requestUrl`, you can handle the event to perform an entirely custom request.
42576
+ */
42505
42577
  aiAssistantPromptRequest = new EventEmitter();
42578
+ /**
42579
+ * Emits when the SmartBox tool completes the AI request successfully.
42580
+ * The event contains the response from the AI service and is preventable to allow stopping the default response handling.
42581
+ */
42506
42582
  aiAssistantResponseSuccess = new EventEmitter();
42583
+ /**
42584
+ * Emits when the SmartBox tool completes the AI request with an error.
42585
+ * The event contains the error response from the AI service and is preventable to allow stopping the default error handling.
42586
+ */
42507
42587
  aiAssistantResponseError = new EventEmitter();
42588
+ /**
42589
+ * Emits when the user clicks the Cancel button.
42590
+ */
42508
42591
  aiAssistantCancelRequest = new EventEmitter();
42592
+ /**
42593
+ * Emits when the user types in Search mode. The event contains the search query and the filter descriptors created based on the query.
42594
+ */
42509
42595
  search = new EventEmitter();
42596
+ /**
42597
+ * Emits when the user types in Semantic Search mode. The event contains the search query and the filter descriptors created based on the query.
42598
+ */
42510
42599
  semanticSearch = new EventEmitter();
42600
+ /**
42601
+ * Emits when the mode of the SmartBox tool changes. The event contains the new mode.
42602
+ */
42603
+ modeChange = new EventEmitter();
42604
+ /**
42605
+ * Indicates whether the SmartBox tool is in a loading state. Use this to show a loading indicator in the UI.
42606
+ */
42511
42607
  loading = false;
42512
42608
  constructor() { super(); }
42513
42609
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxToolbarToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42514
- 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: [
42610
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: SmartBoxToolbarToolComponent, isStandalone: true, selector: "kendo-grid-smartbox-tool", inputs: { searchMode: "searchMode", semanticSearchMode: "semanticSearchMode", aiAssistantMode: "aiAssistantMode", activeMode: "activeMode", history: "history", placeholder: "placeholder", size: "size" }, outputs: { open: "open", close: "close", inputFocus: "inputFocus", inputBlur: "inputBlur", aiAssistantPromptRequest: "aiAssistantPromptRequest", aiAssistantResponseSuccess: "aiAssistantResponseSuccess", aiAssistantResponseError: "aiAssistantResponseError", aiAssistantCancelRequest: "aiAssistantCancelRequest", search: "search", semanticSearch: "semanticSearch", modeChange: "modeChange" }, providers: [
42515
42611
  {
42516
42612
  provide: ToolBarToolComponent,
42517
42613
  useExisting: forwardRef(() => SmartBoxToolbarToolComponent)
@@ -42536,13 +42632,14 @@ class SmartBoxToolbarToolComponent extends ToolBarToolComponent {
42536
42632
  (aiAssistantResponseSuccess)="aiAssistantResponseSuccess.emit($event)"
42537
42633
  (aiAssistantResponseError)="aiAssistantResponseError.emit($event)"
42538
42634
  (aiAssistantCancelRequest)="aiAssistantCancelRequest.emit()"
42635
+ (modeChange)="modeChange.emit($event)"
42539
42636
  [promptSuggestionTemplate]="promptSuggestionTemplate"
42540
42637
  [historyItemTemplate]="historyItemTemplate"
42541
42638
  [loading]="loading"
42542
42639
  >
42543
42640
  </kendo-smartbox>
42544
42641
  </ng-template>
42545
- `, 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"] }] });
42642
+ `, isInline: true, dependencies: [{ kind: "component", type: SmartBoxComponent, selector: "kendo-smartbox", inputs: ["searchMode", "semanticSearchMode", "aiAssistantMode", "activeMode", "history", "placeholder", "size", "promptSuggestionTemplate", "historyItemTemplate", "loading"], outputs: ["open", "close", "focus", "blur", "aiAssistantPromptRequest", "aiAssistantResponseSuccess", "aiAssistantResponseError", "aiAssistantCancelRequest", "search", "semanticSearch", "modeChange"] }] });
42546
42643
  }
42547
42644
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartBoxToolbarToolComponent, decorators: [{
42548
42645
  type: Component,
@@ -42574,6 +42671,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
42574
42671
  (aiAssistantResponseSuccess)="aiAssistantResponseSuccess.emit($event)"
42575
42672
  (aiAssistantResponseError)="aiAssistantResponseError.emit($event)"
42576
42673
  (aiAssistantCancelRequest)="aiAssistantCancelRequest.emit()"
42674
+ (modeChange)="modeChange.emit($event)"
42577
42675
  [promptSuggestionTemplate]="promptSuggestionTemplate"
42578
42676
  [historyItemTemplate]="historyItemTemplate"
42579
42677
  [loading]="loading"
@@ -42624,6 +42722,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
42624
42722
  type: Output
42625
42723
  }], semanticSearch: [{
42626
42724
  type: Output
42725
+ }], modeChange: [{
42726
+ type: Output
42627
42727
  }] } });
42628
42728
 
42629
42729
  // DRAGGABLE COLUMN
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1770369463,
11
- "version": "23.0.0-develop.6",
10
+ "publishDate": 1770381331,
11
+ "version": "23.0.0-develop.8",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-grid",
3
- "version": "23.0.0-develop.6",
3
+ "version": "23.0.0-develop.8",
4
4
  "description": "Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -73,7 +73,7 @@
73
73
  "package": {
74
74
  "productName": "Kendo UI for Angular",
75
75
  "productCode": "KENDOUIANGULAR",
76
- "publishDate": 1770369463,
76
+ "publishDate": 1770381331,
77
77
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
78
78
  }
79
79
  },
@@ -86,32 +86,32 @@
86
86
  "@progress/kendo-data-query": "^1.7.3",
87
87
  "@progress/kendo-drawing": "^1.24.0",
88
88
  "@progress/kendo-licensing": "^1.10.0",
89
- "@progress/kendo-angular-buttons": "23.0.0-develop.6",
90
- "@progress/kendo-angular-common": "23.0.0-develop.6",
91
- "@progress/kendo-angular-dateinputs": "23.0.0-develop.6",
92
- "@progress/kendo-angular-layout": "23.0.0-develop.6",
93
- "@progress/kendo-angular-navigation": "23.0.0-develop.6",
94
- "@progress/kendo-angular-dropdowns": "23.0.0-develop.6",
95
- "@progress/kendo-angular-excel-export": "23.0.0-develop.6",
96
- "@progress/kendo-angular-icons": "23.0.0-develop.6",
97
- "@progress/kendo-angular-indicators": "23.0.0-develop.6",
98
- "@progress/kendo-angular-inputs": "23.0.0-develop.6",
99
- "@progress/kendo-angular-conversational-ui": "23.0.0-develop.6",
100
- "@progress/kendo-angular-intl": "23.0.0-develop.6",
101
- "@progress/kendo-angular-l10n": "23.0.0-develop.6",
102
- "@progress/kendo-angular-label": "23.0.0-develop.6",
103
- "@progress/kendo-angular-menu": "23.0.0-develop.6",
104
- "@progress/kendo-angular-pager": "23.0.0-develop.6",
105
- "@progress/kendo-angular-pdf-export": "23.0.0-develop.6",
106
- "@progress/kendo-angular-popup": "23.0.0-develop.6",
107
- "@progress/kendo-angular-toolbar": "23.0.0-develop.6",
108
- "@progress/kendo-angular-upload": "23.0.0-develop.6",
109
- "@progress/kendo-angular-utils": "23.0.0-develop.6",
89
+ "@progress/kendo-angular-buttons": "23.0.0-develop.8",
90
+ "@progress/kendo-angular-common": "23.0.0-develop.8",
91
+ "@progress/kendo-angular-dateinputs": "23.0.0-develop.8",
92
+ "@progress/kendo-angular-layout": "23.0.0-develop.8",
93
+ "@progress/kendo-angular-navigation": "23.0.0-develop.8",
94
+ "@progress/kendo-angular-dropdowns": "23.0.0-develop.8",
95
+ "@progress/kendo-angular-excel-export": "23.0.0-develop.8",
96
+ "@progress/kendo-angular-icons": "23.0.0-develop.8",
97
+ "@progress/kendo-angular-indicators": "23.0.0-develop.8",
98
+ "@progress/kendo-angular-inputs": "23.0.0-develop.8",
99
+ "@progress/kendo-angular-conversational-ui": "23.0.0-develop.8",
100
+ "@progress/kendo-angular-intl": "23.0.0-develop.8",
101
+ "@progress/kendo-angular-l10n": "23.0.0-develop.8",
102
+ "@progress/kendo-angular-label": "23.0.0-develop.8",
103
+ "@progress/kendo-angular-menu": "23.0.0-develop.8",
104
+ "@progress/kendo-angular-pager": "23.0.0-develop.8",
105
+ "@progress/kendo-angular-pdf-export": "23.0.0-develop.8",
106
+ "@progress/kendo-angular-popup": "23.0.0-develop.8",
107
+ "@progress/kendo-angular-toolbar": "23.0.0-develop.8",
108
+ "@progress/kendo-angular-upload": "23.0.0-develop.8",
109
+ "@progress/kendo-angular-utils": "23.0.0-develop.8",
110
110
  "rxjs": "^6.5.3 || ^7.0.0"
111
111
  },
112
112
  "dependencies": {
113
113
  "tslib": "^2.3.1",
114
- "@progress/kendo-angular-schematics": "23.0.0-develop.6",
114
+ "@progress/kendo-angular-schematics": "23.0.0-develop.8",
115
115
  "@progress/kendo-common": "^1.0.1",
116
116
  "@progress/kendo-file-saver": "^1.0.0",
117
117
  "@progress/kendo-csv": "^1.0.0"
@@ -3,11 +3,11 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
6
+ import { HttpClient } from '@angular/common/http';
6
7
  import { SVGIcon } from '@progress/kendo-svg-icons';
7
8
  import { PopupService } from '@progress/kendo-angular-popup';
8
9
  import { SpeechToTextButtonSettings } from "@progress/kendo-angular-buttons";
9
10
  import { IntlService } from '@progress/kendo-angular-intl';
10
- import { HttpClient } from '@angular/common/http';
11
11
  import { HistoryItem, SmartBoxAIAssistantSettings, SmartBoxHistorySettings, SmartBoxRequestEvent, SmartBoxResponseErrorEvent, SmartBoxResponseSuccessEvent, SmartBoxSearchEvent, SmartBoxSearchSettings, SmartBoxSemanticSearchEvent, SmartBoxSemanticSearchSettings, SmartBoxSize } from './models';
12
12
  import { GridSmartBoxMode } from '../models';
13
13
  import { SegmentedButtonSettings } from "../segmented-control/models";
@@ -68,6 +68,7 @@ export declare class SmartBoxComponent implements AfterViewInit, OnChanges, OnDe
68
68
  aiAssistantCancelRequest: EventEmitter<undefined>;
69
69
  search: EventEmitter<SmartBoxSearchEvent>;
70
70
  semanticSearch: EventEmitter<SmartBoxSemanticSearchEvent>;
71
+ modeChange: EventEmitter<GridSmartBoxMode>;
71
72
  constructor(popupService: PopupService, wrapper: ElementRef, cdr: ChangeDetectorRef, zone: NgZone, intl: IntlService, ctx: ContextService, aiRequestResponseService: GridAIRequestResponseService, http: HttpClient, renderer: Renderer2, columnInfoService: ColumnInfoService, searchService: SearchService);
72
73
  ngOnChanges(changes: SimpleChanges): void;
73
74
  ngAfterViewInit(): void;
@@ -109,7 +110,7 @@ export declare class SmartBoxComponent implements AfterViewInit, OnChanges, OnDe
109
110
  handleInputKeydown: (event: KeyboardEvent) => void;
110
111
  onIconClick: () => void;
111
112
  onIconMouseDown: (args: any) => void;
112
- clearValue(event: any): void;
113
+ clearButtonClick(event: any): void;
113
114
  private _searchMode;
114
115
  private _semanticSearchMode;
115
116
  private _aiAssistantMode;
@@ -147,6 +148,7 @@ export declare class SmartBoxComponent implements AfterViewInit, OnChanges, OnDe
147
148
  private updateHistoryData;
148
149
  private processResponse;
149
150
  private handleError;
151
+ private clearValue;
150
152
  static ɵfac: i0.ɵɵFactoryDeclaration<SmartBoxComponent, never>;
151
- static ɵcmp: i0.ɵɵComponentDeclaration<SmartBoxComponent, "kendo-smartbox", never, { "searchMode": { "alias": "searchMode"; "required": false; }; "semanticSearchMode": { "alias": "semanticSearchMode"; "required": false; }; "aiAssistantMode": { "alias": "aiAssistantMode"; "required": false; }; "activeMode": { "alias": "activeMode"; "required": false; }; "history": { "alias": "history"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; "promptSuggestionTemplate": { "alias": "promptSuggestionTemplate"; "required": false; }; "historyItemTemplate": { "alias": "historyItemTemplate"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, { "open": "open"; "close": "close"; "focus": "focus"; "blur": "blur"; "aiAssistantPromptRequest": "aiAssistantPromptRequest"; "aiAssistantResponseSuccess": "aiAssistantResponseSuccess"; "aiAssistantResponseError": "aiAssistantResponseError"; "aiAssistantCancelRequest": "aiAssistantCancelRequest"; "search": "search"; "semanticSearch": "semanticSearch"; }, never, never, true, never>;
153
+ static ɵcmp: i0.ɵɵComponentDeclaration<SmartBoxComponent, "kendo-smartbox", never, { "searchMode": { "alias": "searchMode"; "required": false; }; "semanticSearchMode": { "alias": "semanticSearchMode"; "required": false; }; "aiAssistantMode": { "alias": "aiAssistantMode"; "required": false; }; "activeMode": { "alias": "activeMode"; "required": false; }; "history": { "alias": "history"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; "promptSuggestionTemplate": { "alias": "promptSuggestionTemplate"; "required": false; }; "historyItemTemplate": { "alias": "historyItemTemplate"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, { "open": "open"; "close": "close"; "focus": "focus"; "blur": "blur"; "aiAssistantPromptRequest": "aiAssistantPromptRequest"; "aiAssistantResponseSuccess": "aiAssistantResponseSuccess"; "aiAssistantResponseError": "aiAssistantResponseError"; "aiAssistantCancelRequest": "aiAssistantCancelRequest"; "search": "search"; "semanticSearch": "semanticSearch"; "modeChange": "modeChange"; }, never, never, true, never>;
152
154
  }
@@ -24,25 +24,97 @@ import * as i0 from "@angular/core";
24
24
  export declare class SmartBoxToolbarToolComponent extends ToolBarToolComponent {
25
25
  promptSuggestionTemplate: GridSmartBoxPromptSuggestionTemplateDirective;
26
26
  historyItemTemplate: GridSmartBoxHistoryItemTemplateDirective;
27
+ /**
28
+ * Controls the visibility and settings of the Search mode. By default, the mode is enabled.
29
+ *
30
+ * @default true
31
+ */
27
32
  searchMode: boolean | GridSmartBoxSearchSettings;
33
+ /**
34
+ * Controls the visibility and settings of the Semantic Search mode. By default, the mode is disabled.
35
+ *
36
+ * @default false
37
+ */
28
38
  semanticSearchMode: boolean | GridSmartBoxSemanticSearchSettings;
39
+ /**
40
+ * Controls the visibility and settings of the AI Assistant mode. By default, the mode is disabled.
41
+ *
42
+ * @default false
43
+ */
29
44
  aiAssistantMode: boolean | GridSmartBoxAIAssistantSettings;
45
+ /**
46
+ * Sets the initially active mode of the tool.
47
+ *
48
+ * @default 'search'
49
+ */
30
50
  activeMode: GridSmartBoxMode;
51
+ /**
52
+ * Controls the visibility and settings of the history for each mode.
53
+ */
31
54
  history: boolean | GridSmartBoxHistorySettings;
55
+ /**
56
+ * Sets the placeholder of the input element in the SmartBox and applies to all modes.
57
+ */
32
58
  placeholder: string;
59
+ /**
60
+ * Specifies the padding of the input.
61
+ *
62
+ * @default 'medium'
63
+ */
33
64
  size: GridSmartBoxSize;
65
+ /**
66
+ * Emits when the SmartBox tool opens.
67
+ */
34
68
  open: EventEmitter<any>;
69
+ /**
70
+ * Emits when the SmartBox tool closes.
71
+ */
35
72
  close: EventEmitter<any>;
73
+ /**
74
+ * Emits when the SmartBox tool input is focused.
75
+ */
36
76
  inputFocus: EventEmitter<any>;
77
+ /**
78
+ * Emits when the SmartBox tool input is blurred.
79
+ */
37
80
  inputBlur: EventEmitter<any>;
81
+ /**
82
+ * Emits before the SmartBox tool sends the AI request.
83
+ * - When you provide a `requestUrl`, you can handle the event to modify the request options.
84
+ * - When you do not provide a `requestUrl`, you can handle the event to perform an entirely custom request.
85
+ */
38
86
  aiAssistantPromptRequest: EventEmitter<GridSmartBoxRequestEvent>;
87
+ /**
88
+ * Emits when the SmartBox tool completes the AI request successfully.
89
+ * The event contains the response from the AI service and is preventable to allow stopping the default response handling.
90
+ */
39
91
  aiAssistantResponseSuccess: EventEmitter<GridSmartBoxResponseSuccessEvent>;
92
+ /**
93
+ * Emits when the SmartBox tool completes the AI request with an error.
94
+ * The event contains the error response from the AI service and is preventable to allow stopping the default error handling.
95
+ */
40
96
  aiAssistantResponseError: EventEmitter<GridSmartBoxResponseErrorEvent>;
97
+ /**
98
+ * Emits when the user clicks the Cancel button.
99
+ */
41
100
  aiAssistantCancelRequest: EventEmitter<undefined>;
101
+ /**
102
+ * Emits when the user types in Search mode. The event contains the search query and the filter descriptors created based on the query.
103
+ */
42
104
  search: EventEmitter<GridSmartBoxSearchEvent>;
105
+ /**
106
+ * Emits when the user types in Semantic Search mode. The event contains the search query and the filter descriptors created based on the query.
107
+ */
43
108
  semanticSearch: EventEmitter<GridSmartBoxSemanticSearchEvent>;
109
+ /**
110
+ * Emits when the mode of the SmartBox tool changes. The event contains the new mode.
111
+ */
112
+ modeChange: EventEmitter<GridSmartBoxMode>;
113
+ /**
114
+ * Indicates whether the SmartBox tool is in a loading state. Use this to show a loading indicator in the UI.
115
+ */
44
116
  loading: boolean;
45
117
  constructor();
46
118
  static ɵfac: i0.ɵɵFactoryDeclaration<SmartBoxToolbarToolComponent, never>;
47
- static ɵcmp: i0.ɵɵComponentDeclaration<SmartBoxToolbarToolComponent, "kendo-grid-smartbox-tool", never, { "searchMode": { "alias": "searchMode"; "required": false; }; "semanticSearchMode": { "alias": "semanticSearchMode"; "required": false; }; "aiAssistantMode": { "alias": "aiAssistantMode"; "required": false; }; "activeMode": { "alias": "activeMode"; "required": false; }; "history": { "alias": "history"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "open": "open"; "close": "close"; "inputFocus": "inputFocus"; "inputBlur": "inputBlur"; "aiAssistantPromptRequest": "aiAssistantPromptRequest"; "aiAssistantResponseSuccess": "aiAssistantResponseSuccess"; "aiAssistantResponseError": "aiAssistantResponseError"; "aiAssistantCancelRequest": "aiAssistantCancelRequest"; "search": "search"; "semanticSearch": "semanticSearch"; }, ["promptSuggestionTemplate", "historyItemTemplate"], never, true, never>;
119
+ static ɵcmp: i0.ɵɵComponentDeclaration<SmartBoxToolbarToolComponent, "kendo-grid-smartbox-tool", never, { "searchMode": { "alias": "searchMode"; "required": false; }; "semanticSearchMode": { "alias": "semanticSearchMode"; "required": false; }; "aiAssistantMode": { "alias": "aiAssistantMode"; "required": false; }; "activeMode": { "alias": "activeMode"; "required": false; }; "history": { "alias": "history"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "open": "open"; "close": "close"; "inputFocus": "inputFocus"; "inputBlur": "inputBlur"; "aiAssistantPromptRequest": "aiAssistantPromptRequest"; "aiAssistantResponseSuccess": "aiAssistantResponseSuccess"; "aiAssistantResponseError": "aiAssistantResponseError"; "aiAssistantCancelRequest": "aiAssistantCancelRequest"; "search": "search"; "semanticSearch": "semanticSearch"; "modeChange": "modeChange"; }, ["promptSuggestionTemplate", "historyItemTemplate"], never, true, never>;
48
120
  }
@@ -9,19 +9,19 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'GridModule', package: 'grid', peerDependencies: {
11
11
  // peer deps of the dropdowns
12
- '@progress/kendo-angular-treeview': '23.0.0-develop.6',
13
- '@progress/kendo-angular-navigation': '23.0.0-develop.6',
12
+ '@progress/kendo-angular-treeview': '23.0.0-develop.8',
13
+ '@progress/kendo-angular-navigation': '23.0.0-develop.8',
14
14
  // peer dependency of kendo-angular-inputs
15
- '@progress/kendo-angular-dialog': '23.0.0-develop.6',
15
+ '@progress/kendo-angular-dialog': '23.0.0-develop.8',
16
16
  // peer dependency of kendo-angular-icons
17
17
  '@progress/kendo-svg-icons': '^4.0.0',
18
18
  // peer dependency of kendo-angular-layout
19
- '@progress/kendo-angular-progressbar': '23.0.0-develop.6',
19
+ '@progress/kendo-angular-progressbar': '23.0.0-develop.8',
20
20
  // transitive peer dependencies from toolbar
21
- '@progress/kendo-angular-indicators': '23.0.0-develop.6',
21
+ '@progress/kendo-angular-indicators': '23.0.0-develop.8',
22
22
  // transitive peer dependencies from conversational-ui
23
- '@progress/kendo-angular-menu': '23.0.0-develop.6',
24
- '@progress/kendo-angular-upload': '23.0.0-develop.6'
23
+ '@progress/kendo-angular-menu': '23.0.0-develop.8',
24
+ '@progress/kendo-angular-upload': '23.0.0-develop.8'
25
25
  } });
26
26
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
27
27
  }