@progress/kendo-angular-grid 19.0.0-develop.9 → 19.0.1-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/adaptiveness/adaptive-mode.d.ts +12 -0
  2. package/adaptiveness/adaptive-renderer.component.d.ts +89 -0
  3. package/codemods/template-transformer/index.js +94 -0
  4. package/codemods/utils.js +553 -0
  5. package/codemods/v19/grid-kendogridgroupbinding.js +51 -0
  6. package/column-menu/column-chooser.component.d.ts +4 -0
  7. package/column-menu/column-list.component.d.ts +10 -3
  8. package/column-menu/column-menu-item.component.d.ts +48 -3
  9. package/column-menu/column-menu-item.directive.d.ts +5 -2
  10. package/column-menu/column-menu.component.d.ts +4 -2
  11. package/columns/column-base.d.ts +5 -0
  12. package/columns/span-column.component.d.ts +2 -2
  13. package/common/adaptiveness.service.d.ts +50 -0
  14. package/common/single-popup.service.d.ts +3 -1
  15. package/common/toolbar-tool-base.directive.d.ts +26 -0
  16. package/directives.d.ts +13 -5
  17. package/editing/add-command-tool.directive.d.ts +7 -6
  18. package/editing/cancel-command-tool.directive.d.ts +38 -0
  19. package/editing/edit-command-tool.directive.d.ts +38 -0
  20. package/editing/edit.service.d.ts +1 -1
  21. package/editing/remove-command-tool.directive.d.ts +39 -0
  22. package/editing/save-command-tool.directive.d.ts +38 -0
  23. package/editing/toolbar-editing-tool-base.directive.d.ts +29 -0
  24. package/editing-directives/editing-directive-base.d.ts +4 -1
  25. package/editing-directives/external-editing.directive.d.ts +3 -1
  26. package/esm2022/adaptiveness/adaptive-mode.mjs +5 -0
  27. package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1197 -0
  28. package/esm2022/column-menu/column-chooser.component.mjs +13 -11
  29. package/esm2022/column-menu/column-list.component.mjs +51 -8
  30. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +1 -1
  31. package/esm2022/column-menu/column-menu-autosize.component.mjs +1 -1
  32. package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -1
  33. package/esm2022/column-menu/column-menu-container.component.mjs +1 -1
  34. package/esm2022/column-menu/column-menu-filter.component.mjs +1 -1
  35. package/esm2022/column-menu/column-menu-item.component.mjs +123 -12
  36. package/esm2022/column-menu/column-menu-item.directive.mjs +14 -5
  37. package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
  38. package/esm2022/column-menu/column-menu-position.component.mjs +1 -1
  39. package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
  40. package/esm2022/column-menu/column-menu-stick.component.mjs +1 -1
  41. package/esm2022/column-menu/column-menu.component.mjs +68 -44
  42. package/esm2022/column-resizing/column-handle.directive.mjs +2 -2
  43. package/esm2022/columns/column-base.mjs +9 -0
  44. package/esm2022/columns/columns-container.mjs +1 -1
  45. package/esm2022/columns/span-column.component.mjs +9 -9
  46. package/esm2022/common/adaptiveness.service.mjs +72 -0
  47. package/esm2022/common/single-popup.service.mjs +9 -3
  48. package/esm2022/common/toolbar-tool-base.directive.mjs +81 -0
  49. package/esm2022/directives.mjs +21 -4
  50. package/esm2022/editing/add-command-tool.directive.mjs +12 -15
  51. package/esm2022/editing/cancel-command-tool.directive.mjs +64 -0
  52. package/esm2022/editing/edit-command-tool.directive.mjs +59 -0
  53. package/esm2022/editing/remove-command-tool.directive.mjs +60 -0
  54. package/esm2022/editing/remove-command.directive.mjs +1 -0
  55. package/esm2022/editing/save-command-tool.directive.mjs +64 -0
  56. package/esm2022/editing/toolbar-editing-tool-base.directive.mjs +94 -0
  57. package/esm2022/editing-directives/editing-directive-base.mjs +5 -2
  58. package/esm2022/editing-directives/external-editing.directive.mjs +28 -14
  59. package/esm2022/excel/excel-command-tool.directive.mjs +12 -17
  60. package/esm2022/filtering/filter-input.directive.mjs +14 -2
  61. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +4 -2
  62. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +4 -0
  63. package/esm2022/filtering/menu/date-filter-menu.component.mjs +6 -0
  64. package/esm2022/filtering/menu/filter-menu-container.component.mjs +24 -10
  65. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +26 -4
  66. package/esm2022/filtering/menu/filter-menu.component.mjs +44 -29
  67. package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +2 -0
  68. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +6 -0
  69. package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +2 -0
  70. package/esm2022/filtering/menu/string-filter-menu.component.mjs +10 -1
  71. package/esm2022/grid.component.mjs +376 -82
  72. package/esm2022/grid.module.mjs +115 -101
  73. package/esm2022/index.mjs +11 -1
  74. package/esm2022/localization/messages.mjs +128 -2
  75. package/esm2022/navigation/toolbar-tool-name.mjs +17 -0
  76. package/esm2022/package-metadata.mjs +2 -2
  77. package/esm2022/pdf/pdf-command-tool.directive.mjs +12 -15
  78. package/esm2022/rendering/cell.component.mjs +3 -3
  79. package/esm2022/rendering/header/header.component.mjs +1 -1
  80. package/esm2022/rendering/list.component.mjs +1 -1
  81. package/esm2022/rendering/table-body.component.mjs +1 -1
  82. package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +210 -0
  83. package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +69 -34
  84. package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +29 -8
  85. package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +78 -8
  86. package/esm2022/rendering/toolbar/tools/group-command-tool.directive.mjs +206 -0
  87. package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +425 -0
  88. package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +54 -20
  89. package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +24 -8
  90. package/esm2022/selection/selection.service.mjs +11 -0
  91. package/esm2022/state-management/grid-state.models.mjs +26 -0
  92. package/esm2022/state-management/redo-command-tool.mjs +66 -0
  93. package/esm2022/state-management/undo-command-tool.mjs +66 -0
  94. package/esm2022/state-management/undo-redo.directive.mjs +178 -0
  95. package/esm2022/state-management/undo-redo.service.mjs +22 -0
  96. package/esm2022/state-management/undo-redo.stack.mjs +232 -0
  97. package/esm2022/utils.mjs +13 -13
  98. package/excel/excel-command-tool.directive.d.ts +5 -5
  99. package/fesm2022/progress-kendo-angular-grid.mjs +7384 -3773
  100. package/filtering/filter-input.directive.d.ts +1 -0
  101. package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
  102. package/filtering/menu/filter-menu-container.component.d.ts +15 -4
  103. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +8 -3
  104. package/filtering/menu/filter-menu.component.d.ts +6 -3
  105. package/filtering/menu/numeric-filter-menu-input.component.d.ts +1 -1
  106. package/filtering/menu/string-filter-menu-input.component.d.ts +1 -1
  107. package/filtering/menu/string-filter-menu.component.d.ts +1 -0
  108. package/grid.component.d.ts +86 -33
  109. package/grid.module.d.ts +108 -100
  110. package/index.d.ts +10 -1
  111. package/localization/messages.d.ts +86 -2
  112. package/navigation/toolbar-tool-name.d.ts +17 -0
  113. package/package.json +35 -20
  114. package/pdf/pdf-command-tool.directive.d.ts +6 -5
  115. package/rendering/cell.component.d.ts +1 -1
  116. package/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.d.ts +18 -6
  117. package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +10 -1
  118. package/rendering/toolbar/tools/filter-tool-wrapper.component.d.ts +6 -5
  119. package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +11 -2
  120. package/rendering/toolbar/tools/group-command-tool.directive.d.ts +51 -0
  121. package/rendering/toolbar/tools/group-toolbar-tool.component.d.ts +61 -0
  122. package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +10 -1
  123. package/rendering/toolbar/tools/sort-toolbar-tool.component.d.ts +5 -1
  124. package/schematics/ngAdd/index.js +4 -4
  125. package/selection/selection.service.d.ts +1 -0
  126. package/state-management/grid-state.models.d.ts +58 -0
  127. package/state-management/redo-command-tool.d.ts +38 -0
  128. package/state-management/undo-command-tool.d.ts +38 -0
  129. package/state-management/undo-redo.directive.d.ts +51 -0
  130. package/state-management/undo-redo.service.d.ts +19 -0
  131. package/state-management/undo-redo.stack.d.ts +104 -0
  132. package/utils.d.ts +11 -5
  133. package/esm2022/column-menu/column-chooser-tool.directive.mjs +0 -172
