@progress/kendo-angular-grid 19.0.0-develop.12 → 19.0.0-develop.14

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.
@@ -52,6 +52,7 @@ export declare class ColumnChooserToolbarDirective extends ToolbarToolBase imple
52
52
  */
53
53
  onClick(e: any): void;
54
54
  private closePopup;
55
+ private get buttonElement();
55
56
  static ɵfac: i0.ɵɵFactoryDeclaration<ColumnChooserToolbarDirective, never>;
56
57
  static ɵdir: i0.ɵɵDirectiveDeclaration<ColumnChooserToolbarDirective, "[kendoGridColumnChooserTool]", never, { "autoSync": { "alias": "autoSync"; "required": false; }; "allowHideAll": { "alias": "allowHideAll"; "required": false; }; }, {}, never, never, true, never>;
57
58
  }
@@ -65,9 +65,9 @@ export class ColumnChooserToolbarDirective extends ToolbarToolBase {
65
65
  ngAfterViewInit() {
66
66
  super.ngAfterViewInit();
67
67
  this.zone.onStable.pipe(take(1)).subscribe(() => {
68
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-haspopup', 'dialog');
69
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
70
- this.host.toolbarButtonElement.nativeElement.setAttribute('title', this.ctx.localization.get('columns'));
68
+ this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
69
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
70
+ this.buttonElement?.setAttribute('title', this.ctx.localization.get('columns'));
71
71
  });
72
72
  this.subs.add(this.refresh.onRefresh.pipe(filter((tool) => tool === this.host)).subscribe((tool) => {
73
73
  if (tool.overflows && this.popupRef) {
@@ -85,52 +85,50 @@ export class ColumnChooserToolbarDirective extends ToolbarToolBase {
85
85
  onClick(e) {
86
86
  e.preventDefault();
87
87
  if (!this.popupRef) {
88
- if (!this.host.overflows) {
89
- const direction = this.ctx.localization.rtl ? 'right' : 'left';
90
- this.popupRef = this.popupSerivce.open({
91
- anchor: this.host.toolbarButtonElement,
92
- content: ColumnListComponent,
93
- positionMode: 'absolute',
94
- anchorAlign: { vertical: 'bottom', horizontal: direction },
95
- popupAlign: { vertical: 'top', horizontal: direction }
88
+ const direction = this.ctx.localization.rtl ? 'right' : 'left';
89
+ this.popupRef = this.popupSerivce.open({
90
+ anchor: this.buttonElement,
91
+ content: ColumnListComponent,
92
+ positionMode: 'absolute',
93
+ anchorAlign: { vertical: 'bottom', horizontal: direction },
94
+ popupAlign: { vertical: 'top', horizontal: direction }
95
+ });
96
+ const popupElement = this.popupRef.popupElement;
97
+ const popupId = `k-column-chooser-tool-${this.nextId}-popup`;
98
+ const popupAriaElement = popupElement.querySelector('.k-popup');
99
+ this.zone.runOutsideAngular(() => {
100
+ this.renderer.listen(popupAriaElement, 'keydown', (e) => {
101
+ if (e.key === 'Escape') {
102
+ this.closePopup(true);
103
+ }
96
104
  });
97
- const popupElement = this.popupRef.popupElement;
98
- const popupId = `k-column-chooser-tool-${this.nextId}-popup`;
99
- const popupAriaElement = popupElement.querySelector('.k-popup');
100
- this.zone.runOutsideAngular(() => {
101
- this.renderer.listen(popupAriaElement, 'keydown', (e) => {
102
- if (e.key === 'Escape') {
103
- this.closePopup(true);
104
- }
105
+ });
106
+ this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
107
+ this.renderer.setAttribute(popupAriaElement, 'id', popupId);
108
+ this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
109
+ this.buttonElement?.setAttribute('aria-expanded', 'true');
110
+ this.buttonElement?.setAttribute('aria-controls', popupId);
111
+ const columnList = this.popupRef.content.instance;
112
+ columnList.isLast = true;
113
+ columnList.autoSync = this.autoSync;
114
+ columnList.allowHideAll = this.allowHideAll;
115
+ columnList.applyText = this.ctx.localization.get('columnsApply');
116
+ columnList.resetText = this.ctx.localization.get('columnsReset');
117
+ columnList.columns = this.ctx.grid.columns;
118
+ columnList.ariaLabel = this.ctx.localization.get('columns');
119
+ this.subs.add(this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
120
+ this.closePopup(true);
121
+ }));
122
+ this.subs.add(columnList.apply.subscribe(() => {
123
+ this.closePopup();
124
+ }));
125
+ this.zone.runOutsideAngular(() => this.renderer.listen('document', 'click', ({ target }) => {
126
+ if (this.popupRef && !closest(target, node => node === this.popupRef.popupElement || node === this.buttonElement)) {
127
+ this.zone.run(() => {
128
+ this.closePopup();
105
129
  });
106
- });
107
- this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
108
- this.renderer.setAttribute(popupAriaElement, 'id', popupId);
109
- this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
110
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'true');
111
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-controls', popupId);
112
- const columnList = this.popupRef.content.instance;
113
- columnList.isLast = true;
114
- columnList.autoSync = this.autoSync;
115
- columnList.allowHideAll = this.allowHideAll;
116
- columnList.applyText = this.ctx.localization.get('columnsApply');
117
- columnList.resetText = this.ctx.localization.get('columnsReset');
118
- columnList.columns = this.ctx.grid.columns;
119
- columnList.ariaLabel = this.ctx.localization.get('columns');
120
- this.subs.add(this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
121
- this.closePopup(true);
122
- }));
123
- this.subs.add(columnList.apply.subscribe(() => {
124
- this.closePopup();
125
- }));
126
- this.zone.runOutsideAngular(() => this.renderer.listen('document', 'click', ({ target }) => {
127
- if (this.popupRef && !closest(target, node => node === this.popupRef.popupElement || node === this.host.toolbarButtonElement.nativeElement)) {
128
- this.zone.run(() => {
129
- this.closePopup();
130
- });
131
- }
132
- }));
133
- }
130
+ }
131
+ }));
134
132
  }
135
133
  else {
136
134
  this.closePopup();
@@ -139,9 +137,12 @@ export class ColumnChooserToolbarDirective extends ToolbarToolBase {
139
137
  closePopup(focusAnchor = false) {
140
138
  this.popupRef.close();
141
139
  this.popupRef = null;
142
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
143
- this.host.toolbarButtonElement.nativeElement.removeAttribute('aria-controls');
144
- focusAnchor && this.host.toolbarButtonElement.nativeElement.focus();
140
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
141
+ this.buttonElement?.removeAttribute('aria-controls');
142
+ focusAnchor && this.buttonElement?.focus();
143
+ }
144
+ get buttonElement() {
145
+ return this.host.getButton();
145
146
  }
146
147
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChooserToolbarDirective, deps: [{ token: i0.Renderer2 }, { token: i1.PopupService }, { token: i2.ToolBarButtonComponent }, { token: i3.ContextService }, { token: i0.NgZone }, { token: i2.RefreshService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
147
148
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ColumnChooserToolbarDirective, isStandalone: true, selector: "[kendoGridColumnChooserTool]", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll" }, usesInheritance: true, ngImport: i0 });
@@ -70,6 +70,7 @@ export class ColumnListComponent {
70
70
  }
71
71
  this.ngZone.runOutsideAngular(() => {
72
72
  this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'click', (e) => {
73
+ e.stopImmediatePropagation();
73
74
  this.ngZone.onStable.pipe(take(1)).subscribe(() => {
74
75
  this.handleCheckBoxClick(e);
75
76
  });
@@ -61,15 +61,13 @@ export class ToolbarEditingToolBase extends ToolbarToolBase {
61
61
  if (this.ctx.grid.showInactiveTools) {
62
62
  this.host.disabled = isToolInactive;
63
63
  }
64
- else {
64
+ else if (this.host.isHidden !== isToolInactive) {
65
65
  this.host.isHidden = isToolInactive;
66
66
  const toolbar = this.host.host;
67
67
  toolbar.refreshService.refresh(this.host);
68
- if (toolbar.resizable) {
69
- this.zone.onStable.pipe(take(1)).subscribe(() => {
70
- toolbar.onResize();
71
- });
72
- }
68
+ this.zone.onStable.pipe(take(1)).subscribe(() => {
69
+ toolbar.onResize();
70
+ });
73
71
  }
74
72
  }
75
73
  }
@@ -3032,7 +3032,7 @@ export class GridComponent {
3032
3032
  <div #dialogContainer></div>
3033
3033
 
3034
3034
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3035
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridToolbarComponent, 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: i25.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i25.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i25.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: i25.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i25.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i25.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: i25.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i25.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i25.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 });
3035
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridToolbarComponent, 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: i25.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i25.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i25.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["showPageText", "size"] }, { kind: "component", type: i25.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i25.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i25.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i25.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i25.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i25.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
3036
3036
  }
3037
3037
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
3038
3038
  type: Component,
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1747069795,
14
- version: '19.0.0-develop.12',
13
+ publishDate: 1747136992,
14
+ version: '19.0.0-develop.14',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -81,9 +81,9 @@ export class FilterCommandToolbarDirective {
81
81
  this.host.text = this.ctx.localization.get(`filterToolbarToolText`);
82
82
  });
83
83
  }
84
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-haspopup', 'dialog');
85
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
86
- this.host.toolbarButtonElement.nativeElement.setAttribute('title', this.ctx.localization.get('filter'));
84
+ this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
85
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
86
+ this.buttonElement?.setAttribute('title', this.ctx.localization.get('filter'));
87
87
  }
88
88
  ngOnDestroy() {
89
89
  if (this.toolSubs) {
@@ -112,7 +112,7 @@ export class FilterCommandToolbarDirective {
112
112
  openPopup() {
113
113
  const direction = this.ctx.localization.rtl ? 'right' : 'left';
114
114
  this.popupRef = this.popupService.open({
115
- anchor: this.host.toolbarButtonElement.nativeElement,
115
+ anchor: this.buttonElement,
116
116
  content: FilterToolWrapperComponent,
117
117
  popupClass: 'k-grid-columnmenu-popup',
118
118
  positionMode: 'absolute',
@@ -125,7 +125,7 @@ export class FilterCommandToolbarDirective {
125
125
  return;
126
126
  }
127
127
  this.removeClickListener = this.renderer.listen('document', 'click', (e) => {
128
- if (this.popupRef && !closest(e.target, node => node === this.popupRef.popupElement || node === this.host.toolbarButtonElement.nativeElement)) {
128
+ if (this.popupRef && !closest(e.target, node => node === this.popupRef.popupElement || node === this.buttonElement)) {
129
129
  this.closePopup();
130
130
  }
131
131
  });
@@ -144,8 +144,8 @@ export class FilterCommandToolbarDirective {
144
144
  this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
145
145
  this.renderer.setAttribute(popupAriaElement, 'id', popupId);
146
146
  this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
147
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'true');
148
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-controls', popupId);
147
+ this.buttonElement?.setAttribute('aria-expanded', 'true');
148
+ this.buttonElement?.setAttribute('aria-controls', popupId);
149
149
  }
150
150
  initPopupProperties() {
151
151
  this.popupRef.content.instance.columnInfoService = this.columnInfoService;
@@ -157,8 +157,8 @@ export class FilterCommandToolbarDirective {
157
157
  }));
158
158
  }
159
159
  closePopup() {
160
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
161
- this.host.toolbarButtonElement.nativeElement.removeAttribute('aria-controls');
160
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
161
+ this.buttonElement?.removeAttribute('aria-controls');
162
162
  if (this.popupRef) {
163
163
  this.popupRef.close();
164
164
  this.popupRef = null;
@@ -172,6 +172,9 @@ export class FilterCommandToolbarDirective {
172
172
  this.removeClickListener = null;
173
173
  }
174
174
  }
175
+ get buttonElement() {
176
+ return this.host.getButton();
177
+ }
175
178
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCommandToolbarDirective, deps: [{ token: i1.ToolBarButtonComponent }, { token: i2.PopupService }, { token: i3.ContextService }, { token: i4.FilterService }, { token: i5.ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
176
179
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FilterCommandToolbarDirective, isStandalone: true, selector: "[kendoGridFilterTool]", ngImport: i0 });
177
180
  }
@@ -26,6 +26,11 @@ export class FilterToolWrapperComponent {
26
26
  this.close.emit();
27
27
  this.hostButton?.focus(event);
28
28
  }
29
+ onClick(event) {
30
+ if (this.hostButton.location !== 'toolbar') {
31
+ event.stopImmediatePropagation();
32
+ }
33
+ }
29
34
  close = new EventEmitter();
30
35
  hostButton;
31
36
  clearIcon = filterClearIcon;
@@ -93,7 +98,7 @@ export class FilterToolWrapperComponent {
93
98
  }
94
99
  }
95
100
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolWrapperComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
96
- 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: `
101
+ 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)", "click": "onClick($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: `
97
102
  <ng-container #container></ng-container>
98
103
  <div class="k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer">
99
104
  <button kendoButton [svgIcon]="clearIcon" (click)="clear()">Clear all filters</button>
@@ -125,6 +130,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
125
130
  }], onEscKeyDown: [{
126
131
  type: HostListener,
127
132
  args: ['keydown.escape', ['$event']]
133
+ }], onClick: [{
134
+ type: HostListener,
135
+ args: ['click', ['$event']]
128
136
  }], close: [{
129
137
  type: Output
130
138
  }] } });
@@ -82,9 +82,9 @@ export class SortCommandToolbarDirective {
82
82
  this.host.text = this.ctx.localization.get(`sortToolbarToolText`);
83
83
  });
84
84
  }
85
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-haspopup', 'dialog');
86
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
87
- this.host.toolbarButtonElement.nativeElement.setAttribute('title', this.ctx.localization.get('sortable'));
85
+ this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
86
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
87
+ this.buttonElement?.setAttribute('title', this.ctx.localization.get('sortable'));
88
88
  }
89
89
  ngOnDestroy() {
90
90
  if (this.toolSubs) {
@@ -113,7 +113,7 @@ export class SortCommandToolbarDirective {
113
113
  openPopup() {
114
114
  const direction = this.ctx.localization.rtl ? 'right' : 'left';
115
115
  this.popupRef = this.popupService.open({
116
- anchor: this.host.toolbarButtonElement.nativeElement,
116
+ anchor: this.buttonElement,
117
117
  content: SortToolbarToolComponent,
118
118
  popupClass: 'k-grid-columnmenu-popup',
119
119
  positionMode: 'absolute',
@@ -126,7 +126,7 @@ export class SortCommandToolbarDirective {
126
126
  return;
127
127
  }
128
128
  this.removeClickListener = this.renderer.listen('document', 'click', (e) => {
129
- if (this.popupRef && !closest(e.target, node => node === this.popupRef.popupElement || node === this.host.toolbarButtonElement.nativeElement)) {
129
+ if (this.popupRef && !closest(e.target, node => node === this.popupRef.popupElement || node === this.buttonElement)) {
130
130
  this.closePopup();
131
131
  }
132
132
  });
@@ -145,8 +145,8 @@ export class SortCommandToolbarDirective {
145
145
  this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
146
146
  this.renderer.setAttribute(popupAriaElement, 'id', popupId);
147
147
  this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
148
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'true');
149
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-controls', popupId);
148
+ this.buttonElement?.setAttribute('aria-expanded', 'true');
149
+ this.buttonElement?.setAttribute('aria-controls', popupId);
150
150
  }
151
151
  initPopupProperties() {
152
152
  this.popupRef.content.instance.columnInfoService = this.columnInfoService;
@@ -161,8 +161,8 @@ export class SortCommandToolbarDirective {
161
161
  }));
162
162
  }
163
163
  closePopup() {
164
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
165
- this.host.toolbarButtonElement.nativeElement.removeAttribute('aria-controls');
164
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
165
+ this.buttonElement?.removeAttribute('aria-controls');
166
166
  if (this.popupRef) {
167
167
  this.popupRef.close();
168
168
  this.popupRef = null;
@@ -176,6 +176,9 @@ export class SortCommandToolbarDirective {
176
176
  this.removeClickListener = null;
177
177
  }
178
178
  }
179
+ get buttonElement() {
180
+ return this.host.getButton();
181
+ }
179
182
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortCommandToolbarDirective, deps: [{ token: i1.ToolBarButtonComponent }, { token: i2.PopupService }, { token: i3.ContextService }, { token: i4.SortService }, { token: i5.ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
180
183
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SortCommandToolbarDirective, isStandalone: true, selector: "[kendoGridSortTool]", ngImport: i0 });
181
184
  }
@@ -75,7 +75,10 @@ export class SortToolbarToolComponent {
75
75
  this.subscription.unsubscribe();
76
76
  }
77
77
  }
78
- toggleSort(column) {
78
+ toggleSort(column, ev) {
79
+ if (this.hostButton.location !== 'toolbar') {
80
+ ev.stopImmediatePropagation();
81
+ }
79
82
  const field = column?.field;
80
83
  if (!field) {
81
84
  return;
@@ -142,8 +145,8 @@ export class SortToolbarToolComponent {
142
145
  #sortItem
143
146
  role="button"
144
147
  class="k-columnmenu-item"
145
- (click)="toggleSort(column)"
146
- (keydown.enter)="toggleSort(column)"
148
+ (click)="toggleSort(column, $event)"
149
+ (keydown.enter)="toggleSort(column, $event)"
147
150
  [tabindex]="'0'"
148
151
  >
149
152
  {{column.title || getColumnComponent(column).field}}
@@ -179,8 +182,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
179
182
  #sortItem
180
183
  role="button"
181
184
  class="k-columnmenu-item"
182
- (click)="toggleSort(column)"
183
- (keydown.enter)="toggleSort(column)"
185
+ (click)="toggleSort(column, $event)"
186
+ (keydown.enter)="toggleSort(column, $event)"
184
187
  [tabindex]="'0'"
185
188
  >
186
189
  {{column.title || getColumnComponent(column).field}}
@@ -11119,6 +11119,7 @@ class ColumnListComponent {
11119
11119
  }
11120
11120
  this.ngZone.runOutsideAngular(() => {
11121
11121
  this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'click', (e) => {
11122
+ e.stopImmediatePropagation();
11122
11123
  this.ngZone.onStable.pipe(take(1)).subscribe(() => {
11123
11124
  this.handleCheckBoxClick(e);
11124
11125
  });
@@ -11770,9 +11771,9 @@ class ColumnChooserToolbarDirective extends ToolbarToolBase {
11770
11771
  ngAfterViewInit() {
11771
11772
  super.ngAfterViewInit();
11772
11773
  this.zone.onStable.pipe(take(1)).subscribe(() => {
11773
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-haspopup', 'dialog');
11774
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
11775
- this.host.toolbarButtonElement.nativeElement.setAttribute('title', this.ctx.localization.get('columns'));
11774
+ this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
11775
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
11776
+ this.buttonElement?.setAttribute('title', this.ctx.localization.get('columns'));
11776
11777
  });
11777
11778
  this.subs.add(this.refresh.onRefresh.pipe(filter((tool) => tool === this.host)).subscribe((tool) => {
11778
11779
  if (tool.overflows && this.popupRef) {
@@ -11790,52 +11791,50 @@ class ColumnChooserToolbarDirective extends ToolbarToolBase {
11790
11791
  onClick(e) {
11791
11792
  e.preventDefault();
11792
11793
  if (!this.popupRef) {
11793
- if (!this.host.overflows) {
11794
- const direction = this.ctx.localization.rtl ? 'right' : 'left';
11795
- this.popupRef = this.popupSerivce.open({
11796
- anchor: this.host.toolbarButtonElement,
11797
- content: ColumnListComponent,
11798
- positionMode: 'absolute',
11799
- anchorAlign: { vertical: 'bottom', horizontal: direction },
11800
- popupAlign: { vertical: 'top', horizontal: direction }
11794
+ const direction = this.ctx.localization.rtl ? 'right' : 'left';
11795
+ this.popupRef = this.popupSerivce.open({
11796
+ anchor: this.buttonElement,
11797
+ content: ColumnListComponent,
11798
+ positionMode: 'absolute',
11799
+ anchorAlign: { vertical: 'bottom', horizontal: direction },
11800
+ popupAlign: { vertical: 'top', horizontal: direction }
11801
+ });
11802
+ const popupElement = this.popupRef.popupElement;
11803
+ const popupId = `k-column-chooser-tool-${this.nextId}-popup`;
11804
+ const popupAriaElement = popupElement.querySelector('.k-popup');
11805
+ this.zone.runOutsideAngular(() => {
11806
+ this.renderer.listen(popupAriaElement, 'keydown', (e) => {
11807
+ if (e.key === 'Escape') {
11808
+ this.closePopup(true);
11809
+ }
11801
11810
  });
11802
- const popupElement = this.popupRef.popupElement;
11803
- const popupId = `k-column-chooser-tool-${this.nextId}-popup`;
11804
- const popupAriaElement = popupElement.querySelector('.k-popup');
11805
- this.zone.runOutsideAngular(() => {
11806
- this.renderer.listen(popupAriaElement, 'keydown', (e) => {
11807
- if (e.key === 'Escape') {
11808
- this.closePopup(true);
11809
- }
11811
+ });
11812
+ this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
11813
+ this.renderer.setAttribute(popupAriaElement, 'id', popupId);
11814
+ this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
11815
+ this.buttonElement?.setAttribute('aria-expanded', 'true');
11816
+ this.buttonElement?.setAttribute('aria-controls', popupId);
11817
+ const columnList = this.popupRef.content.instance;
11818
+ columnList.isLast = true;
11819
+ columnList.autoSync = this.autoSync;
11820
+ columnList.allowHideAll = this.allowHideAll;
11821
+ columnList.applyText = this.ctx.localization.get('columnsApply');
11822
+ columnList.resetText = this.ctx.localization.get('columnsReset');
11823
+ columnList.columns = this.ctx.grid.columns;
11824
+ columnList.ariaLabel = this.ctx.localization.get('columns');
11825
+ this.subs.add(this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
11826
+ this.closePopup(true);
11827
+ }));
11828
+ this.subs.add(columnList.apply.subscribe(() => {
11829
+ this.closePopup();
11830
+ }));
11831
+ this.zone.runOutsideAngular(() => this.renderer.listen('document', 'click', ({ target }) => {
11832
+ if (this.popupRef && !closest$1(target, node => node === this.popupRef.popupElement || node === this.buttonElement)) {
11833
+ this.zone.run(() => {
11834
+ this.closePopup();
11810
11835
  });
11811
- });
11812
- this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
11813
- this.renderer.setAttribute(popupAriaElement, 'id', popupId);
11814
- this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
11815
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'true');
11816
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-controls', popupId);
11817
- const columnList = this.popupRef.content.instance;
11818
- columnList.isLast = true;
11819
- columnList.autoSync = this.autoSync;
11820
- columnList.allowHideAll = this.allowHideAll;
11821
- columnList.applyText = this.ctx.localization.get('columnsApply');
11822
- columnList.resetText = this.ctx.localization.get('columnsReset');
11823
- columnList.columns = this.ctx.grid.columns;
11824
- columnList.ariaLabel = this.ctx.localization.get('columns');
11825
- this.subs.add(this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
11826
- this.closePopup(true);
11827
- }));
11828
- this.subs.add(columnList.apply.subscribe(() => {
11829
- this.closePopup();
11830
- }));
11831
- this.zone.runOutsideAngular(() => this.renderer.listen('document', 'click', ({ target }) => {
11832
- if (this.popupRef && !closest$1(target, node => node === this.popupRef.popupElement || node === this.host.toolbarButtonElement.nativeElement)) {
11833
- this.zone.run(() => {
11834
- this.closePopup();
11835
- });
11836
- }
11837
- }));
11838
- }
11836
+ }
11837
+ }));
11839
11838
  }
11840
11839
  else {
11841
11840
  this.closePopup();
@@ -11844,9 +11843,12 @@ class ColumnChooserToolbarDirective extends ToolbarToolBase {
11844
11843
  closePopup(focusAnchor = false) {
11845
11844
  this.popupRef.close();
11846
11845
  this.popupRef = null;
11847
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
11848
- this.host.toolbarButtonElement.nativeElement.removeAttribute('aria-controls');
11849
- focusAnchor && this.host.toolbarButtonElement.nativeElement.focus();
11846
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
11847
+ this.buttonElement?.removeAttribute('aria-controls');
11848
+ focusAnchor && this.buttonElement?.focus();
11849
+ }
11850
+ get buttonElement() {
11851
+ return this.host.getButton();
11850
11852
  }
11851
11853
  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: i51.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i51.RefreshService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
11852
11854
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ColumnChooserToolbarDirective, isStandalone: true, selector: "[kendoGridColumnChooserTool]", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll" }, usesInheritance: true, ngImport: i0 });
@@ -20126,8 +20128,8 @@ const packageMetadata = {
20126
20128
  productName: 'Kendo UI for Angular',
20127
20129
  productCode: 'KENDOUIANGULAR',
20128
20130
  productCodes: ['KENDOUIANGULAR'],
20129
- publishDate: 1747069795,
20130
- version: '19.0.0-develop.12',
20131
+ publishDate: 1747136992,
20132
+ version: '19.0.0-develop.14',
20131
20133
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
20132
20134
  };
20133
20135
 
@@ -26871,7 +26873,7 @@ class GridComponent {
26871
26873
  <div #dialogContainer></div>
26872
26874
 
26873
26875
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
26874
- `, 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: i50.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i50.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i50.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: i50.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i50.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i50.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: i50.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i50.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i50.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 });
26876
+ `, 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: i50.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i50.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i50.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["showPageText", "size"] }, { kind: "component", type: i50.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i50.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i50.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i50.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i50.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i50.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
26875
26877
  }
26876
26878
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
26877
26879
  type: Component,
@@ -30039,15 +30041,13 @@ class ToolbarEditingToolBase extends ToolbarToolBase {
30039
30041
  if (this.ctx.grid.showInactiveTools) {
30040
30042
  this.host.disabled = isToolInactive;
30041
30043
  }
30042
- else {
30044
+ else if (this.host.isHidden !== isToolInactive) {
30043
30045
  this.host.isHidden = isToolInactive;
30044
30046
  const toolbar = this.host.host;
30045
30047
  toolbar.refreshService.refresh(this.host);
30046
- if (toolbar.resizable) {
30047
- this.zone.onStable.pipe(take(1)).subscribe(() => {
30048
- toolbar.onResize();
30049
- });
30050
- }
30048
+ this.zone.onStable.pipe(take(1)).subscribe(() => {
30049
+ toolbar.onResize();
30050
+ });
30051
30051
  }
30052
30052
  }
30053
30053
  }
@@ -30715,7 +30715,10 @@ class SortToolbarToolComponent {
30715
30715
  this.subscription.unsubscribe();
30716
30716
  }
30717
30717
  }
30718
- toggleSort(column) {
30718
+ toggleSort(column, ev) {
30719
+ if (this.hostButton.location !== 'toolbar') {
30720
+ ev.stopImmediatePropagation();
30721
+ }
30719
30722
  const field = column?.field;
30720
30723
  if (!field) {
30721
30724
  return;
@@ -30782,8 +30785,8 @@ class SortToolbarToolComponent {
30782
30785
  #sortItem
30783
30786
  role="button"
30784
30787
  class="k-columnmenu-item"
30785
- (click)="toggleSort(column)"
30786
- (keydown.enter)="toggleSort(column)"
30788
+ (click)="toggleSort(column, $event)"
30789
+ (keydown.enter)="toggleSort(column, $event)"
30787
30790
  [tabindex]="'0'"
30788
30791
  >
30789
30792
  {{column.title || getColumnComponent(column).field}}
@@ -30819,8 +30822,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
30819
30822
  #sortItem
30820
30823
  role="button"
30821
30824
  class="k-columnmenu-item"
30822
- (click)="toggleSort(column)"
30823
- (keydown.enter)="toggleSort(column)"
30825
+ (click)="toggleSort(column, $event)"
30826
+ (keydown.enter)="toggleSort(column, $event)"
30824
30827
  [tabindex]="'0'"
30825
30828
  >
30826
30829
  {{column.title || getColumnComponent(column).field}}
@@ -30924,9 +30927,9 @@ class SortCommandToolbarDirective {
30924
30927
  this.host.text = this.ctx.localization.get(`sortToolbarToolText`);
30925
30928
  });
30926
30929
  }
30927
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-haspopup', 'dialog');
30928
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
30929
- this.host.toolbarButtonElement.nativeElement.setAttribute('title', this.ctx.localization.get('sortable'));
30930
+ this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
30931
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
30932
+ this.buttonElement?.setAttribute('title', this.ctx.localization.get('sortable'));
30930
30933
  }
30931
30934
  ngOnDestroy() {
30932
30935
  if (this.toolSubs) {
@@ -30955,7 +30958,7 @@ class SortCommandToolbarDirective {
30955
30958
  openPopup() {
30956
30959
  const direction = this.ctx.localization.rtl ? 'right' : 'left';
30957
30960
  this.popupRef = this.popupService.open({
30958
- anchor: this.host.toolbarButtonElement.nativeElement,
30961
+ anchor: this.buttonElement,
30959
30962
  content: SortToolbarToolComponent,
30960
30963
  popupClass: 'k-grid-columnmenu-popup',
30961
30964
  positionMode: 'absolute',
@@ -30968,7 +30971,7 @@ class SortCommandToolbarDirective {
30968
30971
  return;
30969
30972
  }
30970
30973
  this.removeClickListener = this.renderer.listen('document', 'click', (e) => {
30971
- if (this.popupRef && !closest$1(e.target, node => node === this.popupRef.popupElement || node === this.host.toolbarButtonElement.nativeElement)) {
30974
+ if (this.popupRef && !closest$1(e.target, node => node === this.popupRef.popupElement || node === this.buttonElement)) {
30972
30975
  this.closePopup();
30973
30976
  }
30974
30977
  });
@@ -30987,8 +30990,8 @@ class SortCommandToolbarDirective {
30987
30990
  this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
30988
30991
  this.renderer.setAttribute(popupAriaElement, 'id', popupId);
30989
30992
  this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
30990
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'true');
30991
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-controls', popupId);
30993
+ this.buttonElement?.setAttribute('aria-expanded', 'true');
30994
+ this.buttonElement?.setAttribute('aria-controls', popupId);
30992
30995
  }
30993
30996
  initPopupProperties() {
30994
30997
  this.popupRef.content.instance.columnInfoService = this.columnInfoService;
@@ -31003,8 +31006,8 @@ class SortCommandToolbarDirective {
31003
31006
  }));
31004
31007
  }
31005
31008
  closePopup() {
31006
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
31007
- this.host.toolbarButtonElement.nativeElement.removeAttribute('aria-controls');
31009
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
31010
+ this.buttonElement?.removeAttribute('aria-controls');
31008
31011
  if (this.popupRef) {
31009
31012
  this.popupRef.close();
31010
31013
  this.popupRef = null;
@@ -31018,6 +31021,9 @@ class SortCommandToolbarDirective {
31018
31021
  this.removeClickListener = null;
31019
31022
  }
31020
31023
  }
31024
+ get buttonElement() {
31025
+ return this.host.getButton();
31026
+ }
31021
31027
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortCommandToolbarDirective, deps: [{ token: i51.ToolBarButtonComponent }, { token: i1$5.PopupService }, { token: ContextService }, { token: SortService }, { token: ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
31022
31028
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SortCommandToolbarDirective, isStandalone: true, selector: "[kendoGridSortTool]", ngImport: i0 });
31023
31029
  }
@@ -31174,6 +31180,11 @@ class FilterToolWrapperComponent {
31174
31180
  this.close.emit();
31175
31181
  this.hostButton?.focus(event);
31176
31182
  }
31183
+ onClick(event) {
31184
+ if (this.hostButton.location !== 'toolbar') {
31185
+ event.stopImmediatePropagation();
31186
+ }
31187
+ }
31177
31188
  close = new EventEmitter();
31178
31189
  hostButton;
31179
31190
  clearIcon = filterClearIcon;
@@ -31241,7 +31252,7 @@ class FilterToolWrapperComponent {
31241
31252
  }
31242
31253
  }
31243
31254
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolWrapperComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
31244
- 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: `
31255
+ 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)", "click": "onClick($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: `
31245
31256
  <ng-container #container></ng-container>
31246
31257
  <div class="k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer">
31247
31258
  <button kendoButton [svgIcon]="clearIcon" (click)="clear()">Clear all filters</button>
@@ -31273,6 +31284,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
31273
31284
  }], onEscKeyDown: [{
31274
31285
  type: HostListener,
31275
31286
  args: ['keydown.escape', ['$event']]
31287
+ }], onClick: [{
31288
+ type: HostListener,
31289
+ args: ['click', ['$event']]
31276
31290
  }], close: [{
31277
31291
  type: Output
31278
31292
  }] } });
@@ -31339,9 +31353,9 @@ class FilterCommandToolbarDirective {
31339
31353
  this.host.text = this.ctx.localization.get(`filterToolbarToolText`);
31340
31354
  });
31341
31355
  }
31342
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-haspopup', 'dialog');
31343
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
31344
- this.host.toolbarButtonElement.nativeElement.setAttribute('title', this.ctx.localization.get('filter'));
31356
+ this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
31357
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
31358
+ this.buttonElement?.setAttribute('title', this.ctx.localization.get('filter'));
31345
31359
  }
31346
31360
  ngOnDestroy() {
31347
31361
  if (this.toolSubs) {
@@ -31370,7 +31384,7 @@ class FilterCommandToolbarDirective {
31370
31384
  openPopup() {
31371
31385
  const direction = this.ctx.localization.rtl ? 'right' : 'left';
31372
31386
  this.popupRef = this.popupService.open({
31373
- anchor: this.host.toolbarButtonElement.nativeElement,
31387
+ anchor: this.buttonElement,
31374
31388
  content: FilterToolWrapperComponent,
31375
31389
  popupClass: 'k-grid-columnmenu-popup',
31376
31390
  positionMode: 'absolute',
@@ -31383,7 +31397,7 @@ class FilterCommandToolbarDirective {
31383
31397
  return;
31384
31398
  }
31385
31399
  this.removeClickListener = this.renderer.listen('document', 'click', (e) => {
31386
- if (this.popupRef && !closest$1(e.target, node => node === this.popupRef.popupElement || node === this.host.toolbarButtonElement.nativeElement)) {
31400
+ if (this.popupRef && !closest$1(e.target, node => node === this.popupRef.popupElement || node === this.buttonElement)) {
31387
31401
  this.closePopup();
31388
31402
  }
31389
31403
  });
@@ -31402,8 +31416,8 @@ class FilterCommandToolbarDirective {
31402
31416
  this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
31403
31417
  this.renderer.setAttribute(popupAriaElement, 'id', popupId);
31404
31418
  this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
31405
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'true');
31406
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-controls', popupId);
31419
+ this.buttonElement?.setAttribute('aria-expanded', 'true');
31420
+ this.buttonElement?.setAttribute('aria-controls', popupId);
31407
31421
  }
31408
31422
  initPopupProperties() {
31409
31423
  this.popupRef.content.instance.columnInfoService = this.columnInfoService;
@@ -31415,8 +31429,8 @@ class FilterCommandToolbarDirective {
31415
31429
  }));
31416
31430
  }
31417
31431
  closePopup() {
31418
- this.host.toolbarButtonElement.nativeElement.setAttribute('aria-expanded', 'false');
31419
- this.host.toolbarButtonElement.nativeElement.removeAttribute('aria-controls');
31432
+ this.buttonElement?.setAttribute('aria-expanded', 'false');
31433
+ this.buttonElement?.removeAttribute('aria-controls');
31420
31434
  if (this.popupRef) {
31421
31435
  this.popupRef.close();
31422
31436
  this.popupRef = null;
@@ -31430,6 +31444,9 @@ class FilterCommandToolbarDirective {
31430
31444
  this.removeClickListener = null;
31431
31445
  }
31432
31446
  }
31447
+ get buttonElement() {
31448
+ return this.host.getButton();
31449
+ }
31433
31450
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCommandToolbarDirective, deps: [{ token: i51.ToolBarButtonComponent }, { token: i1$5.PopupService }, { token: ContextService }, { token: FilterService }, { token: ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
31434
31451
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FilterCommandToolbarDirective, isStandalone: true, selector: "[kendoGridFilterTool]", ngImport: i0 });
31435
31452
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-grid",
3
- "version": "19.0.0-develop.12",
3
+ "version": "19.0.0-develop.14",
4
4
  "description": "Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -26,7 +26,7 @@
26
26
  "package": {
27
27
  "productName": "Kendo UI for Angular",
28
28
  "productCode": "KENDOUIANGULAR",
29
- "publishDate": 1747069795,
29
+ "publishDate": 1747136992,
30
30
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
31
31
  }
32
32
  },
@@ -39,28 +39,28 @@
39
39
  "@progress/kendo-data-query": "^1.0.0",
40
40
  "@progress/kendo-drawing": "^1.21.0",
41
41
  "@progress/kendo-licensing": "^1.5.0",
42
- "@progress/kendo-angular-buttons": "19.0.0-develop.12",
43
- "@progress/kendo-angular-common": "19.0.0-develop.12",
44
- "@progress/kendo-angular-dateinputs": "19.0.0-develop.12",
45
- "@progress/kendo-angular-layout": "19.0.0-develop.12",
46
- "@progress/kendo-angular-dropdowns": "19.0.0-develop.12",
47
- "@progress/kendo-angular-excel-export": "19.0.0-develop.12",
48
- "@progress/kendo-angular-icons": "19.0.0-develop.12",
49
- "@progress/kendo-angular-inputs": "19.0.0-develop.12",
50
- "@progress/kendo-angular-indicators": "19.0.0-develop.12",
51
- "@progress/kendo-angular-intl": "19.0.0-develop.12",
52
- "@progress/kendo-angular-l10n": "19.0.0-develop.12",
53
- "@progress/kendo-angular-label": "19.0.0-develop.12",
54
- "@progress/kendo-angular-pager": "19.0.0-develop.12",
55
- "@progress/kendo-angular-pdf-export": "19.0.0-develop.12",
56
- "@progress/kendo-angular-popup": "19.0.0-develop.12",
57
- "@progress/kendo-angular-toolbar": "19.0.0-develop.12",
58
- "@progress/kendo-angular-utils": "19.0.0-develop.12",
42
+ "@progress/kendo-angular-buttons": "19.0.0-develop.14",
43
+ "@progress/kendo-angular-common": "19.0.0-develop.14",
44
+ "@progress/kendo-angular-dateinputs": "19.0.0-develop.14",
45
+ "@progress/kendo-angular-layout": "19.0.0-develop.14",
46
+ "@progress/kendo-angular-dropdowns": "19.0.0-develop.14",
47
+ "@progress/kendo-angular-excel-export": "19.0.0-develop.14",
48
+ "@progress/kendo-angular-icons": "19.0.0-develop.14",
49
+ "@progress/kendo-angular-inputs": "19.0.0-develop.14",
50
+ "@progress/kendo-angular-indicators": "19.0.0-develop.14",
51
+ "@progress/kendo-angular-intl": "19.0.0-develop.14",
52
+ "@progress/kendo-angular-l10n": "19.0.0-develop.14",
53
+ "@progress/kendo-angular-label": "19.0.0-develop.14",
54
+ "@progress/kendo-angular-pager": "19.0.0-develop.14",
55
+ "@progress/kendo-angular-pdf-export": "19.0.0-develop.14",
56
+ "@progress/kendo-angular-popup": "19.0.0-develop.14",
57
+ "@progress/kendo-angular-toolbar": "19.0.0-develop.14",
58
+ "@progress/kendo-angular-utils": "19.0.0-develop.14",
59
59
  "rxjs": "^6.5.3 || ^7.0.0"
60
60
  },
61
61
  "dependencies": {
62
62
  "tslib": "^2.3.1",
63
- "@progress/kendo-angular-schematics": "19.0.0-develop.12",
63
+ "@progress/kendo-angular-schematics": "19.0.0-develop.14",
64
64
  "@progress/kendo-common": "^1.0.1",
65
65
  "@progress/kendo-file-saver": "^1.0.0"
66
66
  },
@@ -48,6 +48,7 @@ export declare class FilterCommandToolbarDirective implements AfterViewInit, OnD
48
48
  private setPopupAttributes;
49
49
  private initPopupProperties;
50
50
  private closePopup;
51
+ private get buttonElement();
51
52
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterCommandToolbarDirective, never>;
52
53
  static ɵdir: i0.ɵɵDirectiveDeclaration<FilterCommandToolbarDirective, "[kendoGridFilterTool]", never, {}, {}, never, never, true, never>;
53
54
  }
@@ -18,6 +18,7 @@ export declare class FilterToolWrapperComponent {
18
18
  container: ViewContainerRef;
19
19
  wrapperClasses: boolean;
20
20
  onEscKeyDown(event: KeyboardEvent): void;
21
+ onClick(event: any): void;
21
22
  close: EventEmitter<any>;
22
23
  hostButton: ToolBarButtonComponent;
23
24
  clearIcon: SVGIcon;
@@ -48,6 +48,7 @@ export declare class SortCommandToolbarDirective implements AfterViewInit, OnDes
48
48
  private setPopupAttributes;
49
49
  private initPopupProperties;
50
50
  private closePopup;
51
+ private get buttonElement();
51
52
  static ɵfac: i0.ɵɵFactoryDeclaration<SortCommandToolbarDirective, never>;
52
53
  static ɵdir: i0.ɵɵDirectiveDeclaration<SortCommandToolbarDirective, "[kendoGridSortTool]", never, {}, {}, never, never, true, never>;
53
54
  }
@@ -41,7 +41,7 @@ export declare class SortToolbarToolComponent implements AfterViewInit, OnDestro
41
41
  constructor(element: ElementRef, ngZone: NgZone);
42
42
  ngAfterViewInit(): void;
43
43
  ngOnDestroy(): void;
44
- toggleSort(column: ColumnBase): void;
44
+ toggleSort(column: ColumnBase, ev: any): void;
45
45
  getColumnComponent(column: ColumnBase): ColumnComponent;
46
46
  sortDescriptor(field: string): SortDescriptor;
47
47
  getDescriptor(column: ColumnBase): SortDescriptor[];
@@ -4,14 +4,14 @@ const schematics_1 = require("@angular-devkit/schematics");
4
4
  function default_1(options) {
5
5
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'GridModule', package: 'grid', peerDependencies: {
6
6
  // peer deps of the dropdowns
7
- '@progress/kendo-angular-treeview': '19.0.0-develop.12',
8
- '@progress/kendo-angular-navigation': '19.0.0-develop.12',
7
+ '@progress/kendo-angular-treeview': '19.0.0-develop.14',
8
+ '@progress/kendo-angular-navigation': '19.0.0-develop.14',
9
9
  // peer dependency of kendo-angular-inputs
10
- '@progress/kendo-angular-dialog': '19.0.0-develop.12',
10
+ '@progress/kendo-angular-dialog': '19.0.0-develop.14',
11
11
  // peer dependency of kendo-angular-icons
12
12
  '@progress/kendo-svg-icons': '^4.0.0',
13
13
  // peer dependency of kendo-angular-layout
14
- '@progress/kendo-angular-progressbar': '19.0.0-develop.12'
14
+ '@progress/kendo-angular-progressbar': '19.0.0-develop.14'
15
15
  } });
16
16
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
17
17
  }