@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
@@ -4,12 +4,13 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, Input } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { DatePickerComponent } from '@progress/kendo-angular-dateinputs';
7
+ import { DatePickerComponent, DatePickerCustomMessagesComponent } from '@progress/kendo-angular-dateinputs';
8
8
  import { FilterService } from '../filter.service';
9
9
  import { DateFilterComponent } from '../date-filter.component';
10
10
  import { replaceMessagePlaceholder } from '../../utils';
11
11
  import { FilterInputDirective } from '../filter-input.directive';
12
12
  import { FilterCellWrapperComponent } from './filter-cell-wrapper.component';
13
+ import { FocusableDirective } from '../../navigation/focusable.directive';
13
14
  import * as i0 from "@angular/core";
14
15
  import * as i1 from "../filter.service";
15
16
  import * as i2 from "@progress/kendo-angular-l10n";
@@ -41,6 +42,12 @@ export class DateFilterCellComponent extends DateFilterComponent {
41
42
  super(filterService, localization);
42
43
  this.localization = localization;
43
44
  }
45
+ /**
46
+ * @hidden
47
+ */
48
+ messageFor(key) {
49
+ return this.localization.get(key);
50
+ }
44
51
  /**
45
52
  * @hidden
46
53
  */
@@ -60,6 +67,7 @@ export class DateFilterCellComponent extends DateFilterComponent {
60
67
  >
61
68
  <kendo-datepicker
62
69
  kendoFilterInput
70
+ kendoTreeListFocusable
63
71
  [value]="currentFilter?.value"
64
72
  [format]="format"
65
73
  [columnLabel]="columnLabel"
@@ -72,9 +80,13 @@ export class DateFilterCellComponent extends DateFilterComponent {
72
80
  [max]="max"
73
81
  [weekNumber]="weekNumber"
74
82
  >
83
+ <kendo-datepicker-messages
84
+ [toggle]="messageFor('filterDateToggle')"
85
+ [today]="messageFor('filterDateToday')"
86
+ ></kendo-datepicker-messages>
75
87
  </kendo-datepicker>
76
88
  </kendo-treelist-filter-wrapper-cell>
77
- `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-treelist-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", "column", "value"] }] });
89
+ `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-treelist-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", "column", "value"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
78
90
  }
79
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterCellComponent, decorators: [{
80
92
  type: Component,
@@ -90,6 +102,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
90
102
  >
91
103
  <kendo-datepicker
92
104
  kendoFilterInput
105
+ kendoTreeListFocusable
93
106
  [value]="currentFilter?.value"
94
107
  [format]="format"
95
108
  [columnLabel]="columnLabel"
@@ -102,11 +115,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
102
115
  [max]="max"
103
116
  [weekNumber]="weekNumber"
104
117
  >
118
+ <kendo-datepicker-messages
119
+ [toggle]="messageFor('filterDateToggle')"
120
+ [today]="messageFor('filterDateToday')"
121
+ ></kendo-datepicker-messages>
105
122
  </kendo-datepicker>
106
123
  </kendo-treelist-filter-wrapper-cell>
107
124
  `,
108
125
  standalone: true,
109
- imports: [FilterCellWrapperComponent, DatePickerComponent, FilterInputDirective]
126
+ imports: [FilterCellWrapperComponent, DatePickerComponent, FilterInputDirective, FocusableDirective, DatePickerCustomMessagesComponent]
110
127
  }]
111
128
  }], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.LocalizationService }]; }, propDecorators: { showOperators: [{
112
129
  type: Input
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, Input } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { NumericTextBoxComponent } from '@progress/kendo-angular-inputs';
7
+ import { NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent } from '@progress/kendo-angular-inputs';
8
8
  import { FilterService } from '../filter.service';
9
9
  import { NumericFilterComponent } from '../numeric-filter.component';
10
10
  import { replaceMessagePlaceholder } from '../../utils';
@@ -53,6 +53,12 @@ export class NumericFilterCellComponent extends NumericFilterComponent {
53
53
  super(filterService, localization);
54
54
  this.localization = localization;
55
55
  }
56
+ /**
57
+ * @hidden
58
+ */
59
+ messageFor(key) {
60
+ return this.localization.get(key);
61
+ }
56
62
  /**
57
63
  * @hidden
58
64
  */
@@ -83,9 +89,13 @@ export class NumericFilterCellComponent extends NumericFilterComponent {
83
89
  [max]="max"
84
90
  [step]="step"
85
91
  [placeholder]="placeholder">
92
+ <kendo-numerictextbox-messages
93
+ [increment]="messageFor('filterNumericIncrement')"
94
+ [decrement]="messageFor('filterNumericDecrement')"
95
+ ></kendo-numerictextbox-messages>
86
96
  </kendo-numerictextbox>
87
97
  </kendo-treelist-filter-wrapper-cell>
88
- `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-treelist-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: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
98
+ `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-treelist-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: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }, { kind: "component", type: NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }] });
89
99
  }
90
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumericFilterCellComponent, decorators: [{
91
101
  type: Component,
@@ -112,11 +122,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
112
122
  [max]="max"
113
123
  [step]="step"
114
124
  [placeholder]="placeholder">
125
+ <kendo-numerictextbox-messages
126
+ [increment]="messageFor('filterNumericIncrement')"
127
+ [decrement]="messageFor('filterNumericDecrement')"
128
+ ></kendo-numerictextbox-messages>
115
129
  </kendo-numerictextbox>
116
130
  </kendo-treelist-filter-wrapper-cell>
117
131
  `,
118
132
  standalone: true,
119
- imports: [FilterCellWrapperComponent, NumericTextBoxComponent, FocusableDirective, FilterInputDirective]
133
+ imports: [FilterCellWrapperComponent, NumericTextBoxComponent, FocusableDirective, FilterInputDirective, NumericTextBoxCustomMessagesComponent]
120
134
  }]
121
135
  }], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.LocalizationService }]; }, propDecorators: { filterDelay: [{
122
136
  type: Input
@@ -39,7 +39,7 @@ export class FilterRowComponent {
39
39
  [column]="getColumnComponent(column)"
40
40
  [colIndex]="columnIndex"
41
41
  ></td>
42
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterCellComponent, selector: "[kendoTreeListFilterCell]", inputs: ["column", "filter"] }, { kind: "directive", type: LogicalCellDirective, selector: "[kendoTreeListLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "column", "colIndex", "colSpan", "rowSpan", "dataRowIndex", "dataItem", "expandable"] }] });
42
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterCellComponent, selector: "[kendoTreeListFilterCell]", inputs: ["column", "filter"] }, { kind: "directive", type: LogicalCellDirective, selector: "[kendoTreeListLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "column", "colIndex", "colSpan", "rowSpan", "dataRowIndex", "dataItem", "expandable", "headerLabelText"] }] });
43
43
  }
44
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterRowComponent, decorators: [{
45
45
  type: Component,
@@ -2,14 +2,20 @@
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 { Injectable } from '@angular/core';
5
+ import { Injectable, Optional } from '@angular/core';
6
6
  import { Subject } from 'rxjs';
7
+ import { MenuTabbingService } from './menu/menu-tabbing.service';
7
8
  import * as i0 from "@angular/core";
9
+ import * as i1 from "./menu/menu-tabbing.service";
8
10
  /**
9
11
  * Represents a service to set the filter descriptor
10
12
  * ([see example]({% slug filter_menu_treelist %})).
11
13
  */
12
14
  export class FilterService {
15
+ /**
16
+ * @hidden
17
+ */
18
+ menuTabbingService;
13
19
  /**
14
20
  * Fires when the filter descriptors is set.
15
21
  */
@@ -22,9 +28,17 @@ export class FilterService {
22
28
  filter(value) {
23
29
  this.changes.next(value);
24
30
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
31
+ /**
32
+ * @hidden
33
+ */
34
+ constructor(menuTabbingService) {
35
+ this.menuTabbingService = menuTabbingService;
36
+ }
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterService, deps: [{ token: i1.MenuTabbingService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
26
38
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterService });
27
39
  }
28
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterService, decorators: [{
29
41
  type: Injectable
30
- }] });
42
+ }], ctorParameters: function () { return [{ type: i1.MenuTabbingService, decorators: [{
43
+ type: Optional
44
+ }] }]; } });
@@ -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 { Component, Input, HostBinding, ViewChild, ElementRef, Renderer2 } from '@angular/core';
5
+ import { Component, Input, HostBinding, ViewChild, ElementRef, ViewChildren, QueryList } from '@angular/core';
6
6
  import { NgFor } from '@angular/common';
7
7
  import { guid } from '@progress/kendo-angular-common';
8
8
  import { RadioButtonComponent } from '@progress/kendo-angular-inputs';
@@ -10,11 +10,10 @@ import { FilterService } from '../filter.service';
10
10
  import { LocalizationService } from '@progress/kendo-angular-l10n';
11
11
  import { BooleanFilterComponent } from '../boolean-filter.component';
12
12
  import { replaceMessagePlaceholder } from '../../utils';
13
- import { DomSanitizer } from '@angular/platform-browser';
14
13
  import { BooleanFilterRadioButtonDirective } from './filter-radio-button.directive';
14
+ import { MenuTabbingService } from './menu-tabbing.service';
15
15
  import * as i0 from "@angular/core";
16
16
  import * as i1 from "@progress/kendo-angular-l10n";
17
- import * as i2 from "@angular/platform-browser";
18
17
  /**
19
18
  * Represents a Boolean-filter menu component. [See example](slug:filter_menu_treelist#toc-built-in-filter-menu-components).
20
19
  *
@@ -32,8 +31,6 @@ import * as i2 from "@angular/platform-browser";
32
31
  * ```
33
32
  */
34
33
  export class BooleanFilterMenuComponent extends BooleanFilterComponent {
35
- renderer;
36
- domSanitizer;
37
34
  /**
38
35
  * @hidden
39
36
  */
@@ -50,11 +47,23 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
50
47
  * The `FilterService` instance which is responsible for handling the changes in the filter descriptor.
51
48
  */
52
49
  filterService;
50
+ /**
51
+ * @hidden
52
+ */
53
+ menuTabbingService;
53
54
  idPrefix = guid();
54
- constructor(renderer, localization, domSanitizer) {
55
+ /**
56
+ * @hidden
57
+ */
58
+ radioButtons;
59
+ constructor(localization) {
55
60
  super(null, localization);
56
- this.renderer = renderer;
57
- this.domSanitizer = domSanitizer;
61
+ }
62
+ ngAfterViewInit() {
63
+ this.filterService.menuTabbingService.firstFocusable = this.radioButtons.first.radioButtonEl;
64
+ if (!this.menuTabbingService?.isTabbedInterface) {
65
+ this.radioButtons.first.radioButtonEl.focus();
66
+ }
58
67
  }
59
68
  /**
60
69
  * @hidden
@@ -65,12 +74,13 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
65
74
  /**
66
75
  * @hidden
67
76
  */
68
- onChange(value) {
77
+ onChange(value, input) {
69
78
  this.applyFilter(this.updateFilter({
70
79
  field: this.column.field,
71
80
  operator: "eq",
72
81
  value: value
73
82
  }));
83
+ this.filterService.menuTabbingService.firstFocusable = input.hostElement.nativeElement;
74
84
  }
75
85
  /**
76
86
  * @hidden
@@ -78,6 +88,15 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
78
88
  isSelected(radioValue) {
79
89
  return this.filtersByField(this.column.field).some(({ value }) => value === radioValue);
80
90
  }
91
+ /**
92
+ * @hidden
93
+ */
94
+ onShiftTab(e) {
95
+ if (!this.menuTabbingService?.isColumnMenu && this.filterService.menuTabbingService.lastFocusable) {
96
+ e.preventDefault();
97
+ this.filterService.menuTabbingService.lastFocusable.focus();
98
+ }
99
+ }
81
100
  /**
82
101
  * @hidden
83
102
  */
@@ -86,8 +105,8 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
86
105
  const columnName = this.column.title || this.column.field;
87
106
  return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
88
107
  }
89
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanFilterMenuComponent, deps: [{ token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
90
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BooleanFilterMenuComponent, isStandalone: true, selector: "kendo-treelist-boolean-filter-menu", inputs: { filter: "filter", filterService: "filterService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, viewQueries: [{ propertyName: "inputElem", first: true, predicate: ["inputElem"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
108
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanFilterMenuComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
109
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BooleanFilterMenuComponent, isStandalone: true, selector: "kendo-treelist-boolean-filter-menu", inputs: { filter: "filter", filterService: "filterService", menuTabbingService: "menuTabbingService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, viewQueries: [{ propertyName: "inputElem", first: true, predicate: ["inputElem"], descendants: true }, { propertyName: "radioButtons", predicate: BooleanFilterRadioButtonDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
91
110
  <ul class="k-radio-list k-reset">
92
111
  <li *ngFor="let item of items">
93
112
  <kendo-radiobutton
@@ -97,7 +116,8 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
97
116
  [name]="idPrefix"
98
117
  [checked]="isSelected(item.value)"
99
118
  [attr.id]="radioId(item.value)"
100
- (checkedChange)="onChange(item.value)"
119
+ (change)="onChange(item.value, inputElem)"
120
+ (keydown.shift.tab)="onShiftTab($event)"
101
121
  ></kendo-radiobutton>
102
122
  <label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
103
123
  </li>
@@ -118,7 +138,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
118
138
  [name]="idPrefix"
119
139
  [checked]="isSelected(item.value)"
120
140
  [attr.id]="radioId(item.value)"
121
- (checkedChange)="onChange(item.value)"
141
+ (change)="onChange(item.value, inputElem)"
142
+ (keydown.shift.tab)="onShiftTab($event)"
122
143
  ></kendo-radiobutton>
123
144
  <label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
124
145
  </li>
@@ -127,7 +148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
127
148
  standalone: true,
128
149
  imports: [NgFor, RadioButtonComponent, BooleanFilterRadioButtonDirective]
129
150
  }]
130
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i2.DomSanitizer }]; }, propDecorators: { hostClasses: [{
151
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { hostClasses: [{
131
152
  type: HostBinding,
132
153
  args: ['class.k-filtercell']
133
154
  }], inputElem: [{
@@ -137,4 +158,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
137
158
  type: Input
138
159
  }], filterService: [{
139
160
  type: Input
161
+ }], menuTabbingService: [{
162
+ type: Input
163
+ }], radioButtons: [{
164
+ type: ViewChildren,
165
+ args: [BooleanFilterRadioButtonDirective]
140
166
  }] } });
@@ -4,25 +4,31 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, Input } from '@angular/core';
6
6
  import { filter } from 'rxjs/operators';
7
- import { DatePickerComponent } from '@progress/kendo-angular-dateinputs';
7
+ import { DatePickerComponent, DatePickerCustomMessagesComponent } from '@progress/kendo-angular-dateinputs';
8
8
  import { ColumnComponent } from "../../columns/column.component";
9
9
  import { FilterService } from '../filter.service';
10
10
  import { SinglePopupService } from '../../common/single-popup.service';
11
11
  import { FilterInputDirective } from '../filter-input.directive';
12
12
  import { FilterMenuInputWrapperComponent } from './filter-menu-input-wrapper.component';
13
+ import { MenuTabbingService } from './menu-tabbing.service';
14
+ import { replaceMessagePlaceholder } from '../../utils';
15
+ import { LocalizationService } from '@progress/kendo-angular-l10n';
13
16
  import * as i0 from "@angular/core";
14
17
  import * as i1 from "../../common/single-popup.service";
18
+ import * as i2 from "@progress/kendo-angular-l10n";
15
19
  /**
16
20
  * @hidden
17
21
  */
18
22
  export class DateFilterMenuInputComponent {
19
23
  popupService;
24
+ localization;
20
25
  operators = [];
21
26
  column;
22
27
  filter;
23
28
  operator;
24
29
  currentFilter;
25
30
  filterService;
31
+ menuTabbingService;
26
32
  format;
27
33
  formatPlaceholder;
28
34
  placeholder;
@@ -32,22 +38,32 @@ export class DateFilterMenuInputComponent {
32
38
  bottomView;
33
39
  topView;
34
40
  weekNumber;
41
+ isFirstDropDown;
35
42
  subscription;
36
- constructor(popupService) {
43
+ constructor(popupService, localization) {
37
44
  this.popupService = popupService;
45
+ this.localization = localization;
46
+ }
47
+ ngOnDestroy() {
48
+ if (this.subscription) {
49
+ this.subscription.unsubscribe();
50
+ }
38
51
  }
39
52
  open(picker) {
40
53
  this.subscription = this.popupService.onClose
41
54
  .pipe(filter(() => picker.isActive))
42
55
  .subscribe(e => e.preventDefault());
43
56
  }
44
- ngOnDestroy() {
45
- if (this.subscription) {
46
- this.subscription.unsubscribe();
47
- }
57
+ messageFor(key) {
58
+ return this.localization.get(key);
48
59
  }
49
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuInputComponent, deps: [{ token: i1.SinglePopupService }], target: i0.ɵɵFactoryTarget.Component });
50
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateFilterMenuInputComponent, isStandalone: true, selector: "kendo-treelist-date-filter-menu-input", inputs: { operators: "operators", column: "column", filter: "filter", operator: "operator", currentFilter: "currentFilter", filterService: "filterService", format: "format", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", min: "min", max: "max", activeView: "activeView", bottomView: "bottomView", topView: "topView", weekNumber: "weekNumber" }, ngImport: i0, template: `
60
+ get columnLabel() {
61
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
62
+ const columnName = this.column ? this.column.title || this.column.field : '';
63
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
64
+ }
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuInputComponent, deps: [{ token: i1.SinglePopupService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
66
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateFilterMenuInputComponent, isStandalone: true, selector: "kendo-treelist-date-filter-menu-input", inputs: { operators: "operators", column: "column", filter: "filter", operator: "operator", currentFilter: "currentFilter", filterService: "filterService", menuTabbingService: "menuTabbingService", format: "format", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", min: "min", max: "max", activeView: "activeView", bottomView: "bottomView", topView: "topView", weekNumber: "weekNumber", isFirstDropDown: "isFirstDropDown" }, ngImport: i0, template: `
51
67
  <kendo-treelist-filter-menu-input-wrapper
52
68
  [column]="column"
53
69
  [filter]="filter"
@@ -55,10 +71,12 @@ export class DateFilterMenuInputComponent {
55
71
  [defaultOperator]="operator"
56
72
  [currentFilter]="currentFilter"
57
73
  [filterService]="filterService"
58
- >
74
+ [isFirstDropDown]="isFirstDropDown"
75
+ [menuTabbingService]="menuTabbingService">
59
76
  <kendo-datepicker
60
77
  #picker
61
78
  kendoFilterInput
79
+ [columnLabel]="columnLabel"
62
80
  [filterDelay]="0"
63
81
  (open)="open(picker)"
64
82
  [value]="currentFilter?.value"
@@ -70,11 +88,14 @@ export class DateFilterMenuInputComponent {
70
88
  [activeView]="activeView"
71
89
  [bottomView]="bottomView"
72
90
  [topView]="topView"
73
- [weekNumber]="weekNumber"
74
- >
91
+ [weekNumber]="weekNumber">
92
+ <kendo-datepicker-messages
93
+ [toggle]="messageFor('filterDateToggle')"
94
+ [today]="messageFor('filterDateToday')"
95
+ ></kendo-datepicker-messages>
75
96
  </kendo-datepicker>
76
97
  </kendo-treelist-filter-menu-input-wrapper>
77
- `, isInline: true, dependencies: [{ kind: "component", type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "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", "column", "value"] }] });
98
+ `, isInline: true, dependencies: [{ kind: "component", type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-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", "column", "value"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
78
99
  }
79
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuInputComponent, decorators: [{
80
101
  type: Component,
@@ -88,10 +109,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
88
109
  [defaultOperator]="operator"
89
110
  [currentFilter]="currentFilter"
90
111
  [filterService]="filterService"
91
- >
112
+ [isFirstDropDown]="isFirstDropDown"
113
+ [menuTabbingService]="menuTabbingService">
92
114
  <kendo-datepicker
93
115
  #picker
94
116
  kendoFilterInput
117
+ [columnLabel]="columnLabel"
95
118
  [filterDelay]="0"
96
119
  (open)="open(picker)"
97
120
  [value]="currentFilter?.value"
@@ -103,15 +126,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
103
126
  [activeView]="activeView"
104
127
  [bottomView]="bottomView"
105
128
  [topView]="topView"
106
- [weekNumber]="weekNumber"
107
- >
129
+ [weekNumber]="weekNumber">
130
+ <kendo-datepicker-messages
131
+ [toggle]="messageFor('filterDateToggle')"
132
+ [today]="messageFor('filterDateToday')"
133
+ ></kendo-datepicker-messages>
108
134
  </kendo-datepicker>
109
135
  </kendo-treelist-filter-menu-input-wrapper>
110
136
  `,
111
137
  standalone: true,
112
- imports: [FilterMenuInputWrapperComponent, DatePickerComponent, FilterInputDirective]
138
+ imports: [FilterMenuInputWrapperComponent, DatePickerComponent, FilterInputDirective, DatePickerCustomMessagesComponent]
113
139
  }]
114
- }], ctorParameters: function () { return [{ type: i1.SinglePopupService }]; }, propDecorators: { operators: [{
140
+ }], ctorParameters: function () { return [{ type: i1.SinglePopupService }, { type: i2.LocalizationService }]; }, propDecorators: { operators: [{
115
141
  type: Input
116
142
  }], column: [{
117
143
  type: Input
@@ -123,6 +149,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
123
149
  type: Input
124
150
  }], filterService: [{
125
151
  type: Input
152
+ }], menuTabbingService: [{
153
+ type: Input
126
154
  }], format: [{
127
155
  type: Input
128
156
  }], formatPlaceholder: [{
@@ -141,4 +169,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
141
169
  type: Input
142
170
  }], weekNumber: [{
143
171
  type: Input
172
+ }], isFirstDropDown: [{
173
+ type: Input
144
174
  }] } });
@@ -10,6 +10,9 @@ import { FilterService } from '../filter.service';
10
10
  import { DateFilterComponent } from '../date-filter.component';
11
11
  import { setFilter, logicOperators } from '../base-filter-cell.component';
12
12
  import { DateFilterMenuInputComponent } from './date-filter-menu-input.component';
13
+ import { FilterMenuDropDownListDirective } from './filter-menu-dropdownlist.directive';
14
+ import { MenuTabbingService } from './menu-tabbing.service';
15
+ import { replaceMessagePlaceholder } from '../../utils';
13
16
  import * as i0 from "@angular/core";
14
17
  import * as i1 from "@progress/kendo-angular-l10n";
15
18
  /**
@@ -50,6 +53,10 @@ export class DateFilterMenuComponent extends DateFilterComponent {
50
53
  * The `FilterService` instance which is responsible for handling the changes in the filter descriptor.
51
54
  */
52
55
  filterService;
56
+ /**
57
+ * @hidden
58
+ */
59
+ menuTabbingService;
53
60
  constructor(localization) {
54
61
  super(null, localization);
55
62
  }
@@ -62,12 +69,17 @@ export class DateFilterMenuComponent extends DateFilterComponent {
62
69
  logicChange(value) {
63
70
  this.filter.logic = value;
64
71
  }
72
+ get filterMenuDropDownLabel() {
73
+ const localizationMsg = this.localization.get('filterMenuLogicDropDownLabel') || '';
74
+ const columnName = this.column ? this.column.title || this.column.field : '';
75
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
76
+ }
65
77
  localizationChange() {
66
78
  this.logicOperators = logicOperators(this.localization);
67
79
  super.localizationChange();
68
80
  }
69
81
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
70
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateFilterMenuComponent, isStandalone: true, selector: "kendo-treelist-date-filter-menu", inputs: { filter: "filter", extra: "extra", filterService: "filterService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, usesInheritance: true, ngImport: i0, template: `
82
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateFilterMenuComponent, isStandalone: true, selector: "kendo-treelist-date-filter-menu", inputs: { filter: "filter", extra: "extra", filterService: "filterService", menuTabbingService: "menuTabbingService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, usesInheritance: true, ngImport: i0, template: `
71
83
  <kendo-treelist-date-filter-menu-input
72
84
  [currentFilter]="firstFilter"
73
85
  [operators]="operators"
@@ -83,10 +95,13 @@ export class DateFilterMenuComponent extends DateFilterComponent {
83
95
  [min]="min"
84
96
  [max]="max"
85
97
  [weekNumber]="weekNumber"
86
- >
98
+ [isFirstDropDown]="true"
99
+ [menuTabbingService]="menuTabbingService">
87
100
  </kendo-treelist-date-filter-menu-input>
88
101
  <kendo-dropdownlist
89
102
  *ngIf="extra"
103
+ kendoFilterMenuDropDown
104
+ [filterMenuDropDownLabel]="filterMenuDropDownLabel"
90
105
  class="k-filter-and"
91
106
  [data]="logicOperators"
92
107
  [valuePrimitive]="true"
@@ -111,9 +126,9 @@ export class DateFilterMenuComponent extends DateFilterComponent {
111
126
  [min]="min"
112
127
  [max]="max"
113
128
  [weekNumber]="weekNumber"
114
- >
129
+ [menuTabbingService]="menuTabbingService">
115
130
  </kendo-treelist-date-filter-menu-input>
116
- `, isInline: true, dependencies: [{ kind: "component", type: DateFilterMenuInputComponent, selector: "kendo-treelist-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber"] }, { 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"] }] });
131
+ `, isInline: true, dependencies: [{ kind: "component", type: DateFilterMenuInputComponent, selector: "kendo-treelist-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"] }] });
117
132
  }
118
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
119
134
  type: Component,
@@ -135,10 +150,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
135
150
  [min]="min"
136
151
  [max]="max"
137
152
  [weekNumber]="weekNumber"
138
- >
153
+ [isFirstDropDown]="true"
154
+ [menuTabbingService]="menuTabbingService">
139
155
  </kendo-treelist-date-filter-menu-input>
140
156
  <kendo-dropdownlist
141
157
  *ngIf="extra"
158
+ kendoFilterMenuDropDown
159
+ [filterMenuDropDownLabel]="filterMenuDropDownLabel"
142
160
  class="k-filter-and"
143
161
  [data]="logicOperators"
144
162
  [valuePrimitive]="true"
@@ -163,11 +181,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
163
181
  [min]="min"
164
182
  [max]="max"
165
183
  [weekNumber]="weekNumber"
166
- >
184
+ [menuTabbingService]="menuTabbingService">
167
185
  </kendo-treelist-date-filter-menu-input>
168
186
  `,
169
187
  standalone: true,
170
- imports: [DateFilterMenuInputComponent, NgIf, DropDownListComponent]
188
+ imports: [DateFilterMenuInputComponent, NgIf, DropDownListComponent, FilterMenuDropDownListDirective]
171
189
  }]
172
190
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { hostClasses: [{
173
191
  type: HostBinding,
@@ -178,4 +196,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
178
196
  type: Input
179
197
  }], filterService: [{
180
198
  type: Input
199
+ }], menuTabbingService: [{
200
+ type: Input
181
201
  }] } });