@progress/kendo-angular-grid 18.2.1-develop.3 → 18.3.0-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/column-menu/column-chooser.component.d.ts +1 -4
  2. package/column-menu/column-list.component.d.ts +1 -2
  3. package/column-menu/column-menu-item.component.d.ts +2 -2
  4. package/column-menu/column-menu.component.d.ts +1 -0
  5. package/column-menu/column-menu.service.d.ts +4 -4
  6. package/column-menu/utils.d.ts +2 -2
  7. package/esm2022/column-menu/column-chooser.component.mjs +2 -5
  8. package/esm2022/column-menu/column-list-kb-nav.service.mjs +1 -1
  9. package/esm2022/column-menu/column-list.component.mjs +25 -19
  10. package/esm2022/column-menu/column-menu.component.mjs +10 -17
  11. package/esm2022/column-menu/column-menu.service.mjs +6 -6
  12. package/esm2022/column-menu/utils.mjs +2 -3
  13. package/esm2022/filtering/cell/date-filter-cell.component.mjs +5 -22
  14. package/esm2022/filtering/cell/numeric-filter-cell.component.mjs +4 -8
  15. package/esm2022/filtering/cell/string-filter-cell.component.mjs +0 -2
  16. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +1 -1
  17. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +6 -12
  18. package/esm2022/filtering/menu/date-filter-menu.component.mjs +4 -8
  19. package/esm2022/filtering/menu/filter-menu-container.component.mjs +1 -3
  20. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +2 -2
  21. package/esm2022/filtering/menu/filter-menu.component.mjs +8 -17
  22. package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +6 -12
  23. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +4 -8
  24. package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +2 -4
  25. package/esm2022/filtering/operators/after-eq-filter-operator.component.mjs +2 -2
  26. package/esm2022/filtering/operators/after-filter-operator.component.mjs +2 -2
  27. package/esm2022/filtering/operators/before-eq-filter-operator.component.mjs +2 -2
  28. package/esm2022/filtering/operators/before-filter-operator.component.mjs +2 -2
  29. package/esm2022/filtering/operators/contains-filter-operator.component.mjs +1 -1
  30. package/esm2022/filtering/operators/ends-with-filter-operator.component.mjs +1 -1
  31. package/esm2022/filtering/operators/eq-filter-operator.component.mjs +1 -1
  32. package/esm2022/filtering/operators/filter-operator.base.mjs +18 -18
  33. package/esm2022/filtering/operators/gt-filter-operator.component.mjs +1 -1
  34. package/esm2022/filtering/operators/gte-filter-operator.component.mjs +1 -1
  35. package/esm2022/filtering/operators/is-empty-filter-operator.component.mjs +1 -1
  36. package/esm2022/filtering/operators/is-not-empty-filter-operator.component.mjs +1 -1
  37. package/esm2022/filtering/operators/is-not-null-filter-operator.component.mjs +1 -1
  38. package/esm2022/filtering/operators/isnull-filter-operator.component.mjs +1 -1
  39. package/esm2022/filtering/operators/lt-filter-operator.component.mjs +1 -1
  40. package/esm2022/filtering/operators/lte-filter-operator.component.mjs +1 -1
  41. package/esm2022/filtering/operators/neq-filter-operator.component.mjs +1 -1
  42. package/esm2022/filtering/operators/not-contains-filter-operator.component.mjs +1 -1
  43. package/esm2022/filtering/operators/starts-with-filter-operator.component.mjs +1 -1
  44. package/esm2022/grid.component.mjs +2 -0
  45. package/esm2022/package-metadata.mjs +2 -2
  46. package/esm2022/rendering/header/header.component.mjs +12 -18
  47. package/fesm2022/progress-kendo-angular-grid.mjs +145 -210
  48. package/filtering/cell/date-filter-cell.component.d.ts +1 -14
  49. package/filtering/menu/filter-menu.component.d.ts +1 -0
  50. package/package.json +19 -19
  51. package/schematics/ngAdd/index.js +4 -4
