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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/esm2022/adaptiveness/adaptive-renderer.component.mjs +850 -756
  2. package/esm2022/aggregates/status-bar.component.mjs +13 -11
  3. package/esm2022/column-menu/column-chooser-content.component.mjs +133 -123
  4. package/esm2022/column-menu/column-list.component.mjs +62 -59
  5. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +12 -11
  6. package/esm2022/column-menu/column-menu-autosize.component.mjs +12 -11
  7. package/esm2022/column-menu/column-menu-item.component.mjs +221 -85
  8. package/esm2022/column-menu/column-menu-position.component.mjs +46 -43
  9. package/esm2022/column-menu/column-menu.component.mjs +401 -315
  10. package/esm2022/editing/add-command.directive.mjs +27 -17
  11. package/esm2022/editing/cancel-command.directive.mjs +27 -17
  12. package/esm2022/editing/edit-command.directive.mjs +27 -17
  13. package/esm2022/editing/form/form-formfield.component.mjs +97 -70
  14. package/esm2022/editing/form/form.component.mjs +77 -61
  15. package/esm2022/editing/remove-command.directive.mjs +27 -17
  16. package/esm2022/editing/save-command.directive.mjs +27 -17
  17. package/esm2022/excel/excel-command.directive.mjs +27 -17
  18. package/esm2022/filtering/cell/filter-cell-operators.component.mjs +20 -17
  19. package/esm2022/filtering/cell/filter-cell.component.mjs +35 -33
  20. package/esm2022/filtering/filter-row.component.mjs +37 -29
  21. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +34 -31
  22. package/esm2022/filtering/menu/date-filter-menu.component.mjs +52 -49
  23. package/esm2022/filtering/menu/filter-menu-container.component.mjs +97 -89
  24. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +50 -47
  25. package/esm2022/filtering/menu/string-filter-menu.component.mjs +36 -33
  26. package/esm2022/filtering/multicheckbox-filter.component.mjs +54 -43
  27. package/esm2022/grid.component.mjs +1579 -1483
  28. package/esm2022/grouping/group-header.component.mjs +113 -89
  29. package/esm2022/grouping/group-panel.component.mjs +82 -75
  30. package/esm2022/package-metadata.mjs +2 -2
  31. package/esm2022/pdf/pdf-command.directive.mjs +27 -17
  32. package/esm2022/rendering/cell.component.mjs +411 -365
  33. package/esm2022/rendering/common/col-group.component.mjs +25 -15
  34. package/esm2022/rendering/common/loading.component.mjs +23 -19
  35. package/esm2022/rendering/details/detail-template.directive.mjs +6 -4
  36. package/esm2022/rendering/footer/footer.component.mjs +128 -112
  37. package/esm2022/rendering/header/header.component.mjs +412 -351
  38. package/esm2022/rendering/list.component.mjs +225 -202
  39. package/esm2022/rendering/table-body.component.mjs +553 -493
  40. package/esm2022/rendering/toolbar/toolbar.component.mjs +13 -11
  41. package/esm2022/rendering/toolbar/tools/ai-assistant/ai-assistant.component.mjs +86 -79
  42. package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +54 -51
  43. package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +138 -115
  44. package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +72 -65
  45. package/fesm2022/progress-kendo-angular-grid.mjs +6426 -5525
  46. package/package.json +24 -24
  47. package/rendering/details/detail-template.directive.d.ts +6 -4
  48. package/schematics/ngAdd/index.js +11 -7
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, EventEmitter, Input, Output } from '@angular/core';
6
6
  import { ReactiveFormsModule, FormGroup } from '@angular/forms';
7
- import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
7
+ import { NgTemplateOutlet } from '@angular/common';
8
8
  import { KENDO_BUTTON } from '@progress/kendo-angular-buttons';
9
9
  import { cancelIcon, saveIcon } from '@progress/kendo-svg-icons';
10
10
  import { FormFormFieldComponent } from './form-formfield.component';