@@ -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';
@@ -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 { DragTargetContainerDirective, DropTargetContainerDirective } from '@progress/kendo-angular-utils';
75
+ import { AdaptiveService, 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';
@@ -96,6 +96,10 @@ import { LocalizedMessagesDirective } from './localization/localized-messages.di
96
96
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
97
97
  import { PagerTemplateDirective, PagerContextService, PagerNavigationService, KENDO_PAGER } from '@progress/kendo-angular-pager';
98
98
  import { RowspanService } from './rendering/rowspan.service';
99
+ import { AdaptiveGridService } from './common/adaptiveness.service';
100
+ import { AdaptiveRendererComponent } from './adaptiveness/adaptive-renderer.component';
101
+ import { ColumnMenuService } from './column-menu/column-menu.service';
102
+ import { MenuTabbingService } from './filtering/menu/menu-tabbing.service';
99
103
  import * as i0 from "@angular/core";
100
104
  import * as i1 from "./layout/browser-support.service";
101
105
  import * as i2 from "./selection/selection.service";
@@ -120,8 +124,10 @@ import * as i20 from "./scrolling/scroll-request.service";
120
124
  import * as i21 from "@progress/kendo-angular-l10n";
121
125
  import * as i22 from "./common/provider.service";
122
126
  import * as i23 from "./layout/sizing-options.service";
123
- import * as i24 from "./row-reordering/row-reorder.service";
124
- import * as i25 from "@progress/kendo-angular-pager";
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";
130
+ import * as i27 from "@progress/kendo-angular-pager";
125
131
  const createControl = (source) => (acc, key) => {
126
132
  acc[key] = new FormControl(source[key]);
127
133
  return acc;
@@ -173,6 +179,8 @@ export class GridComponent {
173
179
  localization;
174
180
  ctx;
175
181
  sizingService;
182
+ adaptiveService;
183
+ adaptiveGridService;
176
184
  rowReorderService;
177
185
  /**
178
186
  * Sets the data of the Grid. If an array is provided, the Grid automatically gets the total count
@@ -240,6 +248,10 @@ export class GridComponent {
240
248
  * Set the `rowHeight` option to the exact pixels as the height of the `tr` element appears in the DOM.
241
249
  */
242
250
  rowHeight;
251
+ /**
252
+ * Enables or disables the adaptive mode. By default, adaptive rendering is disabled.
253
+ */
254
+ adaptiveMode = 'none';
243
255
  /**
244
256
  * Represent the actual height of each Grid detail row (`tr`) element in the DOM.
245
257
  * Required by the [virtual scrolling functionality]({% slug scrollmmodes_grid %}).
@@ -384,6 +396,26 @@ export class GridComponent {
384
396
  get marqueeSelection() {
385
397
  return this.selectionService.enableMarquee || this.cellSelectionService.enableMarquee;
386
398
  }
399
+ /**
400
+ * @hidden
401
+ */
402
+ get isAdaptiveModeEnabled() {
403
+ return this.adaptiveMode === 'auto';
404
+ }
405
+ /**
406
+ * @hidden
407
+ *
408
+ * The `isOpen` property is used to determine if a Grid Popup or ActionSheet is open.
409
+ */
410
+ get isOpen() {
411
+ return isPresent(this.adaptiveGridService.popupRef) || this.isActionSheetExpanded;
412
+ }
413
+ /**
414
+ * @hidden
415
+ */
416
+ get isActionSheetExpanded() {
417
+ return Boolean(this.adaptiveRenderer?.actionSheet?.expanded);
418
+ }
387
419
  /**
388
420
  * @hidden
389
421
  */
@@ -437,8 +469,8 @@ export class GridComponent {
437
469
  return this._rowReorderable;
438
470
  }
439
471
  /**
440
- * If set to `true`, the user can use dedicated shortcuts to interact with the Grid.
441
- * By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.
472
+ * When the keyboard navigation is enabled, the user can use dedicated shortcuts to interact with the Grid.
473
+ * By default, navigation is enabled. To disable it altogether, and include the Grid content in the normal tab sequence, set the property to `false`.
442
474
  * To enable navigation through separate Grid sections only, provide a [`GridNavigableSection`]({% slug api_grid_gridnavigablesection %}) array.
443
475
  */
444
476
  set navigable(value) {
@@ -455,20 +487,6 @@ export class GridComponent {
455
487
  get navigable() {
456
488
  return this._navigable;
457
489
  }
458
- /**
459
- * @hidden
460
- *
461
- * An alias for `navigable` for users who migrate from Kendo UI for jQuery.
462
- */
463
- set navigatable(value) {
464
- this.navigable = value;
465
- }
466
- /**
467
- * @hidden
468
- */
469
- get navigatable() {
470
- return this.navigable;
471
- }
472
490
  /**
473
491
  * Indicates whether the Grid columns will be resized during initialization so that
474
492
  * they fit their headers and row content.
@@ -572,6 +590,21 @@ export class GridComponent {
572
590
  this.defaultSelection ? this.defaultSelection.stateToArray() : this.selectionDirective.stateToArray() :
573
591
  [];
574
592
  }
593
+ /**
594
+ * The current Grid `GridState` objects. Contains the information about data operations and column state, required
595
+ * to store and restore the Grid state.
596
+ */
597
+ get currentState() {
598
+ return {
599
+ filter: this.filter,
600
+ group: this.group,
601
+ sort: this.sort,
602
+ skip: this.skip,
603
+ take: this.pageSize,
604
+ columnsState: this.columns.toArray().flatMap(recursiveColumnsFlatMap),
605
+ currentData: structuredClone(this.data)
606
+ };
607
+ }
575
608
  /**
576
609
  * If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells
577
610
  * ([see example]({% slug resizing_columns_grid %})).
@@ -610,6 +643,31 @@ export class GridComponent {
610
643
  * @default false
611
644
  */
612
645
  hideHeader = false;
646
+ /**
647
+ * Specifies if the currently inactive toolbar tools will be visible. Applicable when the toolbar is configured using the <kendo-toolbar> component. By default, such tools are hidden.
648
+ *
649
+ * @default false
650
+ */
651
+ showInactiveTools = false;
652
+ /**
653
+ * A function which determines if a specific row is expanded.
654
+ */
655
+ set isDetailExpanded(callback) {
656
+ this.detailsService.userCallback = callback;
657
+ }
658
+ get isDetailExpanded() {
659
+ return this.detailsService.userCallback;
660
+ }
661
+ /**
662
+ * A function which determines if a specific group row is expanded.
663
+ */
664
+ set isGroupExpanded(callback) {
665
+ this.groupsService.userCallback = callback;
666
+ this.groupable = isPresent(callback);
667
+ }
668
+ get isGroupExpanded() {
669
+ return this.groupsService.userCallback;
670
+ }
613
671
  /**
614
672
  * Fires when the Grid filter is modified through the UI.
615
673
  * You have to handle the event yourself and filter the data.
@@ -642,6 +700,10 @@ export class GridComponent {
642
700
  * Fires when the data state of the Grid is changed.
643
701
  */
644
702
  dataStateChange = new EventEmitter();
703
+ /**
704
+ * Fires when the data or columns state of the Grid is changed.
705
+ */
706
+ gridStateChange = new EventEmitter();
645
707
  /**
646
708
  * Fires when the user expands a group header.
647
709
  */
@@ -846,9 +908,46 @@ export class GridComponent {
846
908
  dragTargetContainer;
847
909
  dropTargetContainer;
848
910
  dialogContainer;
911
+ /**
912
+ * @hidden
913
+ */
914
+ adaptiveRenderer;
849
915
  get scrollbarWidth() {
850
916
  return this.supportService.scrollbarWidth;
851
917
  }
918
+ get showPagerInput() {
919
+ return this._showPagerInput;
920
+ }
921
+ set showPagerInput(value) {
922
+ if (this._showPagerInput === value) {
923
+ return;
924
+ }
925
+ this._showPagerInput = value;
926
+ }
927
+ get showPagerPageText() {
928
+ return this._showPagerPageText;
929
+ }
930
+ set showPagerPageText(value) {
931
+ if (!this.normalizedPageableSettings?.responsive) {
932
+ this._showPagerPageText = true;
933
+ }
934
+ if (this._showPagerPageText === value) {
935
+ return;
936
+ }
937
+ this._showPagerPageText = value;
938
+ }
939
+ get showPagerItemsText() {
940
+ return this._showPagerItemsText;
941
+ }
942
+ set showPagerItemsText(value) {
943
+ if (!this.normalizedPageableSettings?.responsive) {
944
+ this._showPagerItemsText = true;
945
+ }
946
+ if (this._showPagerItemsText === value) {
947
+ return;
948
+ }
949
+ this._showPagerItemsText = value;
950
+ }
852
951
  get headerPadding() {
853
952
  if (isUniversal()) {
854
953
  return '';
@@ -888,6 +987,12 @@ export class GridComponent {
888
987
  get navigation() {
889
988
  return this.navigationService;
890
989
  }
990
+ /**
991
+ * @hidden
992
+ */
993
+ get flatData() {
994
+ return isArray(this.data) ? this.data : this.data.data;
995
+ }
891
996
  shouldGenerateColumns = true;
892
997
  direction;
893
998
  notifyTimeout = null;
@@ -910,9 +1015,12 @@ export class GridComponent {
910
1015
  _rowReorderable = false;
911
1016
  leafViewportColumns;
912
1017
  viewportColumns;
913
- _navigable = [];
1018
+ _navigable = ['table', 'pager', 'toolbar'];
914
1019
  _size = 'medium';
915
1020
  _loading = false;
1021
+ _showPagerInput = true;
1022
+ _showPagerPageText = true;
1023
+ _showPagerItemsText = true;
916
1024
  get isVirtual() {
917
1025
  return this.scrollable === 'virtual';
918
1026
  }
@@ -998,6 +1106,7 @@ export class GridComponent {
998
1106
  * @hidden
999
1107
  */
1000
1108
  blockArrowSelection = false;
1109
+ undoRedoService;
1001
1110
  selectionSubscription;
1002
1111
  stateChangeSubscription;
1003
1112
  groupExpandCollapseSubscription;
@@ -1023,7 +1132,7 @@ export class GridComponent {
1023
1132
  rowReorderSubscription;
1024
1133
  rtl = false;
1025
1134
  _rowSticky;
1026
- 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, rowReorderService) {
1135
+ 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) {
1027
1136
  this.supportService = supportService;
1028
1137
  this.selectionService = selectionService;
1029
1138
  this.cellSelectionService = cellSelectionService;
@@ -1051,6 +1160,8 @@ export class GridComponent {
1051
1160
  this.localization = localization;
1052
1161
  this.ctx = ctx;
1053
1162
  this.sizingService = sizingService;
1163
+ this.adaptiveService = adaptiveService;
1164
+ this.adaptiveGridService = adaptiveGridService;
1054
1165
  this.rowReorderService = rowReorderService;
1055
1166
  const isValid = validatePackage(packageMetadata);
1056
1167
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
@@ -1169,6 +1280,7 @@ export class GridComponent {
1169
1280
  }
1170
1281
  this.initSelectionService();
1171
1282
  this.updateNavigationMetadata();
1283
+ this.currentState.currentData = this.data;
1172
1284
  }
1173
1285
  ngOnChanges(changes) {
1174
1286
  if (isChanged("data", changes)) {
@@ -1378,6 +1490,12 @@ export class GridComponent {
1378
1490
  const target = isNaN(columnIndex) ? row : `${row} td[data-kendo-grid-column-index="${columnIndex}"]`;
1379
1491
  this.focusEditElement(target);
1380
1492
  }
1493
+ /**
1494
+ * @hidden
1495
+ */
1496
+ handleReorderEvents(ev, evType) {
1497
+ this.rowReorderService[evType](ev);
1498
+ }
1381
1499
  /**
1382
1500
  * Closes the editor for a given row ([see example]({% slug inline_editing_grid %}#toc-canceling-editing-1)).
1383
1501
  *
@@ -1471,6 +1589,44 @@ export class GridComponent {
1471
1589
  saveAsExcel() {
1472
1590
  this.excelService.save(this);
1473
1591
  }
1592
+ /**
1593
+ * Applies the provided `GridState` object to the Grid.
1594
+ */
1595
+ loadState(state) {
1596
+ if (state.columnsState) {
1597
+ this.traverseColumns(this.columns, (column) => {
1598
+ const columnState = state.columnsState.find((col) => col.id === column.id);
1599
+ if (columnState) {
1600
+ column.width = columnState.width;
1601
+ column.hidden = columnState.hidden;
1602
+ column.locked = columnState.locked;
1603
+ column.sticky = columnState.sticky;
1604
+ column.orderIndex = columnState.orderIndex;
1605
+ }
1606
+ });
1607
+ this.columns.reset(this.columns.toArray());
1608
+ this.columnsContainer.refresh();
1609
+ }
1610
+ this.sort = state.sort;
1611
+ this.group = state.group;
1612
+ this.filter = state.filter;
1613
+ this.group = state.group;
1614
+ this.skip = state.skip;
1615
+ this.pageSize = state.take;
1616
+ this.data = state.currentData;
1617
+ this.changeNotification.notify();
1618
+ this.changeDetectorRef.detectChanges();
1619
+ }
1620
+ traverseColumns(columns, callback) {
1621
+ columns.forEach((column) => {
1622
+ if (column.isColumnGroup || column.isSpanColumn) {
1623
+ this.traverseColumns(column.children, callback);
1624
+ }
1625
+ else {
1626
+ callback(column);
1627
+ }
1628
+ });
1629
+ }
1474
1630
  /**
1475
1631
  * Applies the minimum possible width for the specified column,
1476
1632
  * so that the whole text fits without wrapping. This method expects the Grid
@@ -1507,6 +1663,12 @@ export class GridComponent {
1507
1663
  }
1508
1664
  this.pageChange.emit(event);
1509
1665
  }
1666
+ /**
1667
+ * @hidden
1668
+ */
1669
+ handlePagerVisibilityChange(prop, ev) {
1670
+ this[prop] = ev;
1671
+ }
1510
1672
  /**
1511
1673
  * @hidden
1512
1674
  */
@@ -1621,7 +1783,7 @@ export class GridComponent {
1621
1783
  return;
1622
1784
  }
1623
1785
  if (isSpanColumnComponent(target) && !options.before) {
1624
- target = target.childColumns.last;
1786
+ target = target.children.last;
1625
1787
  }
1626
1788
  this.reorder({
1627
1789
  before: options.before,
@@ -1629,37 +1791,6 @@ export class GridComponent {
1629
1791
  target: target
1630
1792
  });
1631
1793
  }
1632
- /**
1633
- * A function which determines if a specific row is expanded.
1634
- */
1635
- set isDetailExpanded(callback) {
1636
- this.detailsService.userCallback = callback;
1637
- }
1638
- get isDetailExpanded() {
1639
- return this.detailsService.userCallback;
1640
- }
1641
- /**
1642
- * A function which determines if a specific group row is expanded.
1643
- */
1644
- set isGroupExpanded(callback) {
1645
- this.groupsService.userCallback = callback;
1646
- this.groupable = isPresent(callback);
1647
- }
1648
- get isGroupExpanded() {
1649
- return this.groupsService.userCallback;
1650
- }
1651
- /**
1652
- * @hidden
1653
- */
1654
- handleReorderEvents(ev, evType) {
1655
- this.rowReorderService[evType](ev);
1656
- }
1657
- /**
1658
- * @hidden
1659
- */
1660
- get flatData() {
1661
- return isArray(this.data) ? this.data : this.data.data;
1662
- }
1663
1794
  /**
1664
1795
  * @hidden
1665
1796
  */
@@ -1713,7 +1844,7 @@ export class GridComponent {
1713
1844
  let toSkip = 1;
1714
1845
  // Possible only when called from the API.
1715
1846
  if (source.isSpanColumn) {
1716
- toSkip += source.childColumns.length;
1847
+ toSkip += source.children.length;
1717
1848
  }
1718
1849
  let i = 0;
1719
1850
  while (i < expandedColumns.length) {
@@ -1909,7 +2040,13 @@ export class GridComponent {
1909
2040
  this.blockArrowSelection = true;
1910
2041
  }
1911
2042
  this.dataStateChange.emit(x);
2043
+ this.gridStateChange.emit({ ...x, columnsState: this.currentState.columnsState, currentData: this.currentState.currentData });
2044
+ if (this.undoRedoService) {
2045
+ this.undoRedoService.originalEvent = x;
2046
+ }
1912
2047
  });
2048
+ this.stateChangeSubscription.add(merge(this.columnReorder, this.columnResize, this.columnVisibilityChange, this.columnLockedChange, this.columnStickyChange).pipe(flatMap(() => this.ngZone.onStable.pipe(take(1))))
2049
+ .subscribe(() => this.ngZone.run(() => this.gridStateChange.emit(this.currentState))));
1913
2050
  }
1914
2051
  attachEditHandlers() {
1915
2052
  if (!this.editService) {
@@ -2202,8 +2339,8 @@ export class GridComponent {
2202
2339
  this.dragTargetContainer?.notify();
2203
2340
  this.dropTargetContainer?.notify();
2204
2341
  }
2205
- 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 });
2206
- 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", 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: [
2342
+ 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 });
2343
+ 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: [
2207
2344
  BrowserSupportService,
2208
2345
  LocalizationService,
2209
2346
  ColumnInfoService,
@@ -2249,8 +2386,11 @@ export class GridComponent {
2249
2386
  SizingOptionsService,
2250
2387
  RowReorderService,
2251
2388
  ClipboardService,
2252
- RowspanService
2253
- ], 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: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
2389
+ RowspanService,
2390
+ AdaptiveGridService,
2391
+ ColumnMenuService,
2392
+ MenuTabbingService
2393
+ ], 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: `
2254
2394
  <ng-container kendoGridLocalizedMessages
2255
2395
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
2256
2396
  groupPanelEmpty="Drag a column header and drop it here to group by that column"
@@ -2381,6 +2521,27 @@ export class GridComponent {
2381
2521
  i18n-filterClearButton="kendo.grid.filterClearButton|The text of the clear filter button"
2382
2522
  filterClearButton="Clear"
2383
2523
 
2524
+ i18n-sortClearButton="kendo.grid.sortClearButton|The text of the clear sort button located in the Sort Toolbar Tool and adaptive Sort Toolbar Tool"
2525
+ sortClearButton="Clear sorting"
2526
+
2527
+ i18n-adaptiveCloseButtonTitle="kendo.grid.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
2528
+ adaptiveCloseButtonTitle="Close"
2529
+
2530
+ i18n-adaptiveBackButtonTitle="kendo.grid.adaptiveBackButtonTitle|The title of the Back button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
2531
+ adaptiveBackButtonTitle="Back"
2532
+
2533
+ i18n-filterClearAllButton="kendo.grid.filterClearAllButton|The text of the clear all filters button located in the Filter Toolbar Tool and adaptive Filter Toolbar Tool"
2534
+ filterClearAllButton="Clear all filters"
2535
+
2536
+ i18n-groupClearButton="kendo.grid.groupClearButton|The text of the clear grouping button in the Group Toolbar Tool and adaptive Group Toolbar Tool"
2537
+ groupClearButton="Clear grouping"
2538
+
2539
+ i18n-sortDoneButton="kendo.grid.sortDoneButton|The text of the done sort button"
2540
+ sortDoneButton="Done"
2541
+
2542
+ i18n-groupDoneButton="kendo.grid.groupDoneButton|The text of the done group button in the adaptive Group Toolbar Tool"
2543
+ groupDoneButton="Done"
2544
+
2384
2545
  i18n-filterAndLogic="kendo.grid.filterAndLogic|The text of the And filter logic"
2385
2546
  filterAndLogic="And"
2386
2547
 
@@ -2402,6 +2563,21 @@ export class GridComponent {
2402
2563
  i18n-columns="kendo.grid.columns|The text for the Grid Column Chooser and Column Chooser toolbar tool"
2403
2564
  columns="Columns"
2404
2565
 
2566
+ i18n-columnsSubtitle="kendo.grid.columnsSubtitle|The subtitle for the adaptive Grid Column Chooser and Column Chooser toolbar tool"
2567
+ columnsSubtitle="Selected fields are visible"
2568
+
2569
+ i18n-adaptiveFilterTitle="kendo.grid.adaptiveFilterTitle|The title that is displayed in the adaptive Filter Toolbar Tool and Filter Menu"
2570
+ adaptiveFilterTitle="Filter by"
2571
+
2572
+ i18n-adaptiveFilterOperatorsTitle="kendo.grid.adaptiveFilterOperatorsTitle|The title that is displayed in the Operators Action Sheet"
2573
+ adaptiveFilterOperatorsTitle="Operators"
2574
+
2575
+ i18n-adaptiveSortTitle="kendo.grid.adaptiveSortTitle|The title that is displayed in the adaptive Sort Toolbar Tool"
2576
+ adaptiveSortTitle="Sort by"
2577
+
2578
+ i18n-adaptiveGroupTitle="kendo.grid.adaptiveGroupTitle|The title that is displayed in the adaptive Group Toolbar Tool."
2579
+ adaptiveGroupTitle="Group by"
2580
+
2405
2581
  i18n-lock="kendo.grid.lock|The text shown in the column menu for the lock item"
2406
2582
  lock="Lock"
2407
2583
 
@@ -2489,6 +2665,27 @@ export class GridComponent {
2489
2665
  i18n-bottomToolbarLabel="kendo.grid.bottomToolbarLabel|The label for the Grid bottom toolbar"
2490
2666
  bottomToolbarLabel="Bottom toolbar"
2491
2667
 
2668
+ i18n-editToolbarToolText="kendo.grid.editToolbarToolText|The text for the Grid Edit toolbar tool"
2669
+ editToolbarToolText="Edit"
2670
+
2671
+ i18n-saveToolbarToolText="kendo.grid.saveToolbarToolText|The text for the Grid Save toolbar tool"
2672
+ saveToolbarToolText="Save"
2673
+
2674
+ i18n-addToolbarToolText="kendo.grid.addToolbarToolText|The text for the Grid Add toolbar tool"
2675
+ addToolbarToolText="Add"
2676
+
2677
+ i18n-cancelToolbarToolText="kendo.grid.cancelToolbarToolText|The text for the Grid Cancel toolbar tool"
2678
+ cancelToolbarToolText="Cancel"
2679
+
2680
+ i18n-removeToolbarToolText="kendo.grid.removeToolbarToolText|The text for the Grid Remove toolbar tool"
2681
+ removeToolbarToolText="Delete"
2682
+
2683
+ i18n-excelExportToolbarToolText="kendo.grid.excelExportToolbarToolText|The text for the Grid Excel export toolbar tool"
2684
+ excelExportToolbarToolText="Excel Export"
2685
+
2686
+ i18n-pdfExportToolbarToolText="kendo.grid.pdfExportToolbarToolText|The text for the Grid PDF export toolbar tool"
2687
+ pdfExportToolbarToolText="PDF Export"
2688
+
2492
2689
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
2493
2690
  groupPanelLabel="Group panel"
2494
2691
 
@@ -2510,6 +2707,9 @@ export class GridComponent {
2510
2707
  i18n-groupChipMenuNext="kendo.grid.groupChipMenuNext|The text for the Group pane Chip Menu Move as next item"
2511
2708
  groupChipMenuNext="Move as next"
2512
2709
 
2710
+ i18n-groupToolbarToolText="kendo.grid.groupToolbarToolText|The button text of the Group toolbar tool"
2711
+ groupToolbarToolText="Group"
2712
+
2513
2713
  i18n-formValidationErrorText="kendo.grid.formValidationErrorText|The default text of a form validation error when using external editing."
2514
2714
  formValidationErrorText="{{ 'The {fieldName} field has {errorName} validation error' }}"
2515
2715
 
@@ -2525,9 +2725,12 @@ export class GridComponent {
2525
2725
  i18n-removeConfirmationDialogRejectText="kendo.grid.removeConfirmationDialogRejectText|The text of the built-in remove item confirmation Dialog reject action button"
2526
2726
  removeConfirmationDialogRejectText="No"
2527
2727
 
2528
- i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container"
2728
+ i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container when editing an item"
2529
2729
  externalEditingTitle="Edit"
2530
2730
 
2731
+ i18n-externalEditingAddTitle="kendo.grid.externalEditingAddTitle|The title of the built-in external editing form container when adding a new item"
2732
+ externalEditingAddTitle="Add"
2733
+
2531
2734
  i18n-externalEditingSaveText="kendo.grid.externalEditingSaveText|The text of the external editing form Save button"
2532
2735
  externalEditingSaveText="Save"
2533
2736
 
@@ -2558,7 +2761,10 @@ export class GridComponent {
2558
2761
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
2559
2762
  [previousNext]="normalizedPageableSettings.previousNext"
2560
2763
  [type]="normalizedPageableSettings.type"
2561
- (pageChange)="notifyPageChange('pager', $event)">
2764
+ (pageChange)="notifyPageChange('pager', $event)"
2765
+ (pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
2766
+ (pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
2767
+ (itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
2562
2768
  <ng-template kendoPagerTemplate>
2563
2769
  <ng-container
2564
2770
  [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
@@ -2881,7 +3087,10 @@ export class GridComponent {
2881
3087
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
2882
3088
  [previousNext]="normalizedPageableSettings.previousNext"
2883
3089
  [type]="normalizedPageableSettings.type"
2884
- (pageChange)="notifyPageChange('pager', $event)">
3090
+ (pageChange)="notifyPageChange('pager', $event)"
3091
+ (pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
3092
+ (pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
3093
+ (itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
2885
3094
  <ng-template kendoPagerTemplate>
2886
3095
  <ng-container
2887
3096
  [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
@@ -2929,20 +3138,23 @@ export class GridComponent {
2929
3138
  *ngIf="normalizedPageableSettings.type === 'numeric' && normalizedPageableSettings.buttonCount > 0"
2930
3139
  [buttonCount]="normalizedPageableSettings.buttonCount">
2931
3140
  </kendo-pager-numeric-buttons>
2932
- <kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input'"></kendo-pager-input>
3141
+ <kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input' || showPagerInput" [showPageText]="showPagerPageText"></kendo-pager-input>
2933
3142
  <kendo-pager-next-buttons [size]="size" *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-next-buttons>
2934
3143
  </div>
2935
3144
  <kendo-pager-page-sizes *ngIf="normalizedPageableSettings.pageSizes"
2936
3145
  [size]="size"
2937
- [pageSizes]="normalizedPageableSettings.pageSizes">
3146
+ [pageSizes]="normalizedPageableSettings.pageSizes"
3147
+ [showItemsText]="showPagerItemsText">
2938
3148
  </kendo-pager-page-sizes>
2939
3149
  <kendo-pager-info *ngIf="normalizedPageableSettings.info">
2940
3150
  </kendo-pager-info>
2941
3151
  </ng-template>
2942
3152
  <div #dialogContainer></div>
2943
-
3153
+
3154
+ <kendo-grid-adaptive-renderer *ngIf="isAdaptiveModeEnabled"></kendo-grid-adaptive-renderer>
3155
+
2944
3156
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
2945
- `, 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 });
3157
+ `, 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 });
2946
3158
  }
2947
3159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
2948
3160
  type: Component,
@@ -2995,7 +3207,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2995
3207
  SizingOptionsService,
2996
3208
  RowReorderService,
2997
3209
  ClipboardService,
2998
- RowspanService
3210
+ RowspanService,
3211
+ AdaptiveGridService,
3212
+ ColumnMenuService,
3213
+ MenuTabbingService
2999
3214
  ],
3000
3215
  selector: 'kendo-grid',
3001
3216
  template: `
@@ -3129,6 +3344,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3129
3344
  i18n-filterClearButton="kendo.grid.filterClearButton|The text of the clear filter button"
3130
3345
  filterClearButton="Clear"
3131
3346
 
3347
+ i18n-sortClearButton="kendo.grid.sortClearButton|The text of the clear sort button located in the Sort Toolbar Tool and adaptive Sort Toolbar Tool"
3348
+ sortClearButton="Clear sorting"
3349
+
3350
+ i18n-adaptiveCloseButtonTitle="kendo.grid.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
3351
+ adaptiveCloseButtonTitle="Close"
3352
+
3353
+ i18n-adaptiveBackButtonTitle="kendo.grid.adaptiveBackButtonTitle|The title of the Back button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
3354
+ adaptiveBackButtonTitle="Back"
3355
+
3356
+ i18n-filterClearAllButton="kendo.grid.filterClearAllButton|The text of the clear all filters button located in the Filter Toolbar Tool and adaptive Filter Toolbar Tool"
3357
+ filterClearAllButton="Clear all filters"
3358
+
3359
+ i18n-groupClearButton="kendo.grid.groupClearButton|The text of the clear grouping button in the Group Toolbar Tool and adaptive Group Toolbar Tool"
3360
+ groupClearButton="Clear grouping"
3361
+
3362
+ i18n-sortDoneButton="kendo.grid.sortDoneButton|The text of the done sort button"
3363
+ sortDoneButton="Done"
3364
+
3365
+ i18n-groupDoneButton="kendo.grid.groupDoneButton|The text of the done group button in the adaptive Group Toolbar Tool"
3366
+ groupDoneButton="Done"
3367
+
3132
3368
  i18n-filterAndLogic="kendo.grid.filterAndLogic|The text of the And filter logic"
3133
3369
  filterAndLogic="And"
3134
3370
 
@@ -3150,6 +3386,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3150
3386
  i18n-columns="kendo.grid.columns|The text for the Grid Column Chooser and Column Chooser toolbar tool"
3151
3387
  columns="Columns"
3152
3388
 
3389
+ i18n-columnsSubtitle="kendo.grid.columnsSubtitle|The subtitle for the adaptive Grid Column Chooser and Column Chooser toolbar tool"
3390
+ columnsSubtitle="Selected fields are visible"
3391
+
3392
+ i18n-adaptiveFilterTitle="kendo.grid.adaptiveFilterTitle|The title that is displayed in the adaptive Filter Toolbar Tool and Filter Menu"
3393
+ adaptiveFilterTitle="Filter by"
3394
+
3395
+ i18n-adaptiveFilterOperatorsTitle="kendo.grid.adaptiveFilterOperatorsTitle|The title that is displayed in the Operators Action Sheet"
3396
+ adaptiveFilterOperatorsTitle="Operators"
3397
+
3398
+ i18n-adaptiveSortTitle="kendo.grid.adaptiveSortTitle|The title that is displayed in the adaptive Sort Toolbar Tool"
3399
+ adaptiveSortTitle="Sort by"
3400
+
3401
+ i18n-adaptiveGroupTitle="kendo.grid.adaptiveGroupTitle|The title that is displayed in the adaptive Group Toolbar Tool."
3402
+ adaptiveGroupTitle="Group by"
3403
+
3153
3404
  i18n-lock="kendo.grid.lock|The text shown in the column menu for the lock item"
3154
3405
  lock="Lock"
3155
3406
 
@@ -3237,6 +3488,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3237
3488
  i18n-bottomToolbarLabel="kendo.grid.bottomToolbarLabel|The label for the Grid bottom toolbar"
3238
3489
  bottomToolbarLabel="Bottom toolbar"
3239
3490
 
3491
+ i18n-editToolbarToolText="kendo.grid.editToolbarToolText|The text for the Grid Edit toolbar tool"
3492
+ editToolbarToolText="Edit"
3493
+
3494
+ i18n-saveToolbarToolText="kendo.grid.saveToolbarToolText|The text for the Grid Save toolbar tool"
3495
+ saveToolbarToolText="Save"
3496
+
3497
+ i18n-addToolbarToolText="kendo.grid.addToolbarToolText|The text for the Grid Add toolbar tool"
3498
+ addToolbarToolText="Add"
3499
+
3500
+ i18n-cancelToolbarToolText="kendo.grid.cancelToolbarToolText|The text for the Grid Cancel toolbar tool"
3501
+ cancelToolbarToolText="Cancel"
3502
+
3503
+ i18n-removeToolbarToolText="kendo.grid.removeToolbarToolText|The text for the Grid Remove toolbar tool"
3504
+ removeToolbarToolText="Delete"
3505
+
3506
+ i18n-excelExportToolbarToolText="kendo.grid.excelExportToolbarToolText|The text for the Grid Excel export toolbar tool"
3507
+ excelExportToolbarToolText="Excel Export"
3508
+
3509
+ i18n-pdfExportToolbarToolText="kendo.grid.pdfExportToolbarToolText|The text for the Grid PDF export toolbar tool"
3510
+ pdfExportToolbarToolText="PDF Export"
3511
+
3240
3512
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
3241
3513
  groupPanelLabel="Group panel"
3242
3514
 
@@ -3258,6 +3530,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3258
3530
  i18n-groupChipMenuNext="kendo.grid.groupChipMenuNext|The text for the Group pane Chip Menu Move as next item"
3259
3531
  groupChipMenuNext="Move as next"
3260
3532
 
3533
+ i18n-groupToolbarToolText="kendo.grid.groupToolbarToolText|The button text of the Group toolbar tool"
3534
+ groupToolbarToolText="Group"
3535
+
3261
3536
  i18n-formValidationErrorText="kendo.grid.formValidationErrorText|The default text of a form validation error when using external editing."
3262
3537
  formValidationErrorText="{{ 'The {fieldName} field has {errorName} validation error' }}"
3263
3538
 
@@ -3273,9 +3548,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3273
3548
  i18n-removeConfirmationDialogRejectText="kendo.grid.removeConfirmationDialogRejectText|The text of the built-in remove item confirmation Dialog reject action button"
3274
3549
  removeConfirmationDialogRejectText="No"
3275
3550
 
3276
- i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container"
3551
+ i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container when editing an item"
3277
3552
  externalEditingTitle="Edit"
3278
3553
 
3554
+ i18n-externalEditingAddTitle="kendo.grid.externalEditingAddTitle|The title of the built-in external editing form container when adding a new item"
3555
+ externalEditingAddTitle="Add"
3556
+
3279
3557
  i18n-externalEditingSaveText="kendo.grid.externalEditingSaveText|The text of the external editing form Save button"
3280
3558
  externalEditingSaveText="Save"
3281
3559
 
@@ -3306,7 +3584,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3306
3584
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
3307
3585
  [previousNext]="normalizedPageableSettings.previousNext"
3308
3586
  [type]="normalizedPageableSettings.type"
3309
- (pageChange)="notifyPageChange('pager', $event)">
3587
+ (pageChange)="notifyPageChange('pager', $event)"
3588
+ (pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
3589
+ (pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
3590
+ (itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
3310
3591
  <ng-template kendoPagerTemplate>
3311
3592
  <ng-container
3312
3593
  [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
@@ -3629,7 +3910,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3629
3910
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
3630
3911
  [previousNext]="normalizedPageableSettings.previousNext"
3631
3912
  [type]="normalizedPageableSettings.type"
3632
- (pageChange)="notifyPageChange('pager', $event)">
3913
+ (pageChange)="notifyPageChange('pager', $event)"
3914
+ (pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
3915
+ (pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
3916
+ (itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
3633
3917
  <ng-template kendoPagerTemplate>
3634
3918
  <ng-container
3635
3919
  [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
@@ -3677,18 +3961,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3677
3961
  *ngIf="normalizedPageableSettings.type === 'numeric' && normalizedPageableSettings.buttonCount > 0"
3678
3962
  [buttonCount]="normalizedPageableSettings.buttonCount">
3679
3963
  </kendo-pager-numeric-buttons>
3680
- <kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input'"></kendo-pager-input>
3964
+ <kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input' || showPagerInput" [showPageText]="showPagerPageText"></kendo-pager-input>
3681
3965
  <kendo-pager-next-buttons [size]="size" *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-next-buttons>
3682
3966
  </div>
3683
3967
  <kendo-pager-page-sizes *ngIf="normalizedPageableSettings.pageSizes"
3684
3968
  [size]="size"
3685
- [pageSizes]="normalizedPageableSettings.pageSizes">
3969
+ [pageSizes]="normalizedPageableSettings.pageSizes"
3970
+ [showItemsText]="showPagerItemsText">
3686
3971
  </kendo-pager-page-sizes>
3687
3972
  <kendo-pager-info *ngIf="normalizedPageableSettings.info">
3688
3973
  </kendo-pager-info>
3689
3974
  </ng-template>
3690
3975
  <div #dialogContainer></div>
3691
-
3976
+
3977
+ <kendo-grid-adaptive-renderer *ngIf="isAdaptiveModeEnabled"></kendo-grid-adaptive-renderer>
3978
+
3692
3979
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3693
3980
  `,
3694
3981
  standalone: true,
@@ -3697,10 +3984,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3697
3984
  TableDirective, GridTableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective,
3698
3985
  ListComponent, DragTargetContainerDirective, DropTargetContainerDirective, DraggableDirective,
3699
3986
  GridMarqueeDirective, FooterComponent, TableBodyComponent, LoadingComponent, StatusBarComponent,
3700
- IconWrapperComponent, WatermarkOverlayComponent, ...KENDO_PAGER, NgTemplateOutlet
3987
+ IconWrapperComponent, WatermarkOverlayComponent, ...KENDO_PAGER, NgTemplateOutlet, AdaptiveRendererComponent
3701
3988
  ]
3702
3989
  }]
3703
- }], ctorParameters: function () { return [{ type: i1.BrowserSupportService }, { type: i2.SelectionService }, { type: i3.CellSelectionService }, { type: i0.ElementRef }, { type: i4.GroupInfoService }, { type: i5.GroupsService }, { type: i6.ChangeNotificationService }, { type: i7.DetailsService }, { type: i8.EditService }, { type: i9.FilterService }, { type: i10.PDFService }, { type: i11.ResponsiveService }, { type: i0.Renderer2 }, { type: i12.ExcelService }, { type: i0.NgZone }, { type: i13.ScrollSyncService }, { type: i14.DomEventsService }, { type: i15.ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: i16.ColumnReorderService }, { type: i17.ColumnInfoService }, { type: i18.NavigationService }, { type: i19.SortService }, { type: i20.ScrollRequestService }, { type: i21.LocalizationService }, { type: i22.ContextService }, { type: i23.SizingOptionsService }, { type: i24.RowReorderService }]; }, propDecorators: { data: [{
3990
+ }], 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: [{
3704
3991
  type: Input
3705
3992
  }], pageSize: [{
3706
3993
  type: Input
@@ -3708,6 +3995,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3708
3995
  type: Input
3709
3996
  }], rowHeight: [{
3710
3997
  type: Input
3998
+ }], adaptiveMode: [{
3999
+ type: Input
3711
4000
  }], detailRowHeight: [{
3712
4001
  type: Input
3713
4002
  }], skip: [{
@@ -3742,8 +4031,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3742
4031
  type: Input
3743
4032
  }], navigable: [{
3744
4033
  type: Input
3745
- }], navigatable: [{
3746
- type: Input
3747
4034
  }], autoSize: [{
3748
4035
  type: Input
3749
4036
  }], rowClass: [{
@@ -3766,6 +4053,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3766
4053
  type: Input
3767
4054
  }], hideHeader: [{
3768
4055
  type: Input
4056
+ }], showInactiveTools: [{
4057
+ type: Input
4058
+ }], isDetailExpanded: [{
4059
+ type: Input
4060
+ }], isGroupExpanded: [{
4061
+ type: Input
3769
4062
  }], filterChange: [{
3770
4063
  type: Output
3771
4064
  }], pageChange: [{
@@ -3780,6 +4073,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3780
4073
  type: Output
3781
4074
  }], dataStateChange: [{
3782
4075
  type: Output
4076
+ }], gridStateChange: [{
4077
+ type: Output
3783
4078
  }], groupExpand: [{
3784
4079
  type: Output
3785
4080
  }], groupCollapse: [{
@@ -3904,8 +4199,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3904
4199
  }], dialogContainer: [{
3905
4200
  type: ViewChild,
3906
4201
  args: ['dialogContainer', { read: ViewContainerRef }]
3907
- }], isDetailExpanded: [{
3908
- type: Input
3909
- }], isGroupExpanded: [{
3910
- type: Input
4202
+ }], adaptiveRenderer: [{
4203
+ type: ViewChild,
4204
+ args: [AdaptiveRendererComponent]
3911
4205
  }] } });