@progress/kendo-angular-grid 21.1.1-develop.2 → 21.2.0-develop.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/codemods/utils.js +805 -394
  2. package/codemods/v20/grid-kendogridgroupbinding.js +8 -11
  3. package/esm2022/adaptiveness/adaptive-renderer.component.mjs +850 -756
  4. package/esm2022/aggregates/status-bar.component.mjs +13 -11
  5. package/esm2022/column-menu/column-chooser-content.component.mjs +133 -123
  6. package/esm2022/column-menu/column-list.component.mjs +64 -61
  7. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +12 -11
  8. package/esm2022/column-menu/column-menu-autosize.component.mjs +12 -11
  9. package/esm2022/column-menu/column-menu-item.component.mjs +221 -85
  10. package/esm2022/column-menu/column-menu-position.component.mjs +46 -43
  11. package/esm2022/column-menu/column-menu.component.mjs +401 -315
  12. package/esm2022/databinding.directive.mjs +1 -0
  13. package/esm2022/editing/add-command.directive.mjs +27 -17
  14. package/esm2022/editing/cancel-command.directive.mjs +27 -17
  15. package/esm2022/editing/edit-command.directive.mjs +27 -17
  16. package/esm2022/editing/form/form-formfield.component.mjs +97 -70
  17. package/esm2022/editing/form/form.component.mjs +77 -61
  18. package/esm2022/editing/remove-command.directive.mjs +27 -17
  19. package/esm2022/editing/save-command.directive.mjs +27 -17
  20. package/esm2022/excel/excel-command.directive.mjs +27 -17
  21. package/esm2022/filtering/cell/filter-cell-operators.component.mjs +20 -17
  22. package/esm2022/filtering/cell/filter-cell.component.mjs +35 -33
  23. package/esm2022/filtering/filter-row.component.mjs +37 -29
  24. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +34 -31
  25. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +8 -7
  26. package/esm2022/filtering/menu/date-filter-menu.component.mjs +52 -49
  27. package/esm2022/filtering/menu/filter-menu-container.component.mjs +115 -92
  28. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +50 -47
  29. package/esm2022/filtering/menu/string-filter-menu.component.mjs +36 -33
  30. package/esm2022/filtering/multicheckbox-filter.component.mjs +54 -43
  31. package/esm2022/grid.component.mjs +1579 -1483
  32. package/esm2022/grouping/group-header.component.mjs +113 -89
  33. package/esm2022/grouping/group-panel.component.mjs +84 -77
  34. package/esm2022/index.mjs +1 -0
  35. package/esm2022/navigation/navigation.service.mjs +4 -4
  36. package/esm2022/package-metadata.mjs +2 -2
  37. package/esm2022/pdf/pdf-command.directive.mjs +27 -17
  38. package/esm2022/rendering/cell.component.mjs +411 -365
  39. package/esm2022/rendering/common/col-group.component.mjs +25 -15
  40. package/esm2022/rendering/common/loading.component.mjs +23 -19
  41. package/esm2022/rendering/details/detail-template.directive.mjs +6 -4
  42. package/esm2022/rendering/footer/footer.component.mjs +128 -112
  43. package/esm2022/rendering/header/header.component.mjs +414 -353
  44. package/esm2022/rendering/list.component.mjs +227 -204
  45. package/esm2022/rendering/table-body.component.mjs +553 -493
  46. package/esm2022/rendering/toolbar/toolbar.component.mjs +13 -11
  47. package/esm2022/rendering/toolbar/tools/ai-assistant/ai-assistant.component.mjs +86 -79
  48. package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +54 -51
  49. package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +141 -118
  50. package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +72 -65
  51. package/fesm2022/progress-kendo-angular-grid.mjs +6462 -5545
  52. package/filtering/menu/date-filter-menu-input.component.d.ts +1 -2
  53. package/filtering/menu/filter-menu-container.component.d.ts +2 -2
  54. package/index.d.ts +1 -0
  55. package/package.json +25 -26
  56. package/rendering/details/detail-template.directive.d.ts +6 -4
  57. package/schematics/ngAdd/index.js +7 -7
  58. package/codemods/template-transformer/index.js +0 -93
@@ -9,7 +9,6 @@ import { ContextService } from '../common/provider.service';
9
9
  import { ColumnMenuItemBase } from './column-menu-item-base';
10
10
  import { autoSizeColumn } from './utils';
11
11
  import { ColumnMenuItemComponent } from './column-menu-item.component';
