@progress/kendo-angular-grid 11.4.0-develop.1 → 11.4.0-develop.10

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 (47) hide show
  1. package/common/provider.service.d.ts +6 -0
  2. package/esm2020/column-menu/column-list.component.mjs +1 -1
  3. package/esm2020/column-menu/column-menu-chooser.component.mjs +1 -1
  4. package/esm2020/column-menu/column-menu-filter.component.mjs +1 -1
  5. package/esm2020/column-menu/column-menu-position.component.mjs +1 -1
  6. package/esm2020/common/provider.service.mjs +9 -3
  7. package/esm2020/filtering/cell/date-filter-cell.component.mjs +1 -1
  8. package/esm2020/filtering/cell/filter-cell.component.mjs +7 -3
  9. package/esm2020/filtering/menu/date-filter-menu-input.component.mjs +1 -1
  10. package/esm2020/filtering/menu/filter-menu-container.component.mjs +1 -1
  11. package/esm2020/filtering/shared-filtering.module.mjs +1 -1
  12. package/esm2020/grid.component.mjs +54 -4
  13. package/esm2020/grid.module.mjs +8 -3
  14. package/esm2020/grouping/group-panel.component.mjs +16 -4
  15. package/esm2020/index.mjs +2 -0
  16. package/esm2020/localization/messages.mjs +7 -1
  17. package/esm2020/navigation/navigation.service.mjs +5 -0
  18. package/esm2020/package-metadata.mjs +2 -2
  19. package/esm2020/rendering/cell.component.mjs +1 -1
  20. package/esm2020/rendering/footer/footer.component.mjs +7 -3
  21. package/esm2020/rendering/header/header.component.mjs +72 -22
  22. package/esm2020/rendering/list.component.mjs +8 -12
  23. package/esm2020/rendering/table-body.component.mjs +4 -2
  24. package/esm2020/rendering/toolbar/toolbar-focusable.directive.mjs +63 -0
  25. package/esm2020/rendering/toolbar/toolbar-navigation.service.mjs +53 -0
  26. package/esm2020/rendering/toolbar/toolbar-position.mjs +5 -0
  27. package/esm2020/rendering/toolbar/toolbar-template.directive.mjs +1 -1
  28. package/esm2020/rendering/toolbar/toolbar.component.mjs +74 -9
  29. package/fesm2015/progress-kendo-angular-grid.mjs +366 -63
  30. package/fesm2020/progress-kendo-angular-grid.mjs +363 -63
  31. package/filtering/cell/filter-cell.component.d.ts +1 -0
  32. package/grid.component.d.ts +5 -0
  33. package/grid.module.d.ts +97 -96
  34. package/grouping/group-panel.component.d.ts +5 -1
  35. package/index.d.ts +2 -0
  36. package/localization/messages.d.ts +13 -1
  37. package/navigation/navigable-settings.d.ts +1 -1
  38. package/navigation/navigation.service.d.ts +2 -0
  39. package/package.json +14 -14
  40. package/rendering/footer/footer.component.d.ts +1 -0
  41. package/rendering/header/header.component.d.ts +5 -1
  42. package/rendering/list.component.d.ts +2 -2
  43. package/rendering/toolbar/toolbar-focusable.directive.d.ts +29 -0
  44. package/rendering/toolbar/toolbar-navigation.service.d.ts +21 -0
  45. package/rendering/toolbar/toolbar-position.d.ts +5 -0
  46. package/rendering/toolbar/toolbar.component.d.ts +11 -2
  47. package/schematics/ngAdd/index.js +2 -2
