@progress/kendo-angular-grid 19.1.2 → 19.2.0-develop.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/aggregates/selection-aggregate.service.d.ts +1 -3
  2. package/column-menu/column-menu-item.directive.d.ts +1 -1
  3. package/common/provider.service.d.ts +2 -1
  4. package/data/data-mapping.service.d.ts +46 -0
  5. package/databinding.directive.d.ts +2 -1
  6. package/esm2022/aggregates/selection-aggregate.service.mjs +4 -8
  7. package/esm2022/column-menu/column-menu-item.directive.mjs +1 -1
  8. package/esm2022/common/provider.service.mjs +1 -1
  9. package/esm2022/data/data-mapping.service.mjs +125 -0
  10. package/esm2022/databinding.directive.mjs +12 -3
  11. package/esm2022/grid.component.mjs +41 -34
  12. package/esm2022/grouping/group-scroll-binding.directive.mjs +2 -2
  13. package/esm2022/package-metadata.mjs +2 -2
  14. package/esm2022/rendering/list.component.mjs +76 -57
  15. package/esm2022/rendering/table-body.component.mjs +37 -128
  16. package/esm2022/selection/selection-checkbox.directive.mjs +1 -1
  17. package/esm2022/selection/selection.service.mjs +23 -4
  18. package/esm2022/state-management/undo-redo.directive.mjs +74 -16
  19. package/esm2022/state-management/undo-redo.service.mjs +0 -1
  20. package/esm2022/state-management/undo-redo.stack.mjs +6 -0
  21. package/esm2022/utils.mjs +19 -0
  22. package/fesm2022/progress-kendo-angular-grid.mjs +934 -785
  23. package/grid.component.d.ts +12 -6
  24. package/package.json +20 -20
  25. package/rendering/list.component.d.ts +9 -6
  26. package/rendering/table-body.component.d.ts +9 -27
  27. package/schematics/ngAdd/index.js +4 -4
  28. package/selection/selection.service.d.ts +1 -1
  29. package/state-management/undo-redo.directive.d.ts +12 -2
  30. package/state-management/undo-redo.service.d.ts +0 -2
  31. package/state-management/undo-redo.stack.d.ts +2 -0
  32. package/utils.d.ts +5 -0
@@ -72,7 +72,7 @@ import { ContextService } from './common/provider.service';
72
72
  import { LoadingTemplateDirective } from './rendering/loading-template.directive';
73
73
  import { SizingOptionsService } from './layout/sizing-options.service';
74
74
  import { DraggableDirective, WatermarkOverlayComponent, guid, shouldShowValidationUI } from '@progress/kendo-angular-common';
75
- import { AdaptiveService, DragTargetContainerDirective, DropTargetContainerDirective } from '@progress/kendo-angular-utils';
75
+ import { DragTargetContainerDirective, DropTargetContainerDirective } from '@progress/kendo-angular-utils';
76
76
  import { RowReorderService } from './row-reordering/row-reorder.service';
77
77
  import { StatusBarTemplateDirective } from './aggregates/status-bar-template.directive';
78
78
  import { CellSelectionAggregateService } from './aggregates/selection-aggregate.service';
@@ -100,6 +100,8 @@ import { AdaptiveGridService } from './common/adaptiveness.service';
100
100
  import { AdaptiveRendererComponent } from './adaptiveness/adaptive-renderer.component';
101
101
  import { ColumnMenuService } from './column-menu/column-menu.service';
102
102
  import { MenuTabbingService } from './filtering/menu/menu-tabbing.service';
103
+ import { GroupBindingDirective } from './grouping/group-scroll-binding.directive';
104
+ import { DataMappingService } from './data/data-mapping.service';
103
105
  import * as i0 from "@angular/core";
104
106
  import * as i1 from "./layout/browser-support.service";
105
107
  import * as i2 from "./selection/selection.service";
@@ -124,9 +126,9 @@ import * as i20 from "./scrolling/scroll-request.service";
124
126
  import * as i21 from "@progress/kendo-angular-l10n";
125
127
  import * as i22 from "./common/provider.service";
126
128
  import * as i23 from "./layout/sizing-options.service";
127
- import * as i24 from "@progress/kendo-angular-utils";
128
- import * as i25 from "./common/adaptiveness.service";
129
- import * as i26 from "./row-reordering/row-reorder.service";
129
+ import * as i24 from "./common/adaptiveness.service";
130
+ import * as i25 from "./row-reordering/row-reorder.service";
131
+ import * as i26 from "./data/data-mapping.service";
130
132
  import * as i27 from "@progress/kendo-angular-pager";
