@progress/kendo-angular-treelist 18.2.1-develop.2 → 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 (109) hide show
  1. package/column-menu/column-chooser-item-checked.directive.d.ts +21 -0
  2. package/column-menu/column-chooser.component.d.ts +14 -3
  3. package/column-menu/column-list-kb-nav.service.d.ts +22 -0
  4. package/column-menu/column-list.component.d.ts +20 -5
  5. package/column-menu/column-menu-autosize-all.component.d.ts +39 -0
  6. package/column-menu/column-menu-autosize.component.d.ts +43 -0
  7. package/column-menu/column-menu-chooser.component.d.ts +16 -4
  8. package/column-menu/column-menu-container.component.d.ts +21 -0
  9. package/column-menu/column-menu-expandable-item.interface.d.ts +14 -0
  10. package/column-menu/column-menu-filter.component.d.ts +16 -3
  11. package/column-menu/column-menu-item.component.d.ts +11 -3
  12. package/column-menu/column-menu-item.directive.d.ts +45 -0
  13. package/column-menu/column-menu-settings.interface.d.ts +11 -2
  14. package/column-menu/column-menu.component.d.ts +40 -15
  15. package/column-menu/column-menu.service.d.ts +14 -0
  16. package/column-menu/utils.d.ts +13 -0
  17. package/columns/sort-settings.d.ts +12 -0
  18. package/common/error-messages.d.ts +8 -0
  19. package/common/id.service.d.ts +3 -0
  20. package/common/provider.service.d.ts +3 -1
  21. package/esm2022/column-menu/column-chooser-item-checked.directive.mjs +45 -0
  22. package/esm2022/column-menu/column-chooser.component.mjs +69 -14
  23. package/esm2022/column-menu/column-list-kb-nav.service.mjs +40 -0
  24. package/esm2022/column-menu/column-list.component.mjs +172 -50
  25. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +79 -0
  26. package/esm2022/column-menu/column-menu-autosize.component.mjs +87 -0
  27. package/esm2022/column-menu/column-menu-chooser.component.mjs +44 -12
  28. package/esm2022/column-menu/column-menu-container.component.mjs +58 -0
  29. package/esm2022/column-menu/column-menu-expandable-item.interface.mjs +5 -0
  30. package/esm2022/column-menu/column-menu-filter.component.mjs +58 -25
  31. package/esm2022/column-menu/column-menu-item-base.mjs +2 -1
  32. package/esm2022/column-menu/column-menu-item.component.mjs +34 -5
  33. package/esm2022/column-menu/column-menu-item.directive.mjs +125 -0
  34. package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
  35. package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
  36. package/esm2022/column-menu/column-menu.component.mjs +264 -67
  37. package/esm2022/column-menu/column-menu.service.mjs +18 -2
  38. package/esm2022/column-menu/utils.mjs +21 -1
  39. package/esm2022/common/error-messages.mjs +15 -0
  40. package/esm2022/common/id.service.mjs +9 -0
  41. package/esm2022/common/provider.service.mjs +7 -3
  42. package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +5 -2
  43. package/esm2022/filtering/cell/date-filter-cell.component.mjs +20 -3
  44. package/esm2022/filtering/cell/numeric-filter-cell.component.mjs +17 -3
  45. package/esm2022/filtering/filter-row.component.mjs +1 -1
  46. package/esm2022/filtering/filter.service.mjs +17 -3
  47. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +40 -14
  48. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +47 -17
  49. package/esm2022/filtering/menu/date-filter-menu.component.mjs +27 -7
  50. package/esm2022/filtering/menu/filter-menu-container.component.mjs +83 -31
  51. package/esm2022/filtering/menu/filter-menu-dropdownlist.directive.mjs +44 -0
  52. package/esm2022/filtering/menu/filter-menu-host.directive.mjs +6 -1
  53. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +52 -9
  54. package/esm2022/filtering/menu/filter-menu.component.mjs +111 -16
  55. package/esm2022/filtering/menu/menu-tabbing.service.mjs +22 -0
  56. package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +49 -35
  57. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +37 -7
  58. package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +13 -4
  59. package/esm2022/filtering/menu/string-filter-menu.component.mjs +27 -8
  60. package/esm2022/filtering/operators/after-eq-filter-operator.component.mjs +2 -2
  61. package/esm2022/filtering/operators/after-filter-operator.component.mjs +2 -2
  62. package/esm2022/filtering/operators/before-eq-filter-operator.component.mjs +2 -2
  63. package/esm2022/filtering/operators/before-filter-operator.component.mjs +2 -2
  64. package/esm2022/filtering/operators/contains-filter-operator.component.mjs +1 -1
  65. package/esm2022/filtering/operators/ends-with-filter-operator.component.mjs +1 -1
  66. package/esm2022/filtering/operators/eq-filter-operator.component.mjs +1 -1
  67. package/esm2022/filtering/operators/filter-operator.base.mjs +18 -18
  68. package/esm2022/filtering/operators/gt-filter-operator.component.mjs +1 -1
  69. package/esm2022/filtering/operators/gte-filter-operator.component.mjs +1 -1
  70. package/esm2022/filtering/operators/is-empty-filter-operator.component.mjs +1 -1
  71. package/esm2022/filtering/operators/is-not-empty-filter-operator.component.mjs +1 -1
  72. package/esm2022/filtering/operators/is-not-null-filter-operator.component.mjs +1 -1
  73. package/esm2022/filtering/operators/isnull-filter-operator.component.mjs +1 -1
  74. package/esm2022/filtering/operators/lt-filter-operator.component.mjs +1 -1
  75. package/esm2022/filtering/operators/lte-filter-operator.component.mjs +1 -1
  76. package/esm2022/filtering/operators/neq-filter-operator.component.mjs +1 -1
  77. package/esm2022/filtering/operators/not-contains-filter-operator.component.mjs +1 -1
  78. package/esm2022/filtering/operators/starts-with-filter-operator.component.mjs +1 -1
  79. package/esm2022/localization/messages.mjs +97 -3
  80. package/esm2022/navigation/logical-cell.directive.mjs +4 -1
  81. package/esm2022/navigation/navigation.service.mjs +4 -4
  82. package/esm2022/package-metadata.mjs +2 -2
  83. package/esm2022/rendering/header/header.component.mjs +336 -178
  84. package/esm2022/rendering/table-body.component.mjs +1 -1
  85. package/esm2022/selection/selection.service.mjs +2 -2
  86. package/esm2022/treelist.component.mjs +73 -9
  87. package/fesm2022/progress-kendo-angular-treelist.mjs +2231 -628
  88. package/filtering/cell/date-filter-cell.component.d.ts +4 -0
  89. package/filtering/cell/numeric-filter-cell.component.d.ts +4 -0
  90. package/filtering/filter.service.d.ts +10 -1
  91. package/filtering/menu/boolean-filter-menu.component.d.ts +19 -7
  92. package/filtering/menu/date-filter-menu-input.component.d.ts +10 -3
  93. package/filtering/menu/date-filter-menu.component.d.ts +7 -1
  94. package/filtering/menu/filter-menu-container.component.d.ts +23 -6
  95. package/filtering/menu/filter-menu-dropdownlist.directive.d.ts +19 -0
  96. package/filtering/menu/filter-menu-host.directive.d.ts +3 -1
  97. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +12 -2
  98. package/filtering/menu/filter-menu.component.d.ts +30 -7
  99. package/filtering/menu/menu-tabbing.service.d.ts +18 -0
  100. package/filtering/menu/numeric-filter-menu-input.component.d.ts +12 -26
  101. package/filtering/menu/numeric-filter-menu.component.d.ts +13 -1
  102. package/filtering/menu/string-filter-menu-input.component.d.ts +4 -1
  103. package/filtering/menu/string-filter-menu.component.d.ts +7 -1
  104. package/index.d.ts +1 -0
  105. package/localization/messages.d.ts +79 -3
  106. package/navigation/logical-cell.directive.d.ts +2 -1
  107. package/package.json +18 -18
  108. package/rendering/header/header.component.d.ts +43 -10
  109. package/schematics/ngAdd/index.js +3 -3
