@progress/kendo-angular-grid 18.5.0-develop.1 → 18.5.0-develop.11

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 (50) hide show
  1. package/column-menu/column-chooser.component.d.ts +0 -4
  2. package/column-menu/column-menu-item.component.d.ts +3 -4
  3. package/columns/column-base.d.ts +3 -2
  4. package/columns/column.component.d.ts +5 -5
  5. package/common/field-datatype.d.ts +9 -0
  6. package/directives.d.ts +5 -3
  7. package/editing/form/dialog-form.component.d.ts +27 -0
  8. package/editing/form/form-formfield.component.d.ts +24 -0
  9. package/editing/form/form.component.d.ts +28 -0
  10. package/editing/form/index.d.ts +8 -0
  11. package/editing/form/models.d.ts +196 -0
  12. package/editing-directives/editing-directive-base.d.ts +10 -3
  13. package/editing-directives/external-editing.directive.d.ts +46 -0
  14. package/esm2022/column-menu/column-chooser.component.mjs +2 -13
  15. package/esm2022/column-menu/column-list.component.mjs +53 -33
  16. package/esm2022/column-menu/column-menu-item.component.mjs +3 -4
  17. package/esm2022/columns/column-base.mjs +4 -0
  18. package/esm2022/columns/column.component.mjs +0 -4
  19. package/esm2022/common/field-datatype.mjs +5 -0
  20. package/esm2022/directives.mjs +8 -1
  21. package/esm2022/editing/edit.service.mjs +1 -1
  22. package/esm2022/editing/form/dialog-form.component.mjs +102 -0
  23. package/esm2022/editing/form/form-formfield.component.mjs +161 -0
  24. package/esm2022/editing/form/form.component.mjs +153 -0
  25. package/esm2022/editing/form/index.mjs +8 -0
  26. package/esm2022/editing/form/models.mjs +5 -0
  27. package/esm2022/editing-directives/editing-directive-base.mjs +33 -5
  28. package/esm2022/editing-directives/external-editing.directive.mjs +130 -0
  29. package/esm2022/filtering/cell/filter-cell-host.directive.mjs +5 -5
  30. package/esm2022/filtering/filter-host.directive.mjs +5 -7
  31. package/esm2022/filtering/menu/filter-menu-host.directive.mjs +5 -5
  32. package/esm2022/grid.component.mjs +71 -14
  33. package/esm2022/grid.module.mjs +15 -11
  34. package/esm2022/index.mjs +1 -0
  35. package/esm2022/localization/messages.mjs +62 -1
  36. package/esm2022/package-metadata.mjs +2 -2
  37. package/esm2022/rendering/footer/footer.component.mjs +12 -5
  38. package/esm2022/rendering/table-body.component.mjs +1 -1
  39. package/esm2022/utils.mjs +1 -1
  40. package/fesm2022/progress-kendo-angular-grid.mjs +769 -115
  41. package/filtering/cell/filter-cell-host.directive.d.ts +2 -2
  42. package/filtering/filter-host.directive.d.ts +2 -3
  43. package/filtering/menu/filter-menu-host.directive.d.ts +2 -2
  44. package/grid.component.d.ts +0 -6
  45. package/grid.module.d.ts +15 -11
  46. package/index.d.ts +3 -0
  47. package/localization/messages.d.ts +46 -1
  48. package/package.json +19 -19
  49. package/rendering/footer/footer.component.d.ts +3 -1
  50. package/schematics/ngAdd/index.js +4 -4
@@ -96,6 +96,7 @@ import { LocalizedMessagesDirective } from './localization/localized-messages.di
96
96
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
97
97
  import { PagerTemplateDirective, PagerContextService, PagerNavigationService, KENDO_PAGER } from '@progress/kendo-angular-pager';
98
98
  import { RowspanService } from './rendering/rowspan.service';
99
+ import { DialogContainerDirective } from '@progress/kendo-angular-dialog';
99
100
  import * as i0 from "@angular/core";
100
101
  import * as i1 from "./layout/browser-support.service";
101
102
  import * as i2 from "./selection/selection.service";
