@progress/kendo-angular-grid 19.0.0-develop.3 → 19.0.0-develop.31

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 (139) hide show
  1. package/adaptiveness/adaptive-mode.d.ts +12 -0
  2. package/adaptiveness/adaptive-renderer.component.d.ts +84 -0
  3. package/codemods/template-transformer/index.js +94 -0
  4. package/codemods/utils.js +553 -0
  5. package/codemods/v19/grid-kendogridgroupbinding.js +51 -0
  6. package/column-menu/column-chooser.component.d.ts +4 -0
  7. package/column-menu/column-list.component.d.ts +10 -3
  8. package/column-menu/column-menu-item.component.d.ts +48 -3
  9. package/column-menu/column-menu-item.directive.d.ts +5 -2
  10. package/column-menu/column-menu.component.d.ts +4 -2
  11. package/columns/column-base.d.ts +5 -0
  12. package/columns/span-column.component.d.ts +2 -2
  13. package/common/adaptiveness.service.d.ts +50 -0
  14. package/common/single-popup.service.d.ts +3 -1
  15. package/common/toolbar-tool-base.directive.d.ts +26 -0
  16. package/directives.d.ts +12 -5
  17. package/dragdrop/drag-hint.service.d.ts +3 -2
  18. package/editing/add-command-tool.directive.d.ts +7 -6
  19. package/editing/cancel-command-tool.directive.d.ts +38 -0
  20. package/editing/edit-command-tool.directive.d.ts +38 -0
  21. package/editing/edit.service.d.ts +1 -1
  22. package/editing/remove-command-tool.directive.d.ts +39 -0
  23. package/editing/save-command-tool.directive.d.ts +38 -0
  24. package/editing/toolbar-editing-tool-base.directive.d.ts +29 -0
  25. package/editing-directives/editing-directive-base.d.ts +4 -1
  26. package/editing-directives/external-editing.directive.d.ts +3 -1
  27. package/esm2022/adaptiveness/adaptive-mode.mjs +5 -0
  28. package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1108 -0
  29. package/esm2022/column-menu/column-chooser.component.mjs +13 -11
  30. package/esm2022/column-menu/column-list.component.mjs +51 -8
  31. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +1 -1
  32. package/esm2022/column-menu/column-menu-autosize.component.mjs +1 -1
  33. package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -1
  34. package/esm2022/column-menu/column-menu-container.component.mjs +1 -1
  35. package/esm2022/column-menu/column-menu-filter.component.mjs +1 -1
  36. package/esm2022/column-menu/column-menu-item.component.mjs +123 -12
  37. package/esm2022/column-menu/column-menu-item.directive.mjs +14 -5
  38. package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
  39. package/esm2022/column-menu/column-menu-position.component.mjs +1 -1
  40. package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
  41. package/esm2022/column-menu/column-menu-stick.component.mjs +1 -1
  42. package/esm2022/column-menu/column-menu.component.mjs +68 -44
  43. package/esm2022/column-resizing/column-handle.directive.mjs +2 -2
  44. package/esm2022/columns/column-base.mjs +9 -0
  45. package/esm2022/columns/columns-container.mjs +1 -1
  46. package/esm2022/columns/span-column.component.mjs +9 -9
  47. package/esm2022/common/adaptiveness.service.mjs +72 -0
  48. package/esm2022/common/single-popup.service.mjs +9 -3
  49. package/esm2022/common/toolbar-tool-base.directive.mjs +81 -0
  50. package/esm2022/directives.mjs +18 -3
  51. package/esm2022/dragdrop/drag-hint.service.mjs +7 -4
  52. package/esm2022/editing/add-command-tool.directive.mjs +12 -15
  53. package/esm2022/editing/cancel-command-tool.directive.mjs +64 -0
  54. package/esm2022/editing/edit-command-tool.directive.mjs +59 -0
  55. package/esm2022/editing/form/form-formfield.component.mjs +1 -1
  56. package/esm2022/editing/remove-command-tool.directive.mjs +60 -0
  57. package/esm2022/editing/remove-command.directive.mjs +1 -0
  58. package/esm2022/editing/save-command-tool.directive.mjs +64 -0
  59. package/esm2022/editing/toolbar-editing-tool-base.directive.mjs +94 -0
  60. package/esm2022/editing-directives/editing-directive-base.mjs +5 -2
  61. package/esm2022/editing-directives/external-editing.directive.mjs +28 -14
  62. package/esm2022/excel/excel-command-tool.directive.mjs +12 -17
  63. package/esm2022/filtering/cell/autocomplete-filter-cell.component.mjs +1 -1
  64. package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +1 -1
  65. package/esm2022/filtering/cell/date-filter-cell.component.mjs +1 -1
  66. package/esm2022/filtering/cell/filter-cell-operators.component.mjs +1 -1
  67. package/esm2022/filtering/filter-input.directive.mjs +14 -2
  68. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +4 -2
  69. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +5 -1
  70. package/esm2022/filtering/menu/date-filter-menu.component.mjs +7 -1
  71. package/esm2022/filtering/menu/filter-menu-container.component.mjs +21 -10
  72. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +27 -5
  73. package/esm2022/filtering/menu/filter-menu.component.mjs +44 -29
  74. package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +2 -0
  75. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +7 -1
  76. package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +2 -0
  77. package/esm2022/filtering/menu/string-filter-menu.component.mjs +11 -2
  78. package/esm2022/grid.component.mjs +358 -82
  79. package/esm2022/grid.module.mjs +114 -101
  80. package/esm2022/index.mjs +10 -1
  81. package/esm2022/localization/messages.mjs +104 -2
  82. package/esm2022/navigation/navigation.service.mjs +1 -1
  83. package/esm2022/navigation/toolbar-tool-name.mjs +17 -0
  84. package/esm2022/package-metadata.mjs +2 -2
  85. package/esm2022/pdf/pdf-command-tool.directive.mjs +12 -15
  86. package/esm2022/rendering/cell.component.mjs +4 -4
  87. package/esm2022/rendering/header/header.component.mjs +1 -1
  88. package/esm2022/rendering/list.component.mjs +1 -1
  89. package/esm2022/rendering/table-body.component.mjs +11 -3
  90. package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +203 -0
  91. package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +61 -34
  92. package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +29 -8
  93. package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +73 -8
  94. package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +46 -20
  95. package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +24 -8
  96. package/esm2022/row-reordering/row-reorder.service.mjs +15 -0
  97. package/esm2022/selection/selection.service.mjs +11 -0
  98. package/esm2022/state-management/grid-state.models.mjs +26 -0
  99. package/esm2022/state-management/redo-command-tool.mjs +66 -0
  100. package/esm2022/state-management/undo-command-tool.mjs +66 -0
  101. package/esm2022/state-management/undo-redo.directive.mjs +178 -0
  102. package/esm2022/state-management/undo-redo.service.mjs +22 -0
  103. package/esm2022/state-management/undo-redo.stack.mjs +232 -0
  104. package/esm2022/utils.mjs +13 -13
  105. package/excel/excel-command-tool.directive.d.ts +5 -5
  106. package/fesm2022/progress-kendo-angular-grid.mjs +4672 -1798
  107. package/filtering/filter-input.directive.d.ts +1 -0
  108. package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
  109. package/filtering/menu/filter-menu-container.component.d.ts +14 -4
  110. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +8 -3
  111. package/filtering/menu/filter-menu.component.d.ts +6 -3
  112. package/filtering/menu/numeric-filter-menu-input.component.d.ts +1 -1
  113. package/filtering/menu/string-filter-menu-input.component.d.ts +1 -1
  114. package/filtering/menu/string-filter-menu.component.d.ts +1 -0
  115. package/grid.component.d.ts +86 -33
  116. package/grid.module.d.ts +107 -100
  117. package/index.d.ts +9 -1
  118. package/localization/messages.d.ts +70 -2
  119. package/navigation/toolbar-tool-name.d.ts +17 -0
  120. package/package.json +36 -20
  121. package/pdf/pdf-command-tool.directive.d.ts +6 -5
  122. package/rendering/cell.component.d.ts +1 -1
  123. package/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.d.ts +17 -6
  124. package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +9 -1
  125. package/rendering/toolbar/tools/filter-tool-wrapper.component.d.ts +6 -5
  126. package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +11 -2
  127. package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +9 -1
  128. package/rendering/toolbar/tools/sort-toolbar-tool.component.d.ts +5 -1
  129. package/row-reordering/row-reorder.service.d.ts +2 -0
  130. package/schematics/ngAdd/index.js +4 -4
  131. package/selection/selection.service.d.ts +1 -0
  132. package/state-management/grid-state.models.d.ts +58 -0
  133. package/state-management/redo-command-tool.d.ts +38 -0
  134. package/state-management/undo-command-tool.d.ts +38 -0
  135. package/state-management/undo-redo.directive.d.ts +51 -0
  136. package/state-management/undo-redo.service.d.ts +19 -0
  137. package/state-management/undo-redo.stack.d.ts +104 -0
  138. package/utils.d.ts +11 -5
  139. package/esm2022/column-menu/column-chooser-tool.directive.mjs +0 -172