@@ -3,9 +3,9 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { InjectionToken, Component, HostBinding, Input, EventEmitter, Injectable, Optional, Inject, Directive, SkipSelf, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, Host, Output, SecurityContext, ChangeDetectionStrategy, ViewChild, HostListener, ViewChildren, Self, TemplateRef, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
6
+ import { InjectionToken, Component, HostBinding, Input, EventEmitter, Injectable, Optional, Inject, Directive, SkipSelf, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, Host, Output, SecurityContext, HostListener, ChangeDetectionStrategy, ViewChild, ViewChildren, Self, TemplateRef, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
7
7
  import * as i1$1 from '@progress/kendo-angular-common';
8
- import { isDocumentAvailable, Keys, anyChanged, isChanged as isChanged$1, KendoInput, guid, hasObservers, ResizeSensorComponent, DraggableModule, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';
8
+ import { isDocumentAvailable, Keys, closest as closest$1, isFocusable as isFocusable$1, anyChanged, isChanged as isChanged$1, KendoInput, guid, hasObservers, ResizeSensorComponent, DraggableModule, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';
9
9
  import { merge, of, Subject, from, Subscription, interval, fromEvent, zip as zip$1, BehaviorSubject, Observable } from 'rxjs';
10
10
  import * as i1 from '@progress/kendo-angular-l10n';
11
11
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
@@ -1524,6 +1524,7 @@ class NavigationService {
1524
1524
  this.cursor = new NavigationCursor(this.model);
1525
1525
  this.pagerIsNavigable = false;
1526
1526
  this.tableIsNavigable = false;
1527
+ this.toolbarIsNavigable = false;
1527
1528
  this.changes = this.cursor.changes;
1528
1529
  }
1529
1530
  set metadata(value) {
@@ -1542,6 +1543,9 @@ class NavigationService {
1542
1543
  get tableEnabled() {
1543
1544
  return this.alive && this.tableIsNavigable;
1544
1545
  }
1546
+ get toolbarEnabled() {
1547
+ return this.alive && this.toolbarIsNavigable;
1548
+ }
1545
1549
  get activeCell() {
1546
1550
  if (this.mode !== 0 /* Standby */) {
1547
1551
  return this.cursor.cell;
@@ -1737,6 +1741,7 @@ class NavigationService {
1737
1741
  setActiveSections(navigableOptions) {
1738
1742
  this.pagerIsNavigable = navigableOptions.includes('pager');
1739
1743
  this.tableIsNavigable = navigableOptions.includes('table');
1744
+ this.toolbarIsNavigable = navigableOptions.includes('toolbar');
1740
1745
  }
1741
1746
  focusAdjacentCell(fwd, wrap) {
1742
1747
  this.focusCell();
@@ -2850,8 +2855,8 @@ const packageMetadata = {
2850
2855
  name: '@progress/kendo-angular-grid',
2851
2856
  productName: 'Kendo UI for Angular',
2852
2857
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
2853
- publishDate: 1678093026,
2854
- version: '11.4.0-develop.1',
2858
+ publishDate: 1678804365,
2859
+ version: '11.4.0-develop.10',
2855
2860
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
2856
2861
  };
2857
2862
 
@@ -4889,6 +4894,53 @@ class PairSet {
4889
4894
  }
4890
4895
  }
4891
4896
 
4897
+ /**
4898
+ * @hidden
4899
+ */
4900
+ class GridToolbarNavigationService {
4901
+ constructor(renderer) {
4902
+ this.renderer = renderer;
4903
+ this.navigableElements = [];
4904
+ this.currentActiveIndex = 0;
4905
+ this.defaultFocusableSelector = `
4906
+ [kendogridtoolbarfocusable],
4907
+ [kendogridaddcommand],
4908
+ [kendogridcancelcommand],
4909
+ [kendogrideditcommand],
4910
+ [kendogridremovecommand],
4911
+ [kendogridsavecommand],
4912
+ [kendogridexcelcommand],
4913
+ [kendogridpdfcommand]
4914
+ `;
4915
+ }
4916
+ notify() {
4917
+ // ensure focusable elements are in the same order as in the DOM
4918
+ this.navigableElements = this.navigableElements.length && Array.from(this.navigableElements[0].parentElement.querySelectorAll(this.defaultFocusableSelector)) || [];
4919
+ this.currentActiveIndex = 0;
4920
+ this.updateFocus();
4921
+ }
4922
+ focus() {
4923
+ this.navigableElements[this.currentActiveIndex]?.focus();
4924
+ }
4925
+ updateFocus() {
4926
+ if (!this.navigableElements.length) {
4927
+ return;
4928
+ }
4929
+ this.navigableElements.forEach(el => {
4930
+ this.renderer.setAttribute(el, 'tabindex', '-1');
4931
+ });
4932
+ this.renderer.setAttribute(this.navigableElements[this.currentActiveIndex], 'tabindex', '0');
4933
+ if (isDocumentAvailable() && document.activeElement.closest('.k-toolbar')) {
4934
+ this.navigableElements[this.currentActiveIndex].focus();
4935
+ }
4936
+ }
4937
+ }
4938
+ GridToolbarNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
4939
+ GridToolbarNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarNavigationService });
4940
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarNavigationService, decorators: [{
4941
+ type: Injectable
4942
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
4943
+
4892
4944
  /**
4893
4945
  * @hidden
4894
4946
  *
@@ -4899,12 +4951,17 @@ class PairSet {
4899
4951
  * and a avoids dependency cycles between components.
4900
4952
  */
4901
4953
  class ContextService {
4954
+ constructor(renderer) {
4955
+ this.renderer = renderer;
4956
+ this.topToolbarNavigation = new GridToolbarNavigationService(this.renderer);
4957
+ this.bottomToolbarNavigation = new GridToolbarNavigationService(this.renderer);
4958
+ }
4902
4959
  }
4903
- ContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4960
+ ContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContextService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
4904
4961
  ContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContextService });
4905
4962
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContextService, decorators: [{
4906
4963
  type: Injectable
4907
- }] });
4964
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
4908
4965
 
4909
4966
  /**
4910
4967
  * @hidden
@@ -5725,7 +5782,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5725
5782
  class ToolbarTemplateDirective {
5726
5783
  constructor(templateRef) {
5727
5784
  this.templateRef = templateRef;
5728
- this._position = "top";
5785
+ this._position = 'top';
5729
5786
  }
5730
5787
  /**
5731
5788
  * The position of the toolbar ([see example]({% slug toolbartemplate_grid %})).
@@ -6627,7 +6684,9 @@ class ToolbarComponent {
6627
6684
  this.ctx = ctx;
6628
6685
  this.wrapper = wrapper;
6629
6686
  this.context = {};
6687
+ this.role = 'toolbar';
6630
6688
  this._size = 'medium';
6689
+ this.navigationService = this.ctx[`${this.wrapper.nativeElement.getAttribute('position')}ToolbarNavigation`];
6631
6690
  }
6632
6691
  get sizeSmallClass() {
6633
6692
  return this.size === 'small';
@@ -6648,18 +6707,62 @@ class ToolbarComponent {
6648
6707
  get size() {
6649
6708
  return this._size;
6650
6709
  }
6710
+ clickHandler(ev) {
6711
+ if (this.navigable && isDocumentAvailable()) {
6712
+ const closestFocusable = closest$1(ev.target, isFocusable$1);
6713
+ const targetIndex = this.navigationService.navigableElements.indexOf(closestFocusable);
6714
+ if (targetIndex > -1) {
6715
+ this.navigationService.currentActiveIndex = targetIndex;
6716
+ }
6717
+ this.navigationService.updateFocus();
6718
+ if (ev.target === this.wrapper.nativeElement) {
6719
+ this.navigationService.focus();
6720
+ }
6721
+ }
6722
+ }
6723
+ ;
6724
+ arrowLeftListener() {
6725
+ if (this.navigable && isDocumentAvailable() && this.navigationService.navigableElements.length) {
6726
+ this.navigationService.currentActiveIndex--;
6727
+ if (this.navigationService.currentActiveIndex < 0) {
6728
+ this.navigationService.currentActiveIndex = this.navigationService.navigableElements.length - 1;
6729
+ }
6730
+ this.navigationService.updateFocus();
6731
+ }
6732
+ }
6733
+ arrowRightListener() {
6734
+ if (this.navigable && isDocumentAvailable() && this.navigationService.navigableElements.length) {
6735
+ this.navigationService.currentActiveIndex++;
6736
+ if (this.navigationService.currentActiveIndex >= this.navigationService.navigableElements.length) {
6737
+ this.navigationService.currentActiveIndex = 0;
6738
+ }
6739
+ this.navigationService.updateFocus();
6740
+ }
6741
+ }
6742
+ homeKeyListener(e) {
6743
+ if (this.navigable && isDocumentAvailable() && this.navigationService.navigableElements.length) {
6744
+ e.preventDefault();
6745
+ this.navigationService.currentActiveIndex = 0;
6746
+ this.navigationService.updateFocus();
6747
+ }
6748
+ }
6749
+ endKeyListener(e) {
6750
+ if (this.navigable && isDocumentAvailable() && this.navigationService.navigableElements.length) {
6751
+ e.preventDefault();
6752
+ this.navigationService.currentActiveIndex = this.navigationService.navigableElements.length - 1;
6753
+ this.navigationService.updateFocus();
6754
+ }
6755
+ }
6651
6756
  get toolbarTemplateRef() {
6652
6757
  return this.ctx.grid.toolbarTemplate ? this.ctx.grid.toolbarTemplate.templateRef : undefined;
6653
6758
  }
6654
6759
  }
6655
6760
  ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarComponent, deps: [{ token: ContextService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
6656
- ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: { position: "position", size: "size" }, host: { properties: { "class.k-toolbar-sm": "this.sizeSmallClass", "class.k-toolbar-md": "this.sizeMediumClass" } }, ngImport: i0, template: `
6761
+ ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: { position: "position", size: "size", navigable: "navigable" }, host: { listeners: { "click": "clickHandler($event)", "keydown.arrowleft": "arrowLeftListener($event)", "keydown.arrowright": "arrowRightListener($event)", "keydown.home": "homeKeyListener($event)", "keydown.end": "endKeyListener($event)" }, properties: { "attr.role": "this.role", "class.k-toolbar-sm": "this.sizeSmallClass", "class.k-toolbar-md": "this.sizeMediumClass" } }, ngImport: i0, template: `
6657
6762
  <ng-template
6658
6763
  *ngIf="toolbarTemplateRef"
6659
6764
  [ngTemplateOutlet]="toolbarTemplateRef"
6660
- [ngTemplateOutletContext]="context"
6661
- >
6662
- </ng-template>
6765
+ [ngTemplateOutletContext]="context"></ng-template>
6663
6766
  `, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
6664
6767
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarComponent, decorators: [{
6665
6768
  type: Component,
@@ -6669,12 +6772,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6669
6772
  <ng-template
6670
6773
  *ngIf="toolbarTemplateRef"
6671
6774
  [ngTemplateOutlet]="toolbarTemplateRef"
6672
- [ngTemplateOutletContext]="context"
6673
- >
6674
- </ng-template>
6775
+ [ngTemplateOutletContext]="context"></ng-template>
6675
6776
  `
6676
6777
  }]
6677
- }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ElementRef }]; }, propDecorators: { sizeSmallClass: [{
6778
+ }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ElementRef }]; }, propDecorators: { role: [{
6779
+ type: HostBinding,
6780
+ args: ['attr.role']
6781
+ }], sizeSmallClass: [{
6678
6782
  type: HostBinding,
6679
6783
  args: ['class.k-toolbar-sm']
6680
6784
  }], sizeMediumClass: [{
@@ -6684,6 +6788,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6684
6788
  type: Input
6685
6789
  }], size: [{
6686
6790
  type: Input
6791
+ }], clickHandler: [{
6792
+ type: HostListener,
6793
+ args: ['click', ['$event']]
6794
+ }], arrowLeftListener: [{
6795
+ type: HostListener,
6796
+ args: ['keydown.arrowleft', ['$event']]
6797
+ }], arrowRightListener: [{
6798
+ type: HostListener,
6799
+ args: ['keydown.arrowright', ['$event']]
6800
+ }], homeKeyListener: [{
6801
+ type: HostListener,
6802
+ args: ['keydown.home', ['$event']]
6803
+ }], endKeyListener: [{
6804
+ type: HostListener,
6805
+ args: ['keydown.end', ['$event']]
6806
+ }], navigable: [{
6807
+ type: Input
6687
6808
  }] } });
6688
6809
 
6689
6810
  /**
@@ -8411,6 +8532,12 @@ class GroupPanelComponent {
8411
8532
  this.targetSubscription.unsubscribe();
8412
8533
  }
8413
8534
  }
8535
+ messageFor(token) {
8536
+ return this.localization.get(token);
8537
+ }
8538
+ getTitle(group) {
8539
+ return this.messageFor(group.dir === 'desc' ? 'sortedDescending' : 'sortedAscending');
8540
+ }
8414
8541
  getDirectionIcon(group) {
8415
8542
  return group.dir === 'desc' ? 'sort-desc-sm' : 'sort-asc-sm';
8416
8543
  }
@@ -8476,7 +8603,7 @@ class GroupPanelComponent {
8476
8603
  }
8477
8604
  }
8478
8605
  GroupPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GroupPanelComponent, deps: [{ token: DragHintService }, { token: DropCueService }, { token: GroupInfoService }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
8479
- GroupPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: { text: "text", groups: "groups" }, outputs: { change: "change" }, host: { properties: { "class.k-grouping-header": "this.groupHeaderClass" } }, viewQueries: [{ propertyName: "dropTargets", predicate: DropTargetDirective, descendants: true }], ngImport: i0, template: `
8606
+ GroupPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: { text: "text", navigable: "navigable", groups: "groups" }, outputs: { change: "change" }, host: { properties: { "class.k-grouping-header": "this.groupHeaderClass" } }, viewQueries: [{ propertyName: "dropTargets", predicate: DropTargetDirective, descendants: true }], ngImport: i0, template: `
8480
8607
  <div
8481
8608
  *ngIf="groups.length === 0"
8482
8609
  class="k-grouping-drop-container"
@@ -8490,12 +8617,14 @@ GroupPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8490
8617
 
8491
8618
  <kendo-chiplist
8492
8619
  *ngIf="groups.length !== 0"
8493
- >
8620
+ [navigable]="navigable"
8621
+ role="none">
8494
8622
  <kendo-chip
8495
8623
  *ngFor="let group of groups; let index = index;"
8496
8624
  kendoDropTarget
8497
8625
  kendoDraggableColumn
8498
8626
  kendoDraggable
8627
+ [title]="getTitle(group)"
8499
8628
  [enableDrag]="true"
8500
8629
  [context]="{
8501
8630
  field: group.field,
@@ -8520,7 +8649,7 @@ GroupPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8520
8649
  }"
8521
8650
  kendoDropTarget
8522
8651
  >&nbsp;</div>
8523
- `, isInline: true, components: [{ type: i4$1.ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["selection", "size"], outputs: ["selectedChange", "remove"] }, { type: i4$1.ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarClass", "selected", "removable", "removeIcon", "removeSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "contentClick"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { type: i1$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8652
+ `, isInline: true, components: [{ type: i4$1.ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { type: i4$1.ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarClass", "selected", "removable", "removeIcon", "removeSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "contentClick"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { type: i1$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8524
8653
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GroupPanelComponent, decorators: [{
8525
8654
  type: Component,
8526
8655
  args: [{
@@ -8540,12 +8669,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8540
8669
 
8541
8670
  <kendo-chiplist
8542
8671
  *ngIf="groups.length !== 0"
8543
- >
8672
+ [navigable]="navigable"
8673
+ role="none">
8544
8674
  <kendo-chip
8545
8675
  *ngFor="let group of groups; let index = index;"
8546
8676
  kendoDropTarget
8547
8677
  kendoDraggableColumn
8548
8678
  kendoDraggable
8679
+ [title]="getTitle(group)"
8549
8680
  [enableDrag]="true"
8550
8681
  [context]="{
8551
8682
  field: group.field,
@@ -8579,6 +8710,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8579
8710
  args: ["class.k-grouping-header"]
8580
8711
  }], text: [{
8581
8712
  type: Input
8713
+ }], navigable: [{
8714
+ type: Input
8582
8715
  }], groups: [{
8583
8716
  type: Input
8584
8717
  }], dropTargets: [{
@@ -10292,7 +10425,7 @@ DateFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
10292
10425
  </kendo-datepicker-messages>
10293
10426
  </kendo-datepicker>
10294
10427
  </kendo-grid-filter-menu-input-wrapper>
10295
- `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { type: i5$1.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }, { type: i5$1.DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
10428
+ `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { type: i5$1.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }, { type: i5$1.DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
10296
10429
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuInputComponent, decorators: [{
10297
10430
  type: Component,
10298
10431
  args: [{
@@ -10871,7 +11004,7 @@ class FilterMenuContainerComponent {
10871
11004
  /**
10872
11005
  * @hidden
10873
11006
  */
10874
- this.actionsClass = 'k-action-buttons';
11007
+ this.actionsClass = 'k-actions';
10875
11008
  this._templateContext = {};
10876
11009
  this.menuTabbingService = menuTabbingService;
10877
11010
  }
@@ -11780,7 +11913,7 @@ class ColumnMenuPositionComponent extends ColumnMenuItemBase {
11780
11913
  /**
11781
11914
  * @hidden
11782
11915
  */
11783
- this.actionsClass = 'k-columnmenu-actions';
11916
+ this.actionsClass = 'k-actions';
11784
11917
  this.setColumnPositionIcon = setColumnPositionIcon;
11785
11918
  this._isLast = false;
11786
11919
  }
@@ -11914,7 +12047,7 @@ class ColumnListComponent {
11914
12047
  this.columnChange = new EventEmitter();
11915
12048
  this.autoSync = true;
11916
12049
  this.allowHideAll = false;
11917
- this.actionsClass = 'k-action-buttons';
12050
+ this.actionsClass = 'k-actions';
11918
12051
  this.unlockedCount = 0;
11919
12052
  }
11920
12053
  get className() {
@@ -12161,7 +12294,7 @@ class ColumnMenuChooserComponent extends ColumnMenuItemBase {
12161
12294
  /**
12162
12295
  * @hidden
12163
12296
  */
12164
- this.actionsClass = 'k-columnmenu-actions';
12297
+ this.actionsClass = 'k-actions';
12165
12298
  this.columnsIcon = columnsIcon;
12166
12299
  }
12167
12300
  get columns() {
@@ -12313,7 +12446,7 @@ class ColumnMenuFilterComponent extends ColumnMenuItemBase {
12313
12446
  /**
12314
12447
  * @hidden
12315
12448
  */
12316
- this.actionsClass = 'k-columnmenu-actions';
12449
+ this.actionsClass = 'k-actions';
12317
12450
  this.filterIcon = filterIcon;
12318
12451
  }
12319
12452
  /**
@@ -13754,7 +13887,7 @@ DateFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
13754
13887
  </kendo-datepicker-messages>
13755
13888
  </kendo-datepicker>
13756
13889
  </kendo-grid-filter-wrapper-cell>
13757
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i5$1.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }, { type: i5$1.DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
13890
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i5$1.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }, { type: i5$1.DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
13758
13891
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterCellComponent, decorators: [{
13759
13892
  type: Component,
13760
13893
  args: [{
@@ -13836,6 +13969,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13836
13969
  */
13837
13970
  class FilterCellComponent {
13838
13971
  constructor() {
13972
+ this.hostRole = 'gridcell';
13839
13973
  this.size = 'medium';
13840
13974
  this._templateContext = {};
13841
13975
  }
@@ -13859,7 +13993,7 @@ class FilterCellComponent {
13859
13993
  }
13860
13994
  }
13861
13995
  FilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13862
- FilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FilterCellComponent, selector: "[kendoGridFilterCell]", inputs: { column: "column", filter: "filter", size: "size" }, ngImport: i0, template: `
13996
+ FilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FilterCellComponent, selector: "[kendoGridFilterCell]", inputs: { column: "column", filter: "filter", size: "size" }, host: { properties: { "attr.role": "this.hostRole" } }, ngImport: i0, template: `
13863
13997
  <ng-container *ngIf="isFilterable">
13864
13998
  <ng-container [ngSwitch]="hasTemplate">
13865
13999
  <ng-container *ngSwitchCase="false">
@@ -13896,7 +14030,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13896
14030
  </ng-container>
13897
14031
  `
13898
14032
  }]
13899
- }], propDecorators: { column: [{
14033
+ }], propDecorators: { hostRole: [{
14034
+ type: HostBinding,
14035
+ args: ['attr.role']
14036
+ }], column: [{
13900
14037
  type: Input
13901
14038
  }], filter: [{
13902
14039
  type: Input
@@ -14648,7 +14785,7 @@ const modifierKeys = ['alt', 'ctrl', 'shift', 'meta'];
14648
14785
  * @hidden
14649
14786
  */
14650
14787
  class HeaderComponent {
14651
- constructor(popupService, hint, cue, reorderService, idService, sortService, localization, columnInfoService, cd) {
14788
+ constructor(popupService, hint, cue, reorderService, idService, sortService, localization, columnInfoService, cd, contextService) {
14652
14789
  this.popupService = popupService;
14653
14790
  this.hint = hint;
14654
14791
  this.cue = cue;
@@ -14658,6 +14795,7 @@ class HeaderComponent {
14658
14795
  this.localization = localization;
14659
14796
  this.columnInfoService = columnInfoService;
14660
14797
  this.cd = cd;
14798
+ this.contextService = contextService;
14661
14799
  this.columns = [];
14662
14800
  this.groups = [];
14663
14801
  this.sort = new Array();
@@ -14714,12 +14852,50 @@ class HeaderComponent {
14714
14852
  args.stopImmediatePropagation();
14715
14853
  const filterMenu = this.filterMenus.find(fm => fm.column === column);
14716
14854
  filterMenu.toggle(filterMenu.anchor.nativeElement, filterMenu.template);
14855
+ return;
14717
14856
  }
14718
14857
  if (args.keyCode === Keys.ArrowDown && args.altKey && this.showColumnMenu(column)) {
14719
14858
  args.preventDefault();
14720
14859
  args.stopImmediatePropagation();
14721
14860
  const columnMenu = this.columnMenus.find(cm => cm.column === column);
14722
14861
  columnMenu.toggle(null, columnMenu.anchor.nativeElement, columnMenu.template);
14862
+ return;
14863
+ }
14864
+ const isCtrlOrMeta = args.ctrlKey || args.metaKey;
14865
+ const isGroupingKeyShortcut = (args.keyCode === Keys.Enter || args.keyCode === Keys.Space) && isCtrlOrMeta;
14866
+ if (isGroupingKeyShortcut && this.isGroupable(column)) {
14867
+ args.preventDefault();
14868
+ args.stopImmediatePropagation();
14869
+ const isGroupedByField = this.groups.some(gr => gr.field === column.field);
14870
+ if (isGroupedByField) {
14871
+ this.groups = this.groups.filter(gr => gr.field !== column.field);
14872
+ }
14873
+ else {
14874
+ this.groups.push({
14875
+ field: column.field
14876
+ });
14877
+ }
14878
+ this.contextService.grid.groupChange.emit(this.groups);
14879
+ return;
14880
+ }
14881
+ const isLeftOrRightArrow = args.keyCode === Keys.ArrowLeft || args.keyCode === Keys.ArrowRight;
14882
+ const isReorderingKeyShortcut = isLeftOrRightArrow && isCtrlOrMeta;
14883
+ if (isReorderingKeyShortcut && this.isReorderable(column)) {
14884
+ args.preventDefault();
14885
+ const columnsCount = this.columnInfoService.leafNamedColumns.length;
14886
+ const reorderDirection = args.keyCode === Keys.ArrowLeft ? -1 : 1;
14887
+ const rtlMultiplier = this.localization.rtl ? -1 : 1;
14888
+ const reorderDirectionOffset = reorderDirection * rtlMultiplier;
14889
+ const newIndex = column.leafIndex + reorderDirectionOffset;
14890
+ const normalizedNewIndex = Math.min(Math.max(0, newIndex), columnsCount - 1);
14891
+ const gridInstance = this.contextService.grid;
14892
+ gridInstance.reorderColumn(column, normalizedNewIndex, { before: reorderDirectionOffset < 0 });
14893
+ gridInstance.columnReorder.emit(new ColumnReorderEvent({
14894
+ column,
14895
+ newIndex: normalizedNewIndex,
14896
+ oldIndex: column.leafIndex
14897
+ }));
14898
+ return;
14723
14899
  }
14724
14900
  if (!this.sortable || args.defaultPrevented || column.sortable === false) {
14725
14901
  return;
@@ -14859,11 +15035,11 @@ class HeaderComponent {
14859
15035
  return this.reorderable && rules({ draggable, target });
14860
15036
  }
14861
15037
  shouldActivate(column) {
14862
- const canReorder = this.reorderable && column.reorderable;
15038
+ const canReorder = this.isReorderable(column);
14863
15039
  if (!canReorder && !isColumnComponent(column)) {
14864
15040
  return false;
14865
15041
  }
14866
- const groupable = this.groupable && isColumnComponent(column) && column.groupable !== false;
15042
+ const groupable = this.isGroupable(column);
14867
15043
  return groupable || canReorder;
14868
15044
  }
14869
15045
  isSortable(column) {
@@ -14908,6 +15084,12 @@ class HeaderComponent {
14908
15084
  get leafColumns() {
14909
15085
  return this._leafColumns;
14910
15086
  }
15087
+ isReorderable(column) {
15088
+ return this.reorderable && column.reorderable;
15089
+ }
15090
+ isGroupable(column) {
15091
+ return this.groupable && isColumnComponent(column) && column.groupable !== false;
15092
+ }
14911
15093
  attachTargets() {
14912
15094
  if (this.targetSubscription) {
14913
15095
  this.targetSubscription.unsubscribe();
@@ -14989,7 +15171,7 @@ class HeaderComponent {
14989
15171
  });
14990
15172
  }
14991
15173
  }
14992
- HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: SinglePopupService }, { token: DragHintService }, { token: DropCueService }, { token: ColumnReorderService }, { token: IdService }, { token: SortService }, { token: i1.LocalizationService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
15174
+ HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: SinglePopupService }, { token: DragHintService }, { token: DropCueService }, { token: ColumnReorderService }, { token: IdService }, { token: SortService }, { token: i1.LocalizationService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: ContextService }], target: i0.ɵɵFactoryTarget.Component });
14993
15175
  HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: { totalColumnLevels: "totalColumnLevels", columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", filterable: "filterable", sort: "sort", filter: "filter", sortable: "sortable", groupable: "groupable", lockedColumnsCount: "lockedColumnsCount", resizable: "resizable", reorderable: "reorderable", columnMenu: "columnMenu", columnMenuTemplate: "columnMenuTemplate", totalColumnsCount: "totalColumnsCount", tabIndex: "tabIndex", size: "size" }, host: { properties: { "class.k-grid-header": "this.headerClass", "class.k-table-thead": "this.hostClass" } }, viewQueries: [{ propertyName: "dropTargets", predicate: DropTargetDirective, descendants: true }, { propertyName: "filterMenus", predicate: FilterMenuComponent, descendants: true }, { propertyName: "columnMenus", predicate: ColumnMenuComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
14994
15176
  <ng-container>
14995
15177
  <tr *ngFor="let i of columnLevels; let levelIndex = index"
@@ -15043,7 +15225,8 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
15043
15225
  [ngClass]="column.headerClass"
15044
15226
  [ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
15045
15227
  [attr.rowspan]="column.rowspan(totalColumnLevels)"
15046
- [attr.colspan]="column.colspan">
15228
+ [attr.colspan]="column.colspan"
15229
+ [attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined">
15047
15230
 
15048
15231
  <ng-container *ngIf="!isSortable(getColumnComponent(column))">
15049
15232
  <span class="k-cell-inner">
@@ -15272,7 +15455,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15272
15455
  [ngClass]="column.headerClass"
15273
15456
  [ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
15274
15457
  [attr.rowspan]="column.rowspan(totalColumnLevels)"
15275
- [attr.colspan]="column.colspan">
15458
+ [attr.colspan]="column.colspan"
15459
+ [attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined">
15276
15460
 
15277
15461
  <ng-container *ngIf="!isSortable(getColumnComponent(column))">
15278
15462
  <span class="k-cell-inner">
@@ -15445,7 +15629,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15445
15629
  </ng-container>
15446
15630
  `
15447
15631
  }]
15448
- }], ctorParameters: function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: IdService }, { type: SortService }, { type: i1.LocalizationService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { totalColumnLevels: [{
15632
+ }], ctorParameters: function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: IdService }, { type: SortService }, { type: i1.LocalizationService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: ContextService }]; }, propDecorators: { totalColumnLevels: [{
15449
15633
  type: Input
15450
15634
  }], columns: [{
15451
15635
  type: Input
@@ -16129,7 +16313,7 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
16129
16313
  </ng-container>
16130
16314
  </ng-container>
16131
16315
  </ng-container>
16132
- `, isInline: true, components: [{ type: i3.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i5$1.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i4$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": FieldAccessorPipe } });
16316
+ `, isInline: true, components: [{ type: i3.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i5$1.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i4$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": FieldAccessorPipe } });
16133
16317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, decorators: [{
16134
16318
  type: Component,
16135
16319
  args: [{
@@ -16860,7 +17044,7 @@ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
16860
17044
  </td>
16861
17045
  </tr>
16862
17046
  </ng-container>
16863
- <tr *ngIf="data?.length === 0 || data === null" class="k-grid-norecords">
17047
+ <tr *ngIf="data?.length === 0 || data === null" class="k-grid-norecords" role="row">
16864
17048
  <td [attr.colspan]="colSpan" class="k-table-td">
16865
17049
  <ng-template
16866
17050
  *ngIf="noRecordsTemplate?.templateRef"
@@ -16906,6 +17090,7 @@ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
16906
17090
  [ngClass]="rowClass({ dataItem: item.data, index: $any(item).index })"
16907
17091
  [class.k-master-row]="true"
16908
17092
  [class.k-grid-edit-row]="isEditingRow($any(item).index)"
17093
+ [attr.aria-selected]="isSelectable() && isRowSelected(item)"
16909
17094
  [attr.data-kendo-grid-item-index]="$any(item).index"
16910
17095
  [class.k-selected]="isSelectable() && isRowSelected(item)">
16911
17096
  <ng-container *ngIf="!skipGroupDecoration">
@@ -17085,7 +17270,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17085
17270
  </td>
17086
17271
  </tr>
17087
17272
  </ng-container>
17088
- <tr *ngIf="data?.length === 0 || data === null" class="k-grid-norecords">
17273
+ <tr *ngIf="data?.length === 0 || data === null" class="k-grid-norecords" role="row">
17089
17274
  <td [attr.colspan]="colSpan" class="k-table-td">
17090
17275
  <ng-template
17091
17276
  *ngIf="noRecordsTemplate?.templateRef"
@@ -17131,6 +17316,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17131
17316
  [ngClass]="rowClass({ dataItem: item.data, index: $any(item).index })"
17132
17317
  [class.k-master-row]="true"
17133
17318
  [class.k-grid-edit-row]="isEditingRow($any(item).index)"
17319
+ [attr.aria-selected]="isSelectable() && isRowSelected(item)"
17134
17320
  [attr.data-kendo-grid-item-index]="$any(item).index"
17135
17321
  [class.k-selected]="isSelectable() && isRowSelected(item)">
17136
17322
  <ng-container *ngIf="!skipGroupDecoration">
@@ -17606,6 +17792,8 @@ class ListComponent {
17606
17792
  this.changeDetector = changeDetector;
17607
17793
  this.pdfService = pdfService;
17608
17794
  this.columnInfo = columnInfo;
17795
+ this.hostClass = true;
17796
+ this.hostRole = 'presentation';
17609
17797
  this.groups = [];
17610
17798
  this.skip = 0;
17611
17799
  this.columns = new ColumnsContainer(() => []);
@@ -17627,12 +17815,6 @@ class ListComponent {
17627
17815
  this.subscriptions = detailsService.changes.subscribe(x => this.detailExpand(x));
17628
17816
  this.subscriptions.add(scrollRequestService.requests.subscribe(x => this.scrollTo(x)));
17629
17817
  }
17630
- get hostClass() {
17631
- return true;
17632
- }
17633
- get hostRole() {
17634
- return 'presentation';
17635
- }
17636
17818
  get showFooter() {
17637
17819
  return this.groupable && this.groupable.showFooter;
17638
17820
  }
@@ -17696,7 +17878,7 @@ class ListComponent {
17696
17878
  this.skipScroll = true;
17697
17879
  this.container.nativeElement.scrollTop = this.rowHeightService.offset(this.skip);
17698
17880
  }
17699
- if (anyChanged(["total", "take"], changes)) {
17881
+ if (anyChanged(['total', 'take'], changes)) {
17700
17882
  this.init();
17701
17883
  }
17702
17884
  this.rebind = false;
@@ -17804,7 +17986,7 @@ class ListComponent {
17804
17986
  });
17805
17987
  })).subscribe(this.dispatcher));
17806
17988
  });
17807
- this.scrollSyncService.registerEmitter(this.container.nativeElement, "body");
17989
+ this.scrollSyncService.registerEmitter(this.container.nativeElement, 'body');
17808
17990
  }
17809
17991
  createScroller() {
17810
17992
  this.cleanupScroller();
@@ -18157,7 +18339,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
18157
18339
  [sort]="sort">
18158
18340
  </colgroup>
18159
18341
  <tbody kendoGridTableBody
18160
- role="presentation"
18342
+ role="rowgroup"
18161
18343
  [skipGroupDecoration]="isLocked"
18162
18344
  [data]="data"
18163
18345
  [groups]="groups"
@@ -18276,7 +18458,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18276
18458
  [sort]="sort">
18277
18459
  </colgroup>
18278
18460
  <tbody kendoGridTableBody
18279
- role="presentation"
18461
+ role="rowgroup"
18280
18462
  [skipGroupDecoration]="isLocked"
18281
18463
  [data]="data"
18282
18464
  [groups]="groups"
@@ -18316,10 +18498,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18316
18498
  args: [SCROLLER_FACTORY_TOKEN]
18317
18499
  }] }, { type: DetailsService }, { type: ChangeNotificationService }, { type: SuspendService }, { type: GroupsService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: ScrollSyncService }, { type: ResizeService }, { type: EditService }, { type: BrowserSupportService }, { type: NavigationService }, { type: ScrollRequestService }, { type: i1.LocalizationService }, { type: ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: PDFService }, { type: ColumnInfoService }]; }, propDecorators: { hostClass: [{
18318
18500
  type: HostBinding,
18319
- args: ["class.k-grid-container"]
18501
+ args: ['class.k-grid-container']
18320
18502
  }], hostRole: [{
18321
18503
  type: HostBinding,
18322
- args: ["attr.role"]
18504
+ args: ['attr.role']
18323
18505
  }], data: [{
18324
18506
  type: Input
18325
18507
  }], groups: [{
@@ -18402,6 +18584,7 @@ class FooterComponent {
18402
18584
  this.lockedColumnsCount = 0;
18403
18585
  this.logicalRowIndex = 0;
18404
18586
  this.hostClass = true;
18587
+ this.hostRole = 'rowgroup';
18405
18588
  }
18406
18589
  get footerClass() {
18407
18590
  return !this.scrollable;
@@ -18422,7 +18605,7 @@ class FooterComponent {
18422
18605
  }
18423
18606
  }
18424
18607
  FooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FooterComponent, deps: [{ token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
18425
- FooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FooterComponent, selector: "[kendoGridFooter]", inputs: { columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", lockedColumnsCount: "lockedColumnsCount", logicalRowIndex: "logicalRowIndex" }, host: { properties: { "class.k-grid-footer": "this.footerClass", "class.k-table-tfoot": "this.hostClass" } }, ngImport: i0, template: `
18608
+ FooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FooterComponent, selector: "[kendoGridFooter]", inputs: { columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", lockedColumnsCount: "lockedColumnsCount", logicalRowIndex: "logicalRowIndex" }, host: { properties: { "class.k-grid-footer": "this.footerClass", "class.k-table-tfoot": "this.hostClass", "attr.role": "this.hostRole" } }, ngImport: i0, template: `
18426
18609
  <ng-container>
18427
18610
  <tr
18428
18611
  [class.k-footer-template]="true"
@@ -18448,7 +18631,7 @@ FooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
18448
18631
  class="k-table-td"
18449
18632
  [logicalRowIndex]="logicalRowIndex"
18450
18633
  [logicalColIndex]="logicalColumnIndex(column)"
18451
- role="columnfooter"
18634
+ role="gridcell"
18452
18635
  aria-selected="false"
18453
18636
  [class.k-grid-footer-sticky]="column.sticky"
18454
18637
  [ngClass]="column.footerClass"
@@ -18495,7 +18678,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18495
18678
  class="k-table-td"
18496
18679
  [logicalRowIndex]="logicalRowIndex"
18497
18680
  [logicalColIndex]="logicalColumnIndex(column)"
18498
- role="columnfooter"
18681
+ role="gridcell"
18499
18682
  aria-selected="false"
18500
18683
  [class.k-grid-footer-sticky]="column.sticky"
18501
18684
  [ngClass]="column.footerClass"
@@ -18531,6 +18714,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18531
18714
  }], hostClass: [{
18532
18715
  type: HostBinding,
18533
18716
  args: ['class.k-table-tfoot']
18717
+ }], hostRole: [{
18718
+ type: HostBinding,
18719
+ args: ['attr.role']
18534
18720
  }] } });
18535
18721
 
18536
18722
  /**
@@ -18582,7 +18768,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18582
18768
  class GridMessages extends ComponentMessages {
18583
18769
  }
18584
18770
  GridMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
18585
- GridMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", selectPage: "selectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand" }, usesInheritance: true, ngImport: i0 });
18771
+ GridMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", selectPage: "selectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", groupPanelLabel: "groupPanelLabel" }, usesInheritance: true, ngImport: i0 });
18586
18772
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMessages, decorators: [{
18587
18773
  type: Directive,
18588
18774
  args: [{
@@ -18733,6 +18919,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18733
18919
  type: Input
18734
18920
  }], groupExpand: [{
18735
18921
  type: Input
18922
+ }], topToolbarLabel: [{
18923
+ type: Input
18924
+ }], bottomToolbarLabel: [{
18925
+ type: Input
18926
+ }], groupPanelLabel: [{
18927
+ type: Input
18736
18928
  }] } });
18737
18929
 
18738
18930
  /**
@@ -19098,6 +19290,7 @@ class GridComponent {
19098
19290
  this.hostClass = true;
19099
19291
  this.footer = new QueryList();
19100
19292
  this.selectionDirective = false;
19293
+ this.ariaRootId = `k-${guid()}`;
19101
19294
  this.columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
19102
19295
  if (!isUniversal()) {
19103
19296
  column.matchesMedia = this.matchesMedia(column);
@@ -19267,7 +19460,7 @@ class GridComponent {
19267
19460
  */
19268
19461
  set navigable(value) {
19269
19462
  if (typeof value === 'boolean') {
19270
- this._navigable = value ? ['table', 'pager'] : [];
19463
+ this._navigable = value ? ['table', 'pager', 'toolbar'] : [];
19271
19464
  return;
19272
19465
  }
19273
19466
  this._navigable = value;
@@ -19830,6 +20023,12 @@ class GridComponent {
19830
20023
  get ariaLabel() {
19831
20024
  return this.localization.get('gridLabel');
19832
20025
  }
20026
+ /**
20027
+ * @hidden
20028
+ */
20029
+ messageFor(token) {
20030
+ return this.localization.get(token);
20031
+ }
19833
20032
  /**
19834
20033
  * Switches the specified table row in the edit mode ([see example]({% slug inline_editing_grid %}#toc-editing-records-1)).
19835
20034
  *
@@ -21061,12 +21260,24 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21061
21260
 
21062
21261
  i18n-selectPage="kendo.grid.selectPage|The text of the title and aria-label attributes applied to the page chooser in the Grid Pager"
21063
21262
  selectPage="Select page"
21263
+
21264
+ i18n-topToolbarLabel="kendo.grid.topToolbarLabel|The label for the Grid top toolbar"
21265
+ topToolbarLabel="Top toolbar"
21266
+
21267
+ i18n-bottomToolbarLabel="kendo.grid.bottomToolbarLabel|The label for the Grid bottom toolbar"
21268
+ bottomToolbarLabel="Bottom toolbar"
21269
+
21270
+ i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
21271
+ groupPanelLabel="Group panel"
21064
21272
  >
21065
21273
  </ng-container>
21066
21274
  <kendo-grid-toolbar
21067
21275
  class="k-toolbar k-grid-toolbar"
21068
21276
  *ngIf="showTopToolbar"
21069
21277
  [size]="size"
21278
+ [attr.aria-label]="messageFor('topToolbarLabel')"
21279
+ [navigable]="navigation.toolbarEnabled"
21280
+ [attr.aria-controls]="ariaRootId"
21070
21281
  position="top"></kendo-grid-toolbar>
21071
21282
  <kendo-pager
21072
21283
  *ngIf="showTopPager"
@@ -21083,13 +21294,18 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21083
21294
  </kendo-pager>
21084
21295
  <kendo-grid-group-panel
21085
21296
  *ngIf="showGroupPanel"
21297
+ [navigable]="navigation.toolbarEnabled"
21086
21298
  [text]="groupableEmptyText"
21087
21299
  [groups]="group"
21300
+ role="toolbar"
21301
+ [attr.aria-label]="messageFor('groupPanelLabel')"
21302
+ [attr.aria-controls]="ariaRootId"
21088
21303
  (change)="groupChange.emit($event)">
21089
21304
  </kendo-grid-group-panel>
21090
21305
  <div #ariaRoot
21091
21306
  class="k-grid-aria-root"
21092
21307
  role="grid"
21308
+ [id]="ariaRootId"
21093
21309
  [attr.aria-label]="ariaLabel"
21094
21310
  [attr.aria-rowcount]="ariaRowCount"
21095
21311
  [attr.aria-colcount]="ariaColCount">
@@ -21117,6 +21333,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21117
21333
  [detailTemplate]="detailTemplate">
21118
21334
  </colgroup>
21119
21335
  <thead kendoGridHeader
21336
+ role="rowgroup"
21120
21337
  [resizable]="resizable"
21121
21338
  [scrollable]="true"
21122
21339
  [columns]="$any(lockedColumns)"
@@ -21154,7 +21371,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21154
21371
  </colgroup>
21155
21372
  <thead kendoGridHeader
21156
21373
  [resizable]="resizable"
21157
- role="presentation"
21374
+ role="rowgroup"
21158
21375
  [scrollable]="true"
21159
21376
  [columns]="headerColumns"
21160
21377
  [totalColumnLevels]="totalColumnLevels"
@@ -21341,8 +21558,11 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21341
21558
  class="k-toolbar k-grid-toolbar k-grid-toolbar-bottom"
21342
21559
  *ngIf="showBottomToolbar"
21343
21560
  [size]="size"
21561
+ [navigable]="navigation.toolbarEnabled"
21562
+ [attr.aria-label]="messageFor('bottomToolbarLabel')"
21563
+ [attr.aria-controls]="ariaRootId"
21344
21564
  position="bottom"></kendo-grid-toolbar>
21345
- `, isInline: true, components: [{ type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size"] }, { type: PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "size", "template"], outputs: ["pageChange"] }, { type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "groups"], outputs: ["change"] }, { type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "tabIndex", "size"] }, { type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex"] }, { type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "rowClass"] }, { type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { type: i1$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }], encapsulation: i0.ViewEncapsulation.None });
21565
+ `, isInline: true, components: [{ type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { type: PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "size", "template"], outputs: ["pageChange"] }, { type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "tabIndex", "size"] }, { type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex"] }, { type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "rowClass"] }, { type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { type: i1$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }], encapsulation: i0.ViewEncapsulation.None });
21346
21566
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, decorators: [{
21347
21567
  type: Component,
21348
21568
  args: [{
@@ -21609,12 +21829,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21609
21829
 
21610
21830
  i18n-selectPage="kendo.grid.selectPage|The text of the title and aria-label attributes applied to the page chooser in the Grid Pager"
21611
21831
  selectPage="Select page"
21832
+
21833
+ i18n-topToolbarLabel="kendo.grid.topToolbarLabel|The label for the Grid top toolbar"
21834
+ topToolbarLabel="Top toolbar"
21835
+
21836
+ i18n-bottomToolbarLabel="kendo.grid.bottomToolbarLabel|The label for the Grid bottom toolbar"
21837
+ bottomToolbarLabel="Bottom toolbar"
21838
+
21839
+ i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
21840
+ groupPanelLabel="Group panel"
21612
21841
  >
21613
21842
  </ng-container>
21614
21843
  <kendo-grid-toolbar
21615
21844
  class="k-toolbar k-grid-toolbar"
21616
21845
  *ngIf="showTopToolbar"
21617
21846
  [size]="size"
21847
+ [attr.aria-label]="messageFor('topToolbarLabel')"
21848
+ [navigable]="navigation.toolbarEnabled"
21849
+ [attr.aria-controls]="ariaRootId"
21618
21850
  position="top"></kendo-grid-toolbar>
21619
21851
  <kendo-pager
21620
21852
  *ngIf="showTopPager"
@@ -21631,13 +21863,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21631
21863
  </kendo-pager>
21632
21864
  <kendo-grid-group-panel
21633
21865
  *ngIf="showGroupPanel"
21866
+ [navigable]="navigation.toolbarEnabled"
21634
21867
  [text]="groupableEmptyText"
21635
21868
  [groups]="group"
21869
+ role="toolbar"
21870
+ [attr.aria-label]="messageFor('groupPanelLabel')"
21871
+ [attr.aria-controls]="ariaRootId"
21636
21872
  (change)="groupChange.emit($event)">
21637
21873
  </kendo-grid-group-panel>
21638
21874
  <div #ariaRoot
21639
21875
  class="k-grid-aria-root"
21640
21876
  role="grid"
21877
+ [id]="ariaRootId"
21641
21878
  [attr.aria-label]="ariaLabel"
21642
21879
  [attr.aria-rowcount]="ariaRowCount"
21643
21880
  [attr.aria-colcount]="ariaColCount">
@@ -21665,6 +21902,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21665
21902
  [detailTemplate]="detailTemplate">
21666
21903
  </colgroup>
21667
21904
  <thead kendoGridHeader
21905
+ role="rowgroup"
21668
21906
  [resizable]="resizable"
21669
21907
  [scrollable]="true"
21670
21908
  [columns]="$any(lockedColumns)"
@@ -21702,7 +21940,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21702
21940
  </colgroup>
21703
21941
  <thead kendoGridHeader
21704
21942
  [resizable]="resizable"
21705
- role="presentation"
21943
+ role="rowgroup"
21706
21944
  [scrollable]="true"
21707
21945
  [columns]="headerColumns"
21708
21946
  [totalColumnLevels]="totalColumnLevels"
@@ -21889,6 +22127,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21889
22127
  class="k-toolbar k-grid-toolbar k-grid-toolbar-bottom"
21890
22128
  *ngIf="showBottomToolbar"
21891
22129
  [size]="size"
22130
+ [navigable]="navigation.toolbarEnabled"
22131
+ [attr.aria-label]="messageFor('bottomToolbarLabel')"
22132
+ [attr.aria-controls]="ariaRootId"
21892
22133
  position="bottom"></kendo-grid-toolbar>
21893
22134
  `
21894
22135
  }]
@@ -23305,7 +23546,7 @@ const importedModules$4 = [
23305
23546
  DatePickerModule,
23306
23547
  PopupModule,
23307
23548
  SharedModule,
23308
- ButtonModule
23549
+ ButtonModule,
23309
23550
  ];
23310
23551
  const COMPONENTS$1 = [
23311
23552
  FilterInputDirective
@@ -25326,6 +25567,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25326
25567
  type: Input
25327
25568
  }] } });
25328
25569
 
25570
+ /**
25571
+ * A directive applied to all toolbar elements that need to be a part of the Grid
25572
+ * keyboard navigation.
25573
+ */
25574
+ class GridToolbarFocusableDirective {
25575
+ constructor(host, ctx) {
25576
+ this.host = host;
25577
+ this.ctx = ctx;
25578
+ }
25579
+ /**
25580
+ * @hidden
25581
+ */
25582
+ get element() {
25583
+ return this.host.nativeElement;
25584
+ }
25585
+ /**
25586
+ * @hidden
25587
+ */
25588
+ get toolbarPosition() {
25589
+ return isDocumentAvailable() && this.host.nativeElement.closest('.k-toolbar')?.getAttribute('position');
25590
+ }
25591
+ ngAfterViewInit() {
25592
+ if (!isDocumentAvailable() || !this.toolbarPosition) {
25593
+ return;
25594
+ }
25595
+ this.ctx[`${this.toolbarPosition}ToolbarNavigation`]?.navigableElements.push(this.element);
25596
+ this.ctx[`${this.toolbarPosition}ToolbarNavigation`]?.notify();
25597
+ }
25598
+ ngOnDestroy() {
25599
+ if (!isDocumentAvailable() || !this.toolbarPosition) {
25600
+ return;
25601
+ }
25602
+ const elements = this.ctx[`${this.toolbarPosition}ToolbarNavigation`].navigableElements;
25603
+ this.ctx[`${this.toolbarPosition}ToolbarNavigation`].navigableElements = elements.filter(el => el !== this.element);
25604
+ this.ctx[`${this.toolbarPosition}ToolbarNavigation`].notify();
25605
+ }
25606
+ }
25607
+ GridToolbarFocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarFocusableDirective, deps: [{ token: i0.ElementRef }, { token: ContextService }], target: i0.ɵɵFactoryTarget.Directive });
25608
+ GridToolbarFocusableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridToolbarFocusableDirective, selector: "\n [kendoGridToolbarFocusable],\n [kendoGridAddCommand],\n [kendoGridCancelCommand],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridExcelCommand],\n [kendoGridPDFCommand]\n ", ngImport: i0 });
25609
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarFocusableDirective, decorators: [{
25610
+ type: Directive,
25611
+ args: [{
25612
+ selector: `
25613
+ [kendoGridToolbarFocusable],
25614
+ [kendoGridAddCommand],
25615
+ [kendoGridCancelCommand],
25616
+ [kendoGridEditCommand],
25617
+ [kendoGridRemoveCommand],
25618
+ [kendoGridSaveCommand],
25619
+ [kendoGridExcelCommand],
25620
+ [kendoGridPDFCommand]
25621
+ `
25622
+ }]
25623
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ContextService }]; } });
25624
+
25329
25625
  const exportedModules$1 = [
25330
25626
  GridComponent,
25331
25627
  ToolbarTemplateDirective,
@@ -25340,6 +25636,7 @@ const exportedModules$1 = [
25340
25636
  InCellEditingDirective,
25341
25637
  ExpandDetailsDirective,
25342
25638
  ExpandGroupDirective,
25639
+ GridToolbarFocusableDirective,
25343
25640
  ...GroupModule.exports(),
25344
25641
  ...SharedModule.exports(),
25345
25642
  ...BodyModule.exports(),
@@ -25366,7 +25663,8 @@ const declarations$2 = [
25366
25663
  ExpandGroupDirective,
25367
25664
  GroupBindingDirective,
25368
25665
  GridMarqueeDirective,
25369
- GridSpacerComponent
25666
+ GridSpacerComponent,
25667
+ GridToolbarFocusableDirective
25370
25668
  ];
25371
25669
  /**
25372
25670
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -25417,7 +25715,8 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25417
25715
  ExpandGroupDirective,
25418
25716
  GroupBindingDirective,
25419
25717
  GridMarqueeDirective,
25420
- GridSpacerComponent], imports: [CommonModule,
25718
+ GridSpacerComponent,
25719
+ GridToolbarFocusableDirective], imports: [CommonModule,
25421
25720
  GroupModule,
25422
25721
  SharedModule,
25423
25722
  BodyModule,
@@ -25439,7 +25738,8 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25439
25738
  ReactiveEditingDirective,
25440
25739
  InCellEditingDirective,
25441
25740
  ExpandDetailsDirective,
25442
- ExpandGroupDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, ColumnComponent, SpanColumnComponent, ColumnGroupComponent, FooterTemplateDirective, DetailTemplateDirective, FocusableDirective, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, HeaderTemplateDirective, SelectAllCheckboxDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, FilterCellOperatorsComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent] });
25741
+ ExpandGroupDirective,
25742
+ GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, ColumnComponent, SpanColumnComponent, ColumnGroupComponent, FooterTemplateDirective, DetailTemplateDirective, FocusableDirective, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, HeaderTemplateDirective, SelectAllCheckboxDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, FilterCellOperatorsComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent] });
25443
25743
  GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, imports: [[
25444
25744
  CommonModule,
25445
25745
  GroupModule,
@@ -26361,5 +26661,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26361
26661
  * Generated bundle index. Do not edit.
26362
26662
  */
26363
26663
 
26364
- export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditService, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterModule, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupModule, GroupPanelComponent, GroupsService, HeaderComponent, HeaderModule, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerContextService, PagerDropDownListDirective, PagerInfoComponent, PagerInputComponent, PagerInputDirective, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowEditingDirectiveBase, RowFilterModule, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SharedFilterModule, SharedModule, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
26664
+ export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditService, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterModule, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupModule, GroupPanelComponent, GroupsService, HeaderComponent, HeaderModule, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerContextService, PagerDropDownListDirective, PagerInfoComponent, PagerInputComponent, PagerInputDirective, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowEditingDirectiveBase, RowFilterModule, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SharedFilterModule, SharedModule, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
26365
26665