@progress/kendo-angular-grid 18.5.2 → 18.6.0-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,18 +3,18 @@
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 { EventEmitter, Injectable, SecurityContext, InjectionToken, Optional, Inject, Directive, SkipSelf, Input, isDevMode, QueryList, Component, ContentChildren, ContentChild, forwardRef, Host, Output, HostBinding, Pipe, TemplateRef, ChangeDetectionStrategy, ViewChildren, ViewChild, Self, NgZone, HostListener, ViewContainerRef, ViewEncapsulation, inject, NgModule } from '@angular/core';
6
+ import { EventEmitter, Injectable, SecurityContext, InjectionToken, Optional, Inject, Directive, SkipSelf, Input, isDevMode, QueryList, Component, ContentChildren, ContentChild, forwardRef, Host, Output, HostBinding, Pipe, TemplateRef, ChangeDetectionStrategy, ViewChildren, ViewChild, Self, NgZone, HostListener, ViewContainerRef, ViewEncapsulation, inject, ElementRef, Injector, NgModule } from '@angular/core';
7
7
  import { merge, of, Subject, zip as zip$1, from, Subscription, interval, fromEvent, Observable, BehaviorSubject } from 'rxjs';
8
8
  import * as i1$3 from '@progress/kendo-angular-common';
9
9
  import { isDocumentAvailable, Keys, isPresent as isPresent$1, anyChanged, TemplateContextDirective, DraggableDirective, EventsOutsideAngularDirective, isChanged as isChanged$1, KendoInput, guid, closest as closest$1, hasObservers, ResizeSensorComponent, isFocusable as isFocusable$1, shouldShowValidationUI, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
10
10
  import * as i1 from '@angular/platform-browser';
11
11
  import * as i1$1 from '@progress/kendo-angular-icons';
12
12
  import { IconWrapperComponent, IconsService, KENDO_ICONS } from '@progress/kendo-angular-icons';
13
- import { plusIcon, cancelIcon, lockIcon, unlockIcon, caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon, arrowLeftIcon, arrowRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterClearIcon, filterIcon, checkIcon, arrowRotateCcwIcon, columnsIcon, chevronUpIcon, chevronDownIcon, displayInlineFlexIcon, maxWidthIcon, stickIcon, unstickIcon, setColumnPositionIcon, slidersIcon, moreVerticalIcon, reorderIcon, minusIcon, insertMiddleIcon, xIcon, saveIcon, filePdfIcon, fileExcelIcon } from '@progress/kendo-svg-icons';
13
+ import { plusIcon, cancelIcon, lockIcon, unlockIcon, caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon, arrowLeftIcon, arrowRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterClearIcon, filterIcon, checkIcon, arrowRotateCcwIcon, columnsIcon, chevronUpIcon, chevronDownIcon, displayInlineFlexIcon, maxWidthIcon, stickIcon, unstickIcon, setColumnPositionIcon, slidersIcon, moreVerticalIcon, reorderIcon, minusIcon, insertMiddleIcon, xIcon, saveIcon, filePdfIcon, fileExcelIcon, arrowsSwapIcon } from '@progress/kendo-svg-icons';
14
14
  import { switchMap, take, map, filter, takeUntil, switchMapTo, delay, tap, throttleTime, debounceTime, distinctUntilChanged, skip, auditTime, bufferCount } from 'rxjs/operators';
15
15
  import * as i1$2 from '@progress/kendo-angular-l10n';
16
16
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
17
- import * as i44 from '@progress/kendo-angular-pager';
17
+ import * as i46 from '@progress/kendo-angular-pager';
18
18
  import { PagerContextService, PagerNavigationService, PagerTemplateDirective, KENDO_PAGER } from '@progress/kendo-angular-pager';
19
19
  import { orderBy, isCompositeFilterDescriptor, groupBy, process, filterBy } from '@progress/kendo-data-query';
20
20
  import { NgFor, NgIf, NgTemplateOutlet, NgSwitch, NgSwitchCase, NgClass, NgStyle, NgSwitchDefault, KeyValuePipe } from '@angular/common';
@@ -22,7 +22,7 @@ import { getter } from '@progress/kendo-common';
22
22
  import * as i1$4 from '@progress/kendo-angular-intl';
23
23
  import * as i1$5 from '@progress/kendo-angular-popup';
24
24
  import { PopupService } from '@progress/kendo-angular-popup';
25
- import * as i2 from '@progress/kendo-angular-buttons';
25
+ import * as i1$7 from '@progress/kendo-angular-buttons';
26
26
  import { ChipListComponent, ChipComponent, ButtonComponent, ButtonDirective, Button, KENDO_BUTTON } from '@progress/kendo-angular-buttons';
27
27
  import * as i1$6 from '@progress/kendo-angular-dropdowns';
28
28
  import { DropDownListComponent, AutoCompleteComponent } from '@progress/kendo-angular-dropdowns';
@@ -32,7 +32,7 @@ import * as i4$1 from '@progress/kendo-angular-inputs';
32
32
  import { TextBoxComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, RadioButtonComponent, CheckBoxComponent, KENDO_FORMFIELD, KENDO_TEXTBOX, KENDO_NUMERICTEXTBOX, KENDO_CHECKBOX } from '@progress/kendo-angular-inputs';
33
33
  import * as i5 from '@progress/kendo-angular-dateinputs';
34
34
  import { DatePickerComponent, DatePickerCustomMessagesComponent, KENDO_DATEPICKER, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService as NavigationService$1 } from '@progress/kendo-angular-dateinputs';
35
- import * as i45 from '@progress/kendo-angular-toolbar';
35
+ import * as i47 from '@progress/kendo-angular-toolbar';
36
36
  import { KENDO_TOOLBAR } from '@progress/kendo-angular-toolbar';
37
37
  import { trigger, state, style, transition, animate } from '@angular/animations';
38
38
  import { TabStripComponent, TabStripTabComponent, TabTitleDirective, TabContentDirective } from '@progress/kendo-angular-layout';
@@ -42,7 +42,7 @@ import { workbookOptions, toDataURL, ColumnBase as ColumnBase$1, ColumnComponent
42
42
  import { PDFExportMarginComponent, PDFExportTemplateDirective, PDFExportComponent } from '@progress/kendo-angular-pdf-export';
43
43
  import { validatePackage } from '@progress/kendo-licensing';
44
44
  import { DragTargetContainerDirective, DropTargetContainerDirective } from '@progress/kendo-angular-utils';
45
- import * as i1$7 from '@progress/kendo-angular-dialog';
45
+ import * as i1$8 from '@progress/kendo-angular-dialog';
46
46
  import { DialogService, DialogContentBase, DialogActionsComponent, DialogContainerService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';
47
47
  import * as i3 from '@progress/kendo-angular-label';
48
48
  import { KENDO_LABELS } from '@progress/kendo-angular-label';
@@ -4079,12 +4079,12 @@ class NavigationService {
4079
4079
  const offset = direction === 'Up' ? Math.abs(this.lastCellRowIndex - this.activeRowIndex) : (this.activeRowIndex + cellRowspan - this.lastCellRowIndex - 1);
4080
4080
  return offset;
4081
4081
  }
4082
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, deps: [{ token: i0.NgZone }, { token: DomEventsService }, { token: i44.PagerContextService }, { token: ScrollRequestService }, { token: GroupsService }, { token: DetailsService }, { token: FocusRoot }, { token: EditService }, { token: i0.ChangeDetectorRef }, { token: ContextService }, { token: ColumnResizingService }, { token: FocusableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
4082
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, deps: [{ token: i0.NgZone }, { token: DomEventsService }, { token: i46.PagerContextService }, { token: ScrollRequestService }, { token: GroupsService }, { token: DetailsService }, { token: FocusRoot }, { token: EditService }, { token: i0.ChangeDetectorRef }, { token: ContextService }, { token: ColumnResizingService }, { token: FocusableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
4083
4083
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService });
4084
4084
  }
4085
4085
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, decorators: [{
4086
4086
  type: Injectable
4087
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: DomEventsService }, { type: i44.PagerContextService }, { type: ScrollRequestService }, { type: GroupsService }, { type: DetailsService }, { type: FocusRoot }, { type: EditService }, { type: i0.ChangeDetectorRef }, { type: ContextService }, { type: ColumnResizingService }, { type: FocusableDirective, decorators: [{
4087
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: DomEventsService }, { type: i46.PagerContextService }, { type: ScrollRequestService }, { type: GroupsService }, { type: DetailsService }, { type: FocusRoot }, { type: EditService }, { type: i0.ChangeDetectorRef }, { type: ContextService }, { type: ColumnResizingService }, { type: FocusableDirective, decorators: [{
4088
4088
  type: Optional
4089
4089
  }] }]; } });
4090
4090
 
@@ -11602,7 +11602,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
11602
11602
  args: ['columnList']
11603
11603
  }] } });
11604
11604
 