@@ -2,14 +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 { Directive } from '@angular/core';
5
+ import { ChangeDetectorRef, Directive, NgZone } from '@angular/core';
6
6
  import { ToolBarButtonComponent } from '@progress/kendo-angular-toolbar';
7
- import { Subscription } from 'rxjs';
8
- import { fileExcelIcon } from '@progress/kendo-svg-icons';
9
7
  import { ExcelService } from './excel.service';
8
+ import { ContextService } from '../common/provider.service';
9
+ import { ToolbarToolBase } from '../common/toolbar-tool-base.directive';
10
+ import { ToolbarToolName } from '../navigation/toolbar-tool-name';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "./excel.service";
12
13
  import * as i2 from "@progress/kendo-angular-toolbar";
14
+ import * as i3 from "../common/provider.service";
13
15
  /**
14
16
  * Represents the `export-to-Excel` toolbar tool of the Grid.
15
17
  * You can apply this directive to any `kendo-toolbar-button` element inside a
@@ -30,22 +32,15 @@ import * as i2 from "@progress/kendo-angular-toolbar";
30
32
  * </kendo-grid>
31
33
  * ```
32
34
  */
33
- export class ExcelCommandToolbarDirective {
35
+ export class ExcelCommandToolbarDirective extends ToolbarToolBase {
34
36
  excelService;
35
- host;
36
- clickSub = new Subscription();
37
- constructor(excelService, host) {
37
+ constructor(excelService, host, ctx, zone, cdr) {
38
+ super(host, ToolbarToolName.excelExport, ctx, zone, cdr);
38
39
  this.excelService = excelService;
39
- this.host = host;
40
40
  }
41
41
  ngOnInit() {
42
- this.clickSub = this.host.click.subscribe(e => this.onClick(e));
42
+ super.ngOnInit();
43
43
  this.host.className = 'k-grid-excel';
44
- this.host.svgIcon = fileExcelIcon;
45
- this.host.icon = 'file-excel';
46
- }
47
- ngOnDestroy() {
48
- this.clickSub.unsubscribe();
49
44
  }
50
45
  /**
51
46
  * @hidden
@@ -54,8 +49,8 @@ export class ExcelCommandToolbarDirective {
54
49
  e.preventDefault();
55
50
  this.excelService.exportClick.emit();
56
51
  }
57
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelCommandToolbarDirective, deps: [{ token: i1.ExcelService }, { token: i2.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
58
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ExcelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridExcelTool]", ngImport: i0 });
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelCommandToolbarDirective, deps: [{ token: i1.ExcelService }, { token: i2.ToolBarButtonComponent }, { token: i3.ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
53
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ExcelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridExcelTool]", usesInheritance: true, ngImport: i0 });
59
54
  }
60
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelCommandToolbarDirective, decorators: [{
61
56
  type: Directive,
@@ -63,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
63
58
  selector: '[kendoGridExcelTool]',
64
59
  standalone: true
65
60
  }]
66
- }], ctorParameters: function () { return [{ type: i1.ExcelService }, { type: i2.ToolBarButtonComponent }]; } });
61
+ }], ctorParameters: function () { return [{ type: i1.ExcelService }, { type: i2.ToolBarButtonComponent }, { type: i3.ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; } });
@@ -79,7 +79,7 @@ export class AutoCompleteFilterCellComponent extends BaseFilterCellComponent {
79
79
  [value]="currentFilter?.value">
80
80
  </kendo-autocomplete>
81
81
  </kendo-grid-filter-wrapper-cell>
82
- `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoAutoComplete"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
82
+ `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoAutoComplete"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
83
83
  }
84
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
85
85
  type: Component,
@@ -81,7 +81,7 @@ export class BooleanFilterCellComponent extends BooleanFilterComponent {
81
81
  [value]="currentFilter?.value">
82
82
  </kendo-dropdownlist>
83
83
  </kendo-grid-filter-wrapper-cell>
84
- `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { 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: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
84
+ `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "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: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
85
85
  }
86
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
87
87
  type: Component,
@@ -94,7 +94,7 @@ export class DateFilterCellComponent extends DateFilterComponent {
94
94
  ></kendo-datepicker-messages>
95
95
  </kendo-datepicker>
96
96
  </kendo-grid-filter-wrapper-cell>
97
- `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
97
+ `, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
98
98
  }
99
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterCellComponent, decorators: [{
100
100
  type: Component,
@@ -175,7 +175,7 @@ export class FilterCellOperatorsComponent {
175
175
  [size]="size"
176
176
  (click)="clearClick()"
177
177
  (keydown)="clearKeydown($event)"></button>
178
- `, isInline: true, dependencies: [{ 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: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
178
+ `, isInline: true, dependencies: [{ 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", "adaptiveTitle", "adaptiveSubtitle", "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: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
179
179
  }
180
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
181
181
  type: Component,
@@ -13,6 +13,7 @@ import * as i0 from "@angular/core";
13
13
  * @hidden
14
14
  */
15
15
  export class FilterInputDirective {
16
+ ngZone;
16
17
  element;
17
18
  renderer;
18
19
  change = new EventEmitter();
@@ -31,12 +32,19 @@ export class FilterInputDirective {
31
32
  changeRequestsSubscription;
32
33
  unsubscribeEvents;
33
34
  constructor(valueAccessors, ngZone, element, renderer) {
35
+ this.ngZone = ngZone;
34
36
  this.element = element;
35
37
  this.renderer = renderer;
36
38
  this.accessor = valueAccessors[0];
37
39
  ngZone.runOutsideAngular(() => {
38
40
  const unsubscribeStart = renderer.listen(element.nativeElement, 'compositionstart', () => this.composing = true);
39
- const unsubscribeEnd = renderer.listen(element.nativeElement, 'compositionend', () => this.composing = false);
41
+ const unsubscribeEnd = renderer.listen(element.nativeElement, 'compositionend', (event) => {
42
+ this.composing = false;
43
+ const value = event.target?.value;
44
+ this.filterDelay > 0 ?
45
+ this.changeRequests.next(value) :
46
+ this.change.emit(value);
47
+ });
40
48
  this.unsubscribeEvents = () => {
41
49
  unsubscribeStart();
42
50
  unsubscribeEnd();
@@ -63,7 +71,11 @@ export class FilterInputDirective {
63
71
  subscribeChanges() {
64
72
  this.changeRequestsSubscription = this.changeRequests
65
73
  .pipe(debounceTime(this.filterDelay), filter(() => !this.composing))
66
- .subscribe(x => this.change.emit(x));
74
+ .subscribe((x) => {
75
+ this.ngZone.run(() => {
76
+ this.change.emit(x);
77
+ });
78
+ });
67
79
  }
68
80
  unsubscribeChanges() {
69
81
  if (this.changeRequestsSubscription) {
@@ -113,13 +113,14 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
113
113
  kendoFilterMenuRadioButton
114
114
  [columnLabel]="columnLabel"
115
115
  #input
116
+ [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
116
117
  [name]="idPrefix"
117
118
  [checked]="isSelected(item.value)"
118
119
  [attr.id]="radioId(item.value)"
119
120
  (change)="onChange(item.value, input)"
120
121
  (keydown.shift.tab)="onShiftTab($event)"
121
122
  ></kendo-radiobutton>
122
- <label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
123
+ <label class="k-radio-label" [attr.for]="input.focusableId">{{item.text}}</label>
123
124
  </li>
124
125
  </ul>
125
126
  `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: RadioButtonComponent, selector: "kendo-radiobutton", inputs: ["checked"], outputs: ["checkedChange"], exportAs: ["kendoRadioButton"] }, { kind: "directive", type: BooleanFilterRadioButtonDirective, selector: "[kendoFilterMenuRadioButton]", inputs: ["columnLabel"] }] });
@@ -135,13 +136,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
135
136
  kendoFilterMenuRadioButton
136
137
  [columnLabel]="columnLabel"
137
138
  #input
139
+ [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
138
140
  [name]="idPrefix"
139
141
  [checked]="isSelected(item.value)"
140
142
  [attr.id]="radioId(item.value)"
141
143
  (change)="onChange(item.value, input)"
142
144
  (keydown.shift.tab)="onShiftTab($event)"
143
145
  ></kendo-radiobutton>
144
- <label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
146
+ <label class="k-radio-label" [attr.for]="input.focusableId">{{item.text}}</label>
145
147
  </li>
146
148
  </ul>
147
149
  `,
@@ -76,6 +76,8 @@ export class DateFilterMenuInputComponent {
76
76
  <kendo-datepicker
77
77
  #picker
78
78
  kendoFilterInput
79
+ [adaptiveMode]="ctx.grid?.adaptiveMode"
80
+ [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
79
81
  [columnLabel]="columnLabel"
80
82
  [filterDelay]="0"
81
83
  (open)="open(picker)"
@@ -95,7 +97,7 @@ export class DateFilterMenuInputComponent {
95
97
  ></kendo-datepicker-messages>
96
98
  </kendo-datepicker>
97
99
  </kendo-grid-filter-menu-input-wrapper>
98
- `, isInline: true, dependencies: [{ kind: "component", type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
100
+ `, isInline: true, dependencies: [{ kind: "component", type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
99
101
  }
100
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuInputComponent, decorators: [{
101
103
  type: Component,
@@ -114,6 +116,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
114
116
  <kendo-datepicker
115
117
  #picker
116
118
  kendoFilterInput
119
+ [adaptiveMode]="ctx.grid?.adaptiveMode"
120
+ [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
117
121
  [columnLabel]="columnLabel"
118
122
  [filterDelay]="0"
119
123
  (open)="open(picker)"
@@ -101,6 +101,9 @@ export class DateFilterMenuComponent extends DateFilterComponent {
101
101
  <kendo-dropdownlist
102
102
  *ngIf="extra"
103
103
  kendoFilterMenuDropDown
104
+ [adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
105
+ [adaptiveMode]="ctx.grid?.adaptiveMode"
106
+ [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
104
107
  [filterMenuDropDownLabel]="filterMenuDropDownLabel"
105
108
  class="k-filter-and"
106
109
  [data]="logicOperators"
@@ -128,7 +131,7 @@ export class DateFilterMenuComponent extends DateFilterComponent {
128
131
  [weekNumber]="weekNumber"
129
132
  [menuTabbingService]="menuTabbingService">
130
133
  </kendo-grid-date-filter-menu-input>
131
- `, isInline: true, dependencies: [{ kind: "component", type: DateFilterMenuInputComponent, selector: "kendo-grid-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
134
+ `, isInline: true, dependencies: [{ kind: "component", type: DateFilterMenuInputComponent, selector: "kendo-grid-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "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"] }] });
132
135
  }
133
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
134
137
  type: Component,
@@ -156,6 +159,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
156
159
  <kendo-dropdownlist
157
160
  *ngIf="extra"
158
161
  kendoFilterMenuDropDown
162
+ [adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
163
+ [adaptiveMode]="ctx.grid?.adaptiveMode"
164
+ [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
159
165
  [filterMenuDropDownLabel]="filterMenuDropDownLabel"
160
166
  class="k-filter-and"
161
167
  [data]="logicOperators"
@@ -13,16 +13,21 @@ import { ContextService } from '../../common/provider.service';
13
13
  import { FilterMenuHostDirective } from './filter-menu-host.directive';
14
14
  import { NgSwitch, NgSwitchCase, NgIf, NgTemplateOutlet, NgClass } from '@angular/common';
15
15
  import { FormsModule } from '@angular/forms';
16
+ import { AdaptiveGridService } from '../../common/adaptiveness.service';
16
17
  import * as i0 from "@angular/core";
17
18
  import * as i1 from "../filter.service";
18
19
  import * as i2 from "../../common/provider.service";
19
20
  import * as i3 from "./menu-tabbing.service";
20
- import * as i4 from "@angular/forms";
21
+ import * as i4 from "../../common/adaptiveness.service";
22
+ import * as i5 from "@angular/forms";
21
23
  const isNoValueOperator = operator => (operator === "isnull"
22
24
  || operator === "isnotnull"
23
25
  || operator === "isempty"
24
26
  || operator === "isnotempty");
25
- const validFilters = ({ value, operator }) => !isNullOrEmptyString(value) || isNoValueOperator(operator);
27
+ /**
28
+ * @hidden
29
+ */
30
+ export const validFilters = ({ value, operator }) => !isNullOrEmptyString(value) || isNoValueOperator(operator);
26
31
  const trimFilters = filter => {
27
32
  filter.filters = filter.filters.filter(validFilters);
28
33
  return filter;
@@ -41,7 +46,10 @@ const findParent = (filters, field, parent) => {
41
46
  return acc;
42
47
  }, undefined);
43
48
  };
44
- const parentLogicOfDefault = (filter, field, def = "and") => {
49
+ /**
50
+ * @hidden
51
+ */
52
+ export const parentLogicOfDefault = (filter, field, def = "and") => {
45
53
  const parent = findParent(((filter || {}).filters || []), field);
46
54
  return isPresent(parent) ? parent.logic : def;
47
55
  };
@@ -53,6 +61,7 @@ export class FilterMenuContainerComponent {
53
61
  childService;
54
62
  ctx;
55
63
  cd;
64
+ adaptiveGridService;
56
65
  close = new EventEmitter();
57
66
  /**
58
67
  * The column with which the filter is associated.
@@ -100,12 +109,14 @@ export class FilterMenuContainerComponent {
100
109
  subscription;
101
110
  _templateContext = {};
102
111
  _filter;
103
- constructor(parentService, childService, ctx, cd, menuTabbingService) {
112
+ constructor(parentService, childService, ctx, cd, menuTabbingService, adaptiveGridService) {
104
113
  this.parentService = parentService;
105
114
  this.childService = childService;
106
115
  this.ctx = ctx;
107
116
  this.cd = cd;
117
+ this.adaptiveGridService = adaptiveGridService;
108
118
  this.menuTabbingService = menuTabbingService;
119
+ this.adaptiveGridService.filterMenuContainer = this;
109
120
  }
110
121
  ngOnInit() {
111
122
  this.subscription = this.childService.changes.subscribe(filter => this._childFilter = filter);
@@ -113,7 +124,7 @@ export class FilterMenuContainerComponent {
113
124
  }
114
125
  ngAfterViewChecked() {
115
126
  if (!this.menuTabbingService.isColumnMenu || (this.isLast && this.isExpanded)) {
116
- this.menuTabbingService.lastFocusable = this.resetButton.nativeElement;
127
+ this.menuTabbingService.lastFocusable = this.resetButton?.nativeElement;
117
128
  }
118
129
  }
119
130
  ngOnDestroy() {
@@ -175,7 +186,7 @@ export class FilterMenuContainerComponent {
175
186
  get filterText() {
176
187
  return this.ctx.localization.get("filterFilterButton");
177
188
  }
178
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, deps: [{ token: i1.FilterService, skipSelf: true }, { token: i1.FilterService }, { token: i2.ContextService }, { token: i0.ChangeDetectorRef }, { token: i3.MenuTabbingService }], target: i0.ɵɵFactoryTarget.Component });
189
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, deps: [{ token: i1.FilterService, skipSelf: true }, { token: i1.FilterService }, { token: i2.ContextService }, { token: i0.ChangeDetectorRef }, { token: i3.MenuTabbingService }, { token: i4.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
179
190
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterMenuContainerComponent, isStandalone: true, selector: "kendo-grid-filter-menu-container", inputs: { column: "column", isLast: "isLast", isExpanded: "isExpanded", menuTabbingService: "menuTabbingService", filter: "filter", actionsClass: "actionsClass" }, outputs: { close: "close" }, providers: [
180
191
  FilterService,
181
192
  MenuTabbingService
@@ -202,7 +213,7 @@ export class FilterMenuContainerComponent {
202
213
  </ng-template>
203
214
  </ng-container>
204
215
  </ng-container>
205
- <div [ngClass]="actionsClass">
216
+ <div *ngIf="!ctx.grid?.isActionSheetExpanded" [ngClass]="actionsClass">
206
217
  <button #filterButton
207
218
  type="submit"
208
219
  class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
@@ -216,7 +227,7 @@ export class FilterMenuContainerComponent {
216
227
  </div>
217
228
  </div>
218
229
  </form>
219
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: FilterMenuHostDirective, selector: "[kendoFilterMenuHost]", inputs: ["filterService", "menuTabbingService"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
230
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: FilterMenuHostDirective, selector: "[kendoFilterMenuHost]", inputs: ["filterService", "menuTabbingService"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
220
231
  }
221
232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, decorators: [{
222
233
  type: Component,
@@ -249,7 +260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
249
260
  </ng-template>
250
261
  </ng-container>
251
262
  </ng-container>
252
- <div [ngClass]="actionsClass">
263
+ <div *ngIf="!ctx.grid?.isActionSheetExpanded" [ngClass]="actionsClass">
253
264
  <button #filterButton
254
265
  type="submit"
255
266
  class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
@@ -269,7 +280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
269
280
  }]
270
281
  }], ctorParameters: function () { return [{ type: i1.FilterService, decorators: [{
271
282
  type: SkipSelf
272
- }] }, { type: i1.FilterService }, { type: i2.ContextService }, { type: i0.ChangeDetectorRef }, { type: i3.MenuTabbingService }]; }, propDecorators: { close: [{
283
+ }] }, { type: i1.FilterService }, { type: i2.ContextService }, { type: i0.ChangeDetectorRef }, { type: i3.MenuTabbingService }, { type: i4.AdaptiveGridService }]; }, propDecorators: { close: [{
273
284
  type: Output
274
285
  }], column: [{
275
286
  type: Input
@@ -10,36 +10,52 @@ import { FilterInputWrapperComponent } from "../filter-input-wrapper.component";
10
10
  import { replaceMessagePlaceholder } from '../../utils';
11
11
  import { ContextService } from '../../common/provider.service';
12
12
  import { FilterMenuDropDownListDirective } from './filter-menu-dropdownlist.directive';
13
+ import { AdaptiveGridService } from '../../common/adaptiveness.service';
14
+ import { Subscription } from 'rxjs';
13
15
  import * as i0 from "@angular/core";
14
16
  import * as i1 from "../../common/provider.service";
17
+ import * as i2 from "../../common/adaptiveness.service";
15
18
  /**
16
19
  * @hidden
17
20
  */
18
21
  export class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent {
19
22
  ctx;
23
+ adaptiveGridService;
20
24
  filterService;
21
25
  isFirstDropDown;
22
26
  menuTabbingService;
23
27
  firstOperatorDropDown;
24
28
  _currentFilter;
29
+ subs = new Subscription();
25
30
  /**
26
31
  * @hidden
27
32
  */
28
33
  get hostClasses() {
29
34
  return false;
30
35
  }
31
- constructor(ctx) {
36
+ constructor(ctx, adaptiveGridService) {
32
37
  super(null);
33
38
  this.ctx = ctx;
39
+ this.adaptiveGridService = adaptiveGridService;
34
40
  }
35
41
  ngAfterViewInit() {
36
42
  const shouldFocusFirstFocusable = this.isFirstDropDown && this.filterService?.menuTabbingService;
37
43
  const isTabbedInterface = this.menuTabbingService?.isTabbedInterface;
38
44
  if (shouldFocusFirstFocusable && !isTabbedInterface) {
39
45
  this.filterService.menuTabbingService.firstFocusable = this.firstOperatorDropDown;
40
- this.firstOperatorDropDown.focus();
46
+ if (this.ctx.grid?.isActionSheetExpanded) {
47
+ this.subs.add(this.adaptiveGridService.animationEnd.subscribe(() => {
48
+ this.firstOperatorDropDown.focus();
49
+ }));
50
+ }
51
+ else {
52
+ this.firstOperatorDropDown.focus();
53
+ }
41
54
  }
42
55
  }
56
+ ngOnDestroy() {
57
+ this.subs?.unsubscribe();
58
+ }
43
59
  operatorChange(dataItem) {
44
60
  this.currentOperator = dataItem;
45
61
  }
@@ -85,10 +101,13 @@ export class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent
85
101
  const columnName = this.column ? this.column.title || this.column.field : '';
86
102
  return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
87
103
  }
88
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuInputWrapperComponent, deps: [{ token: i1.ContextService }], target: i0.ɵɵFactoryTarget.Component });
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuInputWrapperComponent, deps: [{ token: i1.ContextService }, { token: i2.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
89
105
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterMenuInputWrapperComponent, isStandalone: true, selector: "kendo-grid-filter-menu-input-wrapper", inputs: { filterService: "filterService", isFirstDropDown: "isFirstDropDown", menuTabbingService: "menuTabbingService", currentFilter: "currentFilter" }, viewQueries: [{ propertyName: "firstOperatorDropDown", first: true, predicate: DropDownListComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
90
106
  <kendo-dropdownlist
91
107
  kendoFilterMenuDropDown
108
+ [adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
109
+ [adaptiveMode]="ctx.grid?.adaptiveMode"
110
+ [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
92
111
  [filterMenuDropDownLabel]="filterMenuDropDownLabel"
93
112
  [data]="operators"
94
113
  (valueChange)="operatorChange($event)"
@@ -99,7 +118,7 @@ export class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent
99
118
  (keydown.shift.tab)="onShiftTab($event)">
100
119
  </kendo-dropdownlist>
101
120
  <ng-content></ng-content>
102
- `, isInline: true, dependencies: [{ 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"] }] });
121
+ `, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "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"] }] });
103
122
  }
104
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuInputWrapperComponent, decorators: [{
105
124
  type: Component,
@@ -108,6 +127,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
108
127
  template: `
109
128
  <kendo-dropdownlist
110
129
  kendoFilterMenuDropDown
130
+ [adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
131
+ [adaptiveMode]="ctx.grid?.adaptiveMode"
132
+ [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
111
133
  [filterMenuDropDownLabel]="filterMenuDropDownLabel"
112
134
  [data]="operators"
113
135
  (valueChange)="operatorChange($event)"
@@ -122,7 +144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
122
144
  standalone: true,
123
145
  imports: [DropDownListComponent, FilterMenuDropDownListDirective]
124
146
  }]
125
- }], ctorParameters: function () { return [{ type: i1.ContextService }]; }, propDecorators: { filterService: [{
147
+ }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.AdaptiveGridService }]; }, propDecorators: { filterService: [{
126
148
  type: Input
127
149
  }], isFirstDropDown: [{
128
150
  type: Input