@progress/kendo-angular-grid 19.0.0-develop.17 → 19.0.0-develop.19

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 (69) 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 +68 -44
  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/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.mjs +50 -9
  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 +2947 -1344
  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
@@ -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,53 +268,69 @@ 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
  /**
308
323
  * @hidden
309
324
  */
310
325
  close(triggerFocus = false) {
311
- this.popupService.destroy();
312
- this.popupRef = null;
313
- this.cdr.markForCheck();
326
+ if (this.ctx.grid.adaptiveMode === 'auto' && this.adaptiveGridService.windowSize !== 'large') {
327
+ this.ctx.grid.adaptiveRenderer.actionSheet.toggle(false);
328
+ }
329
+ else {
330
+ this.popupService.destroy();
331
+ this.popupRef = null;
332
+ this.cdr.markForCheck();
333
+ }
314
334
  if (!triggerFocus) {
315
335
  return;
316
336
  }
@@ -334,7 +354,7 @@ export class ColumnMenuComponent {
334
354
  focusRoot() {
335
355
  this.isNavigable ? this.navigationService.focusCell(0, this.column.leafIndex) : this.anchor.nativeElement.focus();
336
356
  }
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 });
357
+ 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
358
  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
359
  ColumnMenuService,
340
360
  MenuTabbingService
@@ -380,7 +400,8 @@ export class ColumnMenuComponent {
380
400
  [showStick]="hasStick"
381
401
  [kendoGridColumnMenuItem]="positionItem"
382
402
  [service]="service"
383
- [expanded]="expandedPosition">
403
+ [expanded]="expandedPosition"
404
+ >
384
405
  </kendo-grid-columnmenu-position>
385
406
  <span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasColumnChooser || hasAutoSizeColumn || hasAutoSizeAllColumns" class="k-separator"></span>
386
407
  <kendo-grid-columnmenu-chooser
@@ -505,7 +526,8 @@ export class ColumnMenuComponent {
505
526
  </kendo-tabstrip-tab>
506
527
  </kendo-tabstrip>
507
528
  </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"] }] });
529
+
530
+ `, 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
531
  }
510
532
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
511
533
  type: Component,
@@ -557,7 +579,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
557
579
  [showStick]="hasStick"
558
580
  [kendoGridColumnMenuItem]="positionItem"
559
581
  [service]="service"
560
- [expanded]="expandedPosition">
582
+ [expanded]="expandedPosition"
583
+ >
561
584
  </kendo-grid-columnmenu-position>
562
585
  <span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasColumnChooser || hasAutoSizeColumn || hasAutoSizeAllColumns" class="k-separator"></span>
563
586
  <kendo-grid-columnmenu-chooser
@@ -682,6 +705,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
682
705
  </kendo-tabstrip-tab>
683
706
  </kendo-tabstrip>
684
707
  </ng-template>
708
+
685
709
  `,
686
710
  standalone: true,
687
711
  imports: [
@@ -694,7 +718,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
694
718
  }]
695
719
  }], 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
720
  type: Optional
697
- }] }]; }, propDecorators: { standalone: [{
721
+ }] }, { type: i7.AdaptiveGridService }]; }, propDecorators: { standalone: [{
698
722
  type: HostBinding,
699
723
  args: ['class.k-grid-column-menu-standalone']
700
724
  }, {
@@ -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