131
133
  const createControl = (source) => (acc, key) => {
132
134
  acc[key] = new FormControl(source[key]);
@@ -206,9 +208,9 @@ export class GridComponent {
206
208
  localization;
207
209
  ctx;
208
210
  sizingService;
209
- adaptiveService;
210
211
  adaptiveGridService;
211
212
  rowReorderService;
213
+ dataMappingService;
212
214
  /**
213
215
  * Sets the data of the Grid. If you provide an array, the Grid gets the total count automatically.
214
216
  * ([more information and example]({% slug binding_grid %})).
@@ -920,10 +922,8 @@ export class GridComponent {
920
922
  dragTargetContainer;
921
923
  dropTargetContainer;
922
924
  dialogContainer;
923
- /**
924
- * @hidden
925
- */
926
925
  adaptiveRenderer;
926
+ listComponent;
927
927
  get scrollbarWidth() {
928
928
  return this.supportService.scrollbarWidth;
929
929
  }
@@ -1119,6 +1119,7 @@ export class GridComponent {
1119
1119
  */
1120
1120
  blockArrowSelection = false;
1121
1121
  undoRedoService;
1122
+ rowsToRender;
1122
1123
  selectionSubscription;
1123
1124
  stateChangeSubscription;
1124
1125
  groupExpandCollapseSubscription;
@@ -1144,7 +1145,7 @@ export class GridComponent {
1144
1145
  rowReorderSubscription;
1145
1146
  rtl = false;
1146
1147
  _rowSticky;
1147
- constructor(supportService, selectionService, cellSelectionService, wrapper, groupInfoService, groupsService, changeNotification, detailsService, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, localization, ctx, sizingService, adaptiveService, adaptiveGridService, rowReorderService) {
1148
+ constructor(supportService, selectionService, cellSelectionService, wrapper, groupInfoService, groupsService, changeNotification, detailsService, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, localization, ctx, sizingService, adaptiveGridService, rowReorderService, dataMappingService) {
1148
1149
  this.supportService = supportService;
1149
1150
  this.selectionService = selectionService;
1150
1151
  this.cellSelectionService = cellSelectionService;
@@ -1172,9 +1173,9 @@ export class GridComponent {
1172
1173
  this.localization = localization;
1173
1174
  this.ctx = ctx;
1174
1175
  this.sizingService = sizingService;
1175
- this.adaptiveService = adaptiveService;
1176
1176
  this.adaptiveGridService = adaptiveGridService;
1177
1177
  this.rowReorderService = rowReorderService;
1178
+ this.dataMappingService = dataMappingService;
1178
1179
  const isValid = validatePackage(packageMetadata);
1179
1180
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
1180
1181
  this.ctx.grid = this;
@@ -1281,6 +1282,11 @@ export class GridComponent {
1281
1282
  this.initSelectionService();
1282
1283
  this.updateNavigationMetadata();
1283
1284
  }
1285
+ ngDoCheck() {
1286
+ if (!this.isScrollable) {
1287
+ this.rowsToRender = this.dataMappingService.dataMapper(this.view, this.nonLockedLeafColumns, this.lockedLeafColumns, this.detailTemplate, this.showGroupFooters);
1288
+ }
1289
+ }
1284
1290
  ngOnChanges(changes) {
1285
1291
  if (isChanged("data", changes)) {
1286
1292
  this.onDataChange();
@@ -1602,12 +1608,12 @@ export class GridComponent {
1602
1608
  this.sort = state.sort;
1603
1609
  this.group = state.group;
1604
1610
  this.filter = state.filter;
1605
- this.group = state.group;
1606
1611
  this.skip = state.skip;
1607
1612
  this.pageSize = state.take;
1608
- this.data = state.currentData;
1609
- this.changeNotification.notify();
1610
- this.changeDetectorRef.detectChanges();
1613
+ if (state.currentData) {
1614
+ this.data = state.currentData;
1615
+ }
1616
+ this.changeDetectorRef.markForCheck();
1611
1617
  }
1612
1618
  traverseColumns(columns, callback) {
1613
1619
  columns.forEach((column) => {
@@ -1818,6 +1824,9 @@ export class GridComponent {
1818
1824
  source.locked = target.locked;
1819
1825
  }
1820
1826
  this.columnsContainer.refresh();
1827
+ if (this.virtualColumns) {
1828
+ this.listComponent.updateViewportColumns();
1829
+ }
1821
1830
  this.changeDetectorRef.markForCheck();
1822
1831
  });
1823
1832
  }
@@ -1976,10 +1985,7 @@ export class GridComponent {
1976
1985
  if (this.columnList.filter(x => x.locked && x.parent && !x.parent.isLocked).length) {
1977
1986
  throw new Error(ColumnConfigurationErrorMessages.lockedParent);
1978
1987
  }
1979
- if ((this.rowHeight || this.detailRowHeight) && !this.isVirtual) {
1980
- console.warn(GridConfigurationErrorMessages.rowHeightVirtual);
1981
- }
1982
- if (!this.rowHeight && this.isVirtual) {
1988
+ if (this.detailRowHeight && !this.isVirtual) {
1983
1989
  console.warn(GridConfigurationErrorMessages.rowHeightVirtual);
1984
1990
  }
1985
1991
  if (!this.detailRowHeight && this.isVirtual && this.detailTemplate) {
@@ -2026,9 +2032,6 @@ export class GridComponent {
2026
2032
  }
2027
2033
  this.dataStateChange.emit(x);
2028
2034
  hasObservers(this.gridStateChange) && this.gridStateChange.emit({ ...this.currentState, ...x });
2029
- if (this.undoRedoService) {
2030
- this.undoRedoService.originalEvent = x;
2031
- }
2032
2035
  });
2033
2036
  this.stateChangeSubscription.add(merge(this.columnReorder, this.columnResize, this.columnVisibilityChange, this.columnLockedChange, this.columnStickyChange).pipe(flatMap(() => this.ngZone.onStable.pipe(take(1))))
2034
2037
  .subscribe(() => this.ngZone.run(() => hasObservers(this.gridStateChange) && this.gridStateChange.emit(this.currentState))));
@@ -2246,7 +2249,8 @@ export class GridComponent {
2246
2249
  column = toAdd.shift();
2247
2250
  viewportColumns.push(column);
2248
2251
  if (column.isColumnGroup) {
2249
- toAdd.unshift(...column.childrenArray);
2252
+ const children = columnsArray.filter(c => c.parent && c.parent.id === column.id);
2253
+ toAdd.unshift(...children);
2250
2254
  }
2251
2255
  }
2252
2256
  const lastFromGroup = viewportColumns[viewportColumns.length - 1];
@@ -2302,8 +2306,8 @@ export class GridComponent {
2302
2306
  }
2303
2307
  if (this.groupsService.isExpanded({ groupIndex: index }) !== expand) {
2304
2308
  this.groupsService.toggleRow({ index }, false);
2305
- if (this.ctx.groupBindingDirective) {
2306
- this.ctx.groupBindingDirective[`group${expand ? 'Expand' : 'Collapse'}`]({ groupIndex: index });
2309
+ if (this.ctx.dataBindingDirective && this.ctx.dataBindingDirective instanceof GroupBindingDirective) {
2310
+ this.ctx.dataBindingDirective[`group${expand ? 'Expand' : 'Collapse'}`]({ groupIndex: index });
2307
2311
  }
2308
2312
  }
2309
2313
  }
@@ -2324,7 +2328,7 @@ export class GridComponent {
2324
2328
  this.dragTargetContainer?.notify();
2325
2329
  this.dropTargetContainer?.notify();
2326
2330
  }
2327
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, deps: [{ token: i1.BrowserSupportService }, { token: i2.SelectionService }, { token: i3.CellSelectionService }, { token: i0.ElementRef }, { token: i4.GroupInfoService }, { token: i5.GroupsService }, { token: i6.ChangeNotificationService }, { token: i7.DetailsService }, { token: i8.EditService }, { token: i9.FilterService }, { token: i10.PDFService }, { token: i11.ResponsiveService }, { token: i0.Renderer2 }, { token: i12.ExcelService }, { token: i0.NgZone }, { token: i13.ScrollSyncService }, { token: i14.DomEventsService }, { token: i15.ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: i16.ColumnReorderService }, { token: i17.ColumnInfoService }, { token: i18.NavigationService }, { token: i19.SortService }, { token: i20.ScrollRequestService }, { token: i21.LocalizationService }, { token: i22.ContextService }, { token: i23.SizingOptionsService }, { token: i24.AdaptiveService }, { token: i25.AdaptiveGridService }, { token: i26.RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
2331
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, deps: [{ token: i1.BrowserSupportService }, { token: i2.SelectionService }, { token: i3.CellSelectionService }, { token: i0.ElementRef }, { token: i4.GroupInfoService }, { token: i5.GroupsService }, { token: i6.ChangeNotificationService }, { token: i7.DetailsService }, { token: i8.EditService }, { token: i9.FilterService }, { token: i10.PDFService }, { token: i11.ResponsiveService }, { token: i0.Renderer2 }, { token: i12.ExcelService }, { token: i0.NgZone }, { token: i13.ScrollSyncService }, { token: i14.DomEventsService }, { token: i15.ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: i16.ColumnReorderService }, { token: i17.ColumnInfoService }, { token: i18.NavigationService }, { token: i19.SortService }, { token: i20.ScrollRequestService }, { token: i21.LocalizationService }, { token: i22.ContextService }, { token: i23.SizingOptionsService }, { token: i24.AdaptiveGridService }, { token: i25.RowReorderService }, { token: i26.DataMappingService }], target: i0.ɵɵFactoryTarget.Component });
2328
2332
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridComponent, isStandalone: true, selector: "kendo-grid", inputs: { data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", adaptiveMode: "adaptiveMode", detailRowHeight: "detailRowHeight", skip: "skip", scrollable: "scrollable", selectable: "selectable", sort: "sort", size: "size", trackBy: "trackBy", filter: "filter", group: "group", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", groupable: "groupable", gridResizable: "gridResizable", rowReorderable: "rowReorderable", navigable: "navigable", autoSize: "autoSize", rowClass: "rowClass", rowSticky: "rowSticky", rowSelected: "rowSelected", isRowSelectable: "isRowSelectable", cellSelected: "cellSelected", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", showInactiveTools: "showInactiveTools", isDetailExpanded: "isDetailExpanded", isGroupExpanded: "isGroupExpanded" }, outputs: { filterChange: "filterChange", pageChange: "pageChange", groupChange: "groupChange", sortChange: "sortChange", selectionChange: "selectionChange", rowReorder: "rowReorder", dataStateChange: "dataStateChange", gridStateChange: "gridStateChange", groupExpand: "groupExpand", groupCollapse: "groupCollapse", detailExpand: "detailExpand", detailCollapse: "detailCollapse", edit: "edit", cancel: "cancel", save: "save", remove: "remove", add: "add", cellClose: "cellClose", cellClick: "cellClick", pdfExport: "pdfExport", excelExport: "excelExport", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", columnStickyChange: "columnStickyChange", scrollBottom: "scrollBottom", contentScroll: "contentScroll" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClass", "class.k-grid-sm": "this.sizeSmallClass", "class.k-grid-md": "this.sizeMediumClass", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass", "class.k-grid-resizable": "this.isResizable", "style.minWidth": "this.minWidth", "style.maxWidth": "this.maxWidth", "style.minHeight": "this.minHeight", "style.maxHeight": "this.maxHeight" } }, providers: [
2329
2333
  BrowserSupportService,
2330
2334
  LocalizationService,
@@ -2374,8 +2378,9 @@ export class GridComponent {
2374
2378
  RowspanService,
2375
2379
  AdaptiveGridService,
2376
2380
  ColumnMenuService,
2377
- MenuTabbingService
2378
- ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "statusBarTemplateChildren", predicate: StatusBarTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["dialogContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "adaptiveRenderer", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
2381
+ MenuTabbingService,
2382
+ DataMappingService
2383
+ ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "statusBarTemplateChildren", predicate: StatusBarTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["dialogContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "adaptiveRenderer", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
2379
2384
  <ng-container kendoGridLocalizedMessages
2380
2385
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
2381
2386
  groupPanelEmpty="Drag a column header and drop it here to group by that column"
@@ -3026,7 +3031,7 @@ export class GridComponent {
3026
3031
  <tbody kendoGridTableBody
3027
3032
  [isLoading]="loading"
3028
3033
  [groups]="group"
3029
- [data]="$any(view)"
3034
+ [rowsToRender]="rowsToRender"
3030
3035
  [skip]="skip"
3031
3036
  [columns]="$any(leafColumns)"
3032
3037
  [totalColumnsCount]="leafColumns.length"
@@ -3035,7 +3040,6 @@ export class GridComponent {
3035
3040
  [filterable]="filterable"
3036
3041
  [noRecordsTemplate]="noRecordsTemplate"
3037
3042
  [detailTemplate]="detailTemplate"
3038
- [showGroupFooters]="showGroupFooters"
3039
3043
  [trackBy]="trackBy"
3040
3044
  [rowClass]="rowClass"
3041
3045
  kendoDraggable
@@ -3142,7 +3146,7 @@ export class GridComponent {
3142
3146
  <kendo-grid-adaptive-renderer *ngIf="isAdaptiveModeEnabled"></kendo-grid-adaptive-renderer>
3143
3147
 
3144
3148
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3145
- `, 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: i27.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i27.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i27.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["showPageText", "size"] }, { kind: "component", type: i27.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i27.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i27.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i27.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i27.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i27.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange", "pagerInputVisibilityChange", "pageTextVisibilityChange", "itemsTextVisibilityChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-grid-adaptive-renderer" }], encapsulation: i0.ViewEncapsulation.None });
3149
+ `, 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", "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", "rowsToRender", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "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: i27.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i27.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i27.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["showPageText", "size"] }, { kind: "component", type: i27.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i27.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i27.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i27.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i27.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i27.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange", "pagerInputVisibilityChange", "pageTextVisibilityChange", "itemsTextVisibilityChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-grid-adaptive-renderer" }], encapsulation: i0.ViewEncapsulation.None });
3146
3150
  }
3147
3151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
3148
3152
  type: Component,
@@ -3198,7 +3202,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3198
3202
  RowspanService,
3199
3203
  AdaptiveGridService,
3200
3204
  ColumnMenuService,
3201
- MenuTabbingService
3205
+ MenuTabbingService,
3206
+ DataMappingService
3202
3207
  ],
3203
3208
  selector: 'kendo-grid',
3204
3209
  template: `
@@ -3852,7 +3857,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3852
3857
  <tbody kendoGridTableBody
3853
3858
  [isLoading]="loading"
3854
3859
  [groups]="group"
3855
- [data]="$any(view)"
3860
+ [rowsToRender]="rowsToRender"
3856
3861
  [skip]="skip"
3857
3862
  [columns]="$any(leafColumns)"
3858
3863
  [totalColumnsCount]="leafColumns.length"
@@ -3861,7 +3866,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3861
3866
  [filterable]="filterable"
3862
3867
  [noRecordsTemplate]="noRecordsTemplate"
3863
3868
  [detailTemplate]="detailTemplate"
3864
- [showGroupFooters]="showGroupFooters"
3865
3869
  [trackBy]="trackBy"
3866
3870
  [rowClass]="rowClass"
3867
3871
  kendoDraggable
@@ -3978,7 +3982,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3978
3982
  IconWrapperComponent, WatermarkOverlayComponent, ...KENDO_PAGER, NgTemplateOutlet, AdaptiveRendererComponent
3979
3983
  ]
3980
3984
  }]
3981
- }], 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.AdaptiveService }, { type: i25.AdaptiveGridService }, { type: i26.RowReorderService }]; }, propDecorators: { data: [{
3985
+ }], 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.AdaptiveGridService }, { type: i25.RowReorderService }, { type: i26.DataMappingService }]; }, propDecorators: { data: [{
3982
3986
  type: Input
3983
3987
  }], pageSize: [{
3984
3988
  type: Input
@@ -4193,4 +4197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4193
4197
  }], adaptiveRenderer: [{
4194
4198
  type: ViewChild,
4195
4199
  args: [AdaptiveRendererComponent]
4200
+ }], listComponent: [{
4201
+ type: ViewChild,
4202
+ args: [ListComponent]
4196
4203
  }] } });
@@ -196,9 +196,9 @@ export class GroupBindingDirective extends DataBindingDirective {
196
196
  groups;
197
197
  gridSubs = new Subscription();
198
198
  constructor(changeDetector, localDataChangesService, ctxService, groupsService) {
199
- super(ctxService.grid, changeDetector, localDataChangesService);
199
+ super(ctxService.grid, changeDetector, localDataChangesService, null, ctxService);
200
200
  this.groupsService = groupsService;
201
- ctxService.groupBindingDirective = this;
201
+ ctxService.dataBindingDirective = this;
202
202
  }
203
203
  ngOnInit() {
204
204
  super.ngOnInit();
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1750771045,
14
- version: '19.1.2',
13
+ publishDate: 1751281289,
14
+ version: '19.2.0-develop.10',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };