@progress/kendo-angular-grid 19.0.0-develop.27 → 19.0.0-develop.29

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.
@@ -71,10 +71,6 @@ export class ColumnMenuItemComponent {
71
71
  * @hidden
72
72
  */
73
73
  indicatorIcon;
74
- /**
75
- * @hidden
76
- */
77
- indicatorSVGIcon;
78
74
  /**
79
75
  * Specifies the item text.
80
76
  */
@@ -192,7 +188,7 @@ export class ColumnMenuItemComponent {
192
188
  this.contentState = this.expanded ? 'expanded' : 'collapsed';
193
189
  }
194
190
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemComponent, deps: [{ token: i0.NgZone }, { token: i1.ContextService }, { token: i2.AdaptiveGridService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
195
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", indicatorIcon: "indicatorIcon", indicatorSVGIcon: "indicatorSVGIcon", 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: `
191
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", 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: `
196
192
  <div *ngIf="contentTemplate; else content" class="k-expander">
197
193
  <ng-container [ngTemplateOutlet]="content"></ng-container>
198
194
  </div>
@@ -213,16 +209,16 @@ export class ColumnMenuItemComponent {
213
209
  [name]="icon"
214
210
  [svgIcon]="svgIcon"></kendo-icon-wrapper>
215
211
  {{ text }}
216
- <span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir) || indicatorIcon || indicatorSVGIcon"
212
+ <span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)"
217
213
  class="k-columnmenu-indicators">
218
214
  <kendo-icon-wrapper
219
- [name]="indicatorIcon ? indicatorIcon : sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
220
- [svgIcon]="indicatorSVGIcon ? indicatorSVGIcon : sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
215
+ [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
216
+ [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
221
217
  </kendo-icon-wrapper>
222
218
  <span *ngIf="showSortNumbering(column)" class="k-sort-index">{{sortOrder(column.field)}}</span>
223
219
  </span>
224
220
  <kendo-icon-wrapper
225
- *ngIf="ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters"
221
+ *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon"
226
222
  class="k-columnmenu-indicators"
227
223
  name="filter"
228
224
  [svgIcon]="filterIcon">
@@ -312,16 +308,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
312
308
  [name]="icon"
313
309
  [svgIcon]="svgIcon"></kendo-icon-wrapper>
314
310
  {{ text }}
315
- <span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir) || indicatorIcon || indicatorSVGIcon"
311
+ <span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)"
316
312
  class="k-columnmenu-indicators">
317
313
  <kendo-icon-wrapper
318
- [name]="indicatorIcon ? indicatorIcon : sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
319
- [svgIcon]="indicatorSVGIcon ? indicatorSVGIcon : sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
314
+ [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
315
+ [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
320
316
  </kendo-icon-wrapper>
321
317
  <span *ngIf="showSortNumbering(column)" class="k-sort-index">{{sortOrder(column.field)}}</span>
322
318
  </span>
323
319
  <kendo-icon-wrapper
324
- *ngIf="ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters"
320
+ *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon"
325
321
  class="k-columnmenu-indicators"
326
322
  name="filter"
327
323
  [svgIcon]="filterIcon">
@@ -355,8 +351,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
355
351
  type: Input
356
352
  }], indicatorIcon: [{
357
353
  type: Input
358
- }], indicatorSVGIcon: [{
359
- type: Input
360
354
  }], text: [{
361
355
  type: Input
362
356
  }], selected: [{
@@ -89,7 +89,7 @@ export class ColumnMenuLockComponent extends ColumnMenuItemBase {
89
89
  (itemClick)="toggleColumn()"
90
90
  [disabled]="disabled">
91
91
  </kendo-grid-columnmenu-item>
92
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
92
+ `, 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"] }] });
93
93
  }
94
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuLockComponent, decorators: [{
95
95
  type: Component,
@@ -138,7 +138,7 @@ export class ColumnMenuPositionComponent extends ColumnMenuItemBase {
138
138
  </kendo-grid-columnmenu-stick>
139
139
  </ng-template>
140
140
  </kendo-grid-columnmenu-item>
141
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "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" }] });
141
+ `, 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" }] });
142
142
  }
143
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuPositionComponent, decorators: [{
144
144
  type: Component,
@@ -91,7 +91,7 @@ export class ColumnMenuSortComponent extends ColumnMenuItemBase {
91
91
  (itemClick)="toggleSort('desc')"
92
92
  [selected]="sortedDesc">
93
93
  </kendo-grid-columnmenu-item>
94
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
94
+ `, 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"] }] });
95
95
  }
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuSortComponent, decorators: [{
97
97
  type: Component,
@@ -91,7 +91,7 @@ export class ColumnMenuStickComponent extends ColumnMenuItemBase {
91
91
  (itemClick)="toggleColumn()"
92
92
  [disabled]="disabled">
93
93
  </kendo-grid-columnmenu-item>
94
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
94
+ `, 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"] }] });
95
95
  }
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuStickComponent, decorators: [{
97
97
  type: Component,
@@ -41,13 +41,18 @@ export class ToolbarEditingToolBase extends ToolbarToolBase {
41
41
  }
42
42
  this.isEdited = this.editService.isEditing();
43
43
  let isToolInactive = false;
44
+ let formGroup;
44
45
  const selectionPresent = isPresent(this.lastSelectionIndex);
46
+ const editServiceCtx = this.editService.context(this.lastSelectionIndex);
47
+ if (this.isEdited && isPresent(editServiceCtx)) {
48
+ formGroup = this.editService.context(this.lastSelectionIndex).group;
49
+ }
45
50
  switch (this.commandName) {
46
51
  case ToolbarToolName.edit:
47
52
  isToolInactive = this.isEdited || !selectionPresent;
48
53
  break;
49
54
  case ToolbarToolName.save:
50
- isToolInactive = !(this.isEdited || this.editService.hasNewItem);
55
+ isToolInactive = !(this.isEdited || this.editService.hasNewItem) || !formGroup?.valid;
51
56
  break;
52
57
  case ToolbarToolName.remove:
53
58
  isToolInactive = this.isEdited || !selectionPresent;
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1747748447,
14
- version: '19.0.0-develop.27',
13
+ publishDate: 1747810820,
14
+ version: '19.0.0-develop.29',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -13,7 +13,6 @@ import { ColumnMenuItemContentTemplateDirective } from '../../../column-menu/col
13
13
  import { ColumnInfoService } from '../../../common/column-info.service';
14
14
  import { cloneFilters } from '../../../common/filter-descriptor-differ';
15
15
  import { AdaptiveGridService } from '../../../common/adaptiveness.service';
16
- import { filterIcon } from '@progress/kendo-svg-icons';
17
16
  import { take } from 'rxjs/operators';
18
17
  import * as i0 from "@angular/core";
19
18
  import * as i1 from "../../../filtering/filter.service";
@@ -44,8 +43,6 @@ export class FilterToolbarToolComponent {
44
43
  columnMenuService;
45
44
  columns;
46
45
  filter;
47
- activeFilterSVGIcon = filterIcon;
48
- activeFilterIcon = 'k-i-filter';
49
46
  isFilterApplied(column) {
50
47
  if (!this.filter?.filters) {
51
48
  return false;
@@ -151,8 +148,7 @@ export class FilterToolbarToolComponent {
151
148
  (focus)="onItemFocus(filterItem)"
152
149
  (focusout)="onItemFocusOut()"
153
150
  (keydown.enter)="toggleItem($event, i)"
154
- [indicatorSVGIcon]="isFilterApplied(column) ? activeFilterSVGIcon : null"
155
- [indicatorIcon]="isFilterApplied(column) ? activeFilterIcon : null"
151
+ [indicatorIcon]="isFilterApplied(column)"
156
152
  (itemClick)="navigateView(getColumnComponent(column))"
157
153
  [expanded]="false"
158
154
  [focused]="isItemFocused(filterItem)">
@@ -168,7 +164,7 @@ export class FilterToolbarToolComponent {
168
164
  </ng-template>
169
165
  </kendo-grid-columnmenu-item>
170
166
  </div>
171
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
167
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
172
168
  }
173
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolbarToolComponent, decorators: [{
174
170
  type: Component,
@@ -185,8 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
185
181
  (focus)="onItemFocus(filterItem)"
186
182
  (focusout)="onItemFocusOut()"
187
183
  (keydown.enter)="toggleItem($event, i)"
188
- [indicatorSVGIcon]="isFilterApplied(column) ? activeFilterSVGIcon : null"
189
- [indicatorIcon]="isFilterApplied(column) ? activeFilterIcon : null"
184
+ [indicatorIcon]="isFilterApplied(column)"
190
185
  (itemClick)="navigateView(getColumnComponent(column))"
191
186
  [expanded]="false"
192
187
  [focused]="isItemFocused(filterItem)">
@@ -12236,10 +12236,6 @@ class ColumnMenuItemComponent {
12236
12236
  * @hidden
12237
12237
  */
12238
12238
  indicatorIcon;
12239
- /**
12240
- * @hidden
12241
- */
12242
- indicatorSVGIcon;
12243
12239
  /**
12244
12240
  * Specifies the item text.
12245
12241
  */
@@ -12357,7 +12353,7 @@ class ColumnMenuItemComponent {
12357
12353
  this.contentState = this.expanded ? 'expanded' : 'collapsed';
12358
12354
  }
12359
12355
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemComponent, deps: [{ token: i0.NgZone }, { token: ContextService }, { token: AdaptiveGridService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
12360
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", indicatorIcon: "indicatorIcon", indicatorSVGIcon: "indicatorSVGIcon", 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: `
12356
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", 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: `
12361
12357
  <div *ngIf="contentTemplate; else content" class="k-expander">
12362
12358
  <ng-container [ngTemplateOutlet]="content"></ng-container>
12363
12359
  </div>
@@ -12378,16 +12374,16 @@ class ColumnMenuItemComponent {
12378
12374
  [name]="icon"
12379
12375
  [svgIcon]="svgIcon"></kendo-icon-wrapper>
12380
12376
  {{ text }}
12381
- <span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir) || indicatorIcon || indicatorSVGIcon"
12377
+ <span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)"
12382
12378
  class="k-columnmenu-indicators">
12383
12379
  <kendo-icon-wrapper
12384
- [name]="indicatorIcon ? indicatorIcon : sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
12385
- [svgIcon]="indicatorSVGIcon ? indicatorSVGIcon : sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
12380
+ [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
12381
+ [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
12386
12382
  </kendo-icon-wrapper>
12387
12383
  <span *ngIf="showSortNumbering(column)" class="k-sort-index">{{sortOrder(column.field)}}</span>
12388
12384
  </span>
12389
12385
  <kendo-icon-wrapper
12390
- *ngIf="ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters"
12386
+ *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon"
12391
12387
  class="k-columnmenu-indicators"
12392
12388
  name="filter"
12393
12389
  [svgIcon]="filterIcon">
@@ -12477,16 +12473,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
12477
12473
  [name]="icon"
12478
12474
  [svgIcon]="svgIcon"></kendo-icon-wrapper>
12479
12475
  {{ text }}
12480
- <span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir) || indicatorIcon || indicatorSVGIcon"
12476
+ <span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)"
12481
12477
  class="k-columnmenu-indicators">
12482
12478
  <kendo-icon-wrapper
12483
- [name]="indicatorIcon ? indicatorIcon : sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
12484
- [svgIcon]="indicatorSVGIcon ? indicatorSVGIcon : sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
12479
+ [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
12480
+ [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
12485
12481
  </kendo-icon-wrapper>
12486
12482
  <span *ngIf="showSortNumbering(column)" class="k-sort-index">{{sortOrder(column.field)}}</span>
12487
12483
  </span>
12488
12484
  <kendo-icon-wrapper
12489
- *ngIf="ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters"
12485
+ *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon"
12490
12486
  class="k-columnmenu-indicators"
12491
12487
  name="filter"
12492
12488
  [svgIcon]="filterIcon">
@@ -12520,8 +12516,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
12520
12516
  type: Input
12521
12517
  }], indicatorIcon: [{
12522
12518
  type: Input
12523
- }], indicatorSVGIcon: [{
12524
- type: Input
12525
12519
  }], text: [{
12526
12520
  type: Input
12527
12521
  }], selected: [{
@@ -12587,7 +12581,7 @@ class ColumnMenuAutoSizeAllColumnsComponent extends ColumnMenuItemBase {
12587
12581
  [svgIcon]="displayInlineFlexIcon"
12588
12582
  (itemClick)="autoSizeAllColumns()"
12589
12583
  ></kendo-grid-columnmenu-item>
12590
- `, 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", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
12584
+ `, 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"] }] });
12591
12585
  }
12592
12586
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuAutoSizeAllColumnsComponent, decorators: [{
12593
12587
  type: Component,
@@ -12659,7 +12653,7 @@ class ColumnMenuAutoSizeColumnComponent extends ColumnMenuItemBase {
12659
12653
  [svgIcon]="maxWidthIcon"
12660
12654
  (itemClick)="autoSizeColumn()"
12661
12655
  ></kendo-grid-columnmenu-item>
12662
- `, 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", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
12656
+ `, 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"] }] });
12663
12657
  }
12664
12658
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuAutoSizeColumnComponent, decorators: [{
12665
12659
  type: Component,
@@ -12787,7 +12781,7 @@ class ColumnMenuChooserComponent extends ColumnMenuItemBase {
12787
12781
  </kendo-grid-columnlist>
12788
12782
  </ng-template>
12789
12783
  </kendo-grid-columnmenu-item>
12790
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
12784
+ `, 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: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
12791
12785
  }
12792
12786
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuChooserComponent, decorators: [{
12793
12787
  type: Component,
@@ -12911,7 +12905,7 @@ class ColumnMenuStickComponent extends ColumnMenuItemBase {
12911
12905
  (itemClick)="toggleColumn()"
12912
12906
  [disabled]="disabled">
12913
12907
  </kendo-grid-columnmenu-item>
12914
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
12908
+ `, 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"] }] });
12915
12909
  }
12916
12910
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuStickComponent, decorators: [{
12917
12911
  type: Component,
@@ -13009,7 +13003,7 @@ class ColumnMenuLockComponent extends ColumnMenuItemBase {
13009
13003
  (itemClick)="toggleColumn()"
13010
13004
  [disabled]="disabled">
13011
13005
  </kendo-grid-columnmenu-item>
13012
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
13006
+ `, 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"] }] });
13013
13007
  }
13014
13008
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuLockComponent, decorators: [{
13015
13009
  type: Component,
@@ -13154,7 +13148,7 @@ class ColumnMenuPositionComponent extends ColumnMenuItemBase {
13154
13148
  </kendo-grid-columnmenu-stick>
13155
13149
  </ng-template>
13156
13150
  </kendo-grid-columnmenu-item>
13157
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "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" }] });
13151
+ `, 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" }] });
13158
13152
  }
13159
13153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuPositionComponent, decorators: [{
13160
13154
  type: Component,
@@ -13286,7 +13280,7 @@ class ColumnMenuFilterComponent extends ColumnMenuItemBase {
13286
13280
  </kendo-grid-filter-menu-container>
13287
13281
  </ng-template>
13288
13282
  </kendo-grid-columnmenu-item>
13289
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }] });
13283
+ `, 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: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }] });
13290
13284
  }
13291
13285
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuFilterComponent, decorators: [{
13292
13286
  type: Component,
@@ -13589,7 +13583,7 @@ class ColumnMenuSortComponent extends ColumnMenuItemBase {
13589
13583
  (itemClick)="toggleSort('desc')"
13590
13584
  [selected]="sortedDesc">
13591
13585
  </kendo-grid-columnmenu-item>
13592
- `, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
13586
+ `, 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"] }] });
13593
13587
  }
13594
13588
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuSortComponent, decorators: [{
13595
13589
  type: Component,
@@ -20445,8 +20439,8 @@ const packageMetadata = {
20445
20439
  productName: 'Kendo UI for Angular',
20446
20440
  productCode: 'KENDOUIANGULAR',
20447
20441
  productCodes: ['KENDOUIANGULAR'],
20448
- publishDate: 1747748447,
20449
- version: '19.0.0-develop.27',
20442
+ publishDate: 1747810820,
20443
+ version: '19.0.0-develop.29',
20450
20444
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
20451
20445
  };
20452
20446
 
@@ -24364,8 +24358,6 @@ class FilterToolbarToolComponent {
24364
24358
  columnMenuService;
24365
24359
  columns;
24366
24360
  filter;
24367
- activeFilterSVGIcon = filterIcon;
24368
- activeFilterIcon = 'k-i-filter';
24369
24361
  isFilterApplied(column) {
24370
24362
  if (!this.filter?.filters) {
24371
24363
  return false;
@@ -24471,8 +24463,7 @@ class FilterToolbarToolComponent {
24471
24463
  (focus)="onItemFocus(filterItem)"
24472
24464
  (focusout)="onItemFocusOut()"
24473
24465
  (keydown.enter)="toggleItem($event, i)"
24474
- [indicatorSVGIcon]="isFilterApplied(column) ? activeFilterSVGIcon : null"
24475
- [indicatorIcon]="isFilterApplied(column) ? activeFilterIcon : null"
24466
+ [indicatorIcon]="isFilterApplied(column)"
24476
24467
  (itemClick)="navigateView(getColumnComponent(column))"
24477
24468
  [expanded]="false"
24478
24469
  [focused]="isItemFocused(filterItem)">
@@ -24488,7 +24479,7 @@ class FilterToolbarToolComponent {
24488
24479
  </ng-template>
24489
24480
  </kendo-grid-columnmenu-item>
24490
24481
  </div>
24491
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
24482
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
24492
24483
  }
24493
24484
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolbarToolComponent, decorators: [{
24494
24485
  type: Component,
@@ -24505,8 +24496,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
24505
24496
  (focus)="onItemFocus(filterItem)"
24506
24497
  (focusout)="onItemFocusOut()"
24507
24498
  (keydown.enter)="toggleItem($event, i)"
24508
- [indicatorSVGIcon]="isFilterApplied(column) ? activeFilterSVGIcon : null"
24509
- [indicatorIcon]="isFilterApplied(column) ? activeFilterIcon : null"
24499
+ [indicatorIcon]="isFilterApplied(column)"
24510
24500
  (itemClick)="navigateView(getColumnComponent(column))"
24511
24501
  [expanded]="false"
24512
24502
  [focused]="isItemFocused(filterItem)">
@@ -25646,7 +25636,8 @@ class AdaptiveRendererComponent {
25646
25636
  size="large"
25647
25637
  icon="save"
25648
25638
  [svgIcon]="saveIcon"
25649
- (click)="saveEditing()">
25639
+ (click)="saveEditing()"
25640
+ [disabled]="!externalEditingSettings.formGroup.valid">
25650
25641
  {{messageFor('externalEditingSaveText')}}
25651
25642
  </button>
25652
25643
  </ng-template>
@@ -25754,7 +25745,7 @@ class AdaptiveRendererComponent {
25754
25745
  {{messageFor('filterFilterButton')}}
25755
25746
  </button>
25756
25747
  </ng-template>
25757
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "component", type: ActionSheetViewComponent, selector: "kendo-actionsheet-view", inputs: ["title", "subtitle", "titleId"] }, { kind: "component", type: FilterToolbarToolComponent, selector: "kendo-filter-toolbar-tool", outputs: ["close"] }, { kind: "component", type: ButtonDirective, 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"] }, { kind: "directive", type: ActionSheetHeaderTemplateDirective, selector: "[kendoActionSheetHeaderTemplate]" }, { kind: "directive", type: ActionSheetContentTemplateDirective, selector: "[kendoActionSheetContentTemplate]" }, { kind: "directive", type: ActionSheetFooterTemplateDirective, selector: "[kendoActionSheetFooterTemplate]" }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { kind: "component", type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: FormComponent, selector: "kendo-grid-external-form", inputs: ["controls", "formSettings", "formGroup", "actionButtons"], outputs: ["formSubmit"] }] });
25748
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "component", type: ActionSheetViewComponent, selector: "kendo-actionsheet-view", inputs: ["title", "subtitle", "titleId"] }, { kind: "component", type: FilterToolbarToolComponent, selector: "kendo-filter-toolbar-tool", outputs: ["close"] }, { kind: "component", type: ButtonDirective, 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"] }, { kind: "directive", type: ActionSheetHeaderTemplateDirective, selector: "[kendoActionSheetHeaderTemplate]" }, { kind: "directive", type: ActionSheetContentTemplateDirective, selector: "[kendoActionSheetContentTemplate]" }, { kind: "directive", type: ActionSheetFooterTemplateDirective, selector: "[kendoActionSheetFooterTemplate]" }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { kind: "component", type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { 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: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: FormComponent, selector: "kendo-grid-external-form", inputs: ["controls", "formSettings", "formGroup", "actionButtons"], outputs: ["formSubmit"] }] });
25758
25749
  }
25759
25750
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveRendererComponent, decorators: [{
25760
25751
  type: Component,
@@ -26045,7 +26036,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
26045
26036
  size="large"
26046
26037
  icon="save"
26047
26038
  [svgIcon]="saveIcon"
26048
- (click)="saveEditing()">
26039
+ (click)="saveEditing()"
26040
+ [disabled]="!externalEditingSettings.formGroup.valid">
26049
26041
  {{messageFor('externalEditingSaveText')}}
26050
26042
  </button>
26051
26043
  </ng-template>
@@ -32049,13 +32041,18 @@ class ToolbarEditingToolBase extends ToolbarToolBase {
32049
32041
  }
32050
32042
  this.isEdited = this.editService.isEditing();
32051
32043
  let isToolInactive = false;
32044
+ let formGroup;
32052
32045
  const selectionPresent = isPresent$1(this.lastSelectionIndex);
32046
+ const editServiceCtx = this.editService.context(this.lastSelectionIndex);
32047
+ if (this.isEdited && isPresent$1(editServiceCtx)) {
32048
+ formGroup = this.editService.context(this.lastSelectionIndex).group;
32049
+ }
32053
32050
  switch (this.commandName) {
32054
32051
  case ToolbarToolName.edit:
32055
32052
  isToolInactive = this.isEdited || !selectionPresent;
32056
32053
  break;
32057
32054
  case ToolbarToolName.save:
32058
- isToolInactive = !(this.isEdited || this.editService.hasNewItem);
32055
+ isToolInactive = !(this.isEdited || this.editService.hasNewItem) || !formGroup?.valid;
32059
32056
  break;
32060
32057
  case ToolbarToolName.remove:
32061
32058
  isToolInactive = this.isEdited || !selectionPresent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-grid",
3
- "version": "19.0.0-develop.27",
3
+ "version": "19.0.0-develop.29",
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,15 +26,10 @@
26
26
  "migrations": {
27
27
  "options": {
28
28
  "parser": "tsx",
29
- "pattern": "*.{t,j}s"
29
+ "pattern": "*.{ts,html}"
30
30
  },
31
31
  "codemods": {
32
32
  "19": [
33
- {
34
- "description": "Migrate all breaking changes for the grid package",
35
- "file": "codemods/v19/index.js",
36
- "prompt": "true"
37
- },
38
33
  {
39
34
  "description": "The Grid's kendoGridGroupBinding directive is deprecated",
40
35
  "file": "codemods/v19/grid-kendogridgroupbinding.js",
@@ -46,7 +41,7 @@
46
41
  "package": {
47
42
  "productName": "Kendo UI for Angular",
48
43
  "productCode": "KENDOUIANGULAR",
49
- "publishDate": 1747748447,
44
+ "publishDate": 1747810820,
50
45
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
51
46
  }
52
47
  },
@@ -59,29 +54,29 @@
59
54
  "@progress/kendo-data-query": "^1.0.0",
60
55
  "@progress/kendo-drawing": "^1.21.0",
61
56
  "@progress/kendo-licensing": "^1.5.0",
62
- "@progress/kendo-angular-buttons": "19.0.0-develop.27",
63
- "@progress/kendo-angular-common": "19.0.0-develop.27",
64
- "@progress/kendo-angular-dateinputs": "19.0.0-develop.27",
65
- "@progress/kendo-angular-layout": "19.0.0-develop.27",
66
- "@progress/kendo-angular-navigation": "19.0.0-develop.27",
67
- "@progress/kendo-angular-dropdowns": "19.0.0-develop.27",
68
- "@progress/kendo-angular-excel-export": "19.0.0-develop.27",
69
- "@progress/kendo-angular-icons": "19.0.0-develop.27",
70
- "@progress/kendo-angular-inputs": "19.0.0-develop.27",
71
- "@progress/kendo-angular-indicators": "19.0.0-develop.27",
72
- "@progress/kendo-angular-intl": "19.0.0-develop.27",
73
- "@progress/kendo-angular-l10n": "19.0.0-develop.27",
74
- "@progress/kendo-angular-label": "19.0.0-develop.27",
75
- "@progress/kendo-angular-pager": "19.0.0-develop.27",
76
- "@progress/kendo-angular-pdf-export": "19.0.0-develop.27",
77
- "@progress/kendo-angular-popup": "19.0.0-develop.27",
78
- "@progress/kendo-angular-toolbar": "19.0.0-develop.27",
79
- "@progress/kendo-angular-utils": "19.0.0-develop.27",
57
+ "@progress/kendo-angular-buttons": "19.0.0-develop.29",
58
+ "@progress/kendo-angular-common": "19.0.0-develop.29",
59
+ "@progress/kendo-angular-dateinputs": "19.0.0-develop.29",
60
+ "@progress/kendo-angular-layout": "19.0.0-develop.29",
61
+ "@progress/kendo-angular-navigation": "19.0.0-develop.29",
62
+ "@progress/kendo-angular-dropdowns": "19.0.0-develop.29",
63
+ "@progress/kendo-angular-excel-export": "19.0.0-develop.29",
64
+ "@progress/kendo-angular-icons": "19.0.0-develop.29",
65
+ "@progress/kendo-angular-inputs": "19.0.0-develop.29",
66
+ "@progress/kendo-angular-indicators": "19.0.0-develop.29",
67
+ "@progress/kendo-angular-intl": "19.0.0-develop.29",
68
+ "@progress/kendo-angular-l10n": "19.0.0-develop.29",
69
+ "@progress/kendo-angular-label": "19.0.0-develop.29",
70
+ "@progress/kendo-angular-pager": "19.0.0-develop.29",
71
+ "@progress/kendo-angular-pdf-export": "19.0.0-develop.29",
72
+ "@progress/kendo-angular-popup": "19.0.0-develop.29",
73
+ "@progress/kendo-angular-toolbar": "19.0.0-develop.29",
74
+ "@progress/kendo-angular-utils": "19.0.0-develop.29",
80
75
  "rxjs": "^6.5.3 || ^7.0.0"
81
76
  },
82
77
  "dependencies": {
83
78
  "tslib": "^2.3.1",
84
- "@progress/kendo-angular-schematics": "19.0.0-develop.27",
79
+ "@progress/kendo-angular-schematics": "19.0.0-develop.29",
85
80
  "@progress/kendo-common": "^1.0.1",
86
81
  "@progress/kendo-file-saver": "^1.0.0"
87
82
  },
@@ -33,8 +33,6 @@ export declare class FilterToolbarToolComponent implements AfterViewInit, OnDest
33
33
  columnMenuService: ColumnMenuService;
34
34
  columns: Array<ColumnBase>;
35
35
  filter: any;
36
- activeFilterSVGIcon: import("@progress/kendo-svg-icons").SVGIcon;
37
- activeFilterIcon: string;
38
36
  isFilterApplied(column: any): boolean;
39
37
  isItemFocused(filterItem: ColumnMenuItemComponent): boolean;
40
38
  onItemFocus(item: ColumnMenuItemComponent): void;
@@ -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.27',
8
- '@progress/kendo-angular-navigation': '19.0.0-develop.27',
7
+ '@progress/kendo-angular-treeview': '19.0.0-develop.29',
8
+ '@progress/kendo-angular-navigation': '19.0.0-develop.29',
9
9
  // peer dependency of kendo-angular-inputs
10
- '@progress/kendo-angular-dialog': '19.0.0-develop.27',
10
+ '@progress/kendo-angular-dialog': '19.0.0-develop.29',
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.27'
14
+ '@progress/kendo-angular-progressbar': '19.0.0-develop.29'
15
15
  } });
16
16
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
17
17
  }