@progress/kendo-angular-grid 19.0.0-develop.11 → 19.0.0-develop.13

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 (37) hide show
  1. package/columns/column-base.d.ts +5 -0
  2. package/columns/span-column.component.d.ts +2 -2
  3. package/directives.d.ts +6 -3
  4. package/esm2022/column-resizing/column-handle.directive.mjs +2 -2
  5. package/esm2022/columns/column-base.mjs +9 -0
  6. package/esm2022/columns/columns-container.mjs +1 -1
  7. package/esm2022/columns/span-column.component.mjs +9 -9
  8. package/esm2022/directives.mjs +9 -2
  9. package/esm2022/grid.component.mjs +106 -41
  10. package/esm2022/grid.module.mjs +11 -2
  11. package/esm2022/index.mjs +5 -0
  12. package/esm2022/package-metadata.mjs +2 -2
  13. package/esm2022/rendering/cell.component.mjs +3 -3
  14. package/esm2022/rendering/header/header.component.mjs +1 -1
  15. package/esm2022/rendering/list.component.mjs +1 -1
  16. package/esm2022/rendering/table-body.component.mjs +1 -1
  17. package/esm2022/state-management/grid-state.models.mjs +26 -0
  18. package/esm2022/state-management/redo-command-tool.mjs +66 -0
  19. package/esm2022/state-management/undo-command-tool.mjs +66 -0
  20. package/esm2022/state-management/undo-redo.directive.mjs +178 -0
  21. package/esm2022/state-management/undo-redo.service.mjs +22 -0
  22. package/esm2022/state-management/undo-redo.stack.mjs +232 -0
  23. package/esm2022/utils.mjs +13 -0
  24. package/fesm2022/progress-kendo-angular-grid.mjs +698 -67
  25. package/grid.component.d.ts +36 -19
  26. package/grid.module.d.ts +5 -2
  27. package/index.d.ts +4 -0
  28. package/package.json +20 -20
  29. package/rendering/cell.component.d.ts +1 -1
  30. package/schematics/ngAdd/index.js +4 -4
  31. package/state-management/grid-state.models.d.ts +58 -0
  32. package/state-management/redo-command-tool.d.ts +38 -0
  33. package/state-management/undo-command-tool.d.ts +38 -0
  34. package/state-management/undo-redo.directive.d.ts +51 -0
  35. package/state-management/undo-redo.service.d.ts +19 -0
  36. package/state-management/undo-redo.stack.d.ts +104 -0
  37. package/utils.d.ts +11 -1
