@progress/kendo-angular-grid 19.0.0-develop.16 → 19.0.0-develop.18

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 (70) hide show
  1. package/adaptiveness/adaptive-mode.d.ts +12 -0
  2. package/adaptiveness/adaptive-renderer.component.d.ts +84 -0
  3. package/column-menu/column-chooser.component.d.ts +4 -0
  4. package/column-menu/column-list.component.d.ts +9 -3
  5. package/column-menu/column-menu-item.component.d.ts +38 -2
  6. package/column-menu/column-menu-item.directive.d.ts +5 -2
  7. package/column-menu/column-menu.component.d.ts +4 -2
  8. package/common/adaptiveness.service.d.ts +50 -0
  9. package/common/single-popup.service.d.ts +3 -1
  10. package/directives.d.ts +1 -1
  11. package/editing-directives/external-editing.directive.d.ts +3 -1
  12. package/esm2022/adaptiveness/adaptive-mode.mjs +5 -0
  13. package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1106 -0
  14. package/esm2022/column-menu/column-chooser.component.mjs +13 -11
  15. package/esm2022/column-menu/column-list.component.mjs +42 -8
  16. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +1 -1
  17. package/esm2022/column-menu/column-menu-autosize.component.mjs +1 -1
  18. package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -1
  19. package/esm2022/column-menu/column-menu-container.component.mjs +1 -1
  20. package/esm2022/column-menu/column-menu-filter.component.mjs +1 -1
  21. package/esm2022/column-menu/column-menu-item.component.mjs +106 -11
  22. package/esm2022/column-menu/column-menu-item.directive.mjs +14 -5
  23. package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
  24. package/esm2022/column-menu/column-menu-position.component.mjs +1 -1
  25. package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
  26. package/esm2022/column-menu/column-menu-stick.component.mjs +1 -1
  27. package/esm2022/column-menu/column-menu.component.mjs +60 -41
  28. package/esm2022/common/adaptiveness.service.mjs +72 -0
  29. package/esm2022/common/single-popup.service.mjs +9 -3
  30. package/esm2022/directives.mjs +1 -1
  31. package/esm2022/editing-directives/external-editing.directive.mjs +28 -14
  32. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +2 -2
  33. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +2 -0
  34. package/esm2022/filtering/menu/date-filter-menu.component.mjs +4 -0
  35. package/esm2022/filtering/menu/filter-menu-container.component.mjs +21 -10
  36. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +24 -4
  37. package/esm2022/filtering/menu/filter-menu.component.mjs +44 -29
  38. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +4 -0
  39. package/esm2022/filtering/menu/string-filter-menu.component.mjs +4 -0
  40. package/esm2022/grid.component.mjs +143 -28
  41. package/esm2022/grid.module.mjs +1 -1
  42. package/esm2022/index.mjs +1 -1
  43. package/esm2022/localization/messages.mjs +62 -2
  44. package/esm2022/package-metadata.mjs +2 -2
  45. package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +203 -0
  46. package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +39 -26
  47. package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +19 -7
  48. package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +26 -4
  49. package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +21 -8
  50. package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +16 -3
  51. package/esm2022/utils.mjs +0 -13
  52. package/fesm2022/progress-kendo-angular-grid.mjs +2960 -1360
  53. package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
  54. package/filtering/menu/filter-menu-container.component.d.ts +14 -4
  55. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +8 -3
  56. package/filtering/menu/filter-menu.component.d.ts +6 -3
  57. package/grid.component.d.ts +30 -3
  58. package/grid.module.d.ts +1 -1
  59. package/index.d.ts +1 -1
  60. package/localization/messages.d.ts +42 -2
  61. package/package.json +21 -20
  62. package/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.d.ts +13 -3
  63. package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +3 -1
  64. package/rendering/toolbar/tools/filter-tool-wrapper.component.d.ts +5 -5
  65. package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +4 -1
  66. package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +3 -1
  67. package/rendering/toolbar/tools/sort-toolbar-tool.component.d.ts +4 -0
  68. package/schematics/ngAdd/index.js +4 -4
  69. package/utils.d.ts +0 -4
  70. package/esm2022/column-menu/column-chooser-tool.directive.mjs +0 -160