11605
- let incrementingId = 0;
11605
+ let incrementingId$2 = 0;
11606
11606
  /**
11607
11607
  * Represents the `column-chooser` toolbar tool of the Grid.
11608
11608
  * You can apply this directive to any `kendo-toolbar-button` element inside a
@@ -11638,7 +11638,7 @@ class ColumnChooserToolbarDirective {
11638
11638
  allowHideAll = true;
11639
11639
  popupRef;
11640
11640
  subs = new Subscription();
11641
- nextId = incrementingId++;
11641
+ nextId = incrementingId$2++;
11642
11642
  constructor(renderer, popupSerivce, host, ctx, zone, refresh) {
11643
11643
  this.renderer = renderer;
11644
11644
  this.popupSerivce = popupSerivce;
@@ -11743,7 +11743,7 @@ class ColumnChooserToolbarDirective {
11743
11743
  this.host.toolbarButtonElement.nativeElement.removeAttribute('aria-controls');
11744
11744
  focusAnchor && this.host.toolbarButtonElement.nativeElement.focus();
11745
11745
  }
11746
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChooserToolbarDirective, deps: [{ token: i0.Renderer2 }, { token: i1$5.PopupService }, { token: i45.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i45.RefreshService }], target: i0.ɵɵFactoryTarget.Directive });
11746
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChooserToolbarDirective, deps: [{ token: i0.Renderer2 }, { token: i1$5.PopupService }, { token: i47.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i47.RefreshService }], target: i0.ɵɵFactoryTarget.Directive });
11747
11747
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ColumnChooserToolbarDirective, isStandalone: true, selector: "[kendoGridColumnChooserTool]", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll" }, ngImport: i0 });
11748
11748
  }
11749
11749
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChooserToolbarDirective, decorators: [{
@@ -11752,7 +11752,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
11752
11752
  selector: '[kendoGridColumnChooserTool]',
11753
11753
  standalone: true
11754
11754
  }]
11755
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1$5.PopupService }, { type: i45.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i45.RefreshService }]; }, propDecorators: { autoSync: [{
11755
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1$5.PopupService }, { type: i47.ToolBarButtonComponent }, { type: ContextService }, { type: i0.NgZone }, { type: i47.RefreshService }]; }, propDecorators: { autoSync: [{
11756
11756
  type: Input
11757
11757
  }], allowHideAll: [{
11758
11758
  type: Input
@@ -11898,6 +11898,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
11898
11898
  * ```
11899
11899
  */
11900
11900
  class ColumnMenuItemComponent {
11901
+ ngZone;
11901
11902
  /**
11902
11903
  * Fires when the item is clicked.
11903
11904
  */
@@ -11951,8 +11952,13 @@ class ColumnMenuItemComponent {
11951
11952
  get expandedSvgIcon() {
11952
11953
  return this.expanded ? this.chevronUpIcon : this.chevronDownIcon;
11953
11954
  }
11955
+ constructor(ngZone) {
11956
+ this.ngZone = ngZone;
11957
+ }
11954
11958
  ngAfterViewInit() {
11955
- this.contentTemplate && (this.contentId = `k-${guid()}`);
11959
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
11960
+ this.contentTemplate && (this.contentId = `k-${guid()}`);
11961
+ });
11956
11962
  }
11957
11963
  ngOnChanges(changes) {
11958
11964
  if (changes.expanded) {
@@ -11978,7 +11984,7 @@ class ColumnMenuItemComponent {
11978
11984
  updateContentState() {
11979
11985
  this.contentState = this.expanded ? 'expanded' : 'collapsed';
11980
11986
  }
11981
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11987
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
11982
11988
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", text: "text", selected: "selected", disabled: "disabled", expanded: "expanded", service: "service" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ColumnMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
11983
11989
  <div *ngIf="contentTemplate; else content" class="k-expander">
11984
11990
  <ng-container [ngTemplateOutlet]="content"></ng-container>
@@ -11995,6 +12001,7 @@ class ColumnMenuItemComponent {
11995
12001
  [attr.aria-expanded]="expanded"
11996
12002
  [attr.aria-controls]="expanded ? contentId : undefined">
11997
12003
  <kendo-icon-wrapper
12004
+ *ngIf="icon || svgIcon"
11998
12005
  [name]="icon"
11999
12006
  [svgIcon]="svgIcon"></kendo-icon-wrapper>
12000
12007
  {{ text }}
@@ -12078,6 +12085,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
12078
12085
  [attr.aria-expanded]="expanded"
12079
12086
  [attr.aria-controls]="expanded ? contentId : undefined">
12080
12087
  <kendo-icon-wrapper
12088
+ *ngIf="icon || svgIcon"
12081
12089
  [name]="icon"
12082
12090
  [svgIcon]="svgIcon"></kendo-icon-wrapper>
12083
12091
  {{ text }}
@@ -12098,7 +12106,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
12098
12106
  standalone: true,
12099
12107
  imports: [IconWrapperComponent, NgIf, NgTemplateOutlet]
12100
12108
  }]
12101
- }], propDecorators: { itemClick: [{
12109
+ }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { itemClick: [{
12102
12110
  type: Output
12103
12111
  }], expand: [{
12104
12112
  type: Output
@@ -16448,7 +16456,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
16448
16456
  }] } });
16449
16457
 
16450
16458
  const mergeObjects = (...args) => Object.assign.apply(null, [{}].concat(args));
16451
- const directions = initialDirection => initialDirection === "asc" ? ["asc", "desc"] : ["desc", "asc"];
16459
+ const directions$1 = initialDirection => initialDirection === "asc" ? ["asc", "desc"] : ["desc", "asc"];
16452
16460
  /**
16453
16461
  * @hidden
16454
16462
  */
@@ -16769,7 +16777,7 @@ class HeaderComponent {
16769
16777
  }
16770
16778
  toggleDirection(field, allowUnsort, initialDirection) {
16771
16779
  const descriptor = this.sortDescriptor(field);
16772
- const [first, second] = directions(initialDirection);
16780
+ const [first, second] = directions$1(initialDirection);
16773
16781
  let dir = first;
16774
16782
  if (descriptor.dir === first) {
16775
16783
  dir = second;
@@ -19993,8 +20001,8 @@ const packageMetadata = {
19993
20001
  productName: 'Kendo UI for Angular',
19994
20002
  productCode: 'KENDOUIANGULAR',
19995
20003
  productCodes: ['KENDOUIANGULAR'],
19996
- publishDate: 1745304088,
19997
- version: '18.5.2',
20004
+ publishDate: 1745314747,
20005
+ version: '18.6.0-develop.1',
19998
20006
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
19999
20007
  };
20000
20008
 
@@ -23325,6 +23333,10 @@ class GridMessages extends ComponentMessages {
23325
23333
  * The text of the `Or` filter logic.
23326
23334
  */
23327
23335
  filterOrLogic;
23336
+ /**
23337
+ * The button text of the Filter toolbar tool.
23338
+ */
23339
+ filterToolbarToolText;
23328
23340
  /**
23329
23341
  * The loading text. The `loading` property is part of the accessibility support of the Grid.
23330
23342
  * Its value is detectable by screen readers and is not otherwise visible.
@@ -23402,6 +23414,10 @@ class GridMessages extends ComponentMessages {
23402
23414
  * The status announcement when a column is no longer sorted.
23403
23415
  */
23404
23416
  sortedDefault;
23417
+ /**
23418
+ * The button text of the Sort toolbar tool.
23419
+ */
23420
+ sortToolbarToolText;
23405
23421
  /**
23406
23422
  * The text that is displayed in the column menu or in the column chooser item
23407
23423
  * for the **Apply** button of the columns.
@@ -23534,7 +23550,7 @@ class GridMessages extends ComponentMessages {
23534
23550
  */
23535
23551
  externalEditingCancelText;
23536
23552
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
23537
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.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", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", 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", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext", formValidationErrorText: "formValidationErrorText", removeConfirmationDialogTitle: "removeConfirmationDialogTitle", removeConfirmationDialogContent: "removeConfirmationDialogContent", removeConfirmationDialogConfirmText: "removeConfirmationDialogConfirmText", removeConfirmationDialogRejectText: "removeConfirmationDialogRejectText", externalEditingTitle: "externalEditingTitle", externalEditingSaveText: "externalEditingSaveText", externalEditingCancelText: "externalEditingCancelText" }, usesInheritance: true, ngImport: i0 });
23553
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.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", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", 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", filterToolbarToolText: "filterToolbarToolText", 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", sortToolbarToolText: "sortToolbarToolText", 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", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext", formValidationErrorText: "formValidationErrorText", removeConfirmationDialogTitle: "removeConfirmationDialogTitle", removeConfirmationDialogContent: "removeConfirmationDialogContent", removeConfirmationDialogConfirmText: "removeConfirmationDialogConfirmText", removeConfirmationDialogRejectText: "removeConfirmationDialogRejectText", externalEditingTitle: "externalEditingTitle", externalEditingSaveText: "externalEditingSaveText", externalEditingCancelText: "externalEditingCancelText" }, usesInheritance: true, ngImport: i0 });
23538
23554
  }