@@ -861,9 +862,6 @@ export class GridComponent {
861
862
  columnList;
862
863
  selectionDirective = false;
863
864
  ariaRootId = `k-${guid()}`;
864
- /**
865
- * @hidden
866
- */
867
865
  showLicenseWatermark = false;
868
866
  columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
869
867
  if (!isUniversal()) {
@@ -1662,9 +1660,6 @@ export class GridComponent {
1662
1660
  updateNavigationMetadata() {
1663
1661
  this.navigationService.metadata = this.navigationMetadata();
1664
1662
  }
1665
- /**
1666
- * @hidden
1667
- */
1668
1663
  reorder({ target, source, before, changeContainer }) {
1669
1664
  this.ngZone.run(() => {
1670
1665
  const columnsForLevel = sortColumns(this.allColumnsForLevel(source.level));
@@ -2503,6 +2498,30 @@ export class GridComponent {
2503
2498
 
2504
2499
  i18n-groupChipMenuNext="kendo.grid.groupChipMenuNext|The text for the Group pane Chip Menu Move as next item"
2505
2500
  groupChipMenuNext="Move as next"
2501
+
2502
+ i18n-formValidationErrorText="kendo.grid.formValidationErrorText|The default text of a form validation error when using external editing."
2503
+ formValidationErrorText="{{ 'The {fieldName} field has {errorName} validation error' }}"
2504
+
2505
+ i18n-removeConfirmationDialogTitle="kendo.grid.removeConfirmationDialogTitle|The title of the built-in remove item confirmation Dialog"
2506
+ removeConfirmationDialogTitle="Please confirm"
2507
+
2508
+ i18n-removeConfirmationDialogContent="kendo.grid.removeConfirmationDialogContent|The content of the built-in remove item confirmation Dialog"
2509
+ removeConfirmationDialogContent="Are you sure you want to delete this item?"
2510
+
2511
+ i18n-removeConfirmationDialogConfirmText="kendo.grid.removeConfirmationDialogConfirmText|The text of the built-in remove item confirmation Dialog confirm action button"
2512
+ removeConfirmationDialogConfirmText="Yes"
2513
+
2514
+ i18n-removeConfirmationDialogRejectText="kendo.grid.removeConfirmationDialogRejectText|The text of the built-in remove item confirmation Dialog reject action button"
2515
+ removeConfirmationDialogRejectText="No"
2516
+
2517
+ i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container"
2518
+ externalEditingTitle="Edit"
2519
+
2520
+ i18n-externalEditingSaveText="kendo.grid.externalEditingSaveText|The text of the external editing form Save button"
2521
+ externalEditingSaveText="Save"
2522
+
2523
+ i18n-externalEditingCancelText="kendo.grid.externalEditingCancelText|The text of the external editing form Cancel button"
2524
+ externalEditingCancelText="Cancel"
2506
2525
  >
2507
2526
  </ng-container>
2508
2527
  <kendo-grid-toolbar
@@ -2731,7 +2750,8 @@ export class GridComponent {
2731
2750
  [columns]="$any(lockedLeafColumns)"
2732
2751
  [detailTemplate]="detailTemplate"
2733
2752
  [logicalRowIndex]="ariaRowCount"
2734
- [totalColumns]="columnsContainer">
2753
+ [totalColumns]="columnsContainer"
2754
+ [totalColumnsCount]="leafColumns.length">
2735
2755
  </tfoot>
2736
2756
  </table>
2737
2757
  </div>
@@ -2758,7 +2778,8 @@ export class GridComponent {
2758
2778
  [columns]="$any(headerColumns)"
2759
2779
  [lockedColumnsCount]="lockedLeafColumns.length"
2760
2780
  [detailTemplate]="detailTemplate"
2761
- [totalColumns]="columnsContainer">
2781
+ [totalColumns]="columnsContainer"
2782
+ [totalColumnsCount]="leafColumns.length">
2762
2783
  </tfoot>
2763
2784
  </table>
2764
2785
  </div>
@@ -2779,6 +2800,8 @@ export class GridComponent {
2779
2800
  </colgroup>
2780
2801
  <thead kendoGridHeader
2781
2802
  *ngIf="!hideHeader"
2803
+ class="k-grid-header"
2804
+ [class.k-grid-draggable-header]="groupable || reorderable"
2782
2805
  role="rowgroup"
2783
2806
  [resizable]="resizable"
2784
2807
  [scrollable]="false"
@@ -2821,7 +2844,8 @@ export class GridComponent {
2821
2844
  [groups]="group"
2822
2845
  [columns]="$any(leafColumns)"
2823
2846
  [detailTemplate]="detailTemplate"
2824
- [totalColumns]="columnsContainer">
2847
+ [totalColumns]="columnsContainer"
2848
+ [totalColumnsCount]="leafColumns.length">
2825
2849
  </tfoot>
2826
2850
  </table>
2827
2851
  </ng-container>
@@ -2904,8 +2928,10 @@ export class GridComponent {
2904
2928
  <kendo-pager-info *ngIf="normalizedPageableSettings.info">
2905
2929
  </kendo-pager-info>
2906
2930
  </ng-template>
2931
+ <div kendoDialogContainer></div>
2932
+
2907
2933
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
2908
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i25.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i25.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i25.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: i25.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i25.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i25.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: i25.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i25.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i25.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
2934
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns", "totalColumnsCount"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i25.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i25.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i25.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: i25.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i25.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i25.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: i25.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i25.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i25.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DialogContainerDirective, selector: "[kendoDialogContainer]" }], encapsulation: i0.ViewEncapsulation.None });
2909
2935
  }
2910
2936
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
2911
2937
  type: Component,
@@ -3214,6 +3240,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3214
3240
 
3215
3241
  i18n-groupChipMenuNext="kendo.grid.groupChipMenuNext|The text for the Group pane Chip Menu Move as next item"
3216
3242
  groupChipMenuNext="Move as next"
3243
+
3244
+ i18n-formValidationErrorText="kendo.grid.formValidationErrorText|The default text of a form validation error when using external editing."
3245
+ formValidationErrorText="{{ 'The {fieldName} field has {errorName} validation error' }}"
3246
+
3247
+ i18n-removeConfirmationDialogTitle="kendo.grid.removeConfirmationDialogTitle|The title of the built-in remove item confirmation Dialog"
3248
+ removeConfirmationDialogTitle="Please confirm"
3249
+
3250
+ i18n-removeConfirmationDialogContent="kendo.grid.removeConfirmationDialogContent|The content of the built-in remove item confirmation Dialog"
3251
+ removeConfirmationDialogContent="Are you sure you want to delete this item?"
3252
+
3253
+ i18n-removeConfirmationDialogConfirmText="kendo.grid.removeConfirmationDialogConfirmText|The text of the built-in remove item confirmation Dialog confirm action button"
3254
+ removeConfirmationDialogConfirmText="Yes"
3255
+
3256
+ i18n-removeConfirmationDialogRejectText="kendo.grid.removeConfirmationDialogRejectText|The text of the built-in remove item confirmation Dialog reject action button"
3257
+ removeConfirmationDialogRejectText="No"
3258
+
3259
+ i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container"
3260
+ externalEditingTitle="Edit"
3261
+
3262
+ i18n-externalEditingSaveText="kendo.grid.externalEditingSaveText|The text of the external editing form Save button"
3263
+ externalEditingSaveText="Save"
3264
+
3265
+ i18n-externalEditingCancelText="kendo.grid.externalEditingCancelText|The text of the external editing form Cancel button"
3266
+ externalEditingCancelText="Cancel"
3217
3267
  >
3218
3268
  </ng-container>
3219
3269
  <kendo-grid-toolbar
@@ -3442,7 +3492,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3442
3492
  [columns]="$any(lockedLeafColumns)"
3443
3493
  [detailTemplate]="detailTemplate"
3444
3494
  [logicalRowIndex]="ariaRowCount"
3445
- [totalColumns]="columnsContainer">
3495
+ [totalColumns]="columnsContainer"
3496
+ [totalColumnsCount]="leafColumns.length">
3446
3497
  </tfoot>
3447
3498
  </table>
3448
3499
  </div>
@@ -3469,7 +3520,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3469
3520
  [columns]="$any(headerColumns)"
3470
3521
  [lockedColumnsCount]="lockedLeafColumns.length"
3471
3522
  [detailTemplate]="detailTemplate"
3472
- [totalColumns]="columnsContainer">
3523
+ [totalColumns]="columnsContainer"
3524
+ [totalColumnsCount]="leafColumns.length">
3473
3525
  </tfoot>
3474
3526
  </table>
3475
3527
  </div>
@@ -3490,6 +3542,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3490
3542
  </colgroup>
3491
3543
  <thead kendoGridHeader
3492
3544
  *ngIf="!hideHeader"
3545
+ class="k-grid-header"
3546
+ [class.k-grid-draggable-header]="groupable || reorderable"
3493
3547
  role="rowgroup"
3494
3548
  [resizable]="resizable"
3495
3549
  [scrollable]="false"
@@ -3532,7 +3586,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3532
3586
  [groups]="group"
3533
3587
  [columns]="$any(leafColumns)"
3534
3588
  [detailTemplate]="detailTemplate"
3535
- [totalColumns]="columnsContainer">
3589
+ [totalColumns]="columnsContainer"
3590
+ [totalColumnsCount]="leafColumns.length">
3536
3591
  </tfoot>
3537
3592
  </table>
3538
3593
  </ng-container>
@@ -3615,6 +3670,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3615
3670
  <kendo-pager-info *ngIf="normalizedPageableSettings.info">
3616
3671
  </kendo-pager-info>
3617
3672
  </ng-template>
3673
+ <div kendoDialogContainer></div>
3674
+
3618
3675
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3619
3676
  `,
3620
3677
  standalone: true,
@@ -3623,7 +3680,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3623
3680
  TableDirective, GridTableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective,
3624
3681
  ListComponent, DragTargetContainerDirective, DropTargetContainerDirective, DraggableDirective,
3625
3682
  GridMarqueeDirective, FooterComponent, TableBodyComponent, LoadingComponent, StatusBarComponent,
3626
- IconWrapperComponent, WatermarkOverlayComponent, ...KENDO_PAGER, NgTemplateOutlet
3683
+ IconWrapperComponent, WatermarkOverlayComponent, ...KENDO_PAGER, NgTemplateOutlet, DialogContainerDirective
3627
3684
  ]
3628
3685
  }]
3629
3686
  }], ctorParameters: function () { return [{ type: i1.BrowserSupportService }, { type: i2.SelectionService }, { type: i3.CellSelectionService }, { type: i0.ElementRef }, { type: i4.GroupInfoService }, { type: i5.GroupsService }, { type: i6.ChangeNotificationService }, { type: i7.DetailsService }, { type: i8.EditService }, { type: i9.FilterService }, { type: i10.PDFService }, { type: i11.ResponsiveService }, { type: i0.Renderer2 }, { type: i12.ExcelService }, { type: i0.NgZone }, { type: i13.ScrollSyncService }, { type: i14.DomEventsService }, { type: i15.ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: i16.ColumnReorderService }, { type: i17.ColumnInfoService }, { type: i18.NavigationService }, { type: i19.SortService }, { type: i20.ScrollRequestService }, { type: i21.LocalizationService }, { type: i22.ContextService }, { type: i23.SizingOptionsService }, { type: i24.RowReorderService }]; }, propDecorators: { data: [{
@@ -130,15 +130,19 @@ import * as i114 from "./selection/selection.directive";
130
130
  import * as i115 from "./editing-directives/template-editing.directive";
131
131
  import * as i116 from "./editing-directives/reactive-editing.directive";
132
132
  import * as i117 from "./editing-directives/in-cell-editing.directive";
133
- import * as i118 from "./rendering/details-expand.directive";
134
- import * as i119 from "./rendering/groups-expand.directive";
135
- import * as i120 from "./grouping/group-scroll-binding.directive";
136
- import * as i121 from "./selection/marquee.directive";
137
- import * as i122 from "./rendering/common/spacer.component";
138
- import * as i123 from "./rendering/toolbar/toolbar-focusable.directive";
139
- import * as i124 from "./aggregates/status-bar.component";
140
- import * as i125 from "./aggregates/status-bar-template.directive";
141
- import * as i126 from "./common/clipboard.directive";
133
+ import * as i118 from "./editing-directives/external-editing.directive";
134
+ import * as i119 from "./rendering/details-expand.directive";
135
+ import * as i120 from "./rendering/groups-expand.directive";
136
+ import * as i121 from "./grouping/group-scroll-binding.directive";
137
+ import * as i122 from "./selection/marquee.directive";
138
+ import * as i123 from "./rendering/common/spacer.component";
139
+ import * as i124 from "./rendering/toolbar/toolbar-focusable.directive";
140
+ import * as i125 from "./aggregates/status-bar.component";
141
+ import * as i126 from "./aggregates/status-bar-template.directive";
142
+ import * as i127 from "./common/clipboard.directive";
143
+ import * as i128 from "./editing/form/form.component";
144
+ import * as i129 from "./editing/form/dialog-form.component";
145
+ import * as i130 from "./editing/form/form-formfield.component";
142
146
  // IMPORTANT: NgModule export kept for backwards compatibility
143
147
  /**
144
148
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -163,7 +167,7 @@ import * as i126 from "./common/clipboard.directive";
163
167
  */
164
168
  export class GridModule {
165
169
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
166
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GridModule, imports: [i1.GroupHeaderTemplateDirective, i2.GroupHeaderColumnTemplateDirective, i3.GroupFooterTemplateDirective, i4.GroupHeaderComponent, i5.GroupPanelComponent, i6.ColumnComponent, i7.ColumnGroupComponent, i8.LogicalCellDirective, i9.LogicalRowDirective, i10.FocusableDirective, i11.FooterTemplateDirective, i12.ColGroupComponent, i13.ResizableContainerDirective, i14.TemplateContextDirective, i15.FieldAccessorPipe, i16.DetailTemplateDirective, i17.SpanColumnComponent, i18.LoadingComponent, i19.GridTableDirective, i20.CommandColumnComponent, i21.CheckboxColumnComponent, i22.SelectionCheckboxDirective, i23.CellTemplateDirective, i24.EditTemplateDirective, i25.RowDragHandleTemplateDirective, i26.RowDragHintTemplateDirective, i27.TableBodyComponent, i28.NoRecordsTemplateDirective, i29.CellComponent, i30.EditCommandDirective, i31.CancelCommandDirective, i32.SaveCommandDirective, i33.RemoveCommandDirective, i34.AddCommandDirective, i35.AddCommandToolbarDirective, i36.CellLoadingTemplateDirective, i37.LoadingTemplateDirective, i38.RowReorderColumnComponent, i39.HeaderComponent, i40.HeaderTemplateDirective, i41.ColumnHandleDirective, i42.SelectAllCheckboxDirective, i43.FooterComponent, i44.CustomMessagesComponent, i44.PagerFocusableDirective, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerTemplateDirective, i44.PagerComponent, i44.PagerSpacerComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, i46.FilterRowComponent, i47.FilterCellComponent, i48.FilterCellTemplateDirective, i49.StringFilterCellComponent, i50.NumericFilterCellComponent, i51.AutoCompleteFilterCellComponent, i52.BooleanFilterCellComponent, i53.FilterCellHostDirective, i54.FilterCellWrapperComponent, i55.DateFilterCellComponent, i6.ColumnComponent, i7.ColumnGroupComponent, i8.LogicalCellDirective, i9.LogicalRowDirective, i10.FocusableDirective, i11.FooterTemplateDirective, i12.ColGroupComponent, i13.ResizableContainerDirective, i14.TemplateContextDirective, i15.FieldAccessorPipe, i16.DetailTemplateDirective, i17.SpanColumnComponent, i18.LoadingComponent, i19.GridTableDirective, i56.FilterCellOperatorsComponent, i57.ContainsFilterOperatorComponent, i58.DoesNotContainFilterOperatorComponent, i59.EndsWithFilterOperatorComponent, i60.EqualFilterOperatorComponent, i61.IsEmptyFilterOperatorComponent, i62.IsNotEmptyFilterOperatorComponent, i63.IsNotNullFilterOperatorComponent, i64.IsNullFilterOperatorComponent, i65.NotEqualFilterOperatorComponent, i66.StartsWithFilterOperatorComponent, i67.GreaterFilterOperatorComponent, i68.GreaterOrEqualToFilterOperatorComponent, i69.LessFilterOperatorComponent, i70.LessOrEqualToFilterOperatorComponent, i71.AfterFilterOperatorComponent, i72.AfterEqFilterOperatorComponent, i73.BeforeEqFilterOperatorComponent, i74.BeforeFilterOperatorComponent, i75.FilterInputDirective, i6.ColumnComponent, i7.ColumnGroupComponent, i8.LogicalCellDirective, i9.LogicalRowDirective, i10.FocusableDirective, i11.FooterTemplateDirective, i12.ColGroupComponent, i13.ResizableContainerDirective, i14.TemplateContextDirective, i15.FieldAccessorPipe, i16.DetailTemplateDirective, i17.SpanColumnComponent, i18.LoadingComponent, i19.GridTableDirective, i56.FilterCellOperatorsComponent, i57.ContainsFilterOperatorComponent, i58.DoesNotContainFilterOperatorComponent, i59.EndsWithFilterOperatorComponent, i60.EqualFilterOperatorComponent, i61.IsEmptyFilterOperatorComponent, i62.IsNotEmptyFilterOperatorComponent, i63.IsNotNullFilterOperatorComponent, i64.IsNullFilterOperatorComponent, i65.NotEqualFilterOperatorComponent, i66.StartsWithFilterOperatorComponent, i67.GreaterFilterOperatorComponent, i68.GreaterOrEqualToFilterOperatorComponent, i69.LessFilterOperatorComponent, i70.LessOrEqualToFilterOperatorComponent, i71.AfterFilterOperatorComponent, i72.AfterEqFilterOperatorComponent, i73.BeforeEqFilterOperatorComponent, i74.BeforeFilterOperatorComponent, i75.FilterInputDirective, i76.FilterMenuComponent, i77.FilterMenuContainerComponent, i78.FilterMenuInputWrapperComponent, i79.StringFilterMenuInputComponent, i80.StringFilterMenuComponent, i81.FilterMenuTemplateDirective, i82.NumericFilterMenuComponent, i83.NumericFilterMenuInputComponent, i84.DateFilterMenuInputComponent, i85.DateFilterMenuComponent, i86.FilterMenuHostDirective, i87.BooleanFilterMenuComponent, i88.FilterMenuDropDownListDirective, i89.BooleanFilterRadioButtonDirective, i90.ColumnMenuChooserItemCheckedDirective, i91.ColumnListComponent, i92.ColumnChooserComponent, i93.ColumnMenuChooserComponent, i94.ColumnMenuFilterComponent, i95.ColumnMenuItemComponent, i96.ColumnMenuItemContentTemplateDirective, i97.ColumnMenuSortComponent, i98.ColumnMenuComponent, i99.ColumnMenuLockComponent, i100.ColumnMenuTemplateDirective, i101.ColumnMenuContainerComponent, i102.ColumnMenuItemDirective, i103.ColumnMenuStickComponent, i104.ColumnMenuPositionComponent, i105.ColumnMenuAutoSizeColumnComponent, i106.ColumnMenuAutoSizeAllColumnsComponent, i107.GridComponent, i108.ListComponent, i109.ToolbarComponent, i110.LocalizedMessagesDirective, i111.CustomMessagesComponent, i112.DataBindingDirective, i113.ToolbarTemplateDirective, i114.SelectionDirective, i115.TemplateEditingDirective, i116.ReactiveEditingDirective, i117.InCellEditingDirective, i118.ExpandDetailsDirective, i119.ExpandGroupDirective, i120.GroupBindingDirective, i121.GridMarqueeDirective, i122.GridSpacerComponent, i123.GridToolbarFocusableDirective, i124.StatusBarComponent, i125.StatusBarTemplateDirective, i126.GridClipboardDirective, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, TableDirective], exports: [i107.GridComponent, i113.ToolbarTemplateDirective, i109.ToolbarComponent, i122.GridSpacerComponent, i125.StatusBarTemplateDirective, i112.DataBindingDirective, i114.SelectionDirective, i111.CustomMessagesComponent, i120.GroupBindingDirective, i115.TemplateEditingDirective, i116.ReactiveEditingDirective, i117.InCellEditingDirective, i118.ExpandDetailsDirective, i119.ExpandGroupDirective, i123.GridToolbarFocusableDirective, i1.GroupHeaderTemplateDirective, i2.GroupHeaderColumnTemplateDirective, i3.GroupFooterTemplateDirective, i4.GroupHeaderComponent, i5.GroupPanelComponent, i6.ColumnComponent, i7.ColumnGroupComponent, i8.LogicalCellDirective, i9.LogicalRowDirective, i10.FocusableDirective, i11.FooterTemplateDirective, i12.ColGroupComponent, i13.ResizableContainerDirective, i14.TemplateContextDirective, i15.FieldAccessorPipe, i16.DetailTemplateDirective, i17.SpanColumnComponent, i18.LoadingComponent, i19.GridTableDirective, i20.CommandColumnComponent, i21.CheckboxColumnComponent, i22.SelectionCheckboxDirective, i23.CellTemplateDirective, i24.EditTemplateDirective, i25.RowDragHandleTemplateDirective, i26.RowDragHintTemplateDirective, i27.TableBodyComponent, i28.NoRecordsTemplateDirective, i29.CellComponent, i30.EditCommandDirective, i31.CancelCommandDirective, i32.SaveCommandDirective, i33.RemoveCommandDirective, i34.AddCommandDirective, i35.AddCommandToolbarDirective, i36.CellLoadingTemplateDirective, i37.LoadingTemplateDirective, i38.RowReorderColumnComponent, i39.HeaderComponent, i40.HeaderTemplateDirective, i41.ColumnHandleDirective, i42.SelectAllCheckboxDirective, i46.FilterRowComponent, i47.FilterCellComponent, i48.FilterCellTemplateDirective, i49.StringFilterCellComponent, i50.NumericFilterCellComponent, i51.AutoCompleteFilterCellComponent, i52.BooleanFilterCellComponent, i53.FilterCellHostDirective, i54.FilterCellWrapperComponent, i55.DateFilterCellComponent, i56.FilterCellOperatorsComponent, i57.ContainsFilterOperatorComponent, i58.DoesNotContainFilterOperatorComponent, i59.EndsWithFilterOperatorComponent, i60.EqualFilterOperatorComponent, i61.IsEmptyFilterOperatorComponent, i62.IsNotEmptyFilterOperatorComponent, i63.IsNotNullFilterOperatorComponent, i64.IsNullFilterOperatorComponent, i65.NotEqualFilterOperatorComponent, i66.StartsWithFilterOperatorComponent, i67.GreaterFilterOperatorComponent, i68.GreaterOrEqualToFilterOperatorComponent, i69.LessFilterOperatorComponent, i70.LessOrEqualToFilterOperatorComponent, i71.AfterFilterOperatorComponent, i72.AfterEqFilterOperatorComponent, i73.BeforeEqFilterOperatorComponent, i74.BeforeFilterOperatorComponent, i76.FilterMenuComponent, i77.FilterMenuContainerComponent, i78.FilterMenuInputWrapperComponent, i79.StringFilterMenuInputComponent, i80.StringFilterMenuComponent, i81.FilterMenuTemplateDirective, i82.NumericFilterMenuComponent, i83.NumericFilterMenuInputComponent, i84.DateFilterMenuInputComponent, i85.DateFilterMenuComponent, i86.FilterMenuHostDirective, i87.BooleanFilterMenuComponent, i88.FilterMenuDropDownListDirective, i89.BooleanFilterRadioButtonDirective, i92.ColumnChooserComponent, i94.ColumnMenuFilterComponent, i95.ColumnMenuItemComponent, i96.ColumnMenuItemContentTemplateDirective, i97.ColumnMenuSortComponent, i99.ColumnMenuLockComponent, i103.ColumnMenuStickComponent, i104.ColumnMenuPositionComponent, i93.ColumnMenuChooserComponent, i100.ColumnMenuTemplateDirective, i101.ColumnMenuContainerComponent, i102.ColumnMenuItemDirective, i98.ColumnMenuComponent, i105.ColumnMenuAutoSizeColumnComponent, i106.ColumnMenuAutoSizeAllColumnsComponent, i126.GridClipboardDirective, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, i44.CustomMessagesComponent, i44.PagerFocusableDirective, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerTemplateDirective, i44.PagerComponent, i44.PagerSpacerComponent] });
170
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GridModule, imports: [i1.GroupHeaderTemplateDirective, i2.GroupHeaderColumnTemplateDirective, i3.GroupFooterTemplateDirective, i4.GroupHeaderComponent, i5.GroupPanelComponent, i6.ColumnComponent, i7.ColumnGroupComponent, i8.LogicalCellDirective, i9.LogicalRowDirective, i10.FocusableDirective, i11.FooterTemplateDirective, i12.ColGroupComponent, i13.ResizableContainerDirective, i14.TemplateContextDirective, i15.FieldAccessorPipe, i16.DetailTemplateDirective, i17.SpanColumnComponent, i18.LoadingComponent, i19.GridTableDirective, i20.CommandColumnComponent, i21.CheckboxColumnComponent, i22.SelectionCheckboxDirective, i23.CellTemplateDirective, i24.EditTemplateDirective, i25.RowDragHandleTemplateDirective, i26.RowDragHintTemplateDirective, i27.TableBodyComponent, i28.NoRecordsTemplateDirective, i29.CellComponent, i30.EditCommandDirective, i31.CancelCommandDirective, i32.SaveCommandDirective, i33.RemoveCommandDirective, i34.AddCommandDirective, i35.AddCommandToolbarDirective, i36.CellLoadingTemplateDirective, i37.LoadingTemplateDirective, i38.RowReorderColumnComponent, i39.HeaderComponent, i40.HeaderTemplateDirective, i41.ColumnHandleDirective, i42.SelectAllCheckboxDirective, i43.FooterComponent, i44.CustomMessagesComponent, i44.PagerFocusableDirective, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerTemplateDirective, i44.PagerComponent, i44.PagerSpacerComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, i46.FilterRowComponent, i47.FilterCellComponent, i48.FilterCellTemplateDirective, i49.StringFilterCellComponent, i50.NumericFilterCellComponent, i51.AutoCompleteFilterCellComponent, i52.BooleanFilterCellComponent, i53.FilterCellHostDirective, i54.FilterCellWrapperComponent, i55.DateFilterCellComponent, i6.ColumnComponent, i7.ColumnGroupComponent, i8.LogicalCellDirective, i9.LogicalRowDirective, i10.FocusableDirective, i11.FooterTemplateDirective, i12.ColGroupComponent, i13.ResizableContainerDirective, i14.TemplateContextDirective, i15.FieldAccessorPipe, i16.DetailTemplateDirective, i17.SpanColumnComponent, i18.LoadingComponent, i19.GridTableDirective, i56.FilterCellOperatorsComponent, i57.ContainsFilterOperatorComponent, i58.DoesNotContainFilterOperatorComponent, i59.EndsWithFilterOperatorComponent, i60.EqualFilterOperatorComponent, i61.IsEmptyFilterOperatorComponent, i62.IsNotEmptyFilterOperatorComponent, i63.IsNotNullFilterOperatorComponent, i64.IsNullFilterOperatorComponent, i65.NotEqualFilterOperatorComponent, i66.StartsWithFilterOperatorComponent, i67.GreaterFilterOperatorComponent, i68.GreaterOrEqualToFilterOperatorComponent, i69.LessFilterOperatorComponent, i70.LessOrEqualToFilterOperatorComponent, i71.AfterFilterOperatorComponent, i72.AfterEqFilterOperatorComponent, i73.BeforeEqFilterOperatorComponent, i74.BeforeFilterOperatorComponent, i75.FilterInputDirective, i6.ColumnComponent, i7.ColumnGroupComponent, i8.LogicalCellDirective, i9.LogicalRowDirective, i10.FocusableDirective, i11.FooterTemplateDirective, i12.ColGroupComponent, i13.ResizableContainerDirective, i14.TemplateContextDirective, i15.FieldAccessorPipe, i16.DetailTemplateDirective, i17.SpanColumnComponent, i18.LoadingComponent, i19.GridTableDirective, i56.FilterCellOperatorsComponent, i57.ContainsFilterOperatorComponent, i58.DoesNotContainFilterOperatorComponent, i59.EndsWithFilterOperatorComponent, i60.EqualFilterOperatorComponent, i61.IsEmptyFilterOperatorComponent, i62.IsNotEmptyFilterOperatorComponent, i63.IsNotNullFilterOperatorComponent, i64.IsNullFilterOperatorComponent, i65.NotEqualFilterOperatorComponent, i66.StartsWithFilterOperatorComponent, i67.GreaterFilterOperatorComponent, i68.GreaterOrEqualToFilterOperatorComponent, i69.LessFilterOperatorComponent, i70.LessOrEqualToFilterOperatorComponent, i71.AfterFilterOperatorComponent, i72.AfterEqFilterOperatorComponent, i73.BeforeEqFilterOperatorComponent, i74.BeforeFilterOperatorComponent, i75.FilterInputDirective, i76.FilterMenuComponent, i77.FilterMenuContainerComponent, i78.FilterMenuInputWrapperComponent, i79.StringFilterMenuInputComponent, i80.StringFilterMenuComponent, i81.FilterMenuTemplateDirective, i82.NumericFilterMenuComponent, i83.NumericFilterMenuInputComponent, i84.DateFilterMenuInputComponent, i85.DateFilterMenuComponent, i86.FilterMenuHostDirective, i87.BooleanFilterMenuComponent, i88.FilterMenuDropDownListDirective, i89.BooleanFilterRadioButtonDirective, i90.ColumnMenuChooserItemCheckedDirective, i91.ColumnListComponent, i92.ColumnChooserComponent, i93.ColumnMenuChooserComponent, i94.ColumnMenuFilterComponent, i95.ColumnMenuItemComponent, i96.ColumnMenuItemContentTemplateDirective, i97.ColumnMenuSortComponent, i98.ColumnMenuComponent, i99.ColumnMenuLockComponent, i100.ColumnMenuTemplateDirective, i101.ColumnMenuContainerComponent, i102.ColumnMenuItemDirective, i103.ColumnMenuStickComponent, i104.ColumnMenuPositionComponent, i105.ColumnMenuAutoSizeColumnComponent, i106.ColumnMenuAutoSizeAllColumnsComponent, i107.GridComponent, i108.ListComponent, i109.ToolbarComponent, i110.LocalizedMessagesDirective, i111.CustomMessagesComponent, i112.DataBindingDirective, i113.ToolbarTemplateDirective, i114.SelectionDirective, i115.TemplateEditingDirective, i116.ReactiveEditingDirective, i117.InCellEditingDirective, i118.ExternalEditingDirective, i119.ExpandDetailsDirective, i120.ExpandGroupDirective, i121.GroupBindingDirective, i122.GridMarqueeDirective, i123.GridSpacerComponent, i124.GridToolbarFocusableDirective, i125.StatusBarComponent, i126.StatusBarTemplateDirective, i127.GridClipboardDirective, i128.FormComponent, i129.DialogFormComponent, i130.FormFormFieldComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, TableDirective], exports: [i107.GridComponent, i113.ToolbarTemplateDirective, i109.ToolbarComponent, i123.GridSpacerComponent, i126.StatusBarTemplateDirective, i112.DataBindingDirective, i114.SelectionDirective, i111.CustomMessagesComponent, i121.GroupBindingDirective, i115.TemplateEditingDirective, i116.ReactiveEditingDirective, i117.InCellEditingDirective, i118.ExternalEditingDirective, i119.ExpandDetailsDirective, i120.ExpandGroupDirective, i124.GridToolbarFocusableDirective, i1.GroupHeaderTemplateDirective, i2.GroupHeaderColumnTemplateDirective, i3.GroupFooterTemplateDirective, i4.GroupHeaderComponent, i5.GroupPanelComponent, i6.ColumnComponent, i7.ColumnGroupComponent, i8.LogicalCellDirective, i9.LogicalRowDirective, i10.FocusableDirective, i11.FooterTemplateDirective, i12.ColGroupComponent, i13.ResizableContainerDirective, i14.TemplateContextDirective, i15.FieldAccessorPipe, i16.DetailTemplateDirective, i17.SpanColumnComponent, i18.LoadingComponent, i19.GridTableDirective, i20.CommandColumnComponent, i21.CheckboxColumnComponent, i22.SelectionCheckboxDirective, i23.CellTemplateDirective, i24.EditTemplateDirective, i25.RowDragHandleTemplateDirective, i26.RowDragHintTemplateDirective, i27.TableBodyComponent, i28.NoRecordsTemplateDirective, i29.CellComponent, i30.EditCommandDirective, i31.CancelCommandDirective, i32.SaveCommandDirective, i33.RemoveCommandDirective, i34.AddCommandDirective, i35.AddCommandToolbarDirective, i36.CellLoadingTemplateDirective, i37.LoadingTemplateDirective, i38.RowReorderColumnComponent, i39.HeaderComponent, i40.HeaderTemplateDirective, i41.ColumnHandleDirective, i42.SelectAllCheckboxDirective, i46.FilterRowComponent, i47.FilterCellComponent, i48.FilterCellTemplateDirective, i49.StringFilterCellComponent, i50.NumericFilterCellComponent, i51.AutoCompleteFilterCellComponent, i52.BooleanFilterCellComponent, i53.FilterCellHostDirective, i54.FilterCellWrapperComponent, i55.DateFilterCellComponent, i56.FilterCellOperatorsComponent, i57.ContainsFilterOperatorComponent, i58.DoesNotContainFilterOperatorComponent, i59.EndsWithFilterOperatorComponent, i60.EqualFilterOperatorComponent, i61.IsEmptyFilterOperatorComponent, i62.IsNotEmptyFilterOperatorComponent, i63.IsNotNullFilterOperatorComponent, i64.IsNullFilterOperatorComponent, i65.NotEqualFilterOperatorComponent, i66.StartsWithFilterOperatorComponent, i67.GreaterFilterOperatorComponent, i68.GreaterOrEqualToFilterOperatorComponent, i69.LessFilterOperatorComponent, i70.LessOrEqualToFilterOperatorComponent, i71.AfterFilterOperatorComponent, i72.AfterEqFilterOperatorComponent, i73.BeforeEqFilterOperatorComponent, i74.BeforeFilterOperatorComponent, i76.FilterMenuComponent, i77.FilterMenuContainerComponent, i78.FilterMenuInputWrapperComponent, i79.StringFilterMenuInputComponent, i80.StringFilterMenuComponent, i81.FilterMenuTemplateDirective, i82.NumericFilterMenuComponent, i83.NumericFilterMenuInputComponent, i84.DateFilterMenuInputComponent, i85.DateFilterMenuComponent, i86.FilterMenuHostDirective, i87.BooleanFilterMenuComponent, i88.FilterMenuDropDownListDirective, i89.BooleanFilterRadioButtonDirective, i92.ColumnChooserComponent, i94.ColumnMenuFilterComponent, i95.ColumnMenuItemComponent, i96.ColumnMenuItemContentTemplateDirective, i97.ColumnMenuSortComponent, i99.ColumnMenuLockComponent, i103.ColumnMenuStickComponent, i104.ColumnMenuPositionComponent, i93.ColumnMenuChooserComponent, i100.ColumnMenuTemplateDirective, i101.ColumnMenuContainerComponent, i102.ColumnMenuItemDirective, i98.ColumnMenuComponent, i105.ColumnMenuAutoSizeColumnComponent, i106.ColumnMenuAutoSizeAllColumnsComponent, i127.GridClipboardDirective, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, i44.CustomMessagesComponent, i44.PagerFocusableDirective, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerTemplateDirective, i44.PagerComponent, i44.PagerSpacerComponent] });
167
171
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridModule, providers: [
168
172
  PopupService,
169
173
  ResizeBatchService,
@@ -178,7 +182,7 @@ export class GridModule {
178
182
  MonthViewService,
179
183
  YearViewService,
180
184
  NavigationService
181
- ], imports: [i4.GroupHeaderComponent, i5.GroupPanelComponent, i27.TableBodyComponent, i29.CellComponent, i30.EditCommandDirective, i31.CancelCommandDirective, i32.SaveCommandDirective, i33.RemoveCommandDirective, i34.AddCommandDirective, i39.HeaderComponent, i44.CustomMessagesComponent, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerComponent, i44.PagerSpacerComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i49.StringFilterCellComponent, i50.NumericFilterCellComponent, i51.AutoCompleteFilterCellComponent, i52.BooleanFilterCellComponent, i54.FilterCellWrapperComponent, i55.DateFilterCellComponent, i56.FilterCellOperatorsComponent, i56.FilterCellOperatorsComponent, i76.FilterMenuComponent, i77.FilterMenuContainerComponent, i78.FilterMenuInputWrapperComponent, i79.StringFilterMenuInputComponent, i80.StringFilterMenuComponent, i82.NumericFilterMenuComponent, i83.NumericFilterMenuInputComponent, i84.DateFilterMenuInputComponent, i85.DateFilterMenuComponent, i87.BooleanFilterMenuComponent, i91.ColumnListComponent, i92.ColumnChooserComponent, i93.ColumnMenuChooserComponent, i94.ColumnMenuFilterComponent, i95.ColumnMenuItemComponent, i97.ColumnMenuSortComponent, i98.ColumnMenuComponent, i99.ColumnMenuLockComponent, i103.ColumnMenuStickComponent, i104.ColumnMenuPositionComponent, i105.ColumnMenuAutoSizeColumnComponent, i106.ColumnMenuAutoSizeAllColumnsComponent, i107.GridComponent, i108.ListComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent] });
185
+ ], imports: [i4.GroupHeaderComponent, i5.GroupPanelComponent, i27.TableBodyComponent, i29.CellComponent, i30.EditCommandDirective, i31.CancelCommandDirective, i32.SaveCommandDirective, i33.RemoveCommandDirective, i34.AddCommandDirective, i39.HeaderComponent, i44.CustomMessagesComponent, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerComponent, i44.PagerSpacerComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i49.StringFilterCellComponent, i50.NumericFilterCellComponent, i51.AutoCompleteFilterCellComponent, i52.BooleanFilterCellComponent, i54.FilterCellWrapperComponent, i55.DateFilterCellComponent, i56.FilterCellOperatorsComponent, i56.FilterCellOperatorsComponent, i76.FilterMenuComponent, i77.FilterMenuContainerComponent, i78.FilterMenuInputWrapperComponent, i79.StringFilterMenuInputComponent, i80.StringFilterMenuComponent, i82.NumericFilterMenuComponent, i83.NumericFilterMenuInputComponent, i84.DateFilterMenuInputComponent, i85.DateFilterMenuComponent, i87.BooleanFilterMenuComponent, i91.ColumnListComponent, i92.ColumnChooserComponent, i93.ColumnMenuChooserComponent, i94.ColumnMenuFilterComponent, i95.ColumnMenuItemComponent, i97.ColumnMenuSortComponent, i98.ColumnMenuComponent, i99.ColumnMenuLockComponent, i103.ColumnMenuStickComponent, i104.ColumnMenuPositionComponent, i105.ColumnMenuAutoSizeColumnComponent, i106.ColumnMenuAutoSizeAllColumnsComponent, i107.GridComponent, i108.ListComponent, i128.FormComponent, i129.DialogFormComponent, i130.FormFormFieldComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent] });
182
186
  }
183
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridModule, decorators: [{
184
188
  type: NgModule,
package/esm2022/index.mjs CHANGED
@@ -102,6 +102,7 @@ export { LessFilterOperatorComponent } from './filtering/operators/lt-filter-ope
102
102
  export * from './filtering/filterable';
103
103
  export { TemplateEditingDirective } from './editing-directives/template-editing.directive';
104
104
  export { ReactiveEditingDirective } from './editing-directives/reactive-editing.directive';
105
+ export { ExternalEditingDirective } from './editing-directives/external-editing.directive';
105
106
  export { InCellEditingDirective } from './editing-directives/in-cell-editing.directive';
106
107
  export { EditTemplateDirective } from './editing/edit-template.directive';
107
108
  //Workaround for angular/angular#11889
@@ -411,8 +411,53 @@ export class GridMessages extends ComponentMessages {
411
411
  * The text for the Group pane Chip Menu Move as next item.
412
412
  */
413
413
  groupChipMenuNext;
414
+ /**
415
+ * The default text of a form validation error when using the built-in external editing.
416
+ * <br/><br/>
417
+ * The text consists of a three-part message&mdash;the name of the data item property the respective Grid column is bound to,
418
+ * the name of the error, coming from the respective `FormControl` object, and a localizable string.
419
+ * <br/><br/>
420
+ * For a field named `ProductName`, and an error named `required`, the default error text will be `ProductName has required validation error`.
421
+ * <br/><br/>
422
+ * To customize the default text of the form validation error, use the `{errorName}` and `{fieldName}` placeholders and a custom localizable string.
423
+ * For example, `{errorName} detected for {fieldName} field`.
424
+ * <br/><br/>
425
+ * The `{errorName}` and `{fieldName}` placeholders will be replaced internally with the field and error names for the respective invalid form control,
426
+ * and the resulting error message will be rendered as `required error detected for ProductName field`.
427
+ * [See example](slug:globalization_grid#toc-custom-messages).
428
+ *
429
+ */
430
+ formValidationErrorText;
431
+ /**
432
+ * The title of the remove item confirmation Dialog.
433
+ */
434
+ removeConfirmationDialogTitle;
435
+ /**
436
+ * The content of the remove item confirmation Dialog.
437
+ */
438
+ removeConfirmationDialogContent;
439
+ /**
440
+ * The text of the confirm action button in the remove confirmation Dialog.
441
+ */
442
+ removeConfirmationDialogConfirmText;
443
+ /**
444
+ * The text of the reject action button in the remove confirmation Dialog.
445
+ */
446
+ removeConfirmationDialogRejectText;
447
+ /**
448
+ * The title of the external editing Dialog.
449
+ */
450
+ externalEditingTitle;
451
+ /**
452
+ * The text of the external editing Dialog <b>Save</b> button.
453
+ */
454
+ externalEditingSaveText;
455
+ /**
456
+ * The text of the external editing Dialog <b>Cancel</b> button.
457
+ */
458
+ externalEditingCancelText;
414
459
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
415
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext" }, usesInheritance: true, ngImport: i0 });
460
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext", formValidationErrorText: "formValidationErrorText", removeConfirmationDialogTitle: "removeConfirmationDialogTitle", removeConfirmationDialogContent: "removeConfirmationDialogContent", removeConfirmationDialogConfirmText: "removeConfirmationDialogConfirmText", removeConfirmationDialogRejectText: "removeConfirmationDialogRejectText", externalEditingTitle: "externalEditingTitle", externalEditingSaveText: "externalEditingSaveText", externalEditingCancelText: "externalEditingCancelText" }, usesInheritance: true, ngImport: i0 });
416
461
  }
417
462
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, decorators: [{
418
463
  type: Directive,
@@ -588,4 +633,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
588
633
  type: Input
589
634
  }], groupChipMenuNext: [{
590
635
  type: Input
636
+ }], formValidationErrorText: [{
637
+ type: Input
638
+ }], removeConfirmationDialogTitle: [{
639
+ type: Input
640
+ }], removeConfirmationDialogContent: [{
641
+ type: Input
642
+ }], removeConfirmationDialogConfirmText: [{
643
+ type: Input
644
+ }], removeConfirmationDialogRejectText: [{
645
+ type: Input
646
+ }], externalEditingTitle: [{
647
+ type: Input
648
+ }], externalEditingSaveText: [{
649
+ type: Input
650
+ }], externalEditingCancelText: [{
651
+ type: Input
591
652
  }] } });
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1743748634,
14
- version: '18.5.0-develop.1',
13
+ publishDate: 1744101049,
14
+ version: '18.5.0-develop.11',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -27,6 +27,7 @@ export class FooterComponent {
27
27
  lockedColumnsCount = 0;
28
28
  logicalRowIndex = 0;
29
29
  totalColumns;
30
+ totalColumnsCount = 0;
30
31
  get footerClass() {
31
32
  return !this.scrollable;
32
33
  }
@@ -38,6 +39,10 @@ export class FooterComponent {
38
39
  get columnsToRender() {
39
40
  return columnsToRender(this.columns || []);
40
41
  }
42
+ // Number of unlocked columns in the next table, if any
43
+ get unlockedColumnsCount() {
44
+ return this.totalColumnsCount - this.lockedColumnsCount - this.columns.length;
45
+ }
41
46
  trackByIndex(index) {
42
47
  return index;
43
48
  }
@@ -56,15 +61,15 @@ export class FooterComponent {
56
61
  return isColumnGroupComponent(column);
57
62
  }
58
63
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FooterComponent, deps: [{ token: i1.ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
59
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FooterComponent, isStandalone: true, selector: "[kendoGridFooter]", inputs: { columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", lockedColumnsCount: "lockedColumnsCount", logicalRowIndex: "logicalRowIndex", totalColumns: "totalColumns" }, host: { properties: { "class.k-grid-footer": "this.footerClass", "class.k-table-tfoot": "this.hostClass", "attr.role": "this.hostRole" } }, ngImport: i0, template: `
64
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FooterComponent, isStandalone: true, selector: "[kendoGridFooter]", inputs: { columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", lockedColumnsCount: "lockedColumnsCount", logicalRowIndex: "logicalRowIndex", totalColumns: "totalColumns", totalColumnsCount: "totalColumnsCount" }, host: { properties: { "class.k-grid-footer": "this.footerClass", "class.k-table-tfoot": "this.hostClass", "attr.role": "this.hostRole" } }, ngImport: i0, template: `
60
65
  <ng-container>
61
66
  <tr
62
- [class.k-footer-template]="true"
67
+ class="k-footer-template"
63
68
  kendoGridLogicalRow
64
69
  [logicalRowIndex]="logicalRowIndex"
65
70
  [logicalSlaveRow]="lockedColumnsCount > 0"
66
71
  [logicalCellsCount]="columns.length"
67
- [logicalSlaveCellsCount]="columns.length - lockedColumnsCount"
72
+ [logicalSlaveCellsCount]="unlockedColumnsCount"
68
73
  [totalColumns]="totalColumns"
69
74
  >
70
75
  <td
@@ -109,12 +114,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
109
114
  template: `
110
115
  <ng-container>
111
116
  <tr
112
- [class.k-footer-template]="true"
117
+ class="k-footer-template"
113
118
  kendoGridLogicalRow
114
119
  [logicalRowIndex]="logicalRowIndex"
115
120
  [logicalSlaveRow]="lockedColumnsCount > 0"
116
121
  [logicalCellsCount]="columns.length"
117
- [logicalSlaveCellsCount]="columns.length - lockedColumnsCount"
122
+ [logicalSlaveCellsCount]="unlockedColumnsCount"
118
123
  [totalColumns]="totalColumns"
119
124
  >
120
125
  <td
@@ -168,6 +173,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
168
173
  type: Input
169
174
  }], totalColumns: [{
170
175
  type: Input
176
+ }], totalColumnsCount: [{
177
+ type: Input
171
178
  }], footerClass: [{
172
179
  type: HostBinding,
173
180
  args: ['class.k-grid-footer']
@@ -148,7 +148,7 @@ export class TableBodyComponent {
148
148
  }
149
149
  });
150
150
  const contentColumnsCount = this.totalColumnsCount - this.lockedColumnsCount - allColumnsCount;
151
- const headerFooterColumnsCount = this.totalColumnsCount - this.lockedColumnsCount - (this.allColumns || this.columns).length;
151
+ const headerFooterColumnsCount = this.totalColumnsCount - this.lockedColumnsCount - allColumns.length;
152
152
  return item && this.isDataItem(item) ? contentColumnsCount : headerFooterColumnsCount;
153
153
  }
154
154
  shouldSkipCell(rowIndex, colIndex) {
package/esm2022/utils.mjs CHANGED
@@ -128,7 +128,7 @@ export const nodesToArray = (nodes) => [].slice.call(nodes);
128
128
  /**
129
129
  * @hidden
130
130
  */
131
- export const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
131
+ export const replaceMessagePlaceholder = (message, name, value) => (message ?? '').replace(new RegExp(`{\\s*${name}\\s*}`, 'g'), value);
132
132
  /**
133
133
  * @hidden
134
134
  */