@@ -64,40 +64,48 @@ export class FormComponent {
64
64
  this._actionButtons = value ? this.defaultActionButtons : [];
65
65
  }
66
66
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormComponent, isStandalone: true, selector: "kendo-grid-external-form", inputs: { controls: "controls", formSettings: "formSettings", formGroup: "formGroup", actionButtons: "actionButtons" }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: `
67
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FormComponent, isStandalone: true, selector: "kendo-grid-external-form", inputs: { controls: "controls", formSettings: "formSettings", formGroup: "formGroup", actionButtons: "actionButtons" }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: `
68
68
  <div role="form"
69
- class="k-form k-form-md"
70
- [class.k-form-horizontal]="formSettings.orientation === 'horizontal'"
71
- [formGroup]="formGroup"
72
- (ngSubmit)="formSubmit.next({originalEvent: $event, formGroup})"
73
- (reset)="$event.preventDefault()">
74
- <ng-container *ngFor="let control of controls; let idx = index;">
75
- <ng-container *ngIf="!control.template; else template">
76
- <kendo-form-formfield
77
- [control]="control"
78
- [showError]="formSettings.showErrors"
79
- [floatingLabel]="formSettings.floatingLabels"></kendo-form-formfield>
80
- </ng-container>
81
- <ng-template #template>
82
- <ng-container
83
- [ngTemplateOutlet]="control.template"
84
- [ngTemplateOutletContext]="control.templateContext"></ng-container>
85
- </ng-template>
86
- </ng-container>
87
- <div class="k-form-buttons" *ngIf="$any(actionButtons).length">
88
- <button kendoButton *ngFor="let button of $any(actionButtons)"
89
- [class.k-form-submit]="button.actionType === 'submit'"
90
- [size]="button.size"
91
- [themeColor]="button.themeColor || button.actionType === 'submit' ? 'primary' : undefined"
92
- [rounded]="button.rounded"
93
- [attr.type]="button.actionType"
94
- [svgIcon]="button.svgIcon"
95
- [icon]="button.icon">
96
- {{button.text}}
69
+ class="k-form k-form-md"
70
+ [class.k-form-horizontal]="formSettings.orientation === 'horizontal'"
71
+ [formGroup]="formGroup"
72
+ (ngSubmit)="formSubmit.next({originalEvent: $event, formGroup})"
73
+ (reset)="$event.preventDefault()">
74
+ @for (control of controls; track control; let idx = $index) {
75
+ @if (!control.template) {
76
+ <kendo-form-formfield
77
+ [control]="control"
78
+ [showError]="formSettings.showErrors"
79
+ [floatingLabel]="formSettings.floatingLabels"></kendo-form-formfield>
80
+ } @else {
81
+ <ng-container
82
+ [ngTemplateOutlet]="control.template"
83
+ [ngTemplateOutletContext]="control.templateContext"></ng-container>
84
+ }
85
+ <ng-template #template>
86
+ <ng-container
87
+ [ngTemplateOutlet]="control.template"
88
+ [ngTemplateOutletContext]="control.templateContext"></ng-container>
89
+ </ng-template>
90
+ }
91
+ @if ($any(actionButtons).length) {
92
+ <div class="k-form-buttons">
93
+ @for (button of $any(actionButtons); track button) {
94
+ <button kendoButton
95
+ [class.k-form-submit]="button.actionType === 'submit'"
96
+ [size]="button.size"
97
+ [themeColor]="button.themeColor || button.actionType === 'submit' ? 'primary' : undefined"
98
+ [rounded]="button.rounded"
99
+ [attr.type]="button.actionType"
100
+ [svgIcon]="button.svgIcon"
101
+ [icon]="button.icon">
102
+ {{button.text}}
97
103
  </button>
104
+ }
98
105
  </div>
106
+ }
99
107
  </div>