12
- import { NgIf } from '@angular/common';
13
12
  import * as i0 from "@angular/core";
14
13
  import * as i1 from "../common/provider.service";
15
14
  /**
@@ -63,33 +62,35 @@ export class ColumnMenuAutoSizeColumnComponent extends ColumnMenuItemBase {
63
62
  autoSizeColumn(this.ctx.grid, this.service, this.column);
64
63
  }
65
64
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuAutoSizeColumnComponent, deps: [{ token: i1.ContextService }], target: i0.ɵɵFactoryTarget.Component });
66
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ColumnMenuAutoSizeColumnComponent, isStandalone: true, selector: "kendo-grid-columnmenu-autosize-column", inputs: { column: "column" }, usesInheritance: true, ngImport: i0, template: `
67
- <kendo-grid-columnmenu-item
68
- *ngIf="!this.ctx.grid.virtualColumns"
65
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ColumnMenuAutoSizeColumnComponent, isStandalone: true, selector: "kendo-grid-columnmenu-autosize-column", inputs: { column: "column" }, usesInheritance: true, ngImport: i0, template: `
66
+ @if (!this.ctx.grid.virtualColumns) {
67
+ <kendo-grid-columnmenu-item
69
68
  class="k-grid-columnmenu-autosize-column"
70
69
  [text]="ctx.localization.get('autosizeThisColumn')"
71
70
  icon="max-width"
72
71
  [svgIcon]="maxWidthIcon"
73
72
  (itemClick)="autoSizeColumn()"
74
- ></kendo-grid-columnmenu-item>
75
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
73
+ ></kendo-grid-columnmenu-item>
74
+ }
75
+ `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
76
76
  }
77
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuAutoSizeColumnComponent, decorators: [{
78
78
  type: Component,
79
79
  args: [{
80
80
  selector: 'kendo-grid-columnmenu-autosize-column',
81
81
  template: `
82
- <kendo-grid-columnmenu-item
83
- *ngIf="!this.ctx.grid.virtualColumns"
82
+ @if (!this.ctx.grid.virtualColumns) {
83
+ <kendo-grid-columnmenu-item
84
84
  class="k-grid-columnmenu-autosize-column"
85
85
  [text]="ctx.localization.get('autosizeThisColumn')"
86
86
  icon="max-width"
87
87
  [svgIcon]="maxWidthIcon"
88
88
  (itemClick)="autoSizeColumn()"
89
- ></kendo-grid-columnmenu-item>
90
- `,
89
+ ></kendo-grid-columnmenu-item>
90
+ }
91
+ `,
91
92
  standalone: true,
92
- imports: [NgIf, ColumnMenuItemComponent]
93
+ imports: [ColumnMenuItemComponent]
93
94
  }]
94
95
  }], ctorParameters: () => [{ type: i1.ContextService }], propDecorators: { column: [{
95
96
  type: Input
@@ -8,7 +8,7 @@ import { ColumnMenuItemContentTemplateDirective } from './column-menu-item-conte
8
8
  import { chevronDownIcon, chevronRightIcon, chevronUpIcon, filterIcon, sortAscSmallIcon, sortDescSmallIcon } from '@progress/kendo-svg-icons';
9
9
  import { guid } from '@progress/kendo-angular-common';
10
10
  import { ColumnMenuService } from './column-menu.service';
11
- import { NgIf, NgTemplateOutlet } from '@angular/common';
11
+ import { NgTemplateOutlet } from '@angular/common';
12
12
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
13
13
  import { take } from 'rxjs/operators';
14
14
  import { ContextService } from '../common/provider.service';
@@ -195,55 +195,123 @@ export class ColumnMenuItemComponent {
195
195
  this.contentState = this.expanded ? 'expanded' : 'collapsed';
196
196
  }
197
197
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuItemComponent, deps: [{ token: i0.NgZone }, { token: i1.ContextService }, { token: i2.AdaptiveGridService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
198
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", indicatorIcon: "indicatorIcon", text: "text", selected: "selected", disabled: "disabled", expanded: "expanded", focused: "focused", service: "service", column: "column" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ColumnMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
199
- <div *ngIf="contentTemplate; else content" class="k-expander">
198
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", indicatorIcon: "indicatorIcon", text: "text", selected: "selected", disabled: "disabled", expanded: "expanded", focused: "focused", service: "service", column: "column" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ColumnMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
199
+ @if (contentTemplate) {
200
+ <div class="k-expander">
200
201
  <ng-container [ngTemplateOutlet]="content"></ng-container>
201
- </div>
202
-
203
- <ng-template #content>
204
- <div
205
- class="k-columnmenu-item"
206
- (click)="onClick($event)"
207
- (keydown.enter)="onClick($event)"
208
- [class.k-selected]="selected"
209
- [class.k-disabled]="disabled"
210
- [class.k-focus]="focused"
211
- role="button"
212
- [attr.aria-expanded]="expanded"
213
- [attr.aria-controls]="expanded ? contentId : undefined">
202
+ </div>
203
+ } @else {
204
+ <div
205
+ class="k-columnmenu-item"
206
+ (click)="onClick($event)"
207
+ (keydown.enter)="onClick($event)"
208
+ [class.k-selected]="selected"
209
+ [class.k-disabled]="disabled"
210
+ [class.k-focus]="focused"
211
+ role="button"
212
+ [attr.aria-expanded]="expanded"
213
+ [attr.aria-controls]="expanded ? contentId : undefined">
214
+ @if (icon || svgIcon) {
215
+ <kendo-icon-wrapper
216
+ [name]="icon"
217
+ [svgIcon]="svgIcon"></kendo-icon-wrapper>
218
+ }
219
+ {{ text }}
220
+ @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)) {
221
+ <span
222
+ class="k-columnmenu-indicators">
214
223
  <kendo-icon-wrapper
215
- *ngIf="icon || svgIcon"
216
- [name]="icon"
217
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
218
- {{ text }}
219
- <span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)"
220
- class="k-columnmenu-indicators">
221
- <kendo-icon-wrapper
222
- [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
223
- [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
224
- </kendo-icon-wrapper>
225
- <span *ngIf="showSortNumbering(column)" class="k-sort-index">{{sortOrder(column.field)}}</span>
226
- </span>
224
+ [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
225
+ [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
226
+ </kendo-icon-wrapper>
227
+ @if (showSortNumbering(column)) {
228
+ <span class="k-sort-index">{{sortOrder(column.field)}}</span>
229
+ }
230
+ </span>
231
+ }
232
+ @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon) {
233
+ <kendo-icon-wrapper
234
+ class="k-columnmenu-indicators"
235
+ name="filter"
236
+ [svgIcon]="filterIcon">
237
+ </kendo-icon-wrapper>
238
+ }
239
+ @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
240
+ <span class="k-spacer"></span>
241
+ }
242
+ @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
243
+ <span class="k-expander-indicator">
227
244
  <kendo-icon-wrapper
228
- *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon"
229
- class="k-columnmenu-indicators"
230
- name="filter"
231
- [svgIcon]="filterIcon">
245
+ [name]="expandedIcon"
246
+ [svgIcon]="expandedSvgIcon">
232
247
  </kendo-icon-wrapper>
233
- <span *ngIf="contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-spacer"></span>
234
- <span *ngIf="contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-expander-indicator">
235
- <kendo-icon-wrapper
236
- [name]="expandedIcon"
237
- [svgIcon]="expandedSvgIcon">
238
- </kendo-icon-wrapper>
239
- </span>
248
+ </span>
249
+ }
250
+ </div>
251
+ @if (contentTemplate) {
252
+ <div [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
253
+ <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
254
+ </ng-container>
240
255
  </div>
241
- <div *ngIf="contentTemplate" [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
242
- <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
243
- </ng-container>
256
+ }
257
+ }
258
+
259
+ <ng-template #content>
260
+ <div
261
+ class="k-columnmenu-item"
262
+ (click)="onClick($event)"
263
+ (keydown.enter)="onClick($event)"
264
+ [class.k-selected]="selected"
265
+ [class.k-disabled]="disabled"
266
+ [class.k-focus]="focused"
267
+ role="button"
268
+ [attr.aria-expanded]="expanded"
269
+ [attr.aria-controls]="expanded ? contentId : undefined">
270
+ @if (icon || svgIcon) {
271
+ <kendo-icon-wrapper
272
+ [name]="icon"
273
+ [svgIcon]="svgIcon"></kendo-icon-wrapper>
274
+ }
275
+ {{ text }}
276
+ @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)) {
277
+ <span
278
+ class="k-columnmenu-indicators">
279
+ <kendo-icon-wrapper
280
+ [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
281
+ [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
282
+ </kendo-icon-wrapper>
283
+ @if (showSortNumbering(column)) {
284
+ <span class="k-sort-index">{{sortOrder(column.field)}}</span>
285
+ }
286
+ </span>
287
+ }
288
+ @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon) {
289
+ <kendo-icon-wrapper
290
+ class="k-columnmenu-indicators"
291
+ name="filter"
292
+ [svgIcon]="filterIcon">
293
+ </kendo-icon-wrapper>
294
+ }
295
+ @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
296
+ <span class="k-spacer"></span>
297
+ }
298
+ @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
299
+ <span class="k-expander-indicator">
300
+ <kendo-icon-wrapper
301
+ [name]="expandedIcon"
302
+ [svgIcon]="expandedSvgIcon">
303
+ </kendo-icon-wrapper>
304
+ </span>
305
+ }
306
+ </div>
307
+ @if (contentTemplate) {
308
+ <div [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
309
+ <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
310
+ </ng-container>
244
311
  </div>
312
+ }
245
313
  </ng-template>
246
- `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
314
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
247
315
  trigger('state', [
248
316
  state('collapsed', style({ display: 'none' })),
249
317
  state('expanded', style({ display: 'block' })),
@@ -295,56 +363,124 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
295
363
  ],
296
364
  selector: 'kendo-grid-columnmenu-item',
297
365
  template: `
298
- <div *ngIf="contentTemplate; else content" class="k-expander">
366
+ @if (contentTemplate) {
367
+ <div class="k-expander">
299
368
  <ng-container [ngTemplateOutlet]="content"></ng-container>
300
- </div>
301
-
302
- <ng-template #content>
303
- <div
304
- class="k-columnmenu-item"
305
- (click)="onClick($event)"
306
- (keydown.enter)="onClick($event)"
307
- [class.k-selected]="selected"
308
- [class.k-disabled]="disabled"
309
- [class.k-focus]="focused"
310
- role="button"
311
- [attr.aria-expanded]="expanded"
312
- [attr.aria-controls]="expanded ? contentId : undefined">
369
+ </div>
370
+ } @else {
371
+ <div
372
+ class="k-columnmenu-item"
373
+ (click)="onClick($event)"
374
+ (keydown.enter)="onClick($event)"
375
+ [class.k-selected]="selected"
376
+ [class.k-disabled]="disabled"
377
+ [class.k-focus]="focused"
378
+ role="button"
379
+ [attr.aria-expanded]="expanded"
380
+ [attr.aria-controls]="expanded ? contentId : undefined">
381
+ @if (icon || svgIcon) {
382
+ <kendo-icon-wrapper
383
+ [name]="icon"
384
+ [svgIcon]="svgIcon"></kendo-icon-wrapper>
385
+ }
386
+ {{ text }}
387
+ @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)) {
388
+ <span
389
+ class="k-columnmenu-indicators">
313
390
  <kendo-icon-wrapper
314
- *ngIf="icon || svgIcon"
315
- [name]="icon"
316
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
317
- {{ text }}
318
- <span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)"
319
- class="k-columnmenu-indicators">
320
- <kendo-icon-wrapper
321
- [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
322
- [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
323
- </kendo-icon-wrapper>
324
- <span *ngIf="showSortNumbering(column)" class="k-sort-index">{{sortOrder(column.field)}}</span>
325
- </span>
391
+ [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
392
+ [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
393
+ </kendo-icon-wrapper>
394
+ @if (showSortNumbering(column)) {
395
+ <span class="k-sort-index">{{sortOrder(column.field)}}</span>
396
+ }
397
+ </span>
398
+ }
399
+ @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon) {
400
+ <kendo-icon-wrapper
401
+ class="k-columnmenu-indicators"
402
+ name="filter"
403
+ [svgIcon]="filterIcon">
404
+ </kendo-icon-wrapper>
405
+ }
406
+ @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
407
+ <span class="k-spacer"></span>
408
+ }
409
+ @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
410
+ <span class="k-expander-indicator">
326
411
  <kendo-icon-wrapper
327
- *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon"
328
- class="k-columnmenu-indicators"
329
- name="filter"
330
- [svgIcon]="filterIcon">
412
+ [name]="expandedIcon"
413
+ [svgIcon]="expandedSvgIcon">
331
414
  </kendo-icon-wrapper>
332
- <span *ngIf="contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-spacer"></span>
333
- <span *ngIf="contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-expander-indicator">
334
- <kendo-icon-wrapper
335
- [name]="expandedIcon"
336
- [svgIcon]="expandedSvgIcon">
337
- </kendo-icon-wrapper>
338
- </span>
415
+ </span>
416
+ }
417
+ </div>
418
+ @if (contentTemplate) {
419
+ <div [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
420
+ <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
421
+ </ng-container>
339
422
  </div>
340
- <div *ngIf="contentTemplate" [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
341
- <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
342
- </ng-container>
423
+ }
424
+ }
425
+
426
+ <ng-template #content>
427
+ <div
428
+ class="k-columnmenu-item"
429
+ (click)="onClick($event)"
430
+ (keydown.enter)="onClick($event)"
431
+ [class.k-selected]="selected"
432
+ [class.k-disabled]="disabled"
433
+ [class.k-focus]="focused"
434
+ role="button"
435
+ [attr.aria-expanded]="expanded"
436
+ [attr.aria-controls]="expanded ? contentId : undefined">
437
+ @if (icon || svgIcon) {
438
+ <kendo-icon-wrapper
439
+ [name]="icon"
440
+ [svgIcon]="svgIcon"></kendo-icon-wrapper>
441
+ }
442
+ {{ text }}
443
+ @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)) {
444
+ <span
445
+ class="k-columnmenu-indicators">
446
+ <kendo-icon-wrapper
447
+ [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
448
+ [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
449
+ </kendo-icon-wrapper>
450
+ @if (showSortNumbering(column)) {
451
+ <span class="k-sort-index">{{sortOrder(column.field)}}</span>
452
+ }
453
+ </span>
454
+ }
455
+ @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon) {
456
+ <kendo-icon-wrapper
457
+ class="k-columnmenu-indicators"
458
+ name="filter"
459
+ [svgIcon]="filterIcon">
460
+ </kendo-icon-wrapper>
461
+ }
462
+ @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
463
+ <span class="k-spacer"></span>
464
+ }
465
+ @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
466
+ <span class="k-expander-indicator">
467
+ <kendo-icon-wrapper
468
+ [name]="expandedIcon"
469
+ [svgIcon]="expandedSvgIcon">
470
+ </kendo-icon-wrapper>
471
+ </span>
472
+ }
473
+ </div>
474
+ @if (contentTemplate) {
475
+ <div [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
476
+ <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
477
+ </ng-container>
343
478
  </div>
479
+ }
344
480
  </ng-template>
345
- `,
481
+ `,
346
482
  standalone: true,
347
- imports: [IconWrapperComponent, NgIf, NgTemplateOutlet]
483
+ imports: [IconWrapperComponent, NgTemplateOutlet]
348
484
  }]
349
485
  }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.ContextService }, { type: i2.AdaptiveGridService }, { type: i0.ElementRef }], propDecorators: { itemClick: [{
350
486
  type: Output
@@ -8,7 +8,6 @@ import { ContextService } from '../common/provider.service';
8
8
  import { ColumnMenuItemBase } from './column-menu-item-base';
9
9
  import { ColumnMenuStickComponent } from './column-menu-stick.component';
10
10
  import { ColumnMenuLockComponent } from './column-menu-lock.component';
11
- import { NgIf } from '@angular/common';
12
11
  import { ColumnMenuItemContentTemplateDirective } from './column-menu-item-content-template.directive';
13
12
  import { ColumnMenuItemComponent } from './column-menu-item.component';
14
13
  import * as i0 from "@angular/core";
@@ -124,29 +123,31 @@ export class ColumnMenuPositionComponent extends ColumnMenuItemBase {
124
123
  return menuItems[lastFocusableIndex];
125
124
  }
126
125
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuPositionComponent, deps: [{ token: i1.ContextService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
127
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ColumnMenuPositionComponent, isStandalone: true, selector: "kendo-grid-columnmenu-position", inputs: { expanded: "expanded", showLock: "showLock", showStick: "showStick", isLast: "isLast" }, outputs: { expand: "expand", collapse: "collapse" }, usesInheritance: true, ngImport: i0, template: `
126
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ColumnMenuPositionComponent, isStandalone: true, selector: "kendo-grid-columnmenu-position", inputs: { expanded: "expanded", showLock: "showLock", showStick: "showStick", isLast: "isLast" }, outputs: { expand: "expand", collapse: "collapse" }, usesInheritance: true, ngImport: i0, template: `
128
127
  <kendo-grid-columnmenu-item
129
- [text]="ctx.localization.get('setColumnPosition')"
130
- icon="set-column-position"
131
- [svgIcon]="setColumnPositionIcon"
132
- [expanded]="expanded"
133
- (keydown.tab)="onTab($event, !expanded)"
134
- (collapse)="onCollapse()"
135
- (expand)="onExpand()">
136
- <ng-template kendoGridColumnMenuItemContentTemplate>
137
- <kendo-grid-columnmenu-lock
138
- *ngIf="showLock"
139
- (keydown.tab)="onTab($event, !showStick)"
140
- [service]="service">
141
- </kendo-grid-columnmenu-lock>
142
- <kendo-grid-columnmenu-stick
143
- *ngIf="showStick"
144
- (keydown.tab)="onTab($event, true)"
145
- [service]="service">
146
- </kendo-grid-columnmenu-stick>
147
- </ng-template>
128
+ [text]="ctx.localization.get('setColumnPosition')"
129
+ icon="set-column-position"
130
+ [svgIcon]="setColumnPositionIcon"
131
+ [expanded]="expanded"
132
+ (keydown.tab)="onTab($event, !expanded)"
133
+ (collapse)="onCollapse()"
134
+ (expand)="onExpand()">
135
+ <ng-template kendoGridColumnMenuItemContentTemplate>
136
+ @if (showLock) {
137
+ <kendo-grid-columnmenu-lock
138
+ (keydown.tab)="onTab($event, !showStick)"
139
+ [service]="service">
140
+ </kendo-grid-columnmenu-lock>
141
+ }
142
+ @if (showStick) {
143
+ <kendo-grid-columnmenu-stick
144
+ (keydown.tab)="onTab($event, true)"
145
+ [service]="service">
146
+ </kendo-grid-columnmenu-stick>
147
+ }
148
+ </ng-template>
148
149
  </kendo-grid-columnmenu-item>
149
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }] });
150
+ `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }] });
150
151
  }
151
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuPositionComponent, decorators: [{
152
153
  type: Component,
@@ -154,29 +155,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
154
155
  selector: 'kendo-grid-columnmenu-position',
155
156
  template: `
156
157
  <kendo-grid-columnmenu-item
157
- [text]="ctx.localization.get('setColumnPosition')"
158
- icon="set-column-position"
159
- [svgIcon]="setColumnPositionIcon"
160
- [expanded]="expanded"
161
- (keydown.tab)="onTab($event, !expanded)"
162
- (collapse)="onCollapse()"
163
- (expand)="onExpand()">
164
- <ng-template kendoGridColumnMenuItemContentTemplate>
165
- <kendo-grid-columnmenu-lock
166
- *ngIf="showLock"
167
- (keydown.tab)="onTab($event, !showStick)"
168
- [service]="service">
169
- </kendo-grid-columnmenu-lock>
170
- <kendo-grid-columnmenu-stick
171
- *ngIf="showStick"
172
- (keydown.tab)="onTab($event, true)"
173
- [service]="service">
174
- </kendo-grid-columnmenu-stick>
175
- </ng-template>
158
+ [text]="ctx.localization.get('setColumnPosition')"
159
+ icon="set-column-position"
160
+ [svgIcon]="setColumnPositionIcon"
161
+ [expanded]="expanded"
162
+ (keydown.tab)="onTab($event, !expanded)"
163
+ (collapse)="onCollapse()"
164
+ (expand)="onExpand()">
165
+ <ng-template kendoGridColumnMenuItemContentTemplate>
166
+ @if (showLock) {
167
+ <kendo-grid-columnmenu-lock
168
+ (keydown.tab)="onTab($event, !showStick)"
169
+ [service]="service">
170
+ </kendo-grid-columnmenu-lock>
171
+ }
172
+ @if (showStick) {
173
+ <kendo-grid-columnmenu-stick
174
+ (keydown.tab)="onTab($event, true)"
175
+ [service]="service">
176
+ </kendo-grid-columnmenu-stick>
177
+ }
178
+ </ng-template>
176
179
  </kendo-grid-columnmenu-item>
177
- `,
180
+ `,
178
181
  standalone: true,
179
- imports: [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, NgIf, ColumnMenuLockComponent, ColumnMenuStickComponent]
182
+ imports: [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuLockComponent, ColumnMenuStickComponent]
180
183
  }]
181
184
  }], ctorParameters: () => [{ type: i1.ContextService }, { type: i0.ElementRef }], propDecorators: { expand: [{
182
185
  type: Output