23539
23555
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, decorators: [{
23540
23556
  type: Directive,
@@ -23634,6 +23650,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
23634
23650
  type: Input
23635
23651
  }], filterOrLogic: [{
23636
23652
  type: Input
23653
+ }], filterToolbarToolText: [{
23654
+ type: Input
23637
23655
  }], loading: [{
23638
23656
  type: Input
23639
23657
  }], gridLabel: [{
@@ -23668,6 +23686,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
23668
23686
  type: Input
23669
23687
  }], sortedDefault: [{
23670
23688
  type: Input
23689
+ }], sortToolbarToolText: [{
23690
+ type: Input
23671
23691
  }], columnsApply: [{
23672
23692
  type: Input
23673
23693
  }], columnsReset: [{
@@ -26018,6 +26038,9 @@ class GridComponent {
26018
26038
  i18n-filterOrLogic="kendo.grid.filterOrLogic|The text of the Or filter logic"
26019
26039
  filterOrLogic="Or"
26020
26040
 
26041
+ i18n-filterToolbarToolText="kendo.grid.filterToolbarToolText|The button text of the Filter toolbar tool"
26042
+ filterToolbarToolText="Filter"
26043
+
26021
26044
  i18n-loading="kendo.grid.loading|The loading text"
26022
26045
  loading="Loading"
26023
26046
 
@@ -26099,6 +26122,9 @@ class GridComponent {
26099
26122
  i18n-selectAllCheckboxLabel="kendo.grid.selectAllCheckboxLabel|The label of the checkbox column select all checkbox."
26100
26123
  selectAllCheckboxLabel="Select All Rows"
26101
26124
 
26125
+ i18n-sortToolbarToolText="kendo.grid.sortToolbarToolText|The button text of the Sort toolbar tool."
26126
+ sortToolbarToolText="Sort"
26127
+
26102
26128
  i18n-groupCollapse="kendo.grid.groupCollapse|The text of the title and aria-label attributes applied to the collapse icon of group rows."
26103
26129
  groupCollapse="Collapse Group"
26104
26130
 
@@ -26567,7 +26593,7 @@ class GridComponent {
26567
26593
  <div #dialogContainer></div>
26568
26594
 
26569
26595
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
26570
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", 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"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns", "totalColumnsCount"] }, { kind: "component", 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", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i44.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i44.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i44.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: i44.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i44.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i44.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: i44.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i44.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i44.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
26596
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", 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"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns", "totalColumnsCount"] }, { kind: "component", 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", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i46.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i46.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i46.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: i46.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i46.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i46.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: i46.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i46.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i46.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
26571
26597
  }
26572
26598
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
26573
26599
  type: Component,
@@ -26760,6 +26786,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
26760
26786
  i18n-filterOrLogic="kendo.grid.filterOrLogic|The text of the Or filter logic"
26761
26787
  filterOrLogic="Or"
26762
26788
 
26789
+ i18n-filterToolbarToolText="kendo.grid.filterToolbarToolText|The button text of the Filter toolbar tool"
26790
+ filterToolbarToolText="Filter"
26791
+
26763
26792
  i18n-loading="kendo.grid.loading|The loading text"
26764
26793
  loading="Loading"
26765
26794
 
@@ -26841,6 +26870,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
26841
26870
  i18n-selectAllCheckboxLabel="kendo.grid.selectAllCheckboxLabel|The label of the checkbox column select all checkbox."
26842
26871
  selectAllCheckboxLabel="Select All Rows"
26843
26872
 
26873
+ i18n-sortToolbarToolText="kendo.grid.sortToolbarToolText|The button text of the Sort toolbar tool."
26874
+ sortToolbarToolText="Sort"
26875
+
26844
26876
  i18n-groupCollapse="kendo.grid.groupCollapse|The text of the title and aria-label attributes applied to the collapse icon of group rows."
26845
26877
  groupCollapse="Collapse Group"
26846
26878
 
@@ -28460,7 +28492,7 @@ class FormComponent {
28460
28492
  </button>
28461
28493
  </div>
28462
28494
  </div>
28463
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormFormFieldComponent, selector: "kendo-form-formfield", inputs: ["control", "floatingLabel", "showError"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
28495
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormFormFieldComponent, selector: "kendo-form-formfield", inputs: ["control", "floatingLabel", "showError"] }, { kind: "component", type: i1$7.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
28464
28496
  }
28465
28497
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormComponent, decorators: [{
28466
28498
  type: Component,
@@ -28538,7 +28570,7 @@ class DialogFormComponent extends DialogContentBase {
28538
28570
  messageFor(key) {
28539
28571
  return this.localization.get(key);
28540
28572
  }
28541
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogFormComponent, deps: [{ token: i1$7.DialogRef }, { token: i1$2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
28573
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogFormComponent, deps: [{ token: i1$8.DialogRef }, { token: i1$2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
28542
28574
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogFormComponent, isStandalone: true, selector: "kendo-grid-dialog-form", inputs: { controls: "controls", formGroup: "formGroup", formSettings: "formSettings" }, usesInheritance: true, ngImport: i0, template: `
28543
28575
  <kendo-grid-external-form
28544
28576
  [controls]="controls"
@@ -28562,7 +28594,7 @@ class DialogFormComponent extends DialogContentBase {
28562
28594
  {{messageFor('externalEditingCancelText')}}
28563
28595
  </button>
28564
28596
  </kendo-dialog-actions>
28565
- `, isInline: true, dependencies: [{ kind: "component", type: FormComponent, selector: "kendo-grid-external-form", inputs: ["controls", "formSettings", "formGroup", "actionButtons"], outputs: ["formSubmit"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
28597
+ `, isInline: true, dependencies: [{ kind: "component", type: FormComponent, selector: "kendo-grid-external-form", inputs: ["controls", "formSettings", "formGroup", "actionButtons"], outputs: ["formSubmit"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: i1$7.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
28566
28598
  }
28567
28599
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogFormComponent, decorators: [{
28568
28600
  type: Component,
@@ -28595,7 +28627,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28595
28627
  </kendo-dialog-actions>
28596
28628
  `
28597
28629
  }]
28598
- }], ctorParameters: function () { return [{ type: i1$7.DialogRef }, { type: i1$2.LocalizationService }]; }, propDecorators: { controls: [{
28630
+ }], ctorParameters: function () { return [{ type: i1$8.DialogRef }, { type: i1$2.LocalizationService }]; }, propDecorators: { controls: [{
28599
28631
  type: Input
28600
28632
  }], formGroup: [{
28601
28633
  type: Input
@@ -29605,7 +29637,7 @@ class PDFCommandToolbarDirective {
29605
29637
  e.preventDefault();
29606
29638
  this.pdfService.exportClick.emit();
29607
29639
  }
29608
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PDFCommandToolbarDirective, deps: [{ token: PDFService }, { token: i45.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
29640
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PDFCommandToolbarDirective, deps: [{ token: PDFService }, { token: i47.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
29609
29641
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PDFCommandToolbarDirective, isStandalone: true, selector: "[kendoGridPDFTool]", ngImport: i0 });
29610
29642
  }
29611
29643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PDFCommandToolbarDirective, decorators: [{
@@ -29614,7 +29646,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
29614
29646
  selector: '[kendoGridPDFTool]',
29615
29647
  standalone: true
29616
29648
  }]
29617
- }], ctorParameters: function () { return [{ type: PDFService }, { type: i45.ToolBarButtonComponent }]; } });
29649
+ }], ctorParameters: function () { return [{ type: PDFService }, { type: i47.ToolBarButtonComponent }]; } });
29618
29650
 
29619
29651
  /**
29620
29652
  * Represents the `export-to-Excel` toolbar tool of the Grid.
@@ -29660,7 +29692,7 @@ class ExcelCommandToolbarDirective {
29660
29692
  e.preventDefault();
29661
29693
  this.excelService.exportClick.emit();
29662
29694
  }
29663
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelCommandToolbarDirective, deps: [{ token: ExcelService }, { token: i45.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
29695
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelCommandToolbarDirective, deps: [{ token: ExcelService }, { token: i47.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
29664
29696
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ExcelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridExcelTool]", ngImport: i0 });
29665
29697
  }
29666
29698
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelCommandToolbarDirective, decorators: [{
@@ -29669,7 +29701,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
29669
29701
  selector: '[kendoGridExcelTool]',
29670
29702
  standalone: true
29671
29703
  }]
29672
- }], ctorParameters: function () { return [{ type: ExcelService }, { type: i45.ToolBarButtonComponent }]; } });
29704
+ }], ctorParameters: function () { return [{ type: ExcelService }, { type: i47.ToolBarButtonComponent }]; } });
29673
29705
 
29674
29706
  /**
29675
29707
  * Represents the command for adding a new item to the Grid.
@@ -29713,7 +29745,7 @@ class AddCommandToolbarDirective {
29713
29745
  e.preventDefault();
29714
29746
  this.editService.beginAdd();
29715
29747
  }
29716
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddCommandToolbarDirective, deps: [{ token: EditService }, { token: i45.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
29748
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddCommandToolbarDirective, deps: [{ token: EditService }, { token: i47.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
29717
29749
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AddCommandToolbarDirective, isStandalone: true, selector: "[kendoGridAddTool]", ngImport: i0 });
29718
29750
  }
29719
29751
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddCommandToolbarDirective, decorators: [{
@@ -29722,7 +29754,796 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
29722
29754
  selector: '[kendoGridAddTool]',
29723
29755
  standalone: true
29724
29756
  }]
29725
- }], ctorParameters: function () { return [{ type: EditService }, { type: i45.ToolBarButtonComponent }]; } });
29757
+ }], ctorParameters: function () { return [{ type: EditService }, { type: i47.ToolBarButtonComponent }]; } });
29758
+
29759
+ const directions = initialDirection => initialDirection === "asc" ? ["asc", "desc"] : ["desc", "asc"];
29760
+ /**
29761
+ * @hidden
29762
+ */
29763
+ class SortToolbarToolComponent {
29764
+ element;
29765
+ ngZone;
29766
+ sortItems;
29767
+ wrapperClasses = true;
29768
+ onEscKeyDown(event) {
29769
+ event.preventDefault();
29770
+ this.hostButton?.focus(event);
29771
+ this.close.emit();
29772
+ }
29773
+ close = new EventEmitter();
29774
+ sortClear = new EventEmitter();
29775
+ sort = new Array();
29776
+ columns = [];
29777
+ sortAscSmallIcon = sortAscSmallIcon;
29778
+ sortDescSmallIcon = sortDescSmallIcon;
29779
+ clearIcon = xIcon;
29780
+ _columnInfoService;
29781
+ set columnInfoService(columnInfoService) {
29782
+ this._columnInfoService = columnInfoService;
29783
+ this.columns = this.columnInfoService.leafNamedColumns.filter(column => column?.sortable);
29784
+ }
29785
+ get columnInfoService() {
29786
+ return this._columnInfoService;
29787
+ }
29788
+ _ctx;
29789
+ set ctx(ctx) {
29790
+ this._ctx = ctx;
29791
+ this.sort = ctx.grid.sort;
29792
+ }
29793
+ get ctx() {
29794
+ return this._ctx;
29795
+ }
29796
+ _sortService;
29797
+ set sortService(sortService) {
29798
+ this._sortService = sortService;
29799
+ this.subscription = this._sortService.changes.subscribe(sort => {
29800
+ this.sort = sort;
29801
+ });
29802
+ }
29803
+ get sortService() {
29804
+ return this._sortService;
29805
+ }
29806
+ subscription;
29807
+ hostButton;
29808
+ constructor(element, ngZone) {
29809
+ this.element = element;
29810
+ this.ngZone = ngZone;
29811
+ }
29812
+ ngAfterViewInit() {
29813
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
29814
+ this.sortItems?.get(0)?.nativeElement.focus();
29815
+ });
29816
+ }
29817
+ ngOnDestroy() {
29818
+ if (this.subscription) {
29819
+ this.subscription.unsubscribe();
29820
+ }
29821
+ }
29822
+ toggleSort(column) {
29823
+ const field = column?.field;
29824
+ if (!field) {
29825
+ return;
29826
+ }
29827
+ const descriptor = this.getDescriptor(column);
29828
+ this.sort = descriptor;
29829
+ this.sortService.sort(descriptor);
29830
+ }
29831
+ getColumnComponent(column) {
29832
+ return column;
29833
+ }
29834
+ sortDescriptor(field) {
29835
+ return this.sort.find(item => item.field === field) || { field };
29836
+ }
29837
+ getDescriptor(column) {
29838
+ const { allowUnsort, mode, initialDirection } = normalize$1(this.ctx.grid.sortable, column.sortable);
29839
+ const field = column?.field;
29840
+ if (!field) {
29841
+ return;
29842
+ }
29843
+ const descriptorT = this.sort.find(item => item.field === field) || { field };
29844
+ const [first, second] = directions(initialDirection);
29845
+ let dir = first;
29846
+ if (descriptorT.dir === first) {
29847
+ dir = second;
29848
+ }
29849
+ else if (descriptorT.dir === second && allowUnsort) {
29850
+ dir = undefined;
29851
+ }
29852
+ const descriptor = { field, dir };
29853
+ if (mode === 'single') {
29854
+ return [descriptor];
29855
+ }
29856
+ return [...this.sort.filter(desc => desc.field !== field), descriptor];
29857
+ }
29858
+ showSortNumbering(column) {
29859
+ return this.sort
29860
+ && this.sort.filter(({ dir }) => isPresent$1(dir)).length > 1
29861
+ && this.sortOrder(column.field) > 0;
29862
+ }
29863
+ sortOrder(field) {
29864
+ return this.sort
29865
+ .filter(({ dir }) => isPresent$1(dir))
29866
+ .findIndex(x => x.field === field)
29867
+ + 1;
29868
+ }
29869
+ clearSorting() {
29870
+ if (!this.sort || this.sort.length === 0) {
29871
+ return;
29872
+ }
29873
+ this.sort = [];
29874
+ this.sortService.sort([]);
29875
+ this.sortClear.emit();
29876
+ }
29877
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortToolbarToolComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
29878
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SortToolbarToolComponent, isStandalone: true, selector: "kendo-sort-toolbar-tool", outputs: { close: "close", sortClear: "sortClear" }, host: { listeners: { "keydown.escape": "onEscKeyDown($event)" }, properties: { "class.k-column-menu": "this.wrapperClasses", "class.k-column-menu-md": "this.wrapperClasses" } }, viewQueries: [{ propertyName: "sortItems", predicate: ["sortItem"], descendants: true, read: ElementRef }], ngImport: i0, template: `
29879
+ <div
29880
+ class="k-column-menu-item-wrapper"
29881
+ [style.max-height.px]="200"
29882
+ [style.overflow-x]="'hidden'"
29883
+ [style.overflow-y]="'auto'"
29884
+ >
29885
+ <div *ngFor="let column of columns"
29886
+ #sortItem
29887
+ role="button"
29888
+ class="k-columnmenu-item"
29889
+ (click)="toggleSort(column)"
29890
+ (keydown.enter)="toggleSort(column)"
29891
+ [tabindex]="'0'"
29892
+ >
29893
+ {{column.title || getColumnComponent(column).field}}
29894
+
29895
+ <span class="k-columnmenu-indicators">
29896
+ <kendo-icon-wrapper
29897
+ *ngIf="sortDescriptor(getColumnComponent(column).field).dir"
29898
+ name="sort-{{sortDescriptor(getColumnComponent(column).field).dir}}-small"
29899
+ [svgIcon]="sortDescriptor(getColumnComponent(column).field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon"
29900
+ ></kendo-icon-wrapper>
29901
+ <span *ngIf="showSortNumbering(getColumnComponent(column))" class="k-sort-index">{{sortOrder(getColumnComponent(column).field)}}</span>
29902
+ </span>
29903
+ </div>
29904
+ </div>
29905
+
29906
+ <div class="k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer">
29907
+ <button kendoButton [svgIcon]="clearIcon" (click)="clearSorting()" >Clear sorting</button>
29908
+ </div>
29909
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: i1$7.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
29910
+ }
29911
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortToolbarToolComponent, decorators: [{
29912
+ type: Component,
29913
+ args: [{
29914
+ selector: 'kendo-sort-toolbar-tool',
29915
+ template: `
29916
+ <div
29917
+ class="k-column-menu-item-wrapper"
29918
+ [style.max-height.px]="200"
29919
+ [style.overflow-x]="'hidden'"
29920
+ [style.overflow-y]="'auto'"
29921
+ >
29922
+ <div *ngFor="let column of columns"
29923
+ #sortItem
29924
+ role="button"
29925
+ class="k-columnmenu-item"
29926
+ (click)="toggleSort(column)"
29927
+ (keydown.enter)="toggleSort(column)"
29928
+ [tabindex]="'0'"
29929
+ >
29930
+ {{column.title || getColumnComponent(column).field}}
29931
+
29932
+ <span class="k-columnmenu-indicators">
29933
+ <kendo-icon-wrapper
29934
+ *ngIf="sortDescriptor(getColumnComponent(column).field).dir"
29935
+ name="sort-{{sortDescriptor(getColumnComponent(column).field).dir}}-small"
29936
+ [svgIcon]="sortDescriptor(getColumnComponent(column).field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon"
29937
+ ></kendo-icon-wrapper>
29938
+ <span *ngIf="showSortNumbering(getColumnComponent(column))" class="k-sort-index">{{sortOrder(getColumnComponent(column).field)}}</span>
29939
+ </span>
29940
+ </div>
29941
+ </div>
29942
+
29943
+ <div class="k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer">
29944
+ <button kendoButton [svgIcon]="clearIcon" (click)="clearSorting()" >Clear sorting</button>
29945
+ </div>
29946
+ `,
29947
+ standalone: true,
29948
+ imports: [NgFor, NgIf, IconWrapperComponent, KENDO_BUTTON]
29949
+ }]
29950
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { sortItems: [{
29951
+ type: ViewChildren,
29952
+ args: ['sortItem', { read: ElementRef }]
29953
+ }], wrapperClasses: [{
29954
+ type: HostBinding,
29955
+ args: ['class.k-column-menu']
29956
+ }, {
29957
+ type: HostBinding,
29958
+ args: ['class.k-column-menu-md']
29959
+ }], onEscKeyDown: [{
29960
+ type: HostListener,
29961
+ args: ['keydown.escape', ['$event']]
29962
+ }], close: [{
29963
+ type: Output
29964
+ }], sortClear: [{
29965
+ type: Output
29966
+ }] } });
29967
+
29968
+ let incrementingId$1 = 0;
29969
+ /**
29970
+ * Represents the toolbar tool for sorting columns of the Grid.
29971
+ * You can apply this directive to any `kendo-toolbar-button` element inside a
29972
+ * ToolbarComponent used in the Grid.
29973
+ *
29974
+ * When the user clicks the toolbar button that is associated with the directive, the
29975
+ * sort event is triggered.
29976
+ *
29977
+ * @example
29978
+ * ```html-no-run
29979
+ * <kendo-grid>
29980
+ * <kendo-toolbar>
29981
+ * <kendo-toolbar-button text="Sort" kendoGridSortTool></kendo-toolbar-button>
29982
+ * </kendo-toolbar>
29983
+ * </kendo-grid>
29984
+ * ```
29985
+ */
29986
+ class SortCommandToolbarDirective {
29987
+ host;
29988
+ popupService;
29989
+ ctx;
29990
+ sortService;
29991
+ columnInfoService;
29992
+ ngZone;
29993
+ renderer;
29994
+ popupRef;
29995
+ nextId = incrementingId$1++;
29996
+ toolSubs = new Subscription();
29997
+ popupSubs;
29998
+ removeClickListener;
29999
+ constructor(host, popupService, ctx, sortService, columnInfoService, ngZone, renderer) {
30000
+ this.host = host;
30001
+ this.popupService = popupService;
30002
+ this.ctx = ctx;
30003
+ this.sortService = sortService;
30004
+ this.columnInfoService = columnInfoService;
30005
+ this.ngZone = ngZone;
30006
+ this.renderer = renderer;
30007
+ }
30008
+ ngOnInit() {
30009
+ this.toolSubs = this.host.click.subscribe(e => this.onClick(e));
30010
+ this.toolSubs.add(this.sortService.changes.subscribe(sort => {
30011
+ const isSortingApplied = isPresent$1(sort) && sort.length > 0 && sort.filter(item => item.dir !== undefined).length > 0;
30012
+ this.host.showBadge = isSortingApplied;
30013
+ }));
30014
+ const hasToolbarIcon = isPresent$1(this.host.toolbarOptions.icon) && this.host.toolbarOptions.icon !== '';
30015
+ const hasOverflowIcon = isPresent$1(this.host.overflowOptions.icon) && this.host.overflowOptions.icon !== '';
30016
+ const hasIcon = hasToolbarIcon && hasOverflowIcon;
30017
+ const hasSvgIcon = isPresent$1(this.host.toolbarOptions.svgIcon) && isPresent$1(this.host.overflowOptions.svgIcon);
30018
+ if (!hasIcon) {
30019
+ this.host.icon = 'k-i-arrows-swap';
30020
+ }
30021
+ if (!hasSvgIcon) {
30022
+ this.host.svgIcon = arrowsSwapIcon;
30023
+ }
30024
+ }
30025
+ ngAfterViewInit() {
30026
+ if (!isPresent$1(this.host.text)) {
30027
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
30028
+ this.host.text = this.ctx.localization.get(`sortToolbarToolText`);
30029
+ });
30030
+ }
30031
+ this.host.toolbarButtonElement.nativeElement.setAttribute('aria-haspopup', 'dialog');
30032
+ this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
30033
+ this.host.toolbarButtonElement.nativeElement.setAttribute('title', this.ctx.localization.get('sortable'));
30034
+ }
30035
+ ngOnDestroy() {
30036
+ if (this.toolSubs) {
30037
+ this.toolSubs.unsubscribe();
30038
+ }
30039
+ if (this.popupSubs) {
30040
+ this.popupSubs.unsubscribe();
30041
+ }
30042
+ if (this.popupRef) {
30043
+ this.popupRef.close();
30044
+ this.popupRef = null;
30045
+ }
30046
+ if (this.removeClickListener) {
30047
+ this.removeClickListener();
30048
+ this.removeClickListener = null;
30049
+ }
30050
+ }
30051
+ onClick(e) {
30052
+ e.preventDefault();
30053
+ if (this.popupRef) {
30054
+ this.closePopup();
30055
+ return;
30056
+ }
30057
+ this.openPopup();
30058
+ }
30059
+ openPopup() {
30060
+ const direction = this.ctx.localization.rtl ? 'right' : 'left';
30061
+ this.popupRef = this.popupService.open({
30062
+ anchor: this.host.toolbarButtonElement.nativeElement,
30063
+ content: SortToolbarToolComponent,
30064
+ popupClass: 'k-grid-columnmenu-popup',
30065
+ positionMode: 'absolute',
30066
+ anchorAlign: { vertical: 'bottom', horizontal: direction },
30067
+ popupAlign: { vertical: 'top', horizontal: direction }
30068
+ });
30069
+ this.setPopupAttributes();
30070
+ this.ngZone.runOutsideAngular(() => {
30071
+ if (!isDocumentAvailable()) {
30072
+ return;
30073
+ }
30074
+ this.removeClickListener = this.renderer.listen('document', 'click', (e) => {
30075
+ if (this.popupRef && !closest$1(e.target, node => node === this.popupRef.popupElement || node === this.host.toolbarButtonElement.nativeElement)) {
30076
+ this.closePopup();
30077
+ }
30078
+ });
30079
+ });
30080
+ this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
30081
+ this.popupSubs?.unsubscribe();
30082
+ this.popupSubs = null;
30083
+ this.closePopup();
30084
+ });
30085
+ this.initPopupProperties();
30086
+ }
30087
+ setPopupAttributes() {
30088
+ const popupElement = this.popupRef.popupElement;
30089
+ const popupId = `k-sort-tool-${this.nextId}-popup`;
30090
+ const popupAriaElement = popupElement.querySelector('.k-popup');
30091
+ this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
30092
+ this.renderer.setAttribute(popupAriaElement, 'id', popupId);
30093
+ this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
30094
+ this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'true');
30095
+ this.host.toolbarButtonElement.nativeElement.setAttribute('aria-controls', popupId);
30096
+ }
30097
+ initPopupProperties() {
30098
+ this.popupRef.content.instance.columnInfoService = this.columnInfoService;
30099
+ this.popupRef.content.instance.ctx = this.ctx;
30100
+ this.popupRef.content.instance.sortService = this.sortService;
30101
+ this.popupRef.content.instance.hostButton = this.host;
30102
+ this.popupSubs.add(this.popupRef.content.instance.sortClear.subscribe(() => {
30103
+ this.closePopup();
30104
+ }));
30105
+ this.popupSubs.add(this.popupRef.content.instance.close.subscribe(() => {
30106
+ this.closePopup();
30107
+ }));
30108
+ }
30109
+ closePopup() {
30110
+ this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
30111
+ this.host.toolbarButtonElement.nativeElement.removeAttribute('aria-controls');
30112
+ if (this.popupRef) {
30113
+ this.popupRef.close();
30114
+ this.popupRef = null;
30115
+ }
30116
+ if (this.popupSubs) {
30117
+ this.popupSubs.unsubscribe();
30118
+ this.popupSubs = null;
30119
+ }
30120
+ if (this.removeClickListener) {
30121
+ this.removeClickListener();
30122
+ this.removeClickListener = null;
30123
+ }
30124
+ }
30125
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortCommandToolbarDirective, deps: [{ token: i47.ToolBarButtonComponent }, { token: i1$5.PopupService }, { token: ContextService }, { token: SortService }, { token: ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
30126
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SortCommandToolbarDirective, isStandalone: true, selector: "[kendoGridSortTool]", ngImport: i0 });
30127
+ }
30128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortCommandToolbarDirective, decorators: [{
30129
+ type: Directive,
30130
+ args: [{
30131
+ selector: '[kendoGridSortTool]',
30132
+ standalone: true
30133
+ }]
30134
+ }], ctorParameters: function () { return [{ type: i47.ToolBarButtonComponent }, { type: i1$5.PopupService }, { type: ContextService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }]; } });
30135
+
30136
+ /**
30137
+ * @hidden
30138
+ */
30139
+ class FilterToolbarToolComponent {
30140
+ element;
30141
+ filterService;
30142
+ ctx;
30143
+ columnInfoService;
30144
+ filterItems;
30145
+ menuItems;
30146
+ filterContainers;
30147
+ close = new EventEmitter();
30148
+ get hostStyles() {
30149
+ return {
30150
+ 'maxHeight': '400px',
30151
+ 'overflowX': 'hidden',
30152
+ 'overflowY': 'auto'
30153
+ };
30154
+ }
30155
+ columnMenuService;
30156
+ columns;
30157
+ filter;
30158
+ subscriptions;
30159
+ constructor(element, filterService, ctx, columnInfoService) {
30160
+ this.element = element;
30161
+ this.filterService = filterService;
30162
+ this.ctx = ctx;
30163
+ this.columnInfoService = columnInfoService;
30164
+ }
30165
+ ngOnInit() {
30166
+ this.columns = this.columnInfoService.leafNamedColumns.filter(column => column?.filterable);
30167
+ this.filter = this.ctx.grid.filter;
30168
+ this.subscriptions = this.filterService.changes.subscribe(filter => {
30169
+ this.filter = cloneFilters(filter);
30170
+ });
30171
+ }
30172
+ ngAfterViewInit() {
30173
+ this.filterItems?.get(0)?.nativeElement.focus();
30174
+ }
30175
+ ngOnDestroy() {
30176
+ if (this.subscriptions) {
30177
+ this.subscriptions.unsubscribe();
30178
+ }
30179
+ }
30180
+ getColumnComponent(column) {
30181
+ return column;
30182
+ }
30183
+ handleClose(filterItem) {
30184
+ filterItem.expanded = false;
30185
+ filterItem.contentState = 'collapsed';
30186
+ }
30187
+ toggleItem(event, index) {
30188
+ const menuItem = this.menuItems.get(index);
30189
+ if (!menuItem || event.target.closest('.k-filter-menu-container')) {
30190
+ return;
30191
+ }
30192
+ if (menuItem.expanded) {
30193
+ this.filterContainers.get(index).isExpanded = false;
30194
+ menuItem.expanded = false;
30195
+ menuItem.contentState = 'collapsed';
30196
+ }
30197
+ else {
30198
+ this.filterContainers.get(index).isExpanded = true;
30199
+ menuItem.expanded = true;
30200
+ menuItem.contentState = 'expanded';
30201
+ }
30202
+ }
30203
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolbarToolComponent, deps: [{ token: i0.ElementRef }, { token: FilterService }, { token: ContextService }, { token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
30204
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterToolbarToolComponent, isStandalone: true, selector: "kendo-filter-toolbar-tool", outputs: { close: "close" }, viewQueries: [{ propertyName: "filterItems", predicate: ["filterItem"], descendants: true, read: ElementRef }, { propertyName: "menuItems", predicate: ["filterItem"], descendants: true }, { propertyName: "filterContainers", predicate: ["filterContainer"], descendants: true }], ngImport: i0, template: `
30205
+ <div [style]="hostStyles">
30206
+ <kendo-grid-columnmenu-item *ngFor="let column of columns; let i = index"
30207
+ class="k-columnmenu-item-wrapper" #filterItem
30208
+ role="button"
30209
+ tabindex="0"
30210
+ [text]="column.title || getColumnComponent(column).field"
30211
+ (keydown.enter)="toggleItem($event, i)"
30212
+ [expanded]="false">
30213
+ <ng-template kendoGridColumnMenuItemContentTemplate>
30214
+ <kendo-grid-filter-menu-container
30215
+ #filterContainer
30216
+ (keydown.shift.tab)="$event.stopImmediatePropagation()"
30217
+ [column]="getColumnComponent(column)"
30218
+ [filter]="filter"
30219
+ [isExpanded]="false"
30220
+ (close)="handleClose(filterItem)">
30221
+ </kendo-grid-filter-menu-container>
30222
+ </ng-template>
30223
+ </kendo-grid-columnmenu-item>
30224
+ </div>
30225
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
30226
+ }
30227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolbarToolComponent, decorators: [{
30228
+ type: Component,
30229
+ args: [{
30230
+ selector: 'kendo-filter-toolbar-tool',
30231
+ template: `
30232
+ <div [style]="hostStyles">
30233
+ <kendo-grid-columnmenu-item *ngFor="let column of columns; let i = index"
30234
+ class="k-columnmenu-item-wrapper" #filterItem
30235
+ role="button"
30236
+ tabindex="0"
30237
+ [text]="column.title || getColumnComponent(column).field"
30238
+ (keydown.enter)="toggleItem($event, i)"
30239
+ [expanded]="false">
30240
+ <ng-template kendoGridColumnMenuItemContentTemplate>
30241
+ <kendo-grid-filter-menu-container
30242
+ #filterContainer
30243
+ (keydown.shift.tab)="$event.stopImmediatePropagation()"
30244
+ [column]="getColumnComponent(column)"
30245
+ [filter]="filter"
30246
+ [isExpanded]="false"
30247
+ (close)="handleClose(filterItem)">
30248
+ </kendo-grid-filter-menu-container>
30249
+ </ng-template>
30250
+ </kendo-grid-columnmenu-item>
30251
+ </div>
30252
+ `,
30253
+ standalone: true,
30254
+ imports: [NgFor, KENDO_BUTTON, FilterMenuContainerComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective]
30255
+ }]
30256
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: FilterService }, { type: ContextService }, { type: ColumnInfoService }]; }, propDecorators: { filterItems: [{
30257
+ type: ViewChildren,
30258
+ args: ['filterItem', { read: ElementRef }]
30259
+ }], menuItems: [{
30260
+ type: ViewChildren,
30261
+ args: ['filterItem']
30262
+ }], filterContainers: [{
30263
+ type: ViewChildren,
30264
+ args: ['filterContainer']
30265
+ }], close: [{
30266
+ type: Output
30267
+ }] } });
30268
+
30269
+ /**
30270
+ * @hidden
30271
+ */
30272
+ class FilterToolWrapperComponent {
30273
+ injector;
30274
+ container;
30275
+ wrapperClasses = true;
30276
+ onEscKeyDown(event) {
30277
+ event.preventDefault();
30278
+ this.close.emit();
30279
+ this.hostButton?.focus(event);
30280
+ }
30281
+ close = new EventEmitter();
30282
+ hostButton;
30283
+ clearIcon = filterClearIcon;
30284
+ columnInfoService;
30285
+ popupRef;
30286
+ filter;
30287
+ subscriptions;
30288
+ _ctx;
30289
+ set ctx(ctx) {
30290
+ this._ctx = ctx;
30291
+ this.createPopup();
30292
+ }
30293
+ get ctx() {
30294
+ return this._ctx;
30295
+ }
30296
+ _filterService;
30297
+ set filterService(filterService) {
30298
+ this._filterService = filterService;
30299
+ this.subscriptions = this._filterService.changes.subscribe(filter => {
30300
+ this.filter = filter;
30301
+ });
30302
+ this.createPopup();
30303
+ }
30304
+ get filterService() {
30305
+ return this._filterService;
30306
+ }
30307
+ columnMenuService;
30308
+ constructor(injector) {
30309
+ this.injector = injector;
30310
+ }
30311
+ ngOnDestroy() {
30312
+ if (this.subscriptions) {
30313
+ this.subscriptions.unsubscribe();
30314
+ }
30315
+ if (this.popupRef) {
30316
+ this.popupRef.destroy();
30317
+ this.popupRef = null;
30318
+ }
30319
+ }
30320
+ clear() {
30321
+ if (!this.filter || this.filter.filters?.length === 0) {
30322
+ return;
30323
+ }
30324
+ this.filter = { logic: 'and', filters: [] };
30325
+ this.popupRef.instance.filter = cloneFilters(this.filter);
30326
+ this.filterService.filter(this.filter);
30327
+ this.close.emit();
30328
+ }
30329
+ createPopup() {
30330
+ if (this._ctx && this._filterService && this.container && !this.popupRef) {
30331
+ const customInjector = Injector.create({
30332
+ providers: [
30333
+ { provide: FilterService, useValue: this._filterService },
30334
+ { provide: ContextService, useValue: this._ctx },
30335
+ { provide: ColumnInfoService, useValue: this.columnInfoService },
30336
+ SinglePopupService,
30337
+ ScrollSyncService
30338
+ ],
30339
+ parent: this.injector
30340
+ });
30341
+ this.popupRef = this.container.createComponent(FilterToolbarToolComponent, {
30342
+ injector: customInjector
30343
+ });
30344
+ this.subscriptions.add(this.popupRef.instance.close.subscribe(() => this.close.emit()));
30345
+ }
30346
+ }
30347
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolWrapperComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
30348
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterToolWrapperComponent, isStandalone: true, selector: "kendo-filter-tool-wrapper", outputs: { close: "close" }, host: { listeners: { "keydown.escape": "onEscKeyDown($event)" }, properties: { "class.k-column-menu": "this.wrapperClasses", "class.k-column-menu-md": "this.wrapperClasses" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
30349
+ <ng-container #container></ng-container>
30350
+ <div class="k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer">
30351
+ <button kendoButton [svgIcon]="clearIcon" (click)="clear()">Clear all filters</button>
30352
+ </div>
30353
+ `, isInline: true, dependencies: [{ kind: "component", type: i1$7.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
30354
+ }
30355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolWrapperComponent, decorators: [{
30356
+ type: Component,
30357
+ args: [{
30358
+ selector: 'kendo-filter-tool-wrapper',
30359
+ template: `
30360
+ <ng-container #container></ng-container>
30361
+ <div class="k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer">
30362
+ <button kendoButton [svgIcon]="clearIcon" (click)="clear()">Clear all filters</button>
30363
+ </div>
30364
+ `,
30365
+ standalone: true,
30366
+ imports: [KENDO_BUTTON]
30367
+ }]
30368
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { container: [{
30369
+ type: ViewChild,
30370
+ args: ['container', { read: ViewContainerRef, static: true }]
30371
+ }], wrapperClasses: [{
30372
+ type: HostBinding,
30373
+ args: ['class.k-column-menu']
30374
+ }, {
30375
+ type: HostBinding,
30376
+ args: ['class.k-column-menu-md']
30377
+ }], onEscKeyDown: [{
30378
+ type: HostListener,
30379
+ args: ['keydown.escape', ['$event']]
30380
+ }], close: [{
30381
+ type: Output
30382
+ }] } });
30383
+
30384
+ let incrementingId = 0;
30385
+ /**
30386
+ * Represents the toolbar tool for filtering columns of the Grid.
30387
+ * You can apply this directive to any `kendo-toolbar-button` element inside a
30388
+ * ToolbarComponent used in the Grid.
30389
+ *
30390
+ * When the user clicks the toolbar button that is associated with the directive, the
30391
+ * filter event is triggered.
30392
+ *
30393
+ * @example
30394
+ * ```html-no-run
30395
+ * <kendo-grid>
30396
+ * <kendo-toolbar>
30397
+ * <kendo-toolbar-button text="Filter" kendoGridFilterTool></kendo-toolbar-button>
30398
+ * </kendo-toolbar>
30399
+ * </kendo-grid>
30400
+ * ```
30401
+ */
30402
+ class FilterCommandToolbarDirective {
30403
+ host;
30404
+ popupService;
30405
+ ctx;
30406
+ filterService;
30407
+ columnInfoService;
30408
+ ngZone;
30409
+ renderer;
30410
+ popupRef;
30411
+ nextId = incrementingId++;
30412
+ toolSubs = new Subscription();
30413
+ popupSubs;
30414
+ removeClickListener;
30415
+ constructor(host, popupService, ctx, filterService, columnInfoService, ngZone, renderer) {
30416
+ this.host = host;
30417
+ this.popupService = popupService;
30418
+ this.ctx = ctx;
30419
+ this.filterService = filterService;
30420
+ this.columnInfoService = columnInfoService;
30421
+ this.ngZone = ngZone;
30422
+ this.renderer = renderer;
30423
+ }
30424
+ ngOnInit() {
30425
+ this.toolSubs = this.host.click.subscribe(e => this.onClick(e));
30426
+ this.toolSubs.add(this.filterService.changes.subscribe(filter => {
30427
+ this.host.showBadge = isPresent$1(filter) && filter.filters.length > 0;
30428
+ }));
30429
+ const hasToolbarIcon = isPresent$1(this.host.toolbarOptions.icon) && this.host.toolbarOptions.icon !== '';
30430
+ const hasOverflowIcon = isPresent$1(this.host.overflowOptions.icon) && this.host.overflowOptions.icon !== '';
30431
+ const hasIcon = hasToolbarIcon && hasOverflowIcon;
30432
+ const hasSvgIcon = isPresent$1(this.host.toolbarOptions.svgIcon) && isPresent$1(this.host.overflowOptions.svgIcon);
30433
+ if (!hasIcon) {
30434
+ this.host.icon = 'k-i-filter';
30435
+ }
30436
+ if (!hasSvgIcon) {
30437
+ this.host.svgIcon = filterIcon;
30438
+ }
30439
+ }
30440
+ ngAfterViewInit() {
30441
+ if (!isPresent$1(this.host.text)) {
30442
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
30443
+ this.host.text = this.ctx.localization.get(`filterToolbarToolText`);
30444
+ });
30445
+ }
30446
+ this.host.toolbarButtonElement.nativeElement.setAttribute('aria-haspopup', 'dialog');
30447
+ this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
30448
+ this.host.toolbarButtonElement.nativeElement.setAttribute('title', this.ctx.localization.get('filter'));
30449
+ }
30450
+ ngOnDestroy() {
30451
+ if (this.toolSubs) {
30452
+ this.toolSubs.unsubscribe();
30453
+ }
30454
+ if (this.popupSubs) {
30455
+ this.popupSubs.unsubscribe();
30456
+ }
30457
+ if (this.popupRef) {
30458
+ this.popupRef.close();
30459
+ this.popupRef = null;
30460
+ }
30461
+ if (this.removeClickListener) {
30462
+ this.removeClickListener();
30463
+ this.removeClickListener = null;
30464
+ }
30465
+ }
30466
+ onClick(e) {
30467
+ e.preventDefault();
30468
+ if (this.popupRef) {
30469
+ this.closePopup();
30470
+ return;
30471
+ }
30472
+ this.openPopup();
30473
+ }
30474
+ openPopup() {
30475
+ const direction = this.ctx.localization.rtl ? 'right' : 'left';
30476
+ this.popupRef = this.popupService.open({
30477
+ anchor: this.host.toolbarButtonElement.nativeElement,
30478
+ content: FilterToolWrapperComponent,
30479
+ popupClass: 'k-grid-columnmenu-popup',
30480
+ positionMode: 'absolute',
30481
+ anchorAlign: { vertical: 'bottom', horizontal: direction },
30482
+ popupAlign: { vertical: 'top', horizontal: direction }
30483
+ });
30484
+ this.setPopupAttributes();
30485
+ this.ngZone.runOutsideAngular(() => {
30486
+ if (!isDocumentAvailable()) {
30487
+ return;
30488
+ }
30489
+ this.removeClickListener = this.renderer.listen('document', 'click', (e) => {
30490
+ if (this.popupRef && !closest$1(e.target, node => node === this.popupRef.popupElement || node === this.host.toolbarButtonElement.nativeElement)) {
30491
+ this.closePopup();
30492
+ }
30493
+ });
30494
+ });
30495
+ this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
30496
+ this.popupSubs?.unsubscribe();
30497
+ this.popupSubs = null;
30498
+ this.closePopup();
30499
+ });
30500
+ this.initPopupProperties();
30501
+ }
30502
+ setPopupAttributes() {
30503
+ const popupElement = this.popupRef.popupElement;
30504
+ const popupId = `k-filter-tool-${this.nextId}-popup`;
30505
+ const popupAriaElement = popupElement.querySelector('.k-popup');
30506
+ this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
30507
+ this.renderer.setAttribute(popupAriaElement, 'id', popupId);
30508
+ this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
30509
+ this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'true');
30510
+ this.host.toolbarButtonElement.nativeElement.setAttribute('aria-controls', popupId);
30511
+ }
30512
+ initPopupProperties() {
30513
+ this.popupRef.content.instance.columnInfoService = this.columnInfoService;
30514
+ this.popupRef.content.instance.ctx = this.ctx;
30515
+ this.popupRef.content.instance.filterService = this.filterService;
30516
+ this.popupRef.content.instance.hostButton = this.host;
30517
+ this.popupSubs.add(this.popupRef.content.instance.close.subscribe(() => {
30518
+ this.closePopup();
30519
+ }));
30520
+ }
30521
+ closePopup() {
30522
+ this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
30523
+ this.host.toolbarButtonElement.nativeElement.removeAttribute('aria-controls');
30524
+ if (this.popupRef) {
30525
+ this.popupRef.close();
30526
+ this.popupRef = null;
30527
+ }
30528
+ if (this.popupSubs) {
30529
+ this.popupSubs.unsubscribe();
30530
+ this.popupSubs = null;
30531
+ }
30532
+ if (this.removeClickListener) {
30533
+ this.removeClickListener();
30534
+ this.removeClickListener = null;
30535
+ }
30536
+ }
30537
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCommandToolbarDirective, deps: [{ token: i47.ToolBarButtonComponent }, { token: i1$5.PopupService }, { token: ContextService }, { token: FilterService }, { token: ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
30538
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FilterCommandToolbarDirective, isStandalone: true, selector: "[kendoGridFilterTool]", ngImport: i0 });
30539
+ }
30540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCommandToolbarDirective, decorators: [{
30541
+ type: Directive,
30542
+ args: [{
30543
+ selector: '[kendoGridFilterTool]',
30544
+ standalone: true
30545
+ }]
30546
+ }], ctorParameters: function () { return [{ type: i47.ToolBarButtonComponent }, { type: i1$5.PopupService }, { type: ContextService }, { type: FilterService }, { type: ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }]; } });
29726
30547
 
29727
30548
  // DRAGGABLE COLUMN
29728
30549
  /**
@@ -29946,7 +30767,9 @@ const KENDO_GRID_BODY_EXPORTS = [
29946
30767
  AddCommandToolbarDirective,
29947
30768
  CellLoadingTemplateDirective,
29948
30769
  LoadingTemplateDirective,
29949
- RowReorderColumnComponent
30770
+ RowReorderColumnComponent,
30771
+ SortCommandToolbarDirective,
30772
+ FilterCommandToolbarDirective
29950
30773
  ];
29951
30774
  /**
29952
30775
  * @hidden
@@ -30072,7 +30895,7 @@ const KENDO_GRID = [
30072
30895
  */
30073
30896
  class GridModule {
30074
30897
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
30075
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GridModule, imports: [GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FooterComponent, i44.CustomMessagesComponent, i44.PagerFocusableDirective, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerTemplateDirective, i44.PagerComponent, i44.PagerSpacerComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnMenuChooserItemCheckedDirective, ColumnListComponent, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, ToolbarComponent, LocalizedMessagesDirective, CustomMessagesComponent, DataBindingDirective, ToolbarTemplateDirective, SelectionDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExternalEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GroupBindingDirective, GridMarqueeDirective, GridSpacerComponent, GridToolbarFocusableDirective, StatusBarComponent, StatusBarTemplateDirective, GridClipboardDirective, FormComponent, DialogFormComponent, FormFormFieldComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, TableDirective], exports: [GridComponent, ToolbarTemplateDirective, ToolbarComponent, GridSpacerComponent, StatusBarTemplateDirective, DataBindingDirective, SelectionDirective, CustomMessagesComponent, GroupBindingDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExternalEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridClipboardDirective, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, i44.CustomMessagesComponent, i44.PagerFocusableDirective, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerTemplateDirective, i44.PagerComponent, i44.PagerSpacerComponent] });
30898
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GridModule, imports: [GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, SortCommandToolbarDirective, FilterCommandToolbarDirective, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FooterComponent, i46.CustomMessagesComponent, i46.PagerFocusableDirective, i46.PagerInfoComponent, i46.PagerInputComponent, i46.PagerNextButtonsComponent, i46.PagerNumericButtonsComponent, i46.PagerPageSizesComponent, i46.PagerPrevButtonsComponent, i46.PagerTemplateDirective, i46.PagerComponent, i46.PagerSpacerComponent, i47.ToolBarComponent, i47.ToolbarCustomMessagesComponent, i47.ToolBarButtonComponent, i47.ToolBarButtonGroupComponent, i47.ToolBarDropDownButtonComponent, i47.ToolBarSeparatorComponent, i47.ToolBarSpacerComponent, i47.ToolBarSplitButtonComponent, i47.ToolBarToolComponent, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnMenuChooserItemCheckedDirective, ColumnListComponent, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, ToolbarComponent, LocalizedMessagesDirective, CustomMessagesComponent, DataBindingDirective, ToolbarTemplateDirective, SelectionDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExternalEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GroupBindingDirective, GridMarqueeDirective, GridSpacerComponent, GridToolbarFocusableDirective, StatusBarComponent, StatusBarTemplateDirective, GridClipboardDirective, FormComponent, DialogFormComponent, FormFormFieldComponent, i47.ToolBarComponent, i47.ToolbarCustomMessagesComponent, i47.ToolBarButtonComponent, i47.ToolBarButtonGroupComponent, i47.ToolBarDropDownButtonComponent, i47.ToolBarSeparatorComponent, i47.ToolBarSpacerComponent, i47.ToolBarSplitButtonComponent, i47.ToolBarToolComponent, TableDirective], exports: [GridComponent, ToolbarTemplateDirective, ToolbarComponent, GridSpacerComponent, StatusBarTemplateDirective, DataBindingDirective, SelectionDirective, CustomMessagesComponent, GroupBindingDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExternalEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, SortCommandToolbarDirective, FilterCommandToolbarDirective, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridClipboardDirective, i47.ToolBarComponent, i47.ToolbarCustomMessagesComponent, i47.ToolBarButtonComponent, i47.ToolBarButtonGroupComponent, i47.ToolBarDropDownButtonComponent, i47.ToolBarSeparatorComponent, i47.ToolBarSpacerComponent, i47.ToolBarSplitButtonComponent, i47.ToolBarToolComponent, i46.CustomMessagesComponent, i46.PagerFocusableDirective, i46.PagerInfoComponent, i46.PagerInputComponent, i46.PagerNextButtonsComponent, i46.PagerNumericButtonsComponent, i46.PagerPageSizesComponent, i46.PagerPrevButtonsComponent, i46.PagerTemplateDirective, i46.PagerComponent, i46.PagerSpacerComponent] });
30076
30899
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridModule, providers: [
30077
30900
  PopupService,
30078
30901
  ResizeBatchService,
@@ -30087,7 +30910,7 @@ class GridModule {
30087
30910
  MonthViewService,
30088
30911
  YearViewService,
30089
30912
  NavigationService$1
30090
- ], imports: [GroupHeaderComponent, GroupPanelComponent, TableBodyComponent, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, HeaderComponent, i44.CustomMessagesComponent, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerComponent, i44.PagerSpacerComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, FilterCellOperatorsComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, FormComponent, DialogFormComponent, FormFormFieldComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent] });
30913
+ ], imports: [GroupHeaderComponent, GroupPanelComponent, TableBodyComponent, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, HeaderComponent, i46.CustomMessagesComponent, i46.PagerInfoComponent, i46.PagerInputComponent, i46.PagerNextButtonsComponent, i46.PagerNumericButtonsComponent, i46.PagerPageSizesComponent, i46.PagerPrevButtonsComponent, i46.PagerComponent, i46.PagerSpacerComponent, i47.ToolBarComponent, i47.ToolbarCustomMessagesComponent, i47.ToolBarButtonComponent, i47.ToolBarButtonGroupComponent, i47.ToolBarDropDownButtonComponent, i47.ToolBarSeparatorComponent, i47.ToolBarSpacerComponent, i47.ToolBarSplitButtonComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, FilterCellOperatorsComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, FormComponent, DialogFormComponent, FormFormFieldComponent, i47.ToolBarComponent, i47.ToolbarCustomMessagesComponent, i47.ToolBarButtonComponent, i47.ToolBarButtonGroupComponent, i47.ToolBarDropDownButtonComponent, i47.ToolBarSeparatorComponent, i47.ToolBarSpacerComponent, i47.ToolBarSplitButtonComponent] });
30091
30914
  }
30092
30915
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridModule, decorators: [{
30093
30916
  type: NgModule,
@@ -30203,5 +31026,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
30203
31026
  * Generated bundle index. Do not edit.
30204
31027
  */
30205
31028
 
30206
- export { AddCommandDirective, AddCommandToolbarDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionAggregateService, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnChooserToolbarDirective, 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 as EditServiceClass, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, ExternalEditingDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridClipboardDirective, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupPanelComponent, GroupsService, HeaderComponent, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, KENDO_GRID, KENDO_GRID_BODY_EXPORTS, KENDO_GRID_COLUMN_DRAGANDDROP, KENDO_GRID_COLUMN_MENU_DECLARATIONS, KENDO_GRID_COLUMN_MENU_EXPORTS, KENDO_GRID_DECLARATIONS, KENDO_GRID_EXCEL_EXPORT, KENDO_GRID_EXPORTS, KENDO_GRID_FILTER_MENU, KENDO_GRID_FILTER_MENU_EXPORTS, KENDO_GRID_FILTER_OPERATORS, KENDO_GRID_FILTER_ROW, KENDO_GRID_FILTER_ROW_EXPORTS, KENDO_GRID_FILTER_SHARED, KENDO_GRID_FOOTER_EXPORTS, KENDO_GRID_GROUP_EXPORTS, KENDO_GRID_HEADER_EXPORTS, KENDO_GRID_PDF_EXPORT, KENDO_GRID_SHARED, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFCommandToolbarDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, RowEditingDirectiveBase, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
31029
+ export { AddCommandDirective, AddCommandToolbarDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionAggregateService, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnChooserToolbarDirective, 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 as EditServiceClass, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, ExternalEditingDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterCommandToolbarDirective, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridClipboardDirective, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupPanelComponent, GroupsService, HeaderComponent, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, KENDO_GRID, KENDO_GRID_BODY_EXPORTS, KENDO_GRID_COLUMN_DRAGANDDROP, KENDO_GRID_COLUMN_MENU_DECLARATIONS, KENDO_GRID_COLUMN_MENU_EXPORTS, KENDO_GRID_DECLARATIONS, KENDO_GRID_EXCEL_EXPORT, KENDO_GRID_EXPORTS, KENDO_GRID_FILTER_MENU, KENDO_GRID_FILTER_MENU_EXPORTS, KENDO_GRID_FILTER_OPERATORS, KENDO_GRID_FILTER_ROW, KENDO_GRID_FILTER_ROW_EXPORTS, KENDO_GRID_FILTER_SHARED, KENDO_GRID_FOOTER_EXPORTS, KENDO_GRID_GROUP_EXPORTS, KENDO_GRID_HEADER_EXPORTS, KENDO_GRID_PDF_EXPORT, KENDO_GRID_SHARED, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFCommandToolbarDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, RowEditingDirectiveBase, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SinglePopupService, SizingOptionsService, Skip, SortCommandToolbarDirective, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
30207
31030