@@ -30,6 +30,7 @@ import { ColumnMenuSortComponent } from './column-menu-sort.component';
30
30
  import { ColumnMenuContainerComponent } from './column-menu-container.component';
31
31
  import { NgClass, NgTemplateOutlet, NgIf } from '@angular/common';
32
32
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
33
+ import { AdaptiveGridService } from '../common/adaptiveness.service';
33
34
  import * as i0 from "@angular/core";
34
35
  import * as i1 from "./../navigation/navigation.service";
35
36
  import * as i2 from "../common/single-popup.service";
@@ -37,6 +38,7 @@ import * as i3 from "./column-menu.service";
37
38
  import * as i4 from "../common/provider.service";
38
39
  import * as i5 from "../common/column-info.service";
39
40
  import * as i6 from "../common/id.service";
41
+ import * as i7 from "../common/adaptiveness.service";
40
42
  const POPUP_CLASSES = 'k-grid-columnmenu-popup k-column-menu';
41
43
  let id = 0;
42
44
  const getId = (gridId) => `${gridId}-column-menu-${id++}`;
@@ -61,6 +63,7 @@ export class ColumnMenuComponent {
61
63
  cdr;
62
64
  columnInfoService;
63
65
  idService;
66
+ adaptiveGridService;
64
67
  /**
65
68
  * @hidden
66
69
  */
@@ -143,7 +146,7 @@ export class ColumnMenuComponent {
143
146
  popupRef;
144
147
  closeSubscription;
145
148
  popupSubs;
146
- constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService, idService) {
149
+ constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService, idService, adaptiveGridService) {
147
150
  this.navigationService = navigationService;
148
151
  this.popupService = popupService;
149
152
  this.service = service;
@@ -152,6 +155,7 @@ export class ColumnMenuComponent {
152
155
  this.cdr = cdr;
153
156
  this.columnInfoService = columnInfoService;
154
157
  this.idService = idService;
158
+ this.adaptiveGridService = adaptiveGridService;
155
159
  this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this, true));
156
160
  }