@@ -31,6 +31,10 @@ export declare class DateFilterCellComponent extends DateFilterComponent {
31
31
  */
32
32
  showOperators: boolean;
33
33
  constructor(filterService: FilterService, localization: LocalizationService);
34
+ /**
35
+ * @hidden
36
+ */
37
+ messageFor(key: string): string;
34
38
  /**
35
39
  * @hidden
36
40
  */
@@ -42,6 +42,10 @@ export declare class NumericFilterCellComponent extends NumericFilterComponent {
42
42
  */
43
43
  placeholder: string;
44
44
  constructor(filterService: FilterService, localization: LocalizationService);
45
+ /**
46
+ * @hidden
47
+ */
48
+ messageFor(key: string): string;
45
49
  /**
46
50
  * @hidden
47
51
  */
@@ -4,12 +4,17 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Subject } from 'rxjs';
6
6
  import { CompositeFilterDescriptor } from '@progress/kendo-data-query';
7
+ import { MenuTabbingService } from './menu/menu-tabbing.service';
7
8
  import * as i0 from "@angular/core";
8
9
  /**
9
10
  * Represents a service to set the filter descriptor
10
11
  * ([see example]({% slug filter_menu_treelist %})).
11
12
  */
12
13
  export declare class FilterService {
14
+ /**
15
+ * @hidden
16
+ */
17
+ menuTabbingService: MenuTabbingService;
13
18
  /**
14
19
  * Fires when the filter descriptors is set.
15
20
  */
@@ -20,6 +25,10 @@ export declare class FilterService {
20
25
  * @param {CompositeFilterDescriptor} value - The filter descriptor that will be set.
21
26
  */
22
27
  filter(value: CompositeFilterDescriptor): void;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<FilterService, never>;
28
+ /**
29
+ * @hidden
30
+ */
31
+ constructor(menuTabbingService?: MenuTabbingService);
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterService, [{ optional: true; }]>;
24
33
  static ɵprov: i0.ɵɵInjectableDeclaration<FilterService>;
25
34
  }
@@ -2,12 +2,13 @@
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 { ElementRef, Renderer2 } from '@angular/core';
5
+ import { ElementRef } from '@angular/core';
6
6
  import { CompositeFilterDescriptor } from '@progress/kendo-data-query';
7
+ import { RadioButtonComponent } from '@progress/kendo-angular-inputs';
7
8
  import { FilterService } from '../filter.service';
8
9
  import { LocalizationService } from '@progress/kendo-angular-l10n';
9
10
  import { BooleanFilterComponent } from '../boolean-filter.component';
10
- import { DomSanitizer } from '@angular/platform-browser';
11
+ import { MenuTabbingService } from './menu-tabbing.service';
11
12
  import * as i0 from "@angular/core";
12
13
  /**
13
14
  * Represents a Boolean-filter menu component. [See example](slug:filter_menu_treelist#toc-built-in-filter-menu-components).
@@ -26,8 +27,6 @@ import * as i0 from "@angular/core";
26
27
  * ```
27
28
  */
28
29
  export declare class BooleanFilterMenuComponent extends BooleanFilterComponent {
29
- protected renderer: Renderer2;
30
- private domSanitizer;
31
30
  /**
32
31
  * @hidden
33
32
  */
@@ -42,8 +41,17 @@ export declare class BooleanFilterMenuComponent extends BooleanFilterComponent {
42
41
  * The `FilterService` instance which is responsible for handling the changes in the filter descriptor.
43
42
  */
44
43
  filterService: FilterService;
44
+ /**
45
+ * @hidden
46
+ */
47
+ menuTabbingService: MenuTabbingService;
45
48
  idPrefix: string;
46
- constructor(renderer: Renderer2, localization: LocalizationService, domSanitizer: DomSanitizer);
49
+ /**
50
+ * @hidden
51
+ */
52
+ private radioButtons;
53
+ constructor(localization: LocalizationService);
54
+ ngAfterViewInit(): void;
47
55
  /**
48
56
  * @hidden
49
57
  */
@@ -51,15 +59,19 @@ export declare class BooleanFilterMenuComponent extends BooleanFilterComponent {
51
59
  /**
52
60
  * @hidden
53
61
  */
54
- onChange(value: any): void;
62
+ onChange(value: any, input: RadioButtonComponent): void;
55
63
  /**
56
64
  * @hidden
57
65
  */
58
66
  isSelected(radioValue: any): boolean;
67
+ /**
68
+ * @hidden
69
+ */
70
+ onShiftTab(e: Event): void;
59
71
  /**
60
72
  * @hidden
61
73
  */
62
74
  get columnLabel(): string;
63
75
  static ɵfac: i0.ɵɵFactoryDeclaration<BooleanFilterMenuComponent, never>;
64
- static ɵcmp: i0.ɵɵComponentDeclaration<BooleanFilterMenuComponent, "kendo-treelist-boolean-filter-menu", never, { "filter": { "alias": "filter"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; }, {}, never, never, true, never>;
76
+ static ɵcmp: i0.ɵɵComponentDeclaration<BooleanFilterMenuComponent, "kendo-treelist-boolean-filter-menu", never, { "filter": { "alias": "filter"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "menuTabbingService": { "alias": "menuTabbingService"; "required": false; }; }, {}, never, never, true, never>;
65
77
  }
@@ -9,12 +9,15 @@ import { FilterDescriptor, CompositeFilterDescriptor } from '@progress/kendo-dat
9
9
  import { ColumnComponent } from "../../columns/column.component";
10
10
  import { FilterService } from '../filter.service';
11
11
  import { SinglePopupService } from '../../common/single-popup.service';
12
+ import { MenuTabbingService } from './menu-tabbing.service';
13
+ import { LocalizationService } from '@progress/kendo-angular-l10n';
12
14
  import * as i0 from "@angular/core";
13
15
  /**
14
16
  * @hidden
15
17
  */
16
18
  export declare class DateFilterMenuInputComponent implements OnDestroy {
17
19
  private popupService;
20
+ private localization;
18
21
  operators: Array<{
19
22
  text: string;
20
23
  value: string;
@@ -24,6 +27,7 @@ export declare class DateFilterMenuInputComponent implements OnDestroy {
24
27
  operator: string;
25
28
  currentFilter: FilterDescriptor;
26
29
  filterService: FilterService;
30
+ menuTabbingService: MenuTabbingService;
27
31
  format: string;
28
32
  formatPlaceholder: DateInputFormatPlaceholder;
29
33
  placeholder: string;
@@ -33,10 +37,13 @@ export declare class DateFilterMenuInputComponent implements OnDestroy {
33
37
  bottomView: CalendarView;
34
38
  topView: CalendarView;
35
39
  weekNumber: boolean;
40
+ isFirstDropDown: boolean;
36
41
  private subscription;
37
- constructor(popupService: SinglePopupService);
38
- open(picker: DatePickerComponent): void;
42
+ constructor(popupService: SinglePopupService, localization: LocalizationService);
39
43
  ngOnDestroy(): void;
44
+ open(picker: DatePickerComponent): void;
45
+ messageFor(key: string): string;
46
+ get columnLabel(): string;
40
47
  static ɵfac: i0.ɵɵFactoryDeclaration<DateFilterMenuInputComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<DateFilterMenuInputComponent, "kendo-treelist-date-filter-menu-input", never, { "operators": { "alias": "operators"; "required": false; }; "column": { "alias": "column"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "operator": { "alias": "operator"; "required": false; }; "currentFilter": { "alias": "currentFilter"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "format": { "alias": "format"; "required": false; }; "formatPlaceholder": { "alias": "formatPlaceholder"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "bottomView": { "alias": "bottomView"; "required": false; }; "topView": { "alias": "topView"; "required": false; }; "weekNumber": { "alias": "weekNumber"; "required": false; }; }, {}, never, never, true, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateFilterMenuInputComponent, "kendo-treelist-date-filter-menu-input", never, { "operators": { "alias": "operators"; "required": false; }; "column": { "alias": "column"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "operator": { "alias": "operator"; "required": false; }; "currentFilter": { "alias": "currentFilter"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "menuTabbingService": { "alias": "menuTabbingService"; "required": false; }; "format": { "alias": "format"; "required": false; }; "formatPlaceholder": { "alias": "formatPlaceholder"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "bottomView": { "alias": "bottomView"; "required": false; }; "topView": { "alias": "topView"; "required": false; }; "weekNumber": { "alias": "weekNumber"; "required": false; }; "isFirstDropDown": { "alias": "isFirstDropDown"; "required": false; }; }, {}, never, never, true, never>;
42
49
  }
@@ -6,6 +6,7 @@ import { CompositeFilterDescriptor, FilterDescriptor } from '@progress/kendo-dat
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { FilterService } from '../filter.service';
8
8
  import { DateFilterComponent } from '../date-filter.component';
9
+ import { MenuTabbingService } from './menu-tabbing.service';
9
10
  import * as i0 from "@angular/core";
10
11
  /**
11
12
  * Represents a date-filter menu component. [See example](slug:filter_menu_treelist#toc-built-in-filter-menu-components).
@@ -46,11 +47,16 @@ export declare class DateFilterMenuComponent extends DateFilterComponent {
46
47
  * The `FilterService` instance which is responsible for handling the changes in the filter descriptor.
47
48
  */
48
49
  filterService: FilterService;
50
+ /**
51
+ * @hidden
52
+ */
53
+ menuTabbingService: MenuTabbingService;
49
54
  constructor(localization: LocalizationService);
50
55
  get firstFilter(): FilterDescriptor;
51
56
  get secondFilter(): FilterDescriptor;
52
57
  logicChange(value: 'and' | 'or'): void;
58
+ get filterMenuDropDownLabel(): string;
53
59
  protected localizationChange(): void;
54
60
  static ɵfac: i0.ɵɵFactoryDeclaration<DateFilterMenuComponent, never>;
55
- static ɵcmp: i0.ɵɵComponentDeclaration<DateFilterMenuComponent, "kendo-treelist-date-filter-menu", never, { "filter": { "alias": "filter"; "required": false; }; "extra": { "alias": "extra"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; }, {}, never, never, true, never>;
61
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateFilterMenuComponent, "kendo-treelist-date-filter-menu", never, { "filter": { "alias": "filter"; "required": false; }; "extra": { "alias": "extra"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "menuTabbingService": { "alias": "menuTabbingService"; "required": false; }; }, {}, never, never, true, never>;
56
62
  }
@@ -2,16 +2,17 @@
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 { OnInit, EventEmitter, OnDestroy, ChangeDetectorRef } from '@angular/core';
5
+ import { OnInit, EventEmitter, OnDestroy, ChangeDetectorRef, AfterViewChecked } from '@angular/core';
6
6
  import { CompositeFilterDescriptor } from "@progress/kendo-data-query";
7
7
  import { ColumnComponent } from "../../columns/column.component";
8
8
  import { FilterService } from "../filter.service";
9
9
  import { LocalizationService } from '@progress/kendo-angular-l10n';
10
+ import { MenuTabbingService } from './menu-tabbing.service';
10
11
  import * as i0 from "@angular/core";
11
12
  /**
12
13
  * @hidden
13
14
  */
14
- export declare class FilterMenuContainerComponent implements OnInit, OnDestroy {
15
+ export declare class FilterMenuContainerComponent implements AfterViewChecked, OnInit, OnDestroy {
15
16
  protected parentService: FilterService;
16
17
  childService: FilterService;
17
18
  protected localization: LocalizationService;
@@ -22,31 +23,47 @@ export declare class FilterMenuContainerComponent implements OnInit, OnDestroy {
22
23
  * @type {ColumnComponent}
23
24
  */
24
25
  column: ColumnComponent;
25
- get filter(): CompositeFilterDescriptor;
26
+ /**
27
+ * @hidden
28
+ */
29
+ isLast: boolean;
30
+ /**
31
+ * @hidden
32
+ */
33
+ isExpanded: boolean;
34
+ /**
35
+ * @hidden
36
+ */
37
+ menuTabbingService: MenuTabbingService;
26
38
  /**
27
39
  * The current root filter.
28
40
  * @type {CompositeFilterDescriptor}
29
41
  */
30
42
  set filter(value: CompositeFilterDescriptor);
43
+ get filter(): CompositeFilterDescriptor;
31
44
  /**
32
45
  * @hidden
33
46
  */
34
47
  actionsClass: string;
35
48
  get childFilter(): CompositeFilterDescriptor;
49
+ private resetButton;
50
+ private filterButton;
36
51
  private _childFilter;
37
52
  private subscription;
38
53
  private _templateContext;
39
54
  private _filter;
40
- constructor(parentService: FilterService, childService: FilterService, localization: LocalizationService, cd: ChangeDetectorRef);
55
+ constructor(parentService: FilterService, childService: FilterService, localization: LocalizationService, cd: ChangeDetectorRef, menuTabbingService: MenuTabbingService);
41
56
  ngOnInit(): void;
57
+ ngAfterViewChecked(): void;
42
58
  ngOnDestroy(): void;
43
59
  get disabled(): boolean;
44
60
  get templateContext(): any;
45
61
  get hasTemplate(): boolean;
46
62
  submit(): boolean;
47
63
  reset(): void;
64
+ onTab(e: Event, buttonType: string): void;
48
65
  get clearText(): string;
49
66
  get filterText(): string;
50
- static ɵfac: i0.ɵɵFactoryDeclaration<FilterMenuContainerComponent, [{ skipSelf: true; }, null, null, null]>;
51
- static ɵcmp: i0.ɵɵComponentDeclaration<FilterMenuContainerComponent, "kendo-treelist-filter-menu-container", never, { "column": { "alias": "column"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "actionsClass": { "alias": "actionsClass"; "required": false; }; }, { "close": "close"; }, never, never, true, never>;
67
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterMenuContainerComponent, [{ skipSelf: true; }, null, null, null, null]>;
68
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilterMenuContainerComponent, "kendo-treelist-filter-menu-container", never, { "column": { "alias": "column"; "required": false; }; "isLast": { "alias": "isLast"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "menuTabbingService": { "alias": "menuTabbingService"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "actionsClass": { "alias": "actionsClass"; "required": false; }; }, { "close": "close"; }, never, never, true, never>;
52
69
  }
@@ -0,0 +1,19 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * @hidden
9
+ */
10
+ export declare class FilterMenuDropDownListDirective {
11
+ private host;
12
+ filterMenuDropDownLabel: string;
13
+ constructor(host: DropDownListComponent);
14
+ ngAfterViewInit(): void;
15
+ ngOnDestroy(): void;
16
+ private keydownHandler;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterMenuDropDownListDirective, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FilterMenuDropDownListDirective, "[kendoFilterMenuDropDown]", never, { "filterMenuDropDownLabel": { "alias": "filterMenuDropDownLabel"; "required": false; }; }, {}, never, never, true, never>;
19
+ }
@@ -6,15 +6,17 @@ import { Type, ViewContainerRef, ComponentFactoryResolver } from "@angular/core"
6
6
  import { FilterHostDirective, Context } from "../filter-host.directive";
7
7
  import { FilterComponent } from "../filter-component.interface";
8
8
  import { FilterService } from "../filter.service";
9
+ import { MenuTabbingService } from "./menu-tabbing.service";
9
10
  import * as i0 from "@angular/core";
10
11
  /**
11
12
  * @hidden
12
13
  */
13
14
  export declare class FilterMenuHostDirective extends FilterHostDirective {
14
15
  filterService: FilterService;
16
+ menuTabbingService: MenuTabbingService;
15
17
  constructor(host: ViewContainerRef, resolver: ComponentFactoryResolver);
16
18
  protected componentType(): Type<FilterComponent>;
17
19
  protected initComponent(ctx: Context): void;
18
20
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterMenuHostDirective, never>;
19
- static ɵdir: i0.ɵɵDirectiveDeclaration<FilterMenuHostDirective, "[kendoFilterMenuHost]", never, { "filterService": { "alias": "filterService"; "required": false; }; }, {}, never, never, true, never>;
21
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FilterMenuHostDirective, "[kendoFilterMenuHost]", never, { "filterService": { "alias": "filterService"; "required": false; }; "menuTabbingService": { "alias": "menuTabbingService"; "required": false; }; }, {}, never, never, true, never>;
20
22
  }
@@ -3,20 +3,28 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { CompositeFilterDescriptor, FilterDescriptor } from "@progress/kendo-data-query";
6
+ import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
6
7
  import { FilterService } from '../filter.service';
7
8
  import { FilterInputWrapperComponent } from "../filter-input-wrapper.component";
9
+ import { MenuTabbingService } from './menu-tabbing.service';
10
+ import { ContextService } from '../../common/provider.service';
8
11
  import * as i0 from "@angular/core";
9
12
  /**
10
13
  * @hidden
11
14
  */
12
15
  export declare class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent {
16
+ private ctx;
13
17
  filterService: FilterService;
18
+ isFirstDropDown: boolean;
19
+ menuTabbingService: MenuTabbingService;
20
+ firstOperatorDropDown: DropDownListComponent;
14
21
  private _currentFilter;
15
22
  /**
16
23
  * @hidden
17
24
  */
18
25
  get hostClasses(): boolean;
19
- constructor();
26
+ constructor(ctx: ContextService);
27
+ ngAfterViewInit(): void;
20
28
  operatorChange(dataItem: any): void;
21
29
  protected filterChange(filter: CompositeFilterDescriptor): void;
22
30
  /**
@@ -33,6 +41,8 @@ export declare class FilterMenuInputWrapperComponent extends FilterInputWrapperC
33
41
  set currentFilter(value: FilterDescriptor);
34
42
  protected updateFilter(filter: FilterDescriptor): CompositeFilterDescriptor;
35
43
  onChange(value: any): void;
44
+ onShiftTab(e: Event): void;
45
+ get filterMenuDropDownLabel(): string;
36
46
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterMenuInputWrapperComponent, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<FilterMenuInputWrapperComponent, "kendo-treelist-filter-menu-input-wrapper", never, { "filterService": { "alias": "filterService"; "required": false; }; "currentFilter": { "alias": "currentFilter"; "required": false; }; }, {}, never, ["*"], true, never>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilterMenuInputWrapperComponent, "kendo-treelist-filter-menu-input-wrapper", never, { "filterService": { "alias": "filterService"; "required": false; }; "isFirstDropDown": { "alias": "isFirstDropDown"; "required": false; }; "menuTabbingService": { "alias": "menuTabbingService"; "required": false; }; "currentFilter": { "alias": "currentFilter"; "required": false; }; }, {}, never, ["*"], true, never>;
38
48
  }
@@ -2,12 +2,16 @@
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 { ChangeDetectorRef, ElementRef, Renderer2, TemplateRef } from '@angular/core';
5
6
  import { CompositeFilterDescriptor } from "@progress/kendo-data-query";
6
- import { LocalizationService } from "@progress/kendo-angular-l10n";
7
+ import { PopupRef } from '@progress/kendo-angular-popup';
7
8
  import { SVGIcon } from '@progress/kendo-svg-icons';
8
9
  import { FilterService } from "../filter.service";
9
10
  import { ColumnComponent } from '../../columns/column.component';
10
11
  import { SinglePopupService } from '../../common/single-popup.service';
12
+ import { ContextService } from '../../common/provider.service';
13
+ import { NavigationService } from '../../navigation/navigation.service';
14
+ import { IdService } from '../../common/id.service';
11
15
  import * as i0 from "@angular/core";
12
16
  /**
13
17
  * @hidden
@@ -15,7 +19,11 @@ import * as i0 from "@angular/core";
15
19
  export declare class FilterMenuComponent {
16
20
  protected filterService: FilterService;
17
21
  protected popupService: SinglePopupService;
18
- protected localization: LocalizationService;
22
+ protected ctx: ContextService;
23
+ protected navigationService: NavigationService;
24
+ protected renderer: Renderer2;
25
+ protected cdr: ChangeDetectorRef;
26
+ protected idService: IdService;
19
27
  filterIcon: SVGIcon;
20
28
  /**
21
29
  * The column with which the filter is associated.
@@ -27,12 +35,27 @@ export declare class FilterMenuComponent {
27
35
  * @type {CompositeFilterDescriptor}
28
36
  */
29
37
  filter: CompositeFilterDescriptor;
30
- filterLabel: string;
31
- private popupRef;
32
- constructor(filterService: FilterService, popupService: SinglePopupService, localization: LocalizationService);
38
+ anchor: ElementRef;
39
+ template: TemplateRef<any>;
40
+ tabIndex: string;
41
+ popupRef: PopupRef;
42
+ private popupSubs;
43
+ constructor(filterService: FilterService, popupService: SinglePopupService, ctx: ContextService, navigationService: NavigationService, renderer: Renderer2, cdr: ChangeDetectorRef, idService: IdService);
44
+ ngOnDestroy(): void;
33
45
  get hasFilters(): boolean;
46
+ /**
47
+ * @hidden
48
+ */
49
+ get filterLabel(): string;
50
+ /**
51
+ * @hidden
52
+ */
53
+ get isNavigable(): boolean;
34
54
  toggle(anchor: any, template: any): boolean;
35
55
  close(): void;
36
- static ɵfac: i0.ɵɵFactoryDeclaration<FilterMenuComponent, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<FilterMenuComponent, "kendo-treelist-filter-menu", never, { "column": { "alias": "column"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; }, {}, never, never, true, never>;
56
+ private updateAria;
57
+ private cleanUp;
58
+ private focusRoot;
59
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterMenuComponent, [null, null, null, null, null, null, { optional: true; }]>;
60
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilterMenuComponent, "kendo-treelist-filter-menu", never, { "column": { "alias": "column"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, never, true, never>;
38
61
  }
@@ -0,0 +1,18 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * @hidden
8
+ */
9
+ export declare class MenuTabbingService {
10
+ firstFocusable: any;
11
+ lastFocusable: any;
12
+ isColumnMenu: boolean;
13
+ isPopupOpen: boolean;
14
+ lastMenuItem: any;
15
+ isTabbedInterface: boolean;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<MenuTabbingService, never>;
17
+ static ɵprov: i0.ɵɵInjectableDeclaration<MenuTabbingService>;
18
+ }
@@ -5,11 +5,14 @@
5
5
  import { FilterDescriptor, CompositeFilterDescriptor } from '@progress/kendo-data-query';
6
6
  import { ColumnComponent } from "../../columns/column.component";
7
7
  import { FilterService } from '../filter.service';
8
+ import { MenuTabbingService } from './menu-tabbing.service';
9
+ import { ContextService } from '../../common/provider.service';
8
10
  import * as i0 from "@angular/core";
9
11
  /**
10
12
  * @hidden
11
13
  */
12
14
  export declare class NumericFilterMenuInputComponent {
15
+ private ctx;
13
16
  operators: Array<{
14
17
  text: string;
15
18
  value: string;
@@ -20,38 +23,21 @@ export declare class NumericFilterMenuInputComponent {
20
23
  currentFilter: FilterDescriptor;
21
24
  filterService: FilterService;
22
25
  placeholder: string;
23
- /**
24
- * Specifies the value which is used to increment or decrement the component value.
25
- * @type {numeric}
26
- */
26
+ filterDelay: number;
27
+ isFirstDropDown: boolean;
28
+ menuTabbingService: MenuTabbingService;
27
29
  step: number;
28
- /**
29
- * Specifies the smallest value that is valid.
30
- * @type {number}
31
- */
32
30
  min: number;
33
- /**
34
- * Specifies the greatest value that is valid.
35
- * @type {number}
36
- */
37
31
  max: number;
38
- /**
39
- * Specifies whether the **Up** and **Down** spin buttons will be rendered.
40
- * @type {boolean}
41
- */
42
32
  spinners: boolean;
43
- /**
44
- * Specifies the number precision tat is applied to the component value when it is focused.
45
- * If the user enters a number with a greater precision than is currently configured, the component value is rounded.
46
- *
47
- * @type {number}
48
- */
49
33
  decimals: number;
34
+ format: string;
35
+ constructor(ctx: ContextService);
36
+ messageFor(key: string): string;
50
37
  /**
51
- * Specifies the number format that is used when the component is not focused.
52
- * By default, the `column.format` value is used (if set).
38
+ * @hidden
53
39
  */
54
- format: string;
40
+ get columnLabel(): string;
55
41
  static ɵfac: i0.ɵɵFactoryDeclaration<NumericFilterMenuInputComponent, never>;
56
- static ɵcmp: i0.ɵɵComponentDeclaration<NumericFilterMenuInputComponent, "kendo-treelist-numeric-filter-menu-input", never, { "operators": { "alias": "operators"; "required": false; }; "column": { "alias": "column"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "operator": { "alias": "operator"; "required": false; }; "currentFilter": { "alias": "currentFilter"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "step": { "alias": "step"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "spinners": { "alias": "spinners"; "required": false; }; "decimals": { "alias": "decimals"; "required": false; }; "format": { "alias": "format"; "required": false; }; }, {}, never, never, true, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<NumericFilterMenuInputComponent, "kendo-treelist-numeric-filter-menu-input", never, { "operators": { "alias": "operators"; "required": false; }; "column": { "alias": "column"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "operator": { "alias": "operator"; "required": false; }; "currentFilter": { "alias": "currentFilter"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "filterDelay": { "alias": "filterDelay"; "required": false; }; "isFirstDropDown": { "alias": "isFirstDropDown"; "required": false; }; "menuTabbingService": { "alias": "menuTabbingService"; "required": false; }; "step": { "alias": "step"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "spinners": { "alias": "spinners"; "required": false; }; "decimals": { "alias": "decimals"; "required": false; }; "format": { "alias": "format"; "required": false; }; }, {}, never, never, true, never>;
57
43
  }
@@ -6,6 +6,7 @@ import { CompositeFilterDescriptor, FilterDescriptor } from '@progress/kendo-dat
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { FilterService } from '../filter.service';
8
8
  import { NumericFilterComponent } from '../numeric-filter.component';
9
+ import { MenuTabbingService } from './menu-tabbing.service';
9
10
  import * as i0 from "@angular/core";
10
11
  /**
11
12
  * Represents a numeric-filter menu component. [See example](slug:filter_menu_treelist#toc-built-in-filter-menu-components).
@@ -46,6 +47,12 @@ export declare class NumericFilterMenuComponent extends NumericFilterComponent {
46
47
  * The `FilterService` instance which is responsible for handling the changes in the filter descriptor.
47
48
  */
48
49
  filterService: FilterService;
50
+ /**
51
+ * Determines the delay (in milliseconds) before creating a filter descriptor based on the value. A value of 0 indicates no delay. The default value is 500.
52
+ *
53
+ * @default 500
54
+ */
55
+ filterDelay: number;
49
56
  /**
50
57
  * The placeholder text for the filter input.
51
58
  * @type {string}
@@ -56,11 +63,16 @@ export declare class NumericFilterMenuComponent extends NumericFilterComponent {
56
63
  * @type {string}
57
64
  */
58
65
  extraPlaceholder: string;
66
+ /**
67
+ * @hidden
68
+ */
69
+ menuTabbingService: MenuTabbingService;
59
70
  constructor(localization: LocalizationService);
60
71
  get firstFilter(): FilterDescriptor;
61
72
  get secondFilter(): FilterDescriptor;
62
73
  logicChange(value: 'and' | 'or'): void;
63
74
  protected localizationChange(): void;
75
+ get filterMenuDropDownLabel(): string;
64
76
  static ɵfac: i0.ɵɵFactoryDeclaration<NumericFilterMenuComponent, never>;
65
- static ɵcmp: i0.ɵɵComponentDeclaration<NumericFilterMenuComponent, "kendo-treelist-numeric-filter-menu", never, { "filter": { "alias": "filter"; "required": false; }; "extra": { "alias": "extra"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "extraPlaceholder": { "alias": "extraPlaceholder"; "required": false; }; }, {}, never, never, true, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<NumericFilterMenuComponent, "kendo-treelist-numeric-filter-menu", never, { "filter": { "alias": "filter"; "required": false; }; "extra": { "alias": "extra"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "filterDelay": { "alias": "filterDelay"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "extraPlaceholder": { "alias": "extraPlaceholder"; "required": false; }; "menuTabbingService": { "alias": "menuTabbingService"; "required": false; }; }, {}, never, never, true, never>;
66
78
  }
@@ -6,6 +6,7 @@ import { FilterDescriptor, CompositeFilterDescriptor } from '@progress/kendo-dat
6
6
  import { ColumnComponent } from "../../columns/column.component";
7
7
  import { FilterService } from '../filter.service';
8
8
  import { LocalizationService } from '@progress/kendo-angular-l10n';
9
+ import { MenuTabbingService } from './menu-tabbing.service';
9
10
  import * as i0 from "@angular/core";
10
11
  /**
11
12
  * @hidden
@@ -22,8 +23,10 @@ export declare class StringFilterMenuInputComponent {
22
23
  currentFilter: FilterDescriptor;
23
24
  filterService: FilterService;
24
25
  placeholder: string;
26
+ isFirstDropDown: boolean;
27
+ menuTabbingService: MenuTabbingService;
25
28
  constructor(localization: LocalizationService);
26
29
  get columnLabel(): string;
27
30
  static ɵfac: i0.ɵɵFactoryDeclaration<StringFilterMenuInputComponent, never>;
28
- static ɵcmp: i0.ɵɵComponentDeclaration<StringFilterMenuInputComponent, "kendo-treelist-string-filter-menu-input", never, { "operators": { "alias": "operators"; "required": false; }; "column": { "alias": "column"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "operator": { "alias": "operator"; "required": false; }; "currentFilter": { "alias": "currentFilter"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, {}, never, never, true, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<StringFilterMenuInputComponent, "kendo-treelist-string-filter-menu-input", never, { "operators": { "alias": "operators"; "required": false; }; "column": { "alias": "column"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "operator": { "alias": "operator"; "required": false; }; "currentFilter": { "alias": "currentFilter"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "isFirstDropDown": { "alias": "isFirstDropDown"; "required": false; }; "menuTabbingService": { "alias": "menuTabbingService"; "required": false; }; }, {}, never, never, true, never>;
29
32
  }
@@ -6,6 +6,7 @@ import { CompositeFilterDescriptor, FilterDescriptor } from '@progress/kendo-dat
6
6
  import { StringFilterComponent } from '../string-filter.component';
7
7
  import { FilterService } from '../filter.service';
8
8
  import { LocalizationService } from '@progress/kendo-angular-l10n';
9
+ import { MenuTabbingService } from './menu-tabbing.service';
9
10
  import * as i0 from "@angular/core";
10
11
  /**
11
12
  * Represents a string-filter menu component.
@@ -58,11 +59,16 @@ export declare class StringFilterMenuComponent extends StringFilterComponent {
58
59
  * @type {string}
59
60
  */
60
61
  extraPlaceholder: string;
62
+ /**
63
+ * @hidden
64
+ */
65
+ menuTabbingService: MenuTabbingService;
61
66
  constructor(localization: LocalizationService);
62
67
  get firstFilter(): FilterDescriptor;
63
68
  get secondFilter(): FilterDescriptor;
64
69
  logicChange(value: 'and' | 'or'): void;
65
70
  protected localizationChange(): void;
71
+ get filterMenuDropDownLabel(): string;
66
72
  static ɵfac: i0.ɵɵFactoryDeclaration<StringFilterMenuComponent, never>;
67
- static ɵcmp: i0.ɵɵComponentDeclaration<StringFilterMenuComponent, "kendo-treelist-string-filter-menu", never, { "filter": { "alias": "filter"; "required": false; }; "extra": { "alias": "extra"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "extraPlaceholder": { "alias": "extraPlaceholder"; "required": false; }; }, {}, never, never, true, never>;
73
+ static ɵcmp: i0.ɵɵComponentDeclaration<StringFilterMenuComponent, "kendo-treelist-string-filter-menu", never, { "filter": { "alias": "filter"; "required": false; }; "extra": { "alias": "extra"; "required": false; }; "filterService": { "alias": "filterService"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "extraPlaceholder": { "alias": "extraPlaceholder"; "required": false; }; "menuTabbingService": { "alias": "menuTabbingService"; "required": false; }; }, {}, never, never, true, never>;
68
74
  }
package/index.d.ts CHANGED
@@ -120,6 +120,7 @@ export { ColumnMenuSettings } from './column-menu/column-menu-settings.interface
120
120
  export { ColumnVisibilityChangeEvent } from './column-menu/column-visibility-change-event';
121
121
  export { ColumnMenuComponent } from './column-menu/column-menu.component';
122
122
  export { ColumnMenuService } from './column-menu/column-menu.service';
123
+ export { ExpandableColumnMenuItem } from './column-menu/column-menu-expandable-item.interface';
123
124
  export { ColumnInfoService } from './common/column-info.service';
124
125
  export { SinglePopupService, PopupCloseEvent } from './common/single-popup.service';
125
126
  export { ScrollRequest } from './scrolling/scroll-request.service';