@@ -271,6 +271,10 @@ export declare class ColumnBase implements AfterViewInit {
271
271
  */
272
272
  get isLocked(): boolean;
273
273
  protected _width: number;
274
+ /**
275
+ * @hidden
276
+ */
277
+ get id(): string;
274
278
  /**
275
279
  * @hidden
276
280
  */
@@ -299,6 +303,7 @@ export declare class ColumnBase implements AfterViewInit {
299
303
  * @hidden
300
304
  */
301
305
  get isVisible(): boolean;
306
+ private _id;
302
307
  /**
303
308
  * @hidden
304
309
  */
@@ -39,7 +39,7 @@ export declare class SpanColumnComponent extends ColumnBase {
39
39
  /**
40
40
  * @hidden
41
41
  */
42
- childColumns: QueryList<ColumnComponent>;
42
+ children: QueryList<ColumnComponent>;
43
43
  /**
44
44
  * @hidden
45
45
  */
@@ -118,5 +118,5 @@ export declare class SpanColumnComponent extends ColumnBase {
118
118
  */
119
119
  set cellRowspan(cellRowSpan: any);
120
120
  static ɵfac: i0.ɵɵFactoryDeclaration<SpanColumnComponent, [{ optional: true; host: true; skipSelf: true; }, { optional: true; }]>;
121
- static ɵcmp: i0.ɵɵComponentDeclaration<SpanColumnComponent, "kendo-grid-span-column", never, { "editable": { "alias": "editable"; "required": false; }; "locked": { "alias": "locked"; "required": false; }; }, {}, ["template", "editTemplate", "childColumns"], never, true, never>;
121
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpanColumnComponent, "kendo-grid-span-column", never, { "editable": { "alias": "editable"; "required": false; }; "locked": { "alias": "locked"; "required": false; }; }, {}, ["template", "editTemplate", "children"], never, true, never>;
122
122
  }
package/directives.d.ts CHANGED
@@ -140,6 +140,9 @@ import { AddCommandToolbarDirective } from "./editing/add-command-tool.directive
140
140
  import { RowDragHandleTemplateDirective } from "./row-reordering/drag-handle-template.directive";
141
141
  import { RowDragHintTemplateDirective } from "./row-reordering/drag-hint-template.directive";
142
142
  import { DialogFormComponent, FormComponent, FormFormFieldComponent } from "./editing/form";
143
+ import { UndoRedoDirective } from "./state-management/undo-redo.directive";
144
+ import { UndoCommandToolbarDirective } from "./state-management/undo-command-tool";
145
+ import { RedoCommandToolbarDirective } from "./state-management/redo-command-tool";
143
146
  import { SortCommandToolbarDirective } from "./rendering/toolbar/tools/sort-command-tool.directive";
144
147
  import { FilterCommandToolbarDirective } from "./rendering/toolbar/tools/filter-command-tool.directive";
145
148
  import { EditCommandToolbarDirective } from "./editing/edit-command-tool.directive";
@@ -233,13 +236,13 @@ export declare const KENDO_GRID_BODY_EXPORTS: readonly [typeof CommandColumnComp
233
236
  *
234
237
  * Utility array that contains the Grid module declarations
235
238
  */
236
- export declare const KENDO_GRID_DECLARATIONS: readonly [typeof GridComponent, typeof ListComponent, typeof ToolbarComponent, typeof LocalizedMessagesDirective, typeof CustomMessagesComponent, typeof DataBindingDirective, typeof ToolbarTemplateDirective, typeof SelectionDirective, typeof TemplateEditingDirective, typeof ReactiveEditingDirective, typeof InCellEditingDirective, typeof ExternalEditingDirective, typeof ExpandDetailsDirective, typeof ExpandGroupDirective, typeof GroupBindingDirective, typeof GridMarqueeDirective, typeof GridSpacerComponent, typeof GridToolbarFocusableDirective, typeof StatusBarComponent, typeof StatusBarTemplateDirective, typeof GridClipboardDirective, typeof FormComponent, typeof DialogFormComponent, typeof FormFormFieldComponent];
239
+ export declare const KENDO_GRID_DECLARATIONS: readonly [typeof GridComponent, typeof ListComponent, typeof ToolbarComponent, typeof LocalizedMessagesDirective, typeof CustomMessagesComponent, typeof DataBindingDirective, typeof ToolbarTemplateDirective, typeof SelectionDirective, typeof TemplateEditingDirective, typeof ReactiveEditingDirective, typeof InCellEditingDirective, typeof ExternalEditingDirective, typeof ExpandDetailsDirective, typeof ExpandGroupDirective, typeof GroupBindingDirective, typeof GridMarqueeDirective, typeof GridSpacerComponent, typeof GridToolbarFocusableDirective, typeof StatusBarComponent, typeof StatusBarTemplateDirective, typeof GridClipboardDirective, typeof FormComponent, typeof DialogFormComponent, typeof FormFormFieldComponent, typeof UndoRedoDirective];
237
240
  /**
238
241
  * @hidden
239
242
  *
240
243
  * Utility array that contains the Grid module exports
241
244
  */
242
- export declare const KENDO_GRID_EXPORTS: readonly [typeof GridComponent, typeof ToolbarTemplateDirective, typeof ToolbarComponent, typeof GridSpacerComponent, typeof StatusBarTemplateDirective, typeof DataBindingDirective, typeof SelectionDirective, typeof CustomMessagesComponent, typeof GroupBindingDirective, typeof TemplateEditingDirective, typeof ReactiveEditingDirective, typeof InCellEditingDirective, typeof ExternalEditingDirective, typeof ExpandDetailsDirective, typeof ExpandGroupDirective, typeof GridToolbarFocusableDirective, typeof GroupHeaderTemplateDirective, typeof GroupHeaderColumnTemplateDirective, typeof GroupFooterTemplateDirective, typeof GroupHeaderComponent, typeof GroupPanelComponent, typeof ColumnComponent, typeof ColumnGroupComponent, typeof LogicalCellDirective, typeof LogicalRowDirective, typeof FocusableDirective, typeof FooterTemplateDirective, typeof ColGroupComponent, typeof ResizableContainerDirective, typeof TemplateContextDirective, typeof FieldAccessorPipe, typeof DetailTemplateDirective, typeof SpanColumnComponent, typeof LoadingComponent, typeof GridTableDirective, typeof CommandColumnComponent, typeof CheckboxColumnComponent, typeof SelectionCheckboxDirective, typeof CellTemplateDirective, typeof EditTemplateDirective, typeof RowDragHandleTemplateDirective, typeof RowDragHintTemplateDirective, typeof TableBodyComponent, typeof NoRecordsTemplateDirective, typeof CellComponent, typeof EditCommandDirective, typeof CancelCommandDirective, typeof SaveCommandDirective, typeof RemoveCommandDirective, typeof AddCommandDirective, typeof AddCommandToolbarDirective, typeof EditCommandToolbarDirective, typeof SaveCommandToolbarDirective, typeof RemoveCommandToolbarDirective, typeof CancelCommandToolbarDirective, typeof CellLoadingTemplateDirective, typeof LoadingTemplateDirective, typeof RowReorderColumnComponent, typeof SortCommandToolbarDirective, typeof FilterCommandToolbarDirective, typeof HeaderComponent, typeof HeaderTemplateDirective, typeof ColumnHandleDirective, typeof SelectAllCheckboxDirective, typeof FilterRowComponent, typeof FilterCellComponent, typeof FilterCellTemplateDirective, typeof StringFilterCellComponent, typeof NumericFilterCellComponent, typeof AutoCompleteFilterCellComponent, typeof BooleanFilterCellComponent, typeof FilterCellHostDirective, typeof FilterCellWrapperComponent, typeof DateFilterCellComponent, typeof FilterCellOperatorsComponent, typeof ContainsFilterOperatorComponent, typeof DoesNotContainFilterOperatorComponent, typeof EndsWithFilterOperatorComponent, typeof EqualFilterOperatorComponent, typeof IsEmptyFilterOperatorComponent, typeof IsNotEmptyFilterOperatorComponent, typeof IsNotNullFilterOperatorComponent, typeof IsNullFilterOperatorComponent, typeof NotEqualFilterOperatorComponent, typeof StartsWithFilterOperatorComponent, typeof GreaterFilterOperatorComponent, typeof GreaterOrEqualToFilterOperatorComponent, typeof LessFilterOperatorComponent, typeof LessOrEqualToFilterOperatorComponent, typeof AfterFilterOperatorComponent, typeof AfterEqFilterOperatorComponent, typeof BeforeEqFilterOperatorComponent, typeof BeforeFilterOperatorComponent, typeof FilterMenuComponent, typeof FilterMenuContainerComponent, typeof FilterMenuInputWrapperComponent, typeof StringFilterMenuInputComponent, typeof StringFilterMenuComponent, typeof FilterMenuTemplateDirective, typeof NumericFilterMenuComponent, typeof NumericFilterMenuInputComponent, typeof DateFilterMenuInputComponent, typeof DateFilterMenuComponent, typeof FilterMenuHostDirective, typeof BooleanFilterMenuComponent, typeof FilterMenuDropDownListDirective, typeof BooleanFilterRadioButtonDirective, typeof ColumnChooserComponent, typeof ColumnChooserToolbarDirective, typeof ColumnMenuFilterComponent, typeof ColumnMenuItemComponent, typeof ColumnMenuItemContentTemplateDirective, typeof ColumnMenuSortComponent, typeof ColumnMenuLockComponent, typeof ColumnMenuStickComponent, typeof ColumnMenuPositionComponent, typeof ColumnMenuChooserComponent, typeof ColumnMenuTemplateDirective, typeof ColumnMenuContainerComponent, typeof ColumnMenuItemDirective, typeof ColumnMenuComponent, typeof ColumnMenuAutoSizeColumnComponent, typeof ColumnMenuAutoSizeAllColumnsComponent, typeof GridClipboardDirective];
245
+ export declare const KENDO_GRID_EXPORTS: readonly [typeof GridComponent, typeof ToolbarTemplateDirective, typeof ToolbarComponent, typeof GridSpacerComponent, typeof StatusBarTemplateDirective, typeof DataBindingDirective, typeof SelectionDirective, typeof CustomMessagesComponent, typeof GroupBindingDirective, typeof TemplateEditingDirective, typeof ReactiveEditingDirective, typeof InCellEditingDirective, typeof ExternalEditingDirective, typeof ExpandDetailsDirective, typeof ExpandGroupDirective, typeof GridToolbarFocusableDirective, typeof GroupHeaderTemplateDirective, typeof GroupHeaderColumnTemplateDirective, typeof GroupFooterTemplateDirective, typeof GroupHeaderComponent, typeof GroupPanelComponent, typeof ColumnComponent, typeof ColumnGroupComponent, typeof LogicalCellDirective, typeof LogicalRowDirective, typeof FocusableDirective, typeof FooterTemplateDirective, typeof ColGroupComponent, typeof ResizableContainerDirective, typeof TemplateContextDirective, typeof FieldAccessorPipe, typeof DetailTemplateDirective, typeof SpanColumnComponent, typeof LoadingComponent, typeof GridTableDirective, typeof CommandColumnComponent, typeof CheckboxColumnComponent, typeof SelectionCheckboxDirective, typeof CellTemplateDirective, typeof EditTemplateDirective, typeof RowDragHandleTemplateDirective, typeof RowDragHintTemplateDirective, typeof TableBodyComponent, typeof NoRecordsTemplateDirective, typeof CellComponent, typeof EditCommandDirective, typeof CancelCommandDirective, typeof SaveCommandDirective, typeof RemoveCommandDirective, typeof AddCommandDirective, typeof AddCommandToolbarDirective, typeof EditCommandToolbarDirective, typeof SaveCommandToolbarDirective, typeof RemoveCommandToolbarDirective, typeof CancelCommandToolbarDirective, typeof CellLoadingTemplateDirective, typeof LoadingTemplateDirective, typeof RowReorderColumnComponent, typeof SortCommandToolbarDirective, typeof FilterCommandToolbarDirective, typeof HeaderComponent, typeof HeaderTemplateDirective, typeof ColumnHandleDirective, typeof SelectAllCheckboxDirective, typeof FilterRowComponent, typeof FilterCellComponent, typeof FilterCellTemplateDirective, typeof StringFilterCellComponent, typeof NumericFilterCellComponent, typeof AutoCompleteFilterCellComponent, typeof BooleanFilterCellComponent, typeof FilterCellHostDirective, typeof FilterCellWrapperComponent, typeof DateFilterCellComponent, typeof FilterCellOperatorsComponent, typeof ContainsFilterOperatorComponent, typeof DoesNotContainFilterOperatorComponent, typeof EndsWithFilterOperatorComponent, typeof EqualFilterOperatorComponent, typeof IsEmptyFilterOperatorComponent, typeof IsNotEmptyFilterOperatorComponent, typeof IsNotNullFilterOperatorComponent, typeof IsNullFilterOperatorComponent, typeof NotEqualFilterOperatorComponent, typeof StartsWithFilterOperatorComponent, typeof GreaterFilterOperatorComponent, typeof GreaterOrEqualToFilterOperatorComponent, typeof LessFilterOperatorComponent, typeof LessOrEqualToFilterOperatorComponent, typeof AfterFilterOperatorComponent, typeof AfterEqFilterOperatorComponent, typeof BeforeEqFilterOperatorComponent, typeof BeforeFilterOperatorComponent, typeof FilterMenuComponent, typeof FilterMenuContainerComponent, typeof FilterMenuInputWrapperComponent, typeof StringFilterMenuInputComponent, typeof StringFilterMenuComponent, typeof FilterMenuTemplateDirective, typeof NumericFilterMenuComponent, typeof NumericFilterMenuInputComponent, typeof DateFilterMenuInputComponent, typeof DateFilterMenuComponent, typeof FilterMenuHostDirective, typeof BooleanFilterMenuComponent, typeof FilterMenuDropDownListDirective, typeof BooleanFilterRadioButtonDirective, typeof ColumnChooserComponent, typeof ColumnChooserToolbarDirective, typeof ColumnMenuFilterComponent, typeof ColumnMenuItemComponent, typeof ColumnMenuItemContentTemplateDirective, typeof ColumnMenuSortComponent, typeof ColumnMenuLockComponent, typeof ColumnMenuStickComponent, typeof ColumnMenuPositionComponent, typeof ColumnMenuChooserComponent, typeof ColumnMenuTemplateDirective, typeof ColumnMenuContainerComponent, typeof ColumnMenuItemDirective, typeof ColumnMenuComponent, typeof ColumnMenuAutoSizeColumnComponent, typeof ColumnMenuAutoSizeAllColumnsComponent, typeof GridClipboardDirective, typeof UndoRedoDirective, typeof UndoCommandToolbarDirective, typeof RedoCommandToolbarDirective];
243
246
  /**
244
247
  * @hidden
245
248
  *
@@ -255,4 +258,4 @@ export declare const KENDO_GRID_PDF_EXPORT: readonly [typeof PDFComponent, typeo
255
258
  /**
256
259
  * Utility array that contains all `Grid` related components and directives
257
260
  */
258
- export declare const KENDO_GRID: readonly [typeof GridComponent, typeof ToolbarTemplateDirective, typeof ToolbarComponent, typeof GridSpacerComponent, typeof StatusBarTemplateDirective, typeof DataBindingDirective, typeof SelectionDirective, typeof CustomMessagesComponent, typeof GroupBindingDirective, typeof TemplateEditingDirective, typeof ReactiveEditingDirective, typeof InCellEditingDirective, typeof ExternalEditingDirective, typeof ExpandDetailsDirective, typeof ExpandGroupDirective, typeof GridToolbarFocusableDirective, typeof GroupHeaderTemplateDirective, typeof GroupHeaderColumnTemplateDirective, typeof GroupFooterTemplateDirective, typeof GroupHeaderComponent, typeof GroupPanelComponent, typeof ColumnComponent, typeof ColumnGroupComponent, typeof LogicalCellDirective, typeof LogicalRowDirective, typeof FocusableDirective, typeof FooterTemplateDirective, typeof ColGroupComponent, typeof ResizableContainerDirective, typeof TemplateContextDirective, typeof FieldAccessorPipe, typeof DetailTemplateDirective, typeof SpanColumnComponent, typeof LoadingComponent, typeof GridTableDirective, typeof CommandColumnComponent, typeof CheckboxColumnComponent, typeof SelectionCheckboxDirective, typeof CellTemplateDirective, typeof EditTemplateDirective, typeof RowDragHandleTemplateDirective, typeof RowDragHintTemplateDirective, typeof TableBodyComponent, typeof NoRecordsTemplateDirective, typeof CellComponent, typeof EditCommandDirective, typeof CancelCommandDirective, typeof SaveCommandDirective, typeof RemoveCommandDirective, typeof AddCommandDirective, typeof AddCommandToolbarDirective, typeof EditCommandToolbarDirective, typeof SaveCommandToolbarDirective, typeof RemoveCommandToolbarDirective, typeof CancelCommandToolbarDirective, typeof CellLoadingTemplateDirective, typeof LoadingTemplateDirective, typeof RowReorderColumnComponent, typeof SortCommandToolbarDirective, typeof FilterCommandToolbarDirective, typeof HeaderComponent, typeof HeaderTemplateDirective, typeof ColumnHandleDirective, typeof SelectAllCheckboxDirective, typeof FilterRowComponent, typeof FilterCellComponent, typeof FilterCellTemplateDirective, typeof StringFilterCellComponent, typeof NumericFilterCellComponent, typeof AutoCompleteFilterCellComponent, typeof BooleanFilterCellComponent, typeof FilterCellHostDirective, typeof FilterCellWrapperComponent, typeof DateFilterCellComponent, typeof FilterCellOperatorsComponent, typeof ContainsFilterOperatorComponent, typeof DoesNotContainFilterOperatorComponent, typeof EndsWithFilterOperatorComponent, typeof EqualFilterOperatorComponent, typeof IsEmptyFilterOperatorComponent, typeof IsNotEmptyFilterOperatorComponent, typeof IsNotNullFilterOperatorComponent, typeof IsNullFilterOperatorComponent, typeof NotEqualFilterOperatorComponent, typeof StartsWithFilterOperatorComponent, typeof GreaterFilterOperatorComponent, typeof GreaterOrEqualToFilterOperatorComponent, typeof LessFilterOperatorComponent, typeof LessOrEqualToFilterOperatorComponent, typeof AfterFilterOperatorComponent, typeof AfterEqFilterOperatorComponent, typeof BeforeEqFilterOperatorComponent, typeof BeforeFilterOperatorComponent, typeof FilterMenuComponent, typeof FilterMenuContainerComponent, typeof FilterMenuInputWrapperComponent, typeof StringFilterMenuInputComponent, typeof StringFilterMenuComponent, typeof FilterMenuTemplateDirective, typeof NumericFilterMenuComponent, typeof NumericFilterMenuInputComponent, typeof DateFilterMenuInputComponent, typeof DateFilterMenuComponent, typeof FilterMenuHostDirective, typeof BooleanFilterMenuComponent, typeof FilterMenuDropDownListDirective, typeof BooleanFilterRadioButtonDirective, typeof ColumnChooserComponent, typeof ColumnChooserToolbarDirective, typeof ColumnMenuFilterComponent, typeof ColumnMenuItemComponent, typeof ColumnMenuItemContentTemplateDirective, typeof ColumnMenuSortComponent, typeof ColumnMenuLockComponent, typeof ColumnMenuStickComponent, typeof ColumnMenuPositionComponent, typeof ColumnMenuChooserComponent, typeof ColumnMenuTemplateDirective, typeof ColumnMenuContainerComponent, typeof ColumnMenuItemDirective, typeof ColumnMenuComponent, typeof ColumnMenuAutoSizeColumnComponent, typeof ColumnMenuAutoSizeAllColumnsComponent, typeof GridClipboardDirective, typeof ExcelComponent, typeof ExcelCommandDirective, typeof ExcelCommandToolbarDirective, typeof ExcelColumnComponent, typeof ExcelColumnGroupComponent, typeof ExcelFooterTemplateDirective, typeof ExcelGroupFooterTemplateDirective, typeof ExcelGroupHeaderColumnTemplateDirective, typeof ExcelGroupHeaderTemplateDirective, typeof PDFComponent, typeof PDFMarginComponent, typeof PDFCommandDirective, typeof PDFTemplateDirective, typeof PDFCommandToolbarDirective];
261
+ export declare const KENDO_GRID: readonly [typeof GridComponent, typeof ToolbarTemplateDirective, typeof ToolbarComponent, typeof GridSpacerComponent, typeof StatusBarTemplateDirective, typeof DataBindingDirective, typeof SelectionDirective, typeof CustomMessagesComponent, typeof GroupBindingDirective, typeof TemplateEditingDirective, typeof ReactiveEditingDirective, typeof InCellEditingDirective, typeof ExternalEditingDirective, typeof ExpandDetailsDirective, typeof ExpandGroupDirective, typeof GridToolbarFocusableDirective, typeof GroupHeaderTemplateDirective, typeof GroupHeaderColumnTemplateDirective, typeof GroupFooterTemplateDirective, typeof GroupHeaderComponent, typeof GroupPanelComponent, typeof ColumnComponent, typeof ColumnGroupComponent, typeof LogicalCellDirective, typeof LogicalRowDirective, typeof FocusableDirective, typeof FooterTemplateDirective, typeof ColGroupComponent, typeof ResizableContainerDirective, typeof TemplateContextDirective, typeof FieldAccessorPipe, typeof DetailTemplateDirective, typeof SpanColumnComponent, typeof LoadingComponent, typeof GridTableDirective, typeof CommandColumnComponent, typeof CheckboxColumnComponent, typeof SelectionCheckboxDirective, typeof CellTemplateDirective, typeof EditTemplateDirective, typeof RowDragHandleTemplateDirective, typeof RowDragHintTemplateDirective, typeof TableBodyComponent, typeof NoRecordsTemplateDirective, typeof CellComponent, typeof EditCommandDirective, typeof CancelCommandDirective, typeof SaveCommandDirective, typeof RemoveCommandDirective, typeof AddCommandDirective, typeof AddCommandToolbarDirective, typeof EditCommandToolbarDirective, typeof SaveCommandToolbarDirective, typeof RemoveCommandToolbarDirective, typeof CancelCommandToolbarDirective, typeof CellLoadingTemplateDirective, typeof LoadingTemplateDirective, typeof RowReorderColumnComponent, typeof SortCommandToolbarDirective, typeof FilterCommandToolbarDirective, typeof HeaderComponent, typeof HeaderTemplateDirective, typeof ColumnHandleDirective, typeof SelectAllCheckboxDirective, typeof FilterRowComponent, typeof FilterCellComponent, typeof FilterCellTemplateDirective, typeof StringFilterCellComponent, typeof NumericFilterCellComponent, typeof AutoCompleteFilterCellComponent, typeof BooleanFilterCellComponent, typeof FilterCellHostDirective, typeof FilterCellWrapperComponent, typeof DateFilterCellComponent, typeof FilterCellOperatorsComponent, typeof ContainsFilterOperatorComponent, typeof DoesNotContainFilterOperatorComponent, typeof EndsWithFilterOperatorComponent, typeof EqualFilterOperatorComponent, typeof IsEmptyFilterOperatorComponent, typeof IsNotEmptyFilterOperatorComponent, typeof IsNotNullFilterOperatorComponent, typeof IsNullFilterOperatorComponent, typeof NotEqualFilterOperatorComponent, typeof StartsWithFilterOperatorComponent, typeof GreaterFilterOperatorComponent, typeof GreaterOrEqualToFilterOperatorComponent, typeof LessFilterOperatorComponent, typeof LessOrEqualToFilterOperatorComponent, typeof AfterFilterOperatorComponent, typeof AfterEqFilterOperatorComponent, typeof BeforeEqFilterOperatorComponent, typeof BeforeFilterOperatorComponent, typeof FilterMenuComponent, typeof FilterMenuContainerComponent, typeof FilterMenuInputWrapperComponent, typeof StringFilterMenuInputComponent, typeof StringFilterMenuComponent, typeof FilterMenuTemplateDirective, typeof NumericFilterMenuComponent, typeof NumericFilterMenuInputComponent, typeof DateFilterMenuInputComponent, typeof DateFilterMenuComponent, typeof FilterMenuHostDirective, typeof BooleanFilterMenuComponent, typeof FilterMenuDropDownListDirective, typeof BooleanFilterRadioButtonDirective, typeof ColumnChooserComponent, typeof ColumnChooserToolbarDirective, typeof ColumnMenuFilterComponent, typeof ColumnMenuItemComponent, typeof ColumnMenuItemContentTemplateDirective, typeof ColumnMenuSortComponent, typeof ColumnMenuLockComponent, typeof ColumnMenuStickComponent, typeof ColumnMenuPositionComponent, typeof ColumnMenuChooserComponent, typeof ColumnMenuTemplateDirective, typeof ColumnMenuContainerComponent, typeof ColumnMenuItemDirective, typeof ColumnMenuComponent, typeof ColumnMenuAutoSizeColumnComponent, typeof ColumnMenuAutoSizeAllColumnsComponent, typeof GridClipboardDirective, typeof UndoRedoDirective, typeof UndoCommandToolbarDirective, typeof RedoCommandToolbarDirective, typeof ExcelComponent, typeof ExcelCommandDirective, typeof ExcelCommandToolbarDirective, typeof ExcelColumnComponent, typeof ExcelColumnGroupComponent, typeof ExcelFooterTemplateDirective, typeof ExcelGroupFooterTemplateDirective, typeof ExcelGroupHeaderColumnTemplateDirective, typeof ExcelGroupHeaderTemplateDirective, typeof PDFComponent, typeof PDFMarginComponent, typeof PDFCommandDirective, typeof PDFTemplateDirective, typeof PDFCommandToolbarDirective];
@@ -82,7 +82,7 @@ const indexOf = (target, list) => {
82
82
  break;
83
83
  }
84
84
  if ((ignore-- <= 0) && isParentSpanColumn) {
85
- ignore = current.parent.childColumns.length - 1;
85
+ ignore = current.parent.children.length - 1;
86
86
  skip += ignore;
87
87
  }
88
88
  index++;
@@ -134,7 +134,7 @@ export class ColumnHandleDirective {
134
134
  const currentLeafs = leafColumns([this.column]).filter(column => isTruthy(column.resizable));
135
135
  const columnInfo = currentLeafs.map(column => {
136
136
  const isParentSpan = isInSpanColumn(column);
137
- const isLastInSpan = isParentSpan ? column.parent.childColumns.last === column : false;
137
+ const isLastInSpan = isParentSpan ? column.parent.children.last === column : false;
138
138
  const index = indexOf(column, allLeafs);
139
139
  return {
140
140
  column,
@@ -24,6 +24,7 @@ export const isCheckboxColumn = column => column.isCheckboxColumn;
24
24
  */
25
25
  export const isRowReorderColumn = column => column.isRowReorderColumn;
26
26
  const isColumnContainer = column => column.isColumnGroup || isSpanColumn(column);
27
+ let columnId = 0;
27
28
  /**
28
29
  * The base class for the column components of the Grid.
29
30
  */
@@ -300,6 +301,12 @@ export class ColumnBase {
300
301
  return this.parent ? this.parent.isLocked : this.locked;
301
302
  }
302
303
  _width;
304
+ /**
305
+ * @hidden
306
+ */
307
+ get id() {
308
+ return this._id;
309
+ }
303
310
  /**
304
311
  * @hidden
305
312
  */
@@ -344,6 +351,7 @@ export class ColumnBase {
344
351
  get isVisible() {
345
352
  return !this.hidden && this.matchesMedia;
346
353
  }
354
+ _id;
347
355
  /**
348
356
  * @hidden
349
357
  */
@@ -353,6 +361,7 @@ export class ColumnBase {
353
361
  if (parent && idService && parent.idService.gridId() === idService.gridId() && !isColumnContainer(parent)) {
354
362
  throw new Error(ColumnConfigurationErrorMessages.columnNested);
355
363
  }
364
+ this._id = `k-grid-column-${columnId++}`;
356
365
  }
357
366
  ngAfterViewInit() {
358
367
  this.initialMaxResizableWidth = this.maxResizableWidth;
@@ -70,7 +70,7 @@ export class ColumnsContainer {
70
70
  unlockedWidth += column.width || 0;
71
71
  }
72
72
  if (column.isSpanColumn) {
73
- column.childColumns.forEach(c => {
73
+ column.children.forEach(c => {
74
74
  c.leafIndex = leafIndex++;
75
75
  });
76
76
  }
@@ -48,7 +48,7 @@ export class SpanColumnComponent extends ColumnBase {
48
48
  /**
49
49
  * @hidden
50
50
  */
51
- childColumns = new QueryList();
51
+ children = new QueryList();
52
52
  /**
53
53
  * @hidden
54
54
  */
@@ -91,13 +91,13 @@ export class SpanColumnComponent extends ColumnBase {
91
91
  set width(_value) {
92
92
  }
93
93
  get width() {
94
- return this.childColumns.reduce((total, column) => total + column.width, 0);
94
+ return this.children.reduce((total, column) => total + column.width, 0);
95
95
  }
96
96
  /**
97
97
  * @hidden
98
98
  */
99
99
  get leafIndex() {
100
- return this.childColumns.first.leafIndex;
100
+ return this.children.first.leafIndex;
101
101
  }
102
102
  _editable = true;
103
103
  constructor(parent, idService) {
@@ -124,7 +124,7 @@ export class SpanColumnComponent extends ColumnBase {
124
124
  * @hidden
125
125
  */
126
126
  get colspan() {
127
- return this.childColumns.filter(c => c.isVisible).length;
127
+ return this.children.filter(c => c.isVisible).length;
128
128
  }
129
129
  /**
130
130
  * Toggles the locked (frozen) state of the columns ([see example](slug:locked_columns_grid)).
@@ -134,13 +134,13 @@ export class SpanColumnComponent extends ColumnBase {
134
134
  this._locked = value;
135
135
  }
136
136
  get locked() {
137
- return this._locked || this.childColumns.some(c => c.locked);
137
+ return this._locked || this.children.some(c => c.locked);
138
138
  }
139
139
  get childrenArray() {
140
- return this.childColumns.toArray();
140
+ return this.children.toArray();
141
141
  }
142
142
  get hasChildren() {
143
- return this.childColumns.length > 0;
143
+ return this.children.length > 0;
144
144
  }
145
145
  /**
146
146
  * @hidden
@@ -156,7 +156,7 @@ export class SpanColumnComponent extends ColumnBase {
156
156
  provide: ColumnBase,
157
157
  useExisting: forwardRef(() => SpanColumnComponent)
158
158
  }
159
- ], queries: [{ propertyName: "template", predicate: CellTemplateDirective }, { propertyName: "editTemplate", predicate: EditTemplateDirective }, { propertyName: "childColumns", predicate: ColumnComponent }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
159
+ ], queries: [{ propertyName: "template", predicate: CellTemplateDirective }, { propertyName: "editTemplate", predicate: EditTemplateDirective }, { propertyName: "children", predicate: ColumnComponent }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
160
160
  }
161
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpanColumnComponent, decorators: [{
162
162
  type: Component,
@@ -185,7 +185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
185
185
  }], editTemplate: [{
186
186
  type: ContentChildren,
187
187
  args: [EditTemplateDirective, { descendants: false }]
188
- }], childColumns: [{
188
+ }], children: [{
189
189
  type: ContentChildren,
190
190
  args: [ColumnComponent]
191
191
  }], editable: [{
@@ -148,6 +148,9 @@ import { AddCommandToolbarDirective } from "./editing/add-command-tool.directive
148
148
  import { RowDragHandleTemplateDirective } from "./row-reordering/drag-handle-template.directive";
149
149
  import { RowDragHintTemplateDirective } from "./row-reordering/drag-hint-template.directive";
150
150
  import { DialogFormComponent, FormComponent, FormFormFieldComponent } from "./editing/form";
151
+ import { UndoRedoDirective } from "./state-management/undo-redo.directive";
152
+ import { UndoCommandToolbarDirective } from "./state-management/undo-command-tool";
153
+ import { RedoCommandToolbarDirective } from "./state-management/redo-command-tool";
151
154
  import { SortCommandToolbarDirective } from "./rendering/toolbar/tools/sort-command-tool.directive";
152
155
  import { FilterCommandToolbarDirective } from "./rendering/toolbar/tools/filter-command-tool.directive";
153
156
  import { EditCommandToolbarDirective } from "./editing/edit-command-tool.directive";
@@ -412,7 +415,8 @@ export const KENDO_GRID_DECLARATIONS = [
412
415
  GridClipboardDirective,
413
416
  FormComponent,
414
417
  DialogFormComponent,
415
- FormFormFieldComponent
418
+ FormFormFieldComponent,
419
+ UndoRedoDirective,
416
420
  ];
417
421
  /**
418
422
  * @hidden
@@ -444,7 +448,10 @@ export const KENDO_GRID_EXPORTS = [
444
448
  ...KENDO_GRID_FILTER_OPERATORS,
445
449
  ...KENDO_GRID_FILTER_MENU_EXPORTS,
446
450
  ...KENDO_GRID_COLUMN_MENU_EXPORTS,
447
- GridClipboardDirective
451
+ GridClipboardDirective,
452
+ UndoRedoDirective,
453
+ UndoCommandToolbarDirective,
454
+ RedoCommandToolbarDirective,
448
455
  ];
449
456
  /**
450
457
  * @hidden
@@ -6,7 +6,7 @@ import { Component, ContentChildren, ElementRef, EventEmitter, HostBinding, Inpu
6
6
  import { ZoneAwareEventEmitter } from './common/event-emitter';
7
7
  import { FormControl, FormGroup } from '@angular/forms';
8
8
  import { merge } from 'rxjs';
9
- import { map, tap, take, filter, switchMap, takeUntil } from 'rxjs/operators';
9
+ import { map, tap, take, filter, switchMap, takeUntil, flatMap } from 'rxjs/operators';
10
10
  import { validatePackage } from '@progress/kendo-licensing';
11
11
  import { packageMetadata } from './package-metadata';
12
12
  import { ColumnComponent, isColumnComponent } from './columns/column.component';
@@ -14,7 +14,7 @@ import { isSpanColumnComponent } from './columns/span-column.component';
14
14
  import { isColumnGroupComponent, ColumnGroupComponent } from './columns/column-group.component';
15
15
  import { DetailTemplateDirective } from './rendering/details/detail-template.directive';
16
16
  import { normalize } from './common/pager-settings';
17
- import { isArray, anyChanged, isChanged, isPresent, isUniversal, observe, isTruthy, createPromise, hasObservers, roundDown } from './utils';
17
+ import { isArray, anyChanged, isChanged, isPresent, isUniversal, observe, isTruthy, createPromise, hasObservers, roundDown, recursiveColumnsFlatMap } from './utils';
18
18
  import { BrowserSupportService } from './layout/browser-support.service';
19
19
  import { DataResultIterator, DataCollection } from './data/data.collection';
20
20
  import { SelectionService } from './selection/selection.service';
@@ -572,6 +572,21 @@ export class GridComponent {
572
572
  this.defaultSelection ? this.defaultSelection.stateToArray() : this.selectionDirective.stateToArray() :
573
573
  [];
574
574
  }
575
+ /**
576
+ * The current Grid `GridState` objects. Contains the information about data operations and column state, required
577
+ * to store and restore the Grid state.
578
+ */
579
+ get currentState() {
580
+ return {
581
+ filter: this.filter,
582
+ group: this.group,
583
+ sort: this.sort,
584
+ skip: this.skip,
585
+ take: this.pageSize,
586
+ columnsState: this.columns.toArray().flatMap(recursiveColumnsFlatMap),
587
+ currentData: structuredClone(this.data)
588
+ };
589
+ }
575
590
  /**
576
591
  * If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells
577
592
  * ([see example]({% slug resizing_columns_grid %})).
@@ -616,6 +631,25 @@ export class GridComponent {
616
631
  * @default false
617
632
  */
618
633
  showInactiveTools = false;
634
+ /**
635
+ * A function which determines if a specific row is expanded.
636
+ */
637
+ set isDetailExpanded(callback) {
638
+ this.detailsService.userCallback = callback;
639
+ }
640
+ get isDetailExpanded() {
641
+ return this.detailsService.userCallback;
642
+ }
643
+ /**
644
+ * A function which determines if a specific group row is expanded.
645
+ */
646
+ set isGroupExpanded(callback) {
647
+ this.groupsService.userCallback = callback;
648
+ this.groupable = isPresent(callback);
649
+ }
650
+ get isGroupExpanded() {
651
+ return this.groupsService.userCallback;
652
+ }
619
653
  /**
620
654
  * Fires when the Grid filter is modified through the UI.
621
655
  * You have to handle the event yourself and filter the data.
@@ -648,6 +682,10 @@ export class GridComponent {
648
682
  * Fires when the data state of the Grid is changed.
649
683
  */
650
684
  dataStateChange = new EventEmitter();
685
+ /**
686
+ * Fires when the data or columns state of the Grid is changed.
687
+ */
688
+ gridStateChange = new EventEmitter();
651
689
  /**
652
690
  * Fires when the user expands a group header.
653
691
  */
@@ -894,6 +932,12 @@ export class GridComponent {
894
932
  get navigation() {
895
933
  return this.navigationService;
896
934
  }
935
+ /**
936
+ * @hidden
937
+ */
938
+ get flatData() {
939
+ return isArray(this.data) ? this.data : this.data.data;
940
+ }
897
941
  shouldGenerateColumns = true;
898
942
  direction;
899
943
  notifyTimeout = null;
@@ -1004,6 +1048,7 @@ export class GridComponent {
1004
1048
  * @hidden
1005
1049
  */
1006
1050
  blockArrowSelection = false;
1051
+ undoRedoService;
1007
1052
  selectionSubscription;
1008
1053
  stateChangeSubscription;
1009
1054
  groupExpandCollapseSubscription;
@@ -1175,6 +1220,7 @@ export class GridComponent {
1175
1220
  }
1176
1221
  this.initSelectionService();
1177
1222
  this.updateNavigationMetadata();
1223
+ this.currentState.currentData = this.data;
1178
1224
  }
1179
1225
  ngOnChanges(changes) {
1180
1226
  if (isChanged("data", changes)) {
@@ -1384,6 +1430,12 @@ export class GridComponent {
1384
1430
  const target = isNaN(columnIndex) ? row : `${row} td[data-kendo-grid-column-index="${columnIndex}"]`;
1385
1431
  this.focusEditElement(target);
1386
1432
  }
1433
+ /**
1434
+ * @hidden
1435
+ */
1436
+ handleReorderEvents(ev, evType) {
1437
+ this.rowReorderService[evType](ev);
1438
+ }
1387
1439
  /**
1388
1440
  * Closes the editor for a given row ([see example]({% slug inline_editing_grid %}#toc-canceling-editing-1)).
1389
1441
  *
@@ -1477,6 +1529,42 @@ export class GridComponent {
1477
1529
  saveAsExcel() {
1478
1530
  this.excelService.save(this);
1479
1531
  }
1532
+ /**
1533
+ * Applies the provided `GridState` object to the Grid.
1534
+ */
1535
+ loadState(state) {
1536
+ this.traverseColumns(this.columns, (column) => {
1537
+ const columnState = state.columnsState.find((col) => col.id === column.id);
1538
+ if (columnState) {
1539
+ column.width = columnState.width;
1540
+ column.hidden = columnState.hidden;
1541
+ column.locked = columnState.locked;
1542
+ column.sticky = columnState.sticky;
1543
+ column.orderIndex = columnState.orderIndex;
1544
+ }
1545
+ });
1546
+ this.columns.reset(this.columns.toArray());
1547
+ this.columnsContainer.refresh();
1548
+ this.sort = state.sort;
1549
+ this.group = state.group;
1550
+ this.filter = state.filter;
1551
+ this.group = state.group;
1552
+ this.skip = state.skip;
1553
+ this.pageSize = state.take;
1554
+ this.data = state.currentData;
1555
+ this.changeNotification.notify();
1556
+ this.changeDetectorRef.detectChanges();
1557
+ }
1558
+ traverseColumns(columns, callback) {
1559
+ columns.forEach((column) => {
1560
+ if (column.isColumnGroup || column.isSpanColumn) {
1561
+ this.traverseColumns(column.children, callback);
1562
+ }
1563
+ else {
1564
+ callback(column);
1565
+ }
1566
+ });
1567
+ }
1480
1568
  /**
1481
1569
  * Applies the minimum possible width for the specified column,
1482
1570
  * so that the whole text fits without wrapping. This method expects the Grid
@@ -1627,7 +1715,7 @@ export class GridComponent {
1627
1715
  return;
1628
1716
  }
1629
1717
  if (isSpanColumnComponent(target) && !options.before) {
1630
- target = target.childColumns.last;
1718
+ target = target.children.last;
1631
1719
  }
1632
1720
  this.reorder({
1633
1721
  before: options.before,
@@ -1635,37 +1723,6 @@ export class GridComponent {
1635
1723
  target: target
1636
1724
  });
1637
1725
  }
1638
- /**
1639
- * A function which determines if a specific row is expanded.
1640
- */
1641
- set isDetailExpanded(callback) {
1642
- this.detailsService.userCallback = callback;
1643
- }
1644
- get isDetailExpanded() {
1645
- return this.detailsService.userCallback;
1646
- }
1647
- /**
1648
- * A function which determines if a specific group row is expanded.
1649
- */
1650
- set isGroupExpanded(callback) {
1651
- this.groupsService.userCallback = callback;
1652
- this.groupable = isPresent(callback);
1653
- }
1654
- get isGroupExpanded() {
1655
- return this.groupsService.userCallback;
1656
- }
1657
- /**
1658
- * @hidden
1659
- */
1660
- handleReorderEvents(ev, evType) {
1661
- this.rowReorderService[evType](ev);
1662
- }
1663
- /**
1664
- * @hidden
1665
- */
1666
- get flatData() {
1667
- return isArray(this.data) ? this.data : this.data.data;
1668
- }
1669
1726
  /**
1670
1727
  * @hidden
1671
1728
  */
@@ -1719,7 +1776,7 @@ export class GridComponent {
1719
1776
  let toSkip = 1;
1720
1777
  // Possible only when called from the API.
1721
1778
  if (source.isSpanColumn) {
1722
- toSkip += source.childColumns.length;
1779
+ toSkip += source.children.length;
1723
1780
  }
1724
1781
  let i = 0;
1725
1782
  while (i < expandedColumns.length) {
@@ -1915,7 +1972,13 @@ export class GridComponent {
1915
1972
  this.blockArrowSelection = true;
1916
1973
  }
1917
1974
  this.dataStateChange.emit(x);
1975
+ this.gridStateChange.emit({ ...x, columnsState: this.currentState.columnsState, currentData: this.currentState.currentData });
1976
+ if (this.undoRedoService) {
1977
+ this.undoRedoService.originalEvent = x;
1978
+ }
1918
1979
  });
1980
+ this.stateChangeSubscription.add(merge(this.columnReorder, this.columnResize, this.columnVisibilityChange, this.columnLockedChange, this.columnStickyChange).pipe(flatMap(() => this.ngZone.onStable.pipe(take(1))))
1981
+ .subscribe(() => this.ngZone.run(() => this.gridStateChange.emit(this.currentState))));
1919
1982
  }
1920
1983
  attachEditHandlers() {
1921
1984
  if (!this.editService) {
@@ -2209,7 +2272,7 @@ export class GridComponent {
2209
2272
  this.dropTargetContainer?.notify();
2210
2273
  }
2211
2274
  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.RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
2212
- 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", 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", navigatable: "navigatable", 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", 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: [
2275
+ 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", 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", navigatable: "navigatable", 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: [
2213
2276
  BrowserSupportService,
2214
2277
  LocalizationService,
2215
2278
  ColumnInfoService,
@@ -2969,7 +3032,7 @@ export class GridComponent {
2969
3032
  <div #dialogContainer></div>
2970
3033
 
2971
3034
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
2972
- `, 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"] }], encapsulation: i0.ViewEncapsulation.None });
3035
+ `, 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: ["showPageText", "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: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { 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", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
2973
3036
  }
2974
3037
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
2975
3038
  type: Component,
@@ -3816,6 +3879,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3816
3879
  type: Input
3817
3880
  }], showInactiveTools: [{
3818
3881
  type: Input
3882
+ }], isDetailExpanded: [{
3883
+ type: Input
3884
+ }], isGroupExpanded: [{
3885
+ type: Input
3819
3886
  }], filterChange: [{
3820
3887
  type: Output
3821
3888
  }], pageChange: [{
@@ -3830,6 +3897,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3830
3897
  type: Output
3831
3898
  }], dataStateChange: [{
3832
3899
  type: Output
3900
+ }], gridStateChange: [{
3901
+ type: Output
3833
3902
  }], groupExpand: [{
3834
3903
  type: Output
3835
3904
  }], groupCollapse: [{
@@ -3954,8 +4023,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3954
4023
  }], dialogContainer: [{
3955
4024
  type: ViewChild,
3956
4025
  args: ['dialogContainer', { read: ViewContainerRef }]
3957
- }], isDetailExpanded: [{
3958
- type: Input
3959
- }], isGroupExpanded: [{
3960
- type: Input
3961
4026
  }] } });