157
161
  /**
@@ -264,44 +268,55 @@ export class ColumnMenuComponent {
264
268
  e.preventDefault();
265
269
  e instanceof KeyboardEvent && e.stopImmediatePropagation();
266
270
  }
267
- this.expandedFilter = this.getExpandedState(this.settings.filter);
268
- this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
269
- this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
270
- this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASSES);
271
- // Needed as changes to 'popupRef' and 'popupId' are not reflected
272
- // automatically when the Popup is closed by clicking outside the anchor
273
- const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
274
- if (this.popupRef) {
275
- this.popupSubs?.unsubscribe();
276
- this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
277
- this.popupSubs?.unsubscribe();
278
- this.popupSubs = null;
279
- this.close(true);
280
- this.updateAria(ariaRoot);
281
- });
282
- this.popupSubs.add(() => this.popupRef.popup.instance.close.subscribe(() => {
283
- this.popupSubs?.unsubscribe();
284
- this.popupSubs = this.popupRef = null;
285
- this.updateAria(ariaRoot);
286
- }));
287
- const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
288
- if (popupAriaElement) {
289
- const popupId = getId(this.idService?.gridId());
290
- this.renderer.setAttribute(popupAriaElement, 'id', popupId);
291
- this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
292
- this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
293
- ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
294
- ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
295
- }
296
- if (this.settings.view === 'tabbed') {
297
- this.renderer.addClass(popupAriaElement, 'k-column-menu-tabbed');
298
- this.renderer.addClass(popupAriaElement, 'k-column-menu');
299
- this.cdr.detectChanges();
300
- this.tabStrip?.selectTab(0);
271
+ if (this.ctx.grid.adaptiveMode === 'auto' && this.adaptiveGridService.windowSize !== 'large') {
272
+ if (!this.ctx.grid.isActionSheetExpanded) {
273
+ this.adaptiveGridService.viewType = 'columnMenu';
274
+ this.adaptiveGridService.columns = this.columns;
275
+ this.adaptiveGridService.columnMenuService = this.service;
276
+ this.adaptiveGridService.column = this.column;
277
+ this.ctx.grid.adaptiveRenderer.actionSheet.toggle(true);
301
278
  }
302
279
  }
303
280
  else {
304
- this.focusRoot();
281
+ this.expandedFilter = this.getExpandedState(this.settings.filter);
282
+ this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
283
+ this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
284
+ this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASSES);
285
+ // Needed as changes to 'popupRef' and 'popupId' are not reflected
286
+ // automatically when the Popup is closed by clicking outside the anchor
287
+ const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
288
+ if (this.popupRef) {
289
+ this.popupSubs?.unsubscribe();
290
+ this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
291
+ this.popupSubs?.unsubscribe();
292
+ this.popupSubs = null;
293
+ this.close(true);
294
+ this.updateAria(ariaRoot);
295
+ });
296
+ this.popupSubs.add(() => this.popupRef.popup.instance.close.subscribe(() => {
297
+ this.popupSubs?.unsubscribe();
298
+ this.popupSubs = this.popupRef = null;
299
+ this.updateAria(ariaRoot);
300
+ }));
301
+ const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
302
+ if (popupAriaElement) {
303
+ const popupId = getId(this.idService?.gridId());
304
+ this.renderer.setAttribute(popupAriaElement, 'id', popupId);
305
+ this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
306
+ this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
307
+ ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
308
+ ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
309
+ }
310
+ if (this.settings.view === 'tabbed') {
311
+ this.renderer.addClass(popupAriaElement, 'k-column-menu-tabbed');
312
+ this.renderer.addClass(popupAriaElement, 'k-column-menu');
313
+ this.cdr.detectChanges();
314
+ this.tabStrip?.selectTab(0);
315
+ }
316
+ }
317
+ else {
318
+ this.focusRoot();
319
+ }
305
320
  }
306
321
  }
307
322
  /**
@@ -334,7 +349,7 @@ export class ColumnMenuComponent {
334
349
  focusRoot() {
335
350
  this.isNavigable ? this.navigationService.focusCell(0, this.column.leafIndex) : this.anchor.nativeElement.focus();
336
351
  }
337
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: i1.NavigationService }, { token: i2.SinglePopupService }, { token: i3.ColumnMenuService }, { token: i4.ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i5.ColumnInfoService }, { token: i6.IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
352
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: i1.NavigationService }, { token: i2.SinglePopupService }, { token: i3.ColumnMenuService }, { token: i4.ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i5.ColumnInfoService }, { token: i6.IdService, optional: true }, { token: i7.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
338
353
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuComponent, isStandalone: true, selector: "kendo-grid-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate", tabIndex: "tabIndex" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [
339
354
  ColumnMenuService,
340
355
  MenuTabbingService
@@ -380,7 +395,8 @@ export class ColumnMenuComponent {
380
395
  [showStick]="hasStick"
381
396
  [kendoGridColumnMenuItem]="positionItem"
382
397
  [service]="service"
383
- [expanded]="expandedPosition">
398
+ [expanded]="expandedPosition"
399
+ >
384
400
  </kendo-grid-columnmenu-position>
385
401
  <span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasColumnChooser || hasAutoSizeColumn || hasAutoSizeAllColumns" class="k-separator"></span>
386
402
  <kendo-grid-columnmenu-chooser
@@ -505,7 +521,8 @@ export class ColumnMenuComponent {
505
521
  </kendo-tabstrip-tab>
506
522
  </kendo-tabstrip>
507
523
  </ng-template>
508
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { kind: "directive", type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { kind: "component", type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: TabTitleDirective, selector: "[kendoTabTitle]" }, { kind: "directive", type: TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
524
+
525
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { kind: "directive", type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { kind: "component", type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: TabTitleDirective, selector: "[kendoTabTitle]" }, { kind: "directive", type: TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
509
526
  }
510
527
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
511
528
  type: Component,
@@ -557,7 +574,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
557
574
  [showStick]="hasStick"
558
575
  [kendoGridColumnMenuItem]="positionItem"
559
576
  [service]="service"
560
- [expanded]="expandedPosition">
577
+ [expanded]="expandedPosition"
578
+ >
561
579
  </kendo-grid-columnmenu-position>
562
580
  <span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasColumnChooser || hasAutoSizeColumn || hasAutoSizeAllColumns" class="k-separator"></span>
563
581
  <kendo-grid-columnmenu-chooser
@@ -682,6 +700,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
682
700
  </kendo-tabstrip-tab>
683
701
  </kendo-tabstrip>
684
702
  </ng-template>
703
+
685
704
  `,
686
705
  standalone: true,
687
706
  imports: [
@@ -694,7 +713,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
694
713
  }]
695
714
  }], ctorParameters: function () { return [{ type: i1.NavigationService }, { type: i2.SinglePopupService }, { type: i3.ColumnMenuService }, { type: i4.ContextService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i5.ColumnInfoService }, { type: i6.IdService, decorators: [{
696
715
  type: Optional
697
- }] }]; }, propDecorators: { standalone: [{
716
+ }] }, { type: i7.AdaptiveGridService }]; }, propDecorators: { standalone: [{
698
717
  type: HostBinding,
699
718
  args: ['class.k-grid-column-menu-standalone']
700
719
  }, {
@@ -0,0 +1,72 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Injectable } from "@angular/core";
6
+ import { Subject } from "rxjs";
7
+ import { AdaptiveService } from "@progress/kendo-angular-utils";
8
+ import { ContextService } from "./provider.service";
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "./provider.service";
11
+ import * as i2 from "@progress/kendo-angular-utils";
12
+ /**
13
+ * @hidden
14
+ *
15
+ * The AdaptiveGridService is used to provide common information for the ActionSheet used in adaptive mode.
16
+ */
17
+ export class AdaptiveGridService {
18
+ ctx;
19
+ adaptiveService;
20
+ /**
21
+ * Observable that emits when the ActionSheet's views change animation ends.
22
+ */
23
+ get animationEnd() {
24
+ return this.animationEndSubject.asObservable();
25
+ }
26
+ columnMenuService;
27
+ columns = [];
28
+ secondaryView;
29
+ viewType;
30
+ popupRef;
31
+ column;
32
+ filterMenuContainer;
33
+ filterMenuContainerComponentRef;
34
+ animationEndSubject = new Subject();
35
+ constructor(ctx, adaptiveService) {
36
+ this.ctx = ctx;
37
+ this.adaptiveService = adaptiveService;
38
+ }
39
+ submitFilter() {
40
+ this.filterMenuContainer.submit();
41
+ this.ctx.grid.adaptiveRenderer.actionSheet.toggle(false);
42
+ this.reset();
43
+ }
44
+ resetFilter() {
45
+ this.filterMenuContainer.reset();
46
+ this.ctx.grid.adaptiveRenderer.actionSheet.toggle(false);
47
+ this.reset();
48
+ }
49
+ reset() {
50
+ this.ctx.grid.adaptiveRenderer.actionSheet.currentView = 1;
51
+ this.filterMenuContainerComponentRef?.destroy();
52
+ this.column = null;
53
+ this.popupRef = null;
54
+ this.filterMenuContainer = null;
55
+ this.viewType = null;
56
+ this.secondaryView = null;
57
+ }
58
+ /**
59
+ * Emits an event to notify that the animation has ended.
60
+ */
61
+ notifyAnimationEnd() {
62
+ this.animationEndSubject.next();
63
+ }
64
+ get windowSize() {
65
+ return this.adaptiveService.size;
66
+ }
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveGridService, deps: [{ token: i1.ContextService }, { token: i2.AdaptiveService }], target: i0.ɵɵFactoryTarget.Injectable });
68
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveGridService });
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveGridService, decorators: [{
71
+ type: Injectable
72
+ }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.AdaptiveService }]; } });
@@ -11,10 +11,12 @@ import { ScrollSyncService } from '../scrolling/scroll-sync.service';
11
11
  import { isDocumentAvailable } from '@progress/kendo-angular-common';
12
12
  import { ContextService } from './provider.service';
13
13
  import { skip } from 'rxjs/operators';
14
+ import { AdaptiveGridService } from './adaptiveness.service';
14
15
  import * as i0 from "@angular/core";
15
16
  import * as i1 from "@progress/kendo-angular-popup";
16
17
  import * as i2 from "../scrolling/scroll-sync.service";
17
18
  import * as i3 from "./provider.service";
19
+ import * as i4 from "./adaptiveness.service";
18
20
  const contains = (node, predicate) => {
19
21
  while (node) {
20
22
  if (predicate(node)) {
@@ -47,6 +49,7 @@ export class SinglePopupService {
47
49
  renderer;
48
50
  ngZone;
49
51
  ctx;
52
+ adaptiveGridService;
50
53
  /**
51
54
  * Fires when the filter or column menus are about to close because the user clicked outside their popups.
52
55
  * Used to prevent the popup from closing.
@@ -60,11 +63,12 @@ export class SinglePopupService {
60
63
  /**
61
64
  * @hidden
62
65
  */
63
- constructor(popupService, renderer, ngZone, scrollSyncService, ctx) {
66
+ constructor(popupService, renderer, ngZone, scrollSyncService, ctx, adaptiveGridService) {
64
67
  this.popupService = popupService;
65
68
  this.renderer = renderer;
66
69
  this.ngZone = ngZone;
67
70
  this.ctx = ctx;
71
+ this.adaptiveGridService = adaptiveGridService;
68
72
  this.scrollSubscription = scrollSyncService.changes.pipe(skip(1)).subscribe(() => this.destroy());
69
73
  }
70
74
  /**
@@ -83,6 +87,7 @@ export class SinglePopupService {
83
87
  content: template,
84
88
  positionMode: "absolute"
85
89
  });
90
+ this.adaptiveGridService.popupRef = this.popupRef;
86
91
  this.renderer.setAttribute(this.popupRef.popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
87
92
  this.attachClose(anchor);
88
93
  }
@@ -102,6 +107,7 @@ export class SinglePopupService {
102
107
  this.pointerEventsSub = null;
103
108
  this.popupRef.close();
104
109
  this.popupRef = null;
110
+ this.adaptiveGridService.popupRef = null;
105
111
  }
106
112
  }
107
113
  ngOnDestroy() {
@@ -141,9 +147,9 @@ export class SinglePopupService {
141
147
  }));
142
148
  });
143
149
  }
144
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SinglePopupService, deps: [{ token: i1.PopupService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i2.ScrollSyncService }, { token: i3.ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
150
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SinglePopupService, deps: [{ token: i1.PopupService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i2.ScrollSyncService }, { token: i3.ContextService }, { token: i4.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Injectable });
145
151
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SinglePopupService });
146
152
  }
147
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SinglePopupService, decorators: [{
148
154
  type: Injectable
149
- }], ctorParameters: function () { return [{ type: i1.PopupService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i2.ScrollSyncService }, { type: i3.ContextService }]; } });
155
+ }], ctorParameters: function () { return [{ type: i1.PopupService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i2.ScrollSyncService }, { type: i3.ContextService }, { type: i4.AdaptiveGridService }]; } });
@@ -73,7 +73,7 @@ import { FilterRowComponent } from "./filtering/filter-row.component";
73
73
  // COLUMN MENU
74
74
  import { ColumnMenuChooserItemCheckedDirective } from "./column-menu/column-chooser-item-checked.directive";
75
75
  import { ColumnChooserComponent } from "./column-menu/column-chooser.component";
76
- import { ColumnChooserToolbarDirective } from "./column-menu/column-chooser-tool.directive";
76
+ import { ColumnChooserToolbarDirective } from "./rendering/toolbar/tools/column-chooser-tool.directive";
77
77
  import { ColumnListComponent } from "./column-menu/column-list.component";
78
78
  import { ColumnMenuAutoSizeAllColumnsComponent } from "./column-menu/column-menu-autosize-all.component";
79
79
  import { ColumnMenuAutoSizeColumnComponent } from "./column-menu/column-menu-autosize.component";
@@ -9,9 +9,11 @@ import { markAllAsTouched } from './utils';
9
9
  import { EditingDirectiveBase } from './editing-directive-base';
10
10
  import { DialogFormComponent } from '../editing/form';
11
11
  import { isPresent } from '@progress/kendo-angular-common';
12
+ import { AdaptiveGridService } from '../common/adaptiveness.service';
12
13
  import * as i0 from "@angular/core";
13
14
  import * as i1 from "../grid.component";
14
15
  import * as i2 from "../editing/local-data-changes.service";
16
+ import * as i3 from "../common/adaptiveness.service";
15
17
  /**
16
18
  * A directive which encapsulates the editing operations of the Grid when using the
17
19
  * External Form ([see example](slug:editing_directives_grid#external-editing)).
@@ -19,6 +21,7 @@ import * as i2 from "../editing/local-data-changes.service";
19
21
  export class ExternalEditingDirective extends EditingDirectiveBase {
20
22
  grid;
21
23
  localDataChangesService;
24
+ adaptiveGridService;
22
25
  /**
23
26
  * The function that creates the `FormGroup` for the edited model.
24
27
  */
@@ -31,10 +34,11 @@ export class ExternalEditingDirective extends EditingDirectiveBase {
31
34
  * Allows you to customize the Dialog that contains the edit form.
32
35
  */
33
36
  dialogSettings;
34
- constructor(grid, localDataChangesService) {
37
+ constructor(grid, localDataChangesService, adaptiveGridService) {
35
38
  super(grid, localDataChangesService);
36
39
  this.grid = grid;
37
40
  this.localDataChangesService = localDataChangesService;
41
+ this.adaptiveGridService = adaptiveGridService;
38
42
  }
39
43
  ngOnInit() {
40
44
  super.ngOnInit();
@@ -46,19 +50,29 @@ export class ExternalEditingDirective extends EditingDirectiveBase {
46
50
  * Opens a Dialog that contains the edit form.
47
51
  */
48
52
  openEditFormDialog(editEventArgs, formGroup, formSettings) {
49
- const settings = { appendTo: this.grid.dialogContainer, content: DialogFormComponent, title: this.localization.get('externalEditingTitle'), ...this.dialogSettings };
50
- const dialog = this.dialogService.open(settings);
51
53
  const formControls = this.normalizeFormSettings(formGroup, editEventArgs);
52
- dialog.content.setInput('controls', formControls);
53
- formSettings && dialog.content.setInput('formSettings', formSettings);
54
- dialog.content.setInput('formGroup', formGroup);
55
- dialog.result.subscribe((r) => {
56
- const resultType = r['text'];
57
- if (resultType === this.localization.get('externalEditingSaveText')) {
58
- this.saveHandler({ ...editEventArgs, formGroup });
54
+ if (this.grid.adaptiveMode === 'auto' && this.adaptiveGridService.windowSize !== 'large') {
55
+ if (!this.grid.isActionSheetExpanded) {
56
+ this.adaptiveGridService.viewType = 'externalEditing';
57
+ this.grid.adaptiveRenderer.externalEditingSettings = { formControls, formGroup, formSettings, event: editEventArgs, externalEditingDirective: this };
58
+ this.grid.adaptiveRenderer.actionSheet.toggle(true);
59
59
  }
60
- dialog.close();
61
- });
60
+ }
61
+ else {
62
+ const settings = { appendTo: this.grid.dialogContainer, content: DialogFormComponent, title: this.localization.get('externalEditingTitle'), ...this.dialogSettings };
63
+ const dialog = this.dialogService.open(settings);
64
+ this.adaptiveGridService.popupRef = dialog;
65
+ dialog.content.setInput('controls', formControls);
66
+ formSettings && dialog.content.setInput('formSettings', formSettings);
67
+ dialog.content.setInput('formGroup', formGroup);
68
+ dialog.result.subscribe((r) => {
69
+ const resultType = r['text'];
70
+ if (resultType === this.localization.get('externalEditingSaveText')) {
71
+ this.saveHandler({ ...editEventArgs, formGroup });
72
+ }
73
+ dialog.close();
74
+ });
75
+ }
62
76
  }
63
77
  createModel(args) {
64
78
  return this.createFormGroup(args);
@@ -111,7 +125,7 @@ export class ExternalEditingDirective extends EditingDirectiveBase {
111
125
  });
112
126
  return settings.filter(item => isPresent(item));
113
127
  }
114
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExternalEditingDirective, deps: [{ token: i1.GridComponent }, { token: i2.LocalDataChangesService }], target: i0.ɵɵFactoryTarget.Directive });
128
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExternalEditingDirective, deps: [{ token: i1.GridComponent }, { token: i2.LocalDataChangesService }, { token: i3.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Directive });
115
129
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ExternalEditingDirective, isStandalone: true, selector: "[kendoGridExternalEditing]", inputs: { createFormGroup: ["kendoGridExternalEditing", "createFormGroup"], formSettings: "formSettings", dialogSettings: "dialogSettings" }, usesInheritance: true, ngImport: i0 });
116
130
  }
117
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExternalEditingDirective, decorators: [{
@@ -120,7 +134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
120
134
  selector: '[kendoGridExternalEditing]',
121
135
  standalone: true
122
136
  }]
123
- }], ctorParameters: function () { return [{ type: i1.GridComponent }, { type: i2.LocalDataChangesService }]; }, propDecorators: { createFormGroup: [{
137
+ }], ctorParameters: function () { return [{ type: i1.GridComponent }, { type: i2.LocalDataChangesService }, { type: i3.AdaptiveGridService }]; }, propDecorators: { createFormGroup: [{
124
138
  type: Input,
125
139
  args: ['kendoGridExternalEditing']
126
140
  }], formSettings: [{
@@ -119,7 +119,7 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
119
119
  (change)="onChange(item.value, input)"
120
120
  (keydown.shift.tab)="onShiftTab($event)"
121
121
  ></kendo-radiobutton>
122
- <label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
122
+ <label class="k-radio-label" [attr.for]="input.focusableId">{{item.text}}</label>
123
123
  </li>
124
124
  </ul>
125
125
  `, 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"] }] });
@@ -141,7 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
141
141
  (change)="onChange(item.value, input)"
142
142
  (keydown.shift.tab)="onShiftTab($event)"
143
143
  ></kendo-radiobutton>
144
- <label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
144
+ <label class="k-radio-label" [attr.for]="input.focusableId">{{item.text}}</label>
145
145
  </li>
146
146
  </ul>
147
147
  `,
@@ -76,6 +76,7 @@ export class DateFilterMenuInputComponent {
76
76
  <kendo-datepicker
77
77
  #picker
78
78
  kendoFilterInput
79
+ [adaptiveMode]="ctx.grid?.adaptiveMode"
79
80
  [columnLabel]="columnLabel"
80
81
  [filterDelay]="0"
81
82
  (open)="open(picker)"
@@ -114,6 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
114
115
  <kendo-datepicker
115
116
  #picker
116
117
  kendoFilterInput
118
+ [adaptiveMode]="ctx.grid?.adaptiveMode"
117
119
  [columnLabel]="columnLabel"
118
120
  [filterDelay]="0"
119
121
  (open)="open(picker)"
@@ -101,6 +101,8 @@ 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"
104
106
  [filterMenuDropDownLabel]="filterMenuDropDownLabel"
105
107
  class="k-filter-and"
106
108
  [data]="logicOperators"
@@ -156,6 +158,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
156
158
  <kendo-dropdownlist
157
159
  *ngIf="extra"
158
160
  kendoFilterMenuDropDown
161
+ [adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
162
+ [adaptiveMode]="ctx.grid?.adaptiveMode"
159
163
  [filterMenuDropDownLabel]="filterMenuDropDownLabel"
160
164
  class="k-filter-and"
161
165
  [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