100
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormFormFieldComponent, selector: "kendo-form-formfield", inputs: ["control", "floatingLabel", "showError"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
108
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormFormFieldComponent, selector: "kendo-form-formfield", inputs: ["control", "floatingLabel", "showError"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
101
109
  }
102
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormComponent, decorators: [{
103
111
  type: Component,
@@ -106,39 +114,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
106
114
  standalone: true,
107
115
  template: `
108
116
  <div role="form"
109
- class="k-form k-form-md"
110
- [class.k-form-horizontal]="formSettings.orientation === 'horizontal'"
111
- [formGroup]="formGroup"
112
- (ngSubmit)="formSubmit.next({originalEvent: $event, formGroup})"
113
- (reset)="$event.preventDefault()">
114
- <ng-container *ngFor="let control of controls; let idx = index;">
115
- <ng-container *ngIf="!control.template; else template">
116
- <kendo-form-formfield
117
- [control]="control"
118
- [showError]="formSettings.showErrors"
119
- [floatingLabel]="formSettings.floatingLabels"></kendo-form-formfield>
120
- </ng-container>
121
- <ng-template #template>
122
- <ng-container
123
- [ngTemplateOutlet]="control.template"
124
- [ngTemplateOutletContext]="control.templateContext"></ng-container>
125
- </ng-template>
126
- </ng-container>
127
- <div class="k-form-buttons" *ngIf="$any(actionButtons).length">
128
- <button kendoButton *ngFor="let button of $any(actionButtons)"
129
- [class.k-form-submit]="button.actionType === 'submit'"
130
- [size]="button.size"
131
- [themeColor]="button.themeColor || button.actionType === 'submit' ? 'primary' : undefined"
132
- [rounded]="button.rounded"
133
- [attr.type]="button.actionType"
134
- [svgIcon]="button.svgIcon"
135
- [icon]="button.icon">
136
- {{button.text}}
117
+ class="k-form k-form-md"
118
+ [class.k-form-horizontal]="formSettings.orientation === 'horizontal'"
119
+ [formGroup]="formGroup"
120
+ (ngSubmit)="formSubmit.next({originalEvent: $event, formGroup})"
121
+ (reset)="$event.preventDefault()">
122
+ @for (control of controls; track control; let idx = $index) {
123
+ @if (!control.template) {
124
+ <kendo-form-formfield
125
+ [control]="control"
126
+ [showError]="formSettings.showErrors"
127
+ [floatingLabel]="formSettings.floatingLabels"></kendo-form-formfield>
128
+ } @else {
129
+ <ng-container
130
+ [ngTemplateOutlet]="control.template"
131
+ [ngTemplateOutletContext]="control.templateContext"></ng-container>
132
+ }
133
+ <ng-template #template>
134
+ <ng-container
135
+ [ngTemplateOutlet]="control.template"
136
+ [ngTemplateOutletContext]="control.templateContext"></ng-container>
137
+ </ng-template>
138
+ }
139
+ @if ($any(actionButtons).length) {
140
+ <div class="k-form-buttons">
141
+ @for (button of $any(actionButtons); track button) {
142
+ <button kendoButton
143
+ [class.k-form-submit]="button.actionType === 'submit'"
144
+ [size]="button.size"
145
+ [themeColor]="button.themeColor || button.actionType === 'submit' ? 'primary' : undefined"
146
+ [rounded]="button.rounded"
147
+ [attr.type]="button.actionType"
148
+ [svgIcon]="button.svgIcon"
149
+ [icon]="button.icon">
150
+ {{button.text}}
137
151
  </button>
152
+ }
138
153
  </div>
154
+ }
139
155
  </div>
140
- `,
141
- imports: [NgFor, NgIf, NgTemplateOutlet, ReactiveFormsModule, FormFormFieldComponent, KENDO_BUTTON],
156
+ `,
157
+ imports: [NgTemplateOutlet, ReactiveFormsModule, FormFormFieldComponent, KENDO_BUTTON],
142
158
  }]
143
159
  }], propDecorators: { controls: [{
144
160
  type: Input
@@ -7,7 +7,7 @@ import { Button } from '@progress/kendo-angular-buttons';
7
7
  import { EditService } from './edit.service';
8
8
  import { CELL_CONTEXT } from '../rendering/common/cell-context';
9
9
  import { ContextService } from '../common/provider.service';
10
- import { NgIf, NgClass } from '@angular/common';
10
+ import { NgClass } from '@angular/common';
11
11
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "./edit.service";
@@ -66,37 +66,47 @@ export class RemoveCommandDirective extends Button {
66
66
  }
67
67
  }
68
68
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RemoveCommandDirective, deps: [{ token: i1.EditService }, { token: CELL_CONTEXT }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.ContextService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
69
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RemoveCommandDirective, isStandalone: true, selector: "[kendoGridRemoveCommand]", host: { listeners: { "click": "onClick($event)" }, properties: { "style.display": "this.visible", "class.k-grid-remove-command": "this.commandClass" } }, usesInheritance: true, ngImport: i0, template: `
70
- <kendo-icon-wrapper
71
- *ngIf="icon || svgIcon"
69
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RemoveCommandDirective, isStandalone: true, selector: "[kendoGridRemoveCommand]", host: { listeners: { "click": "onClick($event)" }, properties: { "style.display": "this.visible", "class.k-grid-remove-command": "this.commandClass" } }, usesInheritance: true, ngImport: i0, template: `
70
+ @if (icon || svgIcon) {
71
+ <kendo-icon-wrapper
72
72
  innerCssClass="k-button-icon"
73
73
  [name]="icon"
74
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
75
- <span *ngIf="imageUrl" class="k-button-icon k-icon">
74
+ [svgIcon]="svgIcon"></kendo-icon-wrapper>
75
+ }
76
+ @if (imageUrl) {
77
+ <span class="k-button-icon k-icon">
76
78
  <img [src]="imageUrl" class="k-image" role="presentation" />
77
- </span>
78
- <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
79
+ </span>
80
+ }
81
+ @if (iconClass) {
82
+ <span class="k-button-icon" [ngClass]="iconClass"></span>
83
+ }
79
84
  <span class="k-button-text"><ng-content></ng-content></span>
80
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
85
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
81
86
  }
82
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RemoveCommandDirective, decorators: [{
83
88
  type: Component,
84
89
  args: [{
85
90
  selector: '[kendoGridRemoveCommand]',
86
91
  template: `
87
- <kendo-icon-wrapper
88
- *ngIf="icon || svgIcon"
92
+ @if (icon || svgIcon) {
93
+ <kendo-icon-wrapper
89
94
  innerCssClass="k-button-icon"
90
95
  [name]="icon"
91
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
92
- <span *ngIf="imageUrl" class="k-button-icon k-icon">
96
+ [svgIcon]="svgIcon"></kendo-icon-wrapper>
97
+ }
98
+ @if (imageUrl) {
99
+ <span class="k-button-icon k-icon">
93
100
  <img [src]="imageUrl" class="k-image" role="presentation" />
94
- </span>
95
- <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
101
+ </span>
102
+ }
103
+ @if (iconClass) {
104
+ <span class="k-button-icon" [ngClass]="iconClass"></span>
105
+ }
96
106
  <span class="k-button-text"><ng-content></ng-content></span>
97
- `,
107
+ `,
98
108
  standalone: true,
99
- imports: [NgIf, IconWrapperComponent, NgClass]
109
+ imports: [IconWrapperComponent, NgClass]
100
110
  }]
101
111
  }], ctorParameters: () => [{ type: i1.EditService }, { type: undefined, decorators: [{
102
112
  type: Inject,
@@ -7,7 +7,7 @@ import { Button } from '@progress/kendo-angular-buttons';
7
7
  import { EditService } from './edit.service';
8
8
  import { CELL_CONTEXT } from '../rendering/common/cell-context';
9
9
  import { ContextService } from '../common/provider.service';
10
- import { NgIf, NgClass } from '@angular/common';
10
+ import { NgClass } from '@angular/common';
11
11
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "./edit.service";
@@ -69,37 +69,47 @@ export class SaveCommandDirective extends Button {
69
69
  }
70
70
  }
71
71
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SaveCommandDirective, deps: [{ token: i1.EditService }, { token: CELL_CONTEXT }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.ContextService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
72
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SaveCommandDirective, isStandalone: true, selector: "[kendoGridSaveCommand]", host: { listeners: { "click": "onClick($event)" }, properties: { "style.display": "this.visible", "class.k-grid-save-command": "this.commandClass" } }, usesInheritance: true, ngImport: i0, template: `
73
- <kendo-icon-wrapper
74
- *ngIf="icon || svgIcon"
72
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SaveCommandDirective, isStandalone: true, selector: "[kendoGridSaveCommand]", host: { listeners: { "click": "onClick($event)" }, properties: { "style.display": "this.visible", "class.k-grid-save-command": "this.commandClass" } }, usesInheritance: true, ngImport: i0, template: `
73
+ @if (icon || svgIcon) {
74
+ <kendo-icon-wrapper
75
75
  innerCssClass="k-button-icon"
76
76
  [name]="icon"
77
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
78
- <span *ngIf="imageUrl" class="k-button-icon k-icon">
77
+ [svgIcon]="svgIcon"></kendo-icon-wrapper>
78
+ }
79
+ @if (imageUrl) {
80
+ <span class="k-button-icon k-icon">
79
81
  <img [src]="imageUrl" class="k-image" role="presentation" />
80
- </span>
81
- <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
82
+ </span>
83
+ }
84
+ @if (iconClass) {
85
+ <span class="k-button-icon" [ngClass]="iconClass"></span>
86
+ }
82
87
  <span class="k-button-text"><ng-content></ng-content></span>
83
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
88
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
84
89
  }
85
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SaveCommandDirective, decorators: [{
86
91
  type: Component,
87
92
  args: [{
88
93
  selector: '[kendoGridSaveCommand]',
89
94
  template: `
90
- <kendo-icon-wrapper
91
- *ngIf="icon || svgIcon"
95
+ @if (icon || svgIcon) {
96
+ <kendo-icon-wrapper
92
97
  innerCssClass="k-button-icon"
93
98
  [name]="icon"
94
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
95
- <span *ngIf="imageUrl" class="k-button-icon k-icon">
99
+ [svgIcon]="svgIcon"></kendo-icon-wrapper>
100
+ }
101
+ @if (imageUrl) {
102
+ <span class="k-button-icon k-icon">
96
103
  <img [src]="imageUrl" class="k-image" role="presentation" />
97
- </span>
98
- <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
104
+ </span>
105
+ }
106
+ @if (iconClass) {
107
+ <span class="k-button-icon" [ngClass]="iconClass"></span>
108
+ }
99
109
  <span class="k-button-text"><ng-content></ng-content></span>
100
- `,
110
+ `,
101
111
  standalone: true,
102
- imports: [NgIf, IconWrapperComponent, NgClass]
112
+ imports: [IconWrapperComponent, NgClass]
103
113
  }]
104
114
  }], ctorParameters: () => [{ type: i1.EditService }, { type: undefined, decorators: [{
105
115
  type: Inject,
@@ -7,7 +7,7 @@ import { Button } from '@progress/kendo-angular-buttons';
7
7
  import { ContextService } from '../common/provider.service';
8
8
  import { ExcelService } from './excel.service';
9
9
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
10
- import { NgIf, NgClass } from '@angular/common';
10
+ import { NgClass } from '@angular/common';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "./excel.service";
13
13
  import * as i2 from "../common/provider.service";
@@ -47,37 +47,47 @@ export class ExcelCommandDirective extends Button {
47
47
  this.ngZone = ngZone;
48
48
  }
49
49
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExcelCommandDirective, deps: [{ token: i1.ExcelService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.ContextService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
50
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ExcelCommandDirective, isStandalone: true, selector: "[kendoGridExcelCommand]", host: { listeners: { "click": "onClick($event)" }, properties: { "class.k-grid-excel": "this.excelClass" } }, usesInheritance: true, ngImport: i0, template: `
51
- <kendo-icon-wrapper
52
- *ngIf="icon || svgIcon"
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ExcelCommandDirective, isStandalone: true, selector: "[kendoGridExcelCommand]", host: { listeners: { "click": "onClick($event)" }, properties: { "class.k-grid-excel": "this.excelClass" } }, usesInheritance: true, ngImport: i0, template: `
51
+ @if (icon || svgIcon) {
52
+ <kendo-icon-wrapper
53
53
  innerCssClass="k-button-icon"
54
54
  [name]="icon"
55
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
56
- <span *ngIf="imageUrl" class="k-button-icon k-icon">
55
+ [svgIcon]="svgIcon"></kendo-icon-wrapper>
56
+ }
57
+ @if (imageUrl) {
58
+ <span class="k-button-icon k-icon">
57
59
  <img [src]="imageUrl" class="k-image" role="presentation" />
58
- </span>
59
- <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
60
+ </span>
61
+ }
62
+ @if (iconClass) {
63
+ <span class="k-button-icon" [ngClass]="iconClass"></span>
64
+ }
60
65
  <span class="k-button-text"><ng-content></ng-content></span>
61
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
66
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
62
67
  }
63
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExcelCommandDirective, decorators: [{
64
69
  type: Component,
65
70
  args: [{
66
71
  selector: '[kendoGridExcelCommand]',
67
72
  template: `
68
- <kendo-icon-wrapper
69
- *ngIf="icon || svgIcon"
73
+ @if (icon || svgIcon) {
74
+ <kendo-icon-wrapper
70
75
  innerCssClass="k-button-icon"
71
76
  [name]="icon"
72
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
73
- <span *ngIf="imageUrl" class="k-button-icon k-icon">
77
+ [svgIcon]="svgIcon"></kendo-icon-wrapper>
78
+ }
79
+ @if (imageUrl) {
80
+ <span class="k-button-icon k-icon">
74
81
  <img [src]="imageUrl" class="k-image" role="presentation" />
75
- </span>
76
- <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
82
+ </span>
83
+ }
84
+ @if (iconClass) {
85
+ <span class="k-button-icon" [ngClass]="iconClass"></span>
86
+ }
77
87
  <span class="k-button-text"><ng-content></ng-content></span>
78
- `,
88
+ `,
79
89
  standalone: true,
80
- imports: [NgIf, IconWrapperComponent, NgClass]
90
+ imports: [IconWrapperComponent, NgClass]
81
91
  }]
82
92
  }], ctorParameters: () => [{ type: i1.ExcelService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i2.ContextService }, { type: i0.NgZone }], propDecorators: { onClick: [{
83
93
  type: HostListener,
@@ -10,7 +10,6 @@ import { filterClearIcon, filterIcon } from '@progress/kendo-svg-icons';
10
10
  import { ContextService } from '../../common/provider.service';
11
11
  import { ColumnComponent } from '../../columns/column.component';
12
12
  import { FocusableDirective } from '../../navigation/focusable.directive';
13
- import { NgIf } from '@angular/common';
14
13
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
15
14
  import * as i0 from "@angular/core";
16
15
  import * as i1 from "../../common/provider.service";
@@ -148,10 +147,10 @@ export class FilterCellOperatorsComponent {
148
147
  return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
149
148
  }
150
149
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterCellOperatorsComponent, deps: [{ token: i1.ContextService }, { token: i2.SizingOptionsService }], target: i0.ɵɵFactoryTarget.Component });
151
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FilterCellOperatorsComponent, isStandalone: true, selector: "kendo-grid-filter-cell-operators", inputs: { operators: "operators", showButton: "showButton", showOperators: "showOperators", value: "value", column: "column" }, outputs: { valueChange: "valueChange", clear: "clear" }, host: { properties: { "class.k-filtercell-operator": "this.hostClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: `
152
- <kendo-dropdownlist
150
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FilterCellOperatorsComponent, isStandalone: true, selector: "kendo-grid-filter-cell-operators", inputs: { operators: "operators", showButton: "showButton", showOperators: "showOperators", value: "value", column: "column" }, outputs: { valueChange: "valueChange", clear: "clear" }, host: { properties: { "class.k-filtercell-operator": "this.hostClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: `
151
+ @if (showOperators) {
152
+ <kendo-dropdownlist
153
153
  #dropdown
154
- *ngIf="showOperators"
155
154
  kendoGridFocusable
156
155
  [attr.aria-label]="column && columnLabel"
157
156
  [data]="operators"
@@ -166,27 +165,29 @@ export class FilterCellOperatorsComponent {
166
165
  valueField="value"
167
166
  [size]="size"
168
167
  (keydown)="dropdownKeydown($event)">
169
- </kendo-dropdownlist>
170
- <button type="button"
168
+ </kendo-dropdownlist>
169
+ }
170
+ @if (showButton) {
171
+ <button type="button"
171
172
  kendoButton
172
173
  kendoGridFocusable
173
- *ngIf="showButton"
174
174
  icon="filter-clear"
175
175
  [svgIcon]="filterClearIcon"
176
176
  [title]="clearText"
177
177
  [size]="size"
178
178
  (click)="clearClick()"
179
- (keydown)="clearKeydown($event)"></button>
180
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
179
+ (keydown)="clearKeydown($event)"></button>
180
+ }
181
+ `, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
181
182
  }
182
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
183
184
  type: Component,
184
185
  args: [{
185
186
  selector: 'kendo-grid-filter-cell-operators',
186
187
  template: `
187
- <kendo-dropdownlist
188
+ @if (showOperators) {
189
+ <kendo-dropdownlist
188
190
  #dropdown
189
- *ngIf="showOperators"
190
191
  kendoGridFocusable
191
192
  [attr.aria-label]="column && columnLabel"
192
193
  [data]="operators"
@@ -201,20 +202,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
201
202
  valueField="value"
202
203
  [size]="size"
203
204
  (keydown)="dropdownKeydown($event)">
204
- </kendo-dropdownlist>
205
- <button type="button"
205
+ </kendo-dropdownlist>
206
+ }
207
+ @if (showButton) {
208
+ <button type="button"
206
209
  kendoButton
207
210
  kendoGridFocusable
208
- *ngIf="showButton"
209
211
  icon="filter-clear"
210
212
  [svgIcon]="filterClearIcon"
211
213
  [title]="clearText"
212
214
  [size]="size"
213
215
  (click)="clearClick()"
214
- (keydown)="clearKeydown($event)"></button>
215
- `,
216
+ (keydown)="clearKeydown($event)"></button>
217
+ }
218
+ `,
216
219
  standalone: true,
217
- imports: [NgIf, DropDownListComponent, FocusableDirective, ButtonComponent]
220
+ imports: [DropDownListComponent, FocusableDirective, ButtonComponent]
218
221
  }]
219
222
  }], ctorParameters: () => [{ type: i1.ContextService }, { type: i2.SizingOptionsService }], propDecorators: { hostClasses: [{
220
223
  type: HostBinding,
@@ -7,7 +7,7 @@ import { ColumnComponent } from '../../columns/column.component';
7
7
  import { isPresent, isNullOrEmptyString } from '../../utils';
8
8
  import { cloneFilters } from '../../common/filter-descriptor-differ';
9
9
  import { FilterCellHostDirective } from './filter-cell-host.directive';
10
- import { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';
10
+ import { NgTemplateOutlet } from '@angular/common';
11
11
  import * as i0 from "@angular/core";
12
12
  /**
13
13
  * @hidden
@@ -37,45 +37,47 @@ export class FilterCellComponent {
37
37
  return isPresent(this.column) && !isNullOrEmptyString(this.column.field) && this.column.filterable;
38
38
  }
39
39
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FilterCellComponent, isStandalone: true, selector: "[kendoGridFilterCell]", inputs: { column: "column", filter: "filter", size: "size" }, host: { properties: { "attr.role": "this.hostRole" } }, ngImport: i0, template: `
41
- <ng-container *ngIf="isFilterable">
42
- <ng-container [ngSwitch]="hasTemplate">
43
- <ng-container *ngSwitchCase="false">
44
- <ng-container kendoFilterCellHost [column]="column" [filter]="filter"></ng-container>
45
- </ng-container>
46
- <ng-container *ngSwitchCase="true">
47
- <ng-template
48
- *ngIf="column.filterCellTemplateRef"
49
- [ngTemplateOutlet]="column.filterCellTemplateRef"
50
- [ngTemplateOutletContext]="templateContext">
51
- </ng-template>
52
- </ng-container>
53
- </ng-container>
54
- </ng-container>
55
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: FilterCellHostDirective, selector: "[kendoFilterCellHost]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
40
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FilterCellComponent, isStandalone: true, selector: "[kendoGridFilterCell]", inputs: { column: "column", filter: "filter", size: "size" }, host: { properties: { "attr.role": "this.hostRole" } }, ngImport: i0, template: `
41
+ @if (isFilterable) {
42
+ @switch (hasTemplate) {
43
+ @case (false) {
44
+ <ng-container kendoFilterCellHost [column]="column" [filter]="filter"></ng-container>
45
+ }
46
+ @case (true) {
47
+ @if (column.filterCellTemplateRef) {
48
+ <ng-template
49
+ [ngTemplateOutlet]="column.filterCellTemplateRef"
50
+ [ngTemplateOutletContext]="templateContext">
51
+ </ng-template>
52
+ }
53
+ }
54
+ }
55
+ }
56
+ `, isInline: true, dependencies: [{ kind: "directive", type: FilterCellHostDirective, selector: "[kendoFilterCellHost]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
56
57
  }
57
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterCellComponent, decorators: [{
58
59
  type: Component,
59
60
  args: [{
60
61
  selector: '[kendoGridFilterCell]',
61
62
  template: `
62
- <ng-container *ngIf="isFilterable">
63
- <ng-container [ngSwitch]="hasTemplate">
64
- <ng-container *ngSwitchCase="false">
65
- <ng-container kendoFilterCellHost [column]="column" [filter]="filter"></ng-container>
66
- </ng-container>
67
- <ng-container *ngSwitchCase="true">
68
- <ng-template
69
- *ngIf="column.filterCellTemplateRef"
70
- [ngTemplateOutlet]="column.filterCellTemplateRef"
71
- [ngTemplateOutletContext]="templateContext">
72
- </ng-template>
73
- </ng-container>
74
- </ng-container>
75
- </ng-container>
76
- `,
63
+ @if (isFilterable) {
64
+ @switch (hasTemplate) {
65
+ @case (false) {
66
+ <ng-container kendoFilterCellHost [column]="column" [filter]="filter"></ng-container>
67
+ }
68
+ @case (true) {
69
+ @if (column.filterCellTemplateRef) {
70
+ <ng-template
71
+ [ngTemplateOutlet]="column.filterCellTemplateRef"
72
+ [ngTemplateOutletContext]="templateContext">
73
+ </ng-template>
74
+ }
75
+ }
76
+ }
77
+ }
78
+ `,
77
79
  standalone: true,
78
- imports: [NgIf, NgSwitch, NgSwitchCase, FilterCellHostDirective, NgTemplateOutlet]
80
+ imports: [FilterCellHostDirective, NgTemplateOutlet]
79
81
  }]
80
82
  }], propDecorators: { hostRole: [{
81
83
  type: HostBinding,