@@ -31,10 +31,6 @@ export declare class ColumnChooserComponent implements OnDestroy {
31
31
  private ngZone;
32
32
  private renderer;
33
33
  private changeDetector;
34
- /**
35
- * @hidden
36
- */
37
- columnsIcon: SVGIcon;
38
34
  /**
39
35
  * Specifies if the changes in the visibility of the column will be immediately applied.
40
36
  *
@@ -50,6 +46,7 @@ export declare class ColumnChooserComponent implements OnDestroy {
50
46
  private anchor;
51
47
  private columnList;
52
48
  get columns(): any[];
49
+ columnsIcon: SVGIcon;
53
50
  popupRef: any;
54
51
  popupId: string;
55
52
  private closeClick;
@@ -14,8 +14,7 @@ export declare class ColumnListComponent implements OnInit, OnDestroy {
14
14
  private ngZone;
15
15
  private renderer;
16
16
  private listNavigationService;
17
- get className(): boolean;
18
- isChecked(checkbox: any): any;
17
+ className: boolean;
19
18
  reset: EventEmitter<any>;
20
19
  apply: EventEmitter<any>;
21
20
  columnChange: EventEmitter<any>;
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { EventEmitter, OnChanges } from '@angular/core';
5
+ import { EventEmitter, OnChanges, AfterViewInit } from '@angular/core';
6
6
  import { ColumnMenuItemContentTemplateDirective } from './column-menu-item-content-template.directive';
7
7
  import { SVGIcon } from '@progress/kendo-svg-icons';
8
8
  import { ColumnMenuService } from './column-menu.service';
@@ -20,7 +20,7 @@ import * as i0 from "@angular/core";
20
20
  * </kendo-grid>
21
21
  * ```
22
22
  */
23
- export declare class ColumnMenuItemComponent implements OnChanges {
23
+ export declare class ColumnMenuItemComponent implements AfterViewInit, OnChanges {
24
24
  /**
25
25
  * Fires when the item is clicked.
26
26
  */
@@ -175,6 +175,7 @@ export declare class ColumnMenuComponent implements AfterViewInit, OnChanges, On
175
175
  get columnMenuTitle(): string;
176
176
  private getExpandedState;
177
177
  private updateAria;
178
+ private focusRoot;
178
179
  static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuComponent, [null, null, null, null, null, null, null, { optional: true; }]>;
179
180
  static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuComponent, "kendo-grid-column-menu", never, { "standalone": { "alias": "standalone"; "required": false; }; "column": { "alias": "column"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "columnMenuTemplate": { "alias": "columnMenuTemplate"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, never, true, never>;
180
181
  }
@@ -48,10 +48,6 @@ export declare class ColumnMenuService {
48
48
  * @hidden
49
49
  */
50
50
  sortable: any;
51
- /**
52
- * Closes the column menu.
53
- */
54
- close(): void;
55
51
  /**
56
52
  * @hidden
57
53
  */
@@ -60,6 +56,10 @@ export declare class ColumnMenuService {
60
56
  * @hidden
61
57
  */
62
58
  constructor(menuTabbingService?: MenuTabbingService);
59
+ /**
60
+ * Closes the column menu.
61
+ */
62
+ close(): void;
63
63
  static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuService, never>;
64
64
  static ɵprov: i0.ɵɵInjectableDeclaration<ColumnMenuService>;
65
65
  }
@@ -31,8 +31,8 @@ export declare const hasColumnChooser: (settings: any) => boolean;
31
31
  */
32
32
  export declare const hasAutoSizeColumn: (settings: any) => boolean;
33
33
  /**
34
- * @hidden
35
- */
34
+ * @hidden
35
+ */
36
36
  export declare const hasAutoSizeAllColumns: (settings: any) => boolean;
37
37
  /**
38
38
  * @hidden
@@ -37,10 +37,6 @@ export class ColumnChooserComponent {
37
37
  ngZone;
38
38
  renderer;
39
39
  changeDetector;
40
- /**
41
- * @hidden
42
- */
43
- columnsIcon = columnsIcon;
44
40
  /**
45
41
  * Specifies if the changes in the visibility of the column will be immediately applied.
46
42
  *
@@ -58,6 +54,7 @@ export class ColumnChooserComponent {
58
54
  get columns() {
59
55
  return this.columnInfoService.leafNamedColumns;
60
56
  }
57
+ columnsIcon = columnsIcon;
61
58
  popupRef;
62
59
  popupId;
63
60
  closeClick;
@@ -148,7 +145,7 @@ export class ColumnChooserComponent {
148
145
  this.popupRef.close();
149
146
  this.popupRef = null;
150
147
  this.changeDetector.markForCheck();
151
- this.escapeListener && this.escapeListener();
148
+ this.escapeListener?.();
152
149
  }
153
150
  this.detachClose();
154
151
  focusAnchor && this.anchor.element.focus();
@@ -27,7 +27,7 @@ export class ColumnListKeyboardNavigation {
27
27
  toggle(index, active) {
28
28
  const element = this.items[index]?.host.nativeElement;
29
29
  element && this.renderer.setAttribute(this.items[index].host.nativeElement, 'tabindex', active ? '0' : '-1');
30
- active && element && element.focus();
30
+ active && element?.focus();
31
31
  }
32
32
  toggleCheckedState() {
33
33
  this.items[this.activeIndex].host.nativeElement.firstElementChild.click();
@@ -21,12 +21,7 @@ export class ColumnListComponent {
21
21
  ngZone;
22
22
  renderer;
23
23
  listNavigationService;
24
- get className() {
25
- return true;
26
- }
27
- isChecked(checkbox) {
28
- return checkbox.checked;
29
- }
24
+ className = true;
30
25
  reset = new EventEmitter();
31
26
  apply = new EventEmitter();
32
27
  columnChange = new EventEmitter();
@@ -197,6 +192,20 @@ export class ColumnListComponent {
197
192
  const checkboxElement = closestItem.querySelector('.k-checkbox-wrap');
198
193
  const checkbox = this.checkboxes.find(checkBox => checkBox.hostElement.nativeElement === checkboxElement);
199
194
  const index = parseInt(checkboxElement.firstElementChild.getAttribute('data-index'), 10);
195
+ if (index !== this.listNavigationService.activeIndex) {
196
+ this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
197
+ this.listNavigationService.activeIndex = index;
198
+ this.listNavigationService.toggle(index, true);
199
+ }
200
+ if (checkboxElement.contains(e.target)) {
201
+ const checkboxInputElement = checkboxElement.firstElementChild;
202
+ checkboxInputElement.blur();
203
+ checkboxInputElement.classList.remove('k-focus');
204
+ }
205
+ else {
206
+ this.listNavigationService.toggleCheckedState();
207
+ }
208
+ closestItem.focus();
200
209
  if (this.autoSync) {
201
210
  if (!this.columns[index]) {
202
211
  return;
@@ -213,11 +222,6 @@ export class ColumnListComponent {
213
222
  else {
214
223
  this.updateDisabled();
215
224
  }
216
- if (index !== this.listNavigationService.activeIndex) {
217
- this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
218
- this.listNavigationService.activeIndex = index;
219
- this.listNavigationService.toggle(index, true);
220
- }
221
225
  }
222
226
  };
223
227
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnListComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.ColumnListKeyboardNavigation }], target: i0.ɵɵFactoryTarget.Component });
@@ -236,6 +240,7 @@ export class ColumnListComponent {
236
240
  [inputAttributes]="{'data-index': index.toString()}"
237
241
  [checkedState]="!column.hidden"
238
242
  [disabled]="isDisabled(column)"
243
+ [tabindex]="-1"
239
244
  ></kendo-checkbox>
240
245
  <span class="k-checkbox-label">{{ column.displayTitle }}</span>
241
246
  </label>
@@ -246,16 +251,16 @@ export class ColumnListComponent {
246
251
  type="button"
247
252
  class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
248
253
  (click)="applyChanges()"
249
- (keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
250
- (keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
254
+ (keydown.enter)="$event.preventDefault(); $event.stopPropagation(); applyChanges();"
255
+ (keydown.space)="$event.preventDefault(); $event.stopPropagation(); applyChanges();">{{ applyText }}</button>
251
256
  <button
252
257
  #resetButton
253
258
  type="button"
254
259
  (keydown.tab)="onTab($event)"
255
260
  class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
256
261
  (click)="cancelChanges()"
257
- (keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
258
- (keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
262
+ (keydown.enter)="$event.preventDefault(); $event.stopPropagation(); cancelChanges();"
263
+ (keydown.space)="$event.preventDefault(); $event.stopPropagation(); cancelChanges();">{{ resetText }}</button>
259
264
  </div>
260
265
  `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ColumnMenuChooserItemCheckedDirective, selector: "[kendoColumnMenuChooserItemChecked]", inputs: ["kendoColumnMenuChooserItemChecked"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }] });
261
266
  }
@@ -279,6 +284,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
279
284
  [inputAttributes]="{'data-index': index.toString()}"
280
285
  [checkedState]="!column.hidden"
281
286
  [disabled]="isDisabled(column)"
287
+ [tabindex]="-1"
282
288
  ></kendo-checkbox>
283
289
  <span class="k-checkbox-label">{{ column.displayTitle }}</span>
284
290
  </label>
@@ -289,16 +295,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
289
295
  type="button"
290
296
  class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
291
297
  (click)="applyChanges()"
292
- (keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
293
- (keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
298
+ (keydown.enter)="$event.preventDefault(); $event.stopPropagation(); applyChanges();"
299
+ (keydown.space)="$event.preventDefault(); $event.stopPropagation(); applyChanges();">{{ applyText }}</button>
294
300
  <button
295
301
  #resetButton
296
302
  type="button"
297
303
  (keydown.tab)="onTab($event)"
298
304
  class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
299
305
  (click)="cancelChanges()"
300
- (keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
301
- (keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
306
+ (keydown.enter)="$event.preventDefault(); $event.stopPropagation(); cancelChanges();"
307
+ (keydown.space)="$event.preventDefault(); $event.stopPropagation(); cancelChanges();">{{ resetText }}</button>
302
308
  </div>
303
309
  `,
304
310
  standalone: true,
@@ -279,7 +279,7 @@ export class ColumnMenuComponent {
279
279
  this.close(true);
280
280
  this.updateAria(ariaRoot);
281
281
  });
282
- this.popupSubs.add(this.popupRef.popup.instance.close.subscribe(() => {
282
+ this.popupSubs.add(() => this.popupRef.popup.instance.close.subscribe(() => {
283
283
  this.popupSubs?.unsubscribe();
284
284
  this.popupSubs = this.popupRef = null;
285
285
  this.updateAria(ariaRoot);
@@ -301,12 +301,7 @@ export class ColumnMenuComponent {
301
301
  }
302
302
  }
303
303
  else {
304
- if (this.navigationService.tableEnabled) {
305
- this.navigationService.focusCell(0, this.column.leafIndex);
306
- }
307
- else {
308
- this.anchor.nativeElement.focus();
309
- }
304
+ this.focusRoot();
310
305
  }
311
306
  }
312
307
  /**
@@ -319,12 +314,7 @@ export class ColumnMenuComponent {
319
314
  if (!triggerFocus) {
320
315
  return;
321
316
  }
322
- if (this.navigationService.tableEnabled) {
323
- this.navigationService.focusCell(0, this.column.leafIndex);
324
- }
325
- else {
326
- this.anchor.nativeElement.focus();
327
- }
317
+ this.focusRoot();
328
318
  }
329
319
  /**
330
320
  * @hidden
@@ -341,6 +331,9 @@ export class ColumnMenuComponent {
341
331
  ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
342
332
  ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
343
333
  }
334
+ focusRoot() {
335
+ this.isNavigable ? this.navigationService.focusCell(0, this.column.leafIndex) : this.anchor.nativeElement.focus();
336
+ }
344
337
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: i1.NavigationService }, { token: i2.SinglePopupService }, { token: i3.ColumnMenuService }, { token: i4.ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i5.ColumnInfoService }, { token: i6.IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
345
338
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuComponent, isStandalone: true, selector: "kendo-grid-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate", tabIndex: "tabIndex" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [
346
339
  ColumnMenuService,
@@ -354,7 +347,7 @@ export class ColumnMenuComponent {
354
347
  href="#"
355
348
  [tabindex]="tabIndex"
356
349
  [attr.title]="columnMenuTitle"
357
- [attr.aria-expanded]="isNavigable ? undefined: false"
350
+ [attr.aria-expanded]="isNavigable ? undefined : false"
358
351
  [attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
359
352
  <kendo-icon-wrapper
360
353
  name="more-vertical"
@@ -365,7 +358,7 @@ export class ColumnMenuComponent {
365
358
  (keydown.escape)="close(true)"
366
359
  (keydown.enter)="$event.stopImmediatePropagation()">
367
360
  <ng-container
368
- [ngTemplateOutlet]="this.column.columnMenuTemplateRef || this.columnMenuTemplate || (this.settings.view === 'tabbed' ? this.tabbedInterfaceTemplate : this.defaultTemplate)"
361
+ [ngTemplateOutlet]="column.columnMenuTemplateRef || columnMenuTemplate || (settings.view === 'tabbed' ? tabbedInterfaceTemplate : defaultTemplate)"
369
362
  [ngTemplateOutletContext]="{ service: service, column: column }">
370
363
  </ng-container>
371
364
  </kendo-grid-columnmenu-container>
@@ -531,7 +524,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
531
524
  href="#"
532
525
  [tabindex]="tabIndex"
533
526
  [attr.title]="columnMenuTitle"
534
- [attr.aria-expanded]="isNavigable ? undefined: false"
527
+ [attr.aria-expanded]="isNavigable ? undefined : false"
535
528
  [attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
536
529
  <kendo-icon-wrapper
537
530
  name="more-vertical"
@@ -542,7 +535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
542
535
  (keydown.escape)="close(true)"
543
536
  (keydown.enter)="$event.stopImmediatePropagation()">
544
537
  <ng-container
545
- [ngTemplateOutlet]="this.column.columnMenuTemplateRef || this.columnMenuTemplate || (this.settings.view === 'tabbed' ? this.tabbedInterfaceTemplate : this.defaultTemplate)"
538
+ [ngTemplateOutlet]="column.columnMenuTemplateRef || columnMenuTemplate || (settings.view === 'tabbed' ? tabbedInterfaceTemplate : defaultTemplate)"
546
539
  [ngTemplateOutletContext]="{ service: service, column: column }">
547
540
  </ng-container>
548
541
  </kendo-grid-columnmenu-container>
@@ -48,12 +48,6 @@ export class ColumnMenuService {
48
48
  * @hidden
49
49
  */
50
50
  sortable;
51
- /**
52
- * Closes the column menu.
53
- */
54
- close() {
55
- this.closeMenu.emit();
56
- }
57
51
  /**
58
52
  * @hidden
59
53
  */
@@ -64,6 +58,12 @@ export class ColumnMenuService {
64
58
  constructor(menuTabbingService) {
65
59
  this.menuTabbingService = menuTabbingService;
66
60
  }
61
+ /**
62
+ * Closes the column menu.
63
+ */
64
+ close() {
65
+ this.closeMenu.emit();
66
+ }
67
67
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuService, deps: [{ token: i1.MenuTabbingService }], target: i0.ɵɵFactoryTarget.Injectable });
68
68
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuService });
69
69
  }
@@ -31,14 +31,13 @@ export const hasColumnChooser = (settings) => settings.columnChooser !== false;
31
31
  */
32
32
  export const hasAutoSizeColumn = (settings) => settings.autoSizeColumn;
33
33
  /**
34
- * @hidden
35
- */
34
+ * @hidden
35
+ */
36
36
  export const hasAutoSizeAllColumns = (settings) => settings.autoSizeAllColumns;
37
37
  /**
38
38
  * @hidden
39
39
  */
40
40
  export const autoSizeColumn = (grid, service, column) => {
41
- // eslint-disable-next-line no-unused-expressions
42
41
  column ? grid.autoFitColumn(column) : grid.autoFitColumns();
43
42
  service.close();
44
43
  };
@@ -36,20 +36,7 @@ import * as i3 from "../../layout/sizing-options.service";
36
36
  export class DateFilterCellComponent extends DateFilterComponent {
37
37
  ctx;
38
38
  /**
39
- * Represents a [DatePicker](slug:overview_datepicker) filter-cell component.
40
- * [See example](slug:filter_row#toc-built-in-filter-row-components).
41
- * @example
42
- *
43
- * ```html
44
- * <kendo-grid-column field="Discontinued">
45
- * <ng-template kendoGridFilterCellTemplate let-filter let-column="column">
46
- * <kendo-grid-date-filter-cell
47
- * [column]="column"
48
- * [filter]="filter">
49
- * </kendo-grid-date-filter-cell>
50
- * </ng-template>
51
- * </kendo-grid-column>
52
- * ```
39
+ * Determines if the drop-down filter operators will be displayed. The default value is `true`.
53
40
  * @type {boolean}
54
41
  * @default true
55
42
  */
@@ -100,13 +87,11 @@ export class DateFilterCellComponent extends DateFilterComponent {
100
87
  [topView]="topView"
101
88
  [min]="min"
102
89
  [max]="max"
103
- [weekNumber]="weekNumber"
104
- >
90
+ [weekNumber]="weekNumber">
105
91
  <kendo-datepicker-messages
106
92
  [toggle]="messageFor('filterDateToggle')"
107
93
  [today]="messageFor('filterDateToday')"
108
- >
109
- </kendo-datepicker-messages>
94
+ ></kendo-datepicker-messages>
110
95
  </kendo-datepicker>
111
96
  </kendo-grid-filter-wrapper-cell>
112
97
  `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
@@ -137,13 +122,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
137
122
  [topView]="topView"
138
123
  [min]="min"
139
124
  [max]="max"
140
- [weekNumber]="weekNumber"
141
- >
125
+ [weekNumber]="weekNumber">
142
126
  <kendo-datepicker-messages
143
127
  [toggle]="messageFor('filterDateToggle')"
144
128
  [today]="messageFor('filterDateToday')"
145
- >
146
- </kendo-datepicker-messages>
129
+ ></kendo-datepicker-messages>
147
130
  </kendo-datepicker>
148
131
  </kendo-grid-filter-wrapper-cell>
149
132
  `,
@@ -99,13 +99,11 @@ export class NumericFilterCellComponent extends NumericFilterComponent {
99
99
  [max]="max"
100
100
  [size]="size"
101
101
  [step]="step"
102
- [placeholder]="placeholder"
103
- >
102
+ [placeholder]="placeholder">
104
103
  <kendo-numerictextbox-messages
105
104
  [increment]="messageFor('filterNumericIncrement')"
106
105
  [decrement]="messageFor('filterNumericDecrement')"
107
- >
108
- </kendo-numerictextbox-messages>
106
+ ></kendo-numerictextbox-messages>
109
107
  </kendo-numerictextbox>
110
108
  </kendo-grid-filter-wrapper-cell>
111
109
  `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "component", type: NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }] });
@@ -136,13 +134,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
136
134
  [max]="max"
137
135
  [size]="size"
138
136
  [step]="step"
139
- [placeholder]="placeholder"
140
- >
137
+ [placeholder]="placeholder">
141
138
  <kendo-numerictextbox-messages
142
139
  [increment]="messageFor('filterNumericIncrement')"
143
140
  [decrement]="messageFor('filterNumericDecrement')"
144
- >
145
- </kendo-numerictextbox-messages>
141
+ ></kendo-numerictextbox-messages>
146
142
  </kendo-numerictextbox>
147
143
  </kendo-grid-filter-wrapper-cell>
148
144
  `,
@@ -80,7 +80,6 @@ export class StringFilterCellComponent extends StringFilterComponent {
80
80
  [defaultOperator]="operator"
81
81
  [showOperators]="showOperators">
82
82
  <kendo-textbox
83
- kendoTextBox
84
83
  [size]="size"
85
84
  kendoGridFocusable
86
85
  kendoFilterInput
@@ -104,7 +103,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
104
103
  [defaultOperator]="operator"
105
104
  [showOperators]="showOperators">
106
105
  <kendo-textbox
107
- kendoTextBox
108
106
  [size]="size"
109
107
  kendoGridFocusable
110
108
  kendoFilterInput
@@ -92,7 +92,7 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
92
92
  * @hidden
93
93
  */
94
94
  onShiftTab(e) {
95
- if ((!this.menuTabbingService || !this.menuTabbingService.isColumnMenu) && this.filterService.menuTabbingService.lastFocusable) {
95
+ if (!this.menuTabbingService?.isColumnMenu && this.filterService.menuTabbingService.lastFocusable) {
96
96
  e.preventDefault();
97
97
  this.filterService.menuTabbingService.lastFocusable.focus();
98
98
  }
@@ -72,8 +72,7 @@ export class DateFilterMenuInputComponent {
72
72
  [currentFilter]="currentFilter"
73
73
  [filterService]="filterService"
74
74
  [isFirstDropDown]="isFirstDropDown"
75
- [menuTabbingService]="menuTabbingService"
76
- >
75
+ [menuTabbingService]="menuTabbingService">
77
76
  <kendo-datepicker
78
77
  #picker
79
78
  kendoFilterInput
@@ -89,13 +88,11 @@ export class DateFilterMenuInputComponent {
89
88
  [activeView]="activeView"
90
89
  [bottomView]="bottomView"
91
90
  [topView]="topView"
92
- [weekNumber]="weekNumber"
93
- >
91
+ [weekNumber]="weekNumber">
94
92
  <kendo-datepicker-messages
95
93
  [toggle]="messageFor('filterDateToggle')"
96
94
  [today]="messageFor('filterDateToday')"
97
- >
98
- </kendo-datepicker-messages>
95
+ ></kendo-datepicker-messages>
99
96
  </kendo-datepicker>
100
97
  </kendo-grid-filter-menu-input-wrapper>
101
98
  `, isInline: true, dependencies: [{ kind: "component", type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
@@ -113,8 +110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
113
110
  [currentFilter]="currentFilter"
114
111
  [filterService]="filterService"
115
112
  [isFirstDropDown]="isFirstDropDown"
116
- [menuTabbingService]="menuTabbingService"
117
- >
113
+ [menuTabbingService]="menuTabbingService">
118
114
  <kendo-datepicker
119
115
  #picker
120
116
  kendoFilterInput
@@ -130,13 +126,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
130
126
  [activeView]="activeView"
131
127
  [bottomView]="bottomView"
132
128
  [topView]="topView"
133
- [weekNumber]="weekNumber"
134
- >
129
+ [weekNumber]="weekNumber">
135
130
  <kendo-datepicker-messages
136
131
  [toggle]="messageFor('filterDateToggle')"
137
132
  [today]="messageFor('filterDateToday')"
138
- >
139
- </kendo-datepicker-messages>
133
+ ></kendo-datepicker-messages>
140
134
  </kendo-datepicker>
141
135
  </kendo-grid-filter-menu-input-wrapper>
142
136
  `,
@@ -96,8 +96,7 @@ export class DateFilterMenuComponent extends DateFilterComponent {
96
96
  [max]="max"
97
97
  [weekNumber]="weekNumber"
98
98
  [isFirstDropDown]="true"
99
- [menuTabbingService]="menuTabbingService"
100
- >
99
+ [menuTabbingService]="menuTabbingService">
101
100
  </kendo-grid-date-filter-menu-input>
102
101
  <kendo-dropdownlist
103
102
  *ngIf="extra"
@@ -127,8 +126,7 @@ export class DateFilterMenuComponent extends DateFilterComponent {
127
126
  [min]="min"
128
127
  [max]="max"
129
128
  [weekNumber]="weekNumber"
130
- [menuTabbingService]="menuTabbingService"
131
- >
129
+ [menuTabbingService]="menuTabbingService">
132
130
  </kendo-grid-date-filter-menu-input>
133
131
  `, isInline: true, dependencies: [{ kind: "component", type: DateFilterMenuInputComponent, selector: "kendo-grid-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
134
132
  }
@@ -153,8 +151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
153
151
  [max]="max"
154
152
  [weekNumber]="weekNumber"
155
153
  [isFirstDropDown]="true"
156
- [menuTabbingService]="menuTabbingService"
157
- >
154
+ [menuTabbingService]="menuTabbingService">
158
155
  </kendo-grid-date-filter-menu-input>
159
156
  <kendo-dropdownlist
160
157
  *ngIf="extra"
@@ -184,8 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
184
181
  [min]="min"
185
182
  [max]="max"
186
183
  [weekNumber]="weekNumber"
187
- [menuTabbingService]="menuTabbingService"
188
- >
184
+ [menuTabbingService]="menuTabbingService">
189
185
  </kendo-grid-date-filter-menu-input>
190
186
  `,
191
187
  standalone: true,
@@ -113,8 +113,7 @@ export class FilterMenuContainerComponent {
113
113
  }
114
114
  ngAfterViewChecked() {
115
115
  if (!this.menuTabbingService.isColumnMenu || (this.isLast && this.isExpanded)) {
116
- this.menuTabbingService.lastFocusable = this.disabled ?
117
- this.resetButton.nativeElement : this.filterButton.nativeElement;
116
+ this.menuTabbingService.lastFocusable = this.resetButton.nativeElement;
118
117
  }
119
118
  }
120
119
  ngOnDestroy() {
@@ -163,7 +162,6 @@ export class FilterMenuContainerComponent {
163
162
  if (this.menuTabbingService.firstFocusable && (!this.menuTabbingService.isColumnMenu || this.isLast)) {
164
163
  e.preventDefault();
165
164
  if (buttonType === 'reset') {
166
- // eslint-disable-next-line no-unused-expressions
167
165
  this.menuTabbingService.firstFocusable.focus();
168
166
  }
169
167
  else {
@@ -33,7 +33,7 @@ export class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent
33
33
  this.ctx = ctx;
34
34
  }
35
35
  ngAfterViewInit() {
36
- const shouldFocusFirstFocusable = this.isFirstDropDown && this.filterService && this.filterService.menuTabbingService;
36
+ const shouldFocusFirstFocusable = this.isFirstDropDown && this.filterService?.menuTabbingService;
37
37
  const isTabbedInterface = this.menuTabbingService?.isTabbedInterface;
38
38
  if (shouldFocusFirstFocusable && !isTabbedInterface) {
39
39
  this.filterService.menuTabbingService.firstFocusable = this.firstOperatorDropDown;
@@ -75,7 +75,7 @@ export class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent
75
75
  }
76
76
  onShiftTab(e) {
77
77
  e.stopImmediatePropagation();
78
- if ((!this.menuTabbingService || !this.menuTabbingService.isColumnMenu) && this.isFirstDropDown && this.filterService.menuTabbingService.lastFocusable) {
78
+ if (!this.menuTabbingService?.isColumnMenu && this.isFirstDropDown && this.filterService.menuTabbingService.lastFocusable) {
79
79
  e.preventDefault();
80
80
  this.filterService.menuTabbingService.lastFocusable.focus();
81
81
  }