@progress/kendo-angular-grid 19.0.0-develop.3 → 19.0.0-develop.30

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 (139) hide show
  1. package/adaptiveness/adaptive-mode.d.ts +12 -0
  2. package/adaptiveness/adaptive-renderer.component.d.ts +84 -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 +12 -5
  17. package/dragdrop/drag-hint.service.d.ts +3 -2
  18. package/editing/add-command-tool.directive.d.ts +7 -6
  19. package/editing/cancel-command-tool.directive.d.ts +38 -0
  20. package/editing/edit-command-tool.directive.d.ts +38 -0
  21. package/editing/edit.service.d.ts +1 -1
  22. package/editing/remove-command-tool.directive.d.ts +39 -0
  23. package/editing/save-command-tool.directive.d.ts +38 -0
  24. package/editing/toolbar-editing-tool-base.directive.d.ts +29 -0
  25. package/editing-directives/editing-directive-base.d.ts +4 -1
  26. package/editing-directives/external-editing.directive.d.ts +3 -1
  27. package/esm2022/adaptiveness/adaptive-mode.mjs +5 -0
  28. package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1108 -0
  29. package/esm2022/column-menu/column-chooser.component.mjs +13 -11
  30. package/esm2022/column-menu/column-list.component.mjs +51 -8
  31. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +1 -1
  32. package/esm2022/column-menu/column-menu-autosize.component.mjs +1 -1
  33. package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -1
  34. package/esm2022/column-menu/column-menu-container.component.mjs +1 -1
  35. package/esm2022/column-menu/column-menu-filter.component.mjs +1 -1
  36. package/esm2022/column-menu/column-menu-item.component.mjs +123 -12
  37. package/esm2022/column-menu/column-menu-item.directive.mjs +14 -5
  38. package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
  39. package/esm2022/column-menu/column-menu-position.component.mjs +1 -1
  40. package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
  41. package/esm2022/column-menu/column-menu-stick.component.mjs +1 -1
  42. package/esm2022/column-menu/column-menu.component.mjs +68 -44
  43. package/esm2022/column-resizing/column-handle.directive.mjs +2 -2
  44. package/esm2022/columns/column-base.mjs +9 -0
  45. package/esm2022/columns/columns-container.mjs +1 -1
  46. package/esm2022/columns/span-column.component.mjs +9 -9
  47. package/esm2022/common/adaptiveness.service.mjs +72 -0
  48. package/esm2022/common/single-popup.service.mjs +9 -3
  49. package/esm2022/common/toolbar-tool-base.directive.mjs +81 -0
  50. package/esm2022/directives.mjs +18 -3
  51. package/esm2022/dragdrop/drag-hint.service.mjs +7 -4
  52. package/esm2022/editing/add-command-tool.directive.mjs +12 -15
  53. package/esm2022/editing/cancel-command-tool.directive.mjs +64 -0
  54. package/esm2022/editing/edit-command-tool.directive.mjs +59 -0
  55. package/esm2022/editing/form/form-formfield.component.mjs +1 -1
  56. package/esm2022/editing/remove-command-tool.directive.mjs +60 -0
  57. package/esm2022/editing/remove-command.directive.mjs +1 -0
  58. package/esm2022/editing/save-command-tool.directive.mjs +64 -0
  59. package/esm2022/editing/toolbar-editing-tool-base.directive.mjs +94 -0
  60. package/esm2022/editing-directives/editing-directive-base.mjs +5 -2
  61. package/esm2022/editing-directives/external-editing.directive.mjs +28 -14
  62. package/esm2022/excel/excel-command-tool.directive.mjs +12 -17
  63. package/esm2022/filtering/cell/autocomplete-filter-cell.component.mjs +1 -1
  64. package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +1 -1
  65. package/esm2022/filtering/cell/date-filter-cell.component.mjs +1 -1
  66. package/esm2022/filtering/cell/filter-cell-operators.component.mjs +1 -1
  67. package/esm2022/filtering/filter-input.directive.mjs +14 -2
  68. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +4 -2
  69. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +5 -1
  70. package/esm2022/filtering/menu/date-filter-menu.component.mjs +7 -1
  71. package/esm2022/filtering/menu/filter-menu-container.component.mjs +21 -10
  72. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +27 -5
  73. package/esm2022/filtering/menu/filter-menu.component.mjs +44 -29
  74. package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +2 -0
  75. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +7 -1
  76. package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +2 -0
  77. package/esm2022/filtering/menu/string-filter-menu.component.mjs +11 -2
  78. package/esm2022/grid.component.mjs +358 -82
  79. package/esm2022/grid.module.mjs +114 -101
  80. package/esm2022/index.mjs +10 -1
  81. package/esm2022/localization/messages.mjs +104 -2
  82. package/esm2022/navigation/navigation.service.mjs +1 -1
  83. package/esm2022/navigation/toolbar-tool-name.mjs +17 -0
  84. package/esm2022/package-metadata.mjs +2 -2
  85. package/esm2022/pdf/pdf-command-tool.directive.mjs +12 -15
  86. package/esm2022/rendering/cell.component.mjs +4 -4
  87. package/esm2022/rendering/header/header.component.mjs +1 -1
  88. package/esm2022/rendering/list.component.mjs +1 -1
  89. package/esm2022/rendering/table-body.component.mjs +11 -3
  90. package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +203 -0
  91. package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +61 -34
  92. package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +29 -8
  93. package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +73 -8
  94. package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +46 -20
  95. package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +24 -8
  96. package/esm2022/row-reordering/row-reorder.service.mjs +15 -0
  97. package/esm2022/selection/selection.service.mjs +11 -0
  98. package/esm2022/state-management/grid-state.models.mjs +26 -0
  99. package/esm2022/state-management/redo-command-tool.mjs +66 -0
  100. package/esm2022/state-management/undo-command-tool.mjs +66 -0
  101. package/esm2022/state-management/undo-redo.directive.mjs +178 -0
  102. package/esm2022/state-management/undo-redo.service.mjs +22 -0
  103. package/esm2022/state-management/undo-redo.stack.mjs +232 -0
  104. package/esm2022/utils.mjs +13 -13
  105. package/excel/excel-command-tool.directive.d.ts +5 -5
  106. package/fesm2022/progress-kendo-angular-grid.mjs +4672 -1798
  107. package/filtering/filter-input.directive.d.ts +1 -0
  108. package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
  109. package/filtering/menu/filter-menu-container.component.d.ts +14 -4
  110. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +8 -3
  111. package/filtering/menu/filter-menu.component.d.ts +6 -3
  112. package/filtering/menu/numeric-filter-menu-input.component.d.ts +1 -1
  113. package/filtering/menu/string-filter-menu-input.component.d.ts +1 -1
  114. package/filtering/menu/string-filter-menu.component.d.ts +1 -0
  115. package/grid.component.d.ts +86 -33
  116. package/grid.module.d.ts +107 -100
  117. package/index.d.ts +9 -1
  118. package/localization/messages.d.ts +70 -2
  119. package/navigation/toolbar-tool-name.d.ts +17 -0
  120. package/package.json +36 -20
  121. package/pdf/pdf-command-tool.directive.d.ts +6 -5
  122. package/rendering/cell.component.d.ts +1 -1
  123. package/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.d.ts +17 -6
  124. package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +9 -1
  125. package/rendering/toolbar/tools/filter-tool-wrapper.component.d.ts +6 -5
  126. package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +11 -2
  127. package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +9 -1
  128. package/rendering/toolbar/tools/sort-toolbar-tool.component.d.ts +5 -1
  129. package/row-reordering/row-reorder.service.d.ts +2 -0
  130. package/schematics/ngAdd/index.js +4 -4
  131. package/selection/selection.service.d.ts +1 -0
  132. package/state-management/grid-state.models.d.ts +58 -0
  133. package/state-management/redo-command-tool.d.ts +38 -0
  134. package/state-management/undo-command-tool.d.ts +38 -0
  135. package/state-management/undo-redo.directive.d.ts +51 -0
  136. package/state-management/undo-redo.service.d.ts +19 -0
  137. package/state-management/undo-redo.stack.d.ts +104 -0
  138. package/utils.d.ts +11 -5
  139. 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)) {
@@ -1250,6 +1362,12 @@ export class GridComponent {
1250
1362
  if (this.selectionSubscription) {
1251
1363
  this.selectionSubscription.unsubscribe();
1252
1364
  }
1365
+ if (this.rowReorderSubscription) {
1366
+ this.rowReorderSubscription.unsubscribe();
1367
+ }
1368
+ if (this.columnReorderSubscription) {
1369
+ this.columnReorderSubscription.unsubscribe();
1370
+ }
1253
1371
  if (this.stateChangeSubscription) {
1254
1372
  this.stateChangeSubscription.unsubscribe();
1255
1373
  }
@@ -1372,6 +1490,12 @@ export class GridComponent {
1372
1490
  const target = isNaN(columnIndex) ? row : `${row} td[data-kendo-grid-column-index="${columnIndex}"]`;
1373
1491
  this.focusEditElement(target);
1374
1492
  }
1493
+ /**
1494
+ * @hidden
1495
+ */
1496
+ handleReorderEvents(ev, evType) {
1497
+ this.rowReorderService[evType](ev);
1498
+ }
1375
1499
  /**
1376
1500
  * Closes the editor for a given row ([see example]({% slug inline_editing_grid %}#toc-canceling-editing-1)).
1377
1501
  *
@@ -1465,6 +1589,44 @@ export class GridComponent {
1465
1589
  saveAsExcel() {
1466
1590
  this.excelService.save(this);
1467
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
+ }
1468
1630
  /**
1469
1631
  * Applies the minimum possible width for the specified column,
1470
1632
  * so that the whole text fits without wrapping. This method expects the Grid
@@ -1501,6 +1663,12 @@ export class GridComponent {
1501
1663
  }
1502
1664
  this.pageChange.emit(event);
1503
1665
  }
1666
+ /**
1667
+ * @hidden
1668
+ */
1669
+ handlePagerVisibilityChange(prop, ev) {
1670
+ this[prop] = ev;
1671
+ }
1504
1672
  /**
1505
1673
  * @hidden
1506
1674
  */
@@ -1615,7 +1783,7 @@ export class GridComponent {
1615
1783
  return;
1616
1784
  }
1617
1785
  if (isSpanColumnComponent(target) && !options.before) {
1618
- target = target.childColumns.last;
1786
+ target = target.children.last;
1619
1787
  }
1620
1788
  this.reorder({
1621
1789
  before: options.before,
@@ -1623,37 +1791,6 @@ export class GridComponent {
1623
1791
  target: target
1624
1792
  });
1625
1793
  }
1626
- /**
1627
- * A function which determines if a specific row is expanded.
1628
- */
1629
- set isDetailExpanded(callback) {
1630
- this.detailsService.userCallback = callback;
1631
- }
1632
- get isDetailExpanded() {
1633
- return this.detailsService.userCallback;
1634
- }
1635
- /**
1636
- * A function which determines if a specific group row is expanded.
1637
- */
1638
- set isGroupExpanded(callback) {
1639
- this.groupsService.userCallback = callback;
1640
- this.groupable = isPresent(callback);
1641
- }
1642
- get isGroupExpanded() {
1643
- return this.groupsService.userCallback;
1644
- }
1645
- /**
1646
- * @hidden
1647
- */
1648
- handleReorderEvents(ev, evType) {
1649
- this.rowReorderService[evType](ev);
1650
- }
1651
- /**
1652
- * @hidden
1653
- */
1654
- get flatData() {
1655
- return isArray(this.data) ? this.data : this.data.data;
1656
- }
1657
1794
  /**
1658
1795
  * @hidden
1659
1796
  */
@@ -1707,7 +1844,7 @@ export class GridComponent {
1707
1844
  let toSkip = 1;
1708
1845
  // Possible only when called from the API.
1709
1846
  if (source.isSpanColumn) {
1710
- toSkip += source.childColumns.length;
1847
+ toSkip += source.children.length;
1711
1848
  }
1712
1849
  let i = 0;
1713
1850
  while (i < expandedColumns.length) {
@@ -1903,7 +2040,13 @@ export class GridComponent {
1903
2040
  this.blockArrowSelection = true;
1904
2041
  }
1905
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
+ }
1906
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))));
1907
2050
  }
1908
2051
  attachEditHandlers() {
1909
2052
  if (!this.editService) {
@@ -2196,8 +2339,8 @@ export class GridComponent {
2196
2339
  this.dragTargetContainer?.notify();
2197
2340
  this.dropTargetContainer?.notify();
2198
2341
  }
2199
- 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 });
2200
- 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: [
2201
2344
  BrowserSupportService,
2202
2345
  LocalizationService,
2203
2346
  ColumnInfoService,
@@ -2243,8 +2386,11 @@ export class GridComponent {
2243
2386
  SizingOptionsService,
2244
2387
  RowReorderService,
2245
2388
  ClipboardService,
2246
- RowspanService
2247
- ], 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: `
2248
2394
  <ng-container kendoGridLocalizedMessages
2249
2395
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
2250
2396
  groupPanelEmpty="Drag a column header and drop it here to group by that column"
@@ -2375,6 +2521,21 @@ export class GridComponent {
2375
2521
  i18n-filterClearButton="kendo.grid.filterClearButton|The text of the clear filter button"
2376
2522
  filterClearButton="Clear"
2377
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-sortDoneButton="kendo.grid.sortDoneButton|The text of the done sort button"
2537
+ sortDoneButton="Done"
2538
+
2378
2539
  i18n-filterAndLogic="kendo.grid.filterAndLogic|The text of the And filter logic"
2379
2540
  filterAndLogic="And"
2380
2541
 
@@ -2396,6 +2557,18 @@ export class GridComponent {
2396
2557
  i18n-columns="kendo.grid.columns|The text for the Grid Column Chooser and Column Chooser toolbar tool"
2397
2558
  columns="Columns"
2398
2559
 
2560
+ i18n-columns="kendo.grid.columnsSubtitle|The subtitle for the adaptive Grid Column Chooser and Column Chooser toolbar tool"
2561
+ columnsSubtitle="Selected fields are visible"
2562
+
2563
+ i18n-columns="kendo.grid.adaptiveFilterTitle|The title that is displayed in the adaptive Filter Toolbar Tool and Filter Menu"
2564
+ adaptiveFilterTitle="Filter by"
2565
+
2566
+ i18n-columns="kendo.grid.adaptiveFilterOperatorsTitle|The title that is displayed in the Operators Action Sheet"
2567
+ adaptiveFilterOperatorsTitle="Operators"
2568
+
2569
+ i18n-columns="kendo.grid.adaptiveSortTitle|The title that is displayed in the adaptive Sort Toolbar Tool"
2570
+ adaptiveSortTitle="Sort by"
2571
+
2399
2572
  i18n-lock="kendo.grid.lock|The text shown in the column menu for the lock item"
2400
2573
  lock="Lock"
2401
2574
 
@@ -2483,6 +2656,27 @@ export class GridComponent {
2483
2656
  i18n-bottomToolbarLabel="kendo.grid.bottomToolbarLabel|The label for the Grid bottom toolbar"
2484
2657
  bottomToolbarLabel="Bottom toolbar"
2485
2658
 
2659
+ i18n-editToolbarToolText="kendo.grid.editToolbarToolText|The text for the Grid Edit toolbar tool"
2660
+ editToolbarToolText="Edit"
2661
+
2662
+ i18n-saveToolbarToolText="kendo.grid.saveToolbarToolText|The text for the Grid Save toolbar tool"
2663
+ saveToolbarToolText="Save"
2664
+
2665
+ i18n-addToolbarToolText="kendo.grid.addToolbarToolText|The text for the Grid Add toolbar tool"
2666
+ addToolbarToolText="Add"
2667
+
2668
+ i18n-cancelToolbarToolText="kendo.grid.cancelToolbarToolText|The text for the Grid Cancel toolbar tool"
2669
+ cancelToolbarToolText="Cancel"
2670
+
2671
+ i18n-removeToolbarToolText="kendo.grid.removeToolbarToolText|The text for the Grid Remove toolbar tool"
2672
+ removeToolbarToolText="Delete"
2673
+
2674
+ i18n-excelExportToolbarToolText="kendo.grid.excelExportToolbarToolText|The text for the Grid Excel export toolbar tool"
2675
+ excelExportToolbarToolText="Excel Export"
2676
+
2677
+ i18n-pdfExportToolbarToolText="kendo.grid.pdfExportToolbarToolText|The text for the Grid PDF export toolbar tool"
2678
+ pdfExportToolbarToolText="PDF Export"
2679
+
2486
2680
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
2487
2681
  groupPanelLabel="Group panel"
2488
2682
 
@@ -2519,9 +2713,12 @@ export class GridComponent {
2519
2713
  i18n-removeConfirmationDialogRejectText="kendo.grid.removeConfirmationDialogRejectText|The text of the built-in remove item confirmation Dialog reject action button"
2520
2714
  removeConfirmationDialogRejectText="No"
2521
2715
 
2522
- i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container"
2716
+ i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container when editing an item"
2523
2717
  externalEditingTitle="Edit"
2524
2718
 
2719
+ i18n-externalEditingAddTitle="kendo.grid.externalEditingAddTitle|The title of the built-in external editing form container when adding a new item"
2720
+ externalEditingAddTitle="Add"
2721
+
2525
2722
  i18n-externalEditingSaveText="kendo.grid.externalEditingSaveText|The text of the external editing form Save button"
2526
2723
  externalEditingSaveText="Save"
2527
2724
 
@@ -2552,7 +2749,10 @@ export class GridComponent {
2552
2749
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
2553
2750
  [previousNext]="normalizedPageableSettings.previousNext"
2554
2751
  [type]="normalizedPageableSettings.type"
2555
- (pageChange)="notifyPageChange('pager', $event)">
2752
+ (pageChange)="notifyPageChange('pager', $event)"
2753
+ (pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
2754
+ (pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
2755
+ (itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
2556
2756
  <ng-template kendoPagerTemplate>
2557
2757
  <ng-container
2558
2758
  [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
@@ -2875,7 +3075,10 @@ export class GridComponent {
2875
3075
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
2876
3076
  [previousNext]="normalizedPageableSettings.previousNext"
2877
3077
  [type]="normalizedPageableSettings.type"
2878
- (pageChange)="notifyPageChange('pager', $event)">
3078
+ (pageChange)="notifyPageChange('pager', $event)"
3079
+ (pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
3080
+ (pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
3081
+ (itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
2879
3082
  <ng-template kendoPagerTemplate>
2880
3083
  <ng-container
2881
3084
  [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
@@ -2923,20 +3126,23 @@ export class GridComponent {
2923
3126
  *ngIf="normalizedPageableSettings.type === 'numeric' && normalizedPageableSettings.buttonCount > 0"
2924
3127
  [buttonCount]="normalizedPageableSettings.buttonCount">
2925
3128
  </kendo-pager-numeric-buttons>
2926
- <kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input'"></kendo-pager-input>
3129
+ <kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input' || showPagerInput" [showPageText]="showPagerPageText"></kendo-pager-input>
2927
3130
  <kendo-pager-next-buttons [size]="size" *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-next-buttons>
2928
3131
  </div>
2929
3132
  <kendo-pager-page-sizes *ngIf="normalizedPageableSettings.pageSizes"
2930
3133
  [size]="size"
2931
- [pageSizes]="normalizedPageableSettings.pageSizes">
3134
+ [pageSizes]="normalizedPageableSettings.pageSizes"
3135
+ [showItemsText]="showPagerItemsText">
2932
3136
  </kendo-pager-page-sizes>
2933
3137
  <kendo-pager-info *ngIf="normalizedPageableSettings.info">
2934
3138
  </kendo-pager-info>
2935
3139
  </ng-template>
2936
3140
  <div #dialogContainer></div>
2937
-
3141
+
3142
+ <kendo-grid-adaptive-renderer *ngIf="isAdaptiveModeEnabled"></kendo-grid-adaptive-renderer>
3143
+
2938
3144
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
2939
- `, 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 });
3145
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns", "totalColumnsCount"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i27.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i27.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i27.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["showPageText", "size"] }, { kind: "component", type: i27.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i27.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i27.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i27.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i27.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i27.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange", "pagerInputVisibilityChange", "pageTextVisibilityChange", "itemsTextVisibilityChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-grid-adaptive-renderer" }], encapsulation: i0.ViewEncapsulation.None });
2940
3146
  }
2941
3147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
2942
3148
  type: Component,
@@ -2989,7 +3195,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2989
3195
  SizingOptionsService,
2990
3196
  RowReorderService,
2991
3197
  ClipboardService,
2992
- RowspanService
3198
+ RowspanService,
3199
+ AdaptiveGridService,
3200
+ ColumnMenuService,
3201
+ MenuTabbingService
2993
3202
  ],
2994
3203
  selector: 'kendo-grid',
2995
3204
  template: `
@@ -3123,6 +3332,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3123
3332
  i18n-filterClearButton="kendo.grid.filterClearButton|The text of the clear filter button"
3124
3333
  filterClearButton="Clear"
3125
3334
 
3335
+ i18n-sortClearButton="kendo.grid.sortClearButton|The text of the clear sort button located in the Sort Toolbar Tool and adaptive Sort Toolbar Tool"
3336
+ sortClearButton="Clear sorting"
3337
+
3338
+ 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"
3339
+ adaptiveCloseButtonTitle="Close"
3340
+
3341
+ 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"
3342
+ adaptiveBackButtonTitle="Back"
3343
+
3344
+ i18n-filterClearAllButton="kendo.grid.filterClearAllButton|The text of the clear all filters button located in the Filter Toolbar Tool and adaptive Filter Toolbar Tool"
3345
+ filterClearAllButton="Clear all filters"
3346
+
3347
+ i18n-sortDoneButton="kendo.grid.sortDoneButton|The text of the done sort button"
3348
+ sortDoneButton="Done"
3349
+
3126
3350
  i18n-filterAndLogic="kendo.grid.filterAndLogic|The text of the And filter logic"
3127
3351
  filterAndLogic="And"
3128
3352
 
@@ -3144,6 +3368,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3144
3368
  i18n-columns="kendo.grid.columns|The text for the Grid Column Chooser and Column Chooser toolbar tool"
3145
3369
  columns="Columns"
3146
3370
 
3371
+ i18n-columns="kendo.grid.columnsSubtitle|The subtitle for the adaptive Grid Column Chooser and Column Chooser toolbar tool"
3372
+ columnsSubtitle="Selected fields are visible"
3373
+
3374
+ i18n-columns="kendo.grid.adaptiveFilterTitle|The title that is displayed in the adaptive Filter Toolbar Tool and Filter Menu"
3375
+ adaptiveFilterTitle="Filter by"
3376
+
3377
+ i18n-columns="kendo.grid.adaptiveFilterOperatorsTitle|The title that is displayed in the Operators Action Sheet"
3378
+ adaptiveFilterOperatorsTitle="Operators"
3379
+
3380
+ i18n-columns="kendo.grid.adaptiveSortTitle|The title that is displayed in the adaptive Sort Toolbar Tool"
3381
+ adaptiveSortTitle="Sort by"
3382
+
3147
3383
  i18n-lock="kendo.grid.lock|The text shown in the column menu for the lock item"
3148
3384
  lock="Lock"
3149
3385
 
@@ -3231,6 +3467,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3231
3467
  i18n-bottomToolbarLabel="kendo.grid.bottomToolbarLabel|The label for the Grid bottom toolbar"
3232
3468
  bottomToolbarLabel="Bottom toolbar"
3233
3469
 
3470
+ i18n-editToolbarToolText="kendo.grid.editToolbarToolText|The text for the Grid Edit toolbar tool"
3471
+ editToolbarToolText="Edit"
3472
+
3473
+ i18n-saveToolbarToolText="kendo.grid.saveToolbarToolText|The text for the Grid Save toolbar tool"
3474
+ saveToolbarToolText="Save"
3475
+
3476
+ i18n-addToolbarToolText="kendo.grid.addToolbarToolText|The text for the Grid Add toolbar tool"
3477
+ addToolbarToolText="Add"
3478
+
3479
+ i18n-cancelToolbarToolText="kendo.grid.cancelToolbarToolText|The text for the Grid Cancel toolbar tool"
3480
+ cancelToolbarToolText="Cancel"
3481
+
3482
+ i18n-removeToolbarToolText="kendo.grid.removeToolbarToolText|The text for the Grid Remove toolbar tool"
3483
+ removeToolbarToolText="Delete"
3484
+
3485
+ i18n-excelExportToolbarToolText="kendo.grid.excelExportToolbarToolText|The text for the Grid Excel export toolbar tool"
3486
+ excelExportToolbarToolText="Excel Export"
3487
+
3488
+ i18n-pdfExportToolbarToolText="kendo.grid.pdfExportToolbarToolText|The text for the Grid PDF export toolbar tool"
3489
+ pdfExportToolbarToolText="PDF Export"
3490
+
3234
3491
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
3235
3492
  groupPanelLabel="Group panel"
3236
3493
 
@@ -3267,9 +3524,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3267
3524
  i18n-removeConfirmationDialogRejectText="kendo.grid.removeConfirmationDialogRejectText|The text of the built-in remove item confirmation Dialog reject action button"
3268
3525
  removeConfirmationDialogRejectText="No"
3269
3526
 
3270
- i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container"
3527
+ i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container when editing an item"
3271
3528
  externalEditingTitle="Edit"
3272
3529
 
3530
+ i18n-externalEditingAddTitle="kendo.grid.externalEditingAddTitle|The title of the built-in external editing form container when adding a new item"
3531
+ externalEditingAddTitle="Add"
3532
+
3273
3533
  i18n-externalEditingSaveText="kendo.grid.externalEditingSaveText|The text of the external editing form Save button"
3274
3534
  externalEditingSaveText="Save"
3275
3535
 
@@ -3300,7 +3560,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3300
3560
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
3301
3561
  [previousNext]="normalizedPageableSettings.previousNext"
3302
3562
  [type]="normalizedPageableSettings.type"
3303
- (pageChange)="notifyPageChange('pager', $event)">
3563
+ (pageChange)="notifyPageChange('pager', $event)"
3564
+ (pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
3565
+ (pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
3566
+ (itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
3304
3567
  <ng-template kendoPagerTemplate>
3305
3568
  <ng-container
3306
3569
  [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
@@ -3623,7 +3886,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3623
3886
  [pageSizeValues]="normalizedPageableSettings.pageSizes"
3624
3887
  [previousNext]="normalizedPageableSettings.previousNext"
3625
3888
  [type]="normalizedPageableSettings.type"
3626
- (pageChange)="notifyPageChange('pager', $event)">
3889
+ (pageChange)="notifyPageChange('pager', $event)"
3890
+ (pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
3891
+ (pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
3892
+ (itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
3627
3893
  <ng-template kendoPagerTemplate>
3628
3894
  <ng-container
3629
3895
  [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
@@ -3671,18 +3937,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3671
3937
  *ngIf="normalizedPageableSettings.type === 'numeric' && normalizedPageableSettings.buttonCount > 0"
3672
3938
  [buttonCount]="normalizedPageableSettings.buttonCount">
3673
3939
  </kendo-pager-numeric-buttons>
3674
- <kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input'"></kendo-pager-input>
3940
+ <kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input' || showPagerInput" [showPageText]="showPagerPageText"></kendo-pager-input>
3675
3941
  <kendo-pager-next-buttons [size]="size" *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-next-buttons>
3676
3942
  </div>
3677
3943
  <kendo-pager-page-sizes *ngIf="normalizedPageableSettings.pageSizes"
3678
3944
  [size]="size"
3679
- [pageSizes]="normalizedPageableSettings.pageSizes">
3945
+ [pageSizes]="normalizedPageableSettings.pageSizes"
3946
+ [showItemsText]="showPagerItemsText">
3680
3947
  </kendo-pager-page-sizes>
3681
3948
  <kendo-pager-info *ngIf="normalizedPageableSettings.info">
3682
3949
  </kendo-pager-info>
3683
3950
  </ng-template>
3684
3951
  <div #dialogContainer></div>
3685
-
3952
+
3953
+ <kendo-grid-adaptive-renderer *ngIf="isAdaptiveModeEnabled"></kendo-grid-adaptive-renderer>
3954
+
3686
3955
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3687
3956
  `,
3688
3957
  standalone: true,
@@ -3691,10 +3960,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3691
3960
  TableDirective, GridTableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective,
3692
3961
  ListComponent, DragTargetContainerDirective, DropTargetContainerDirective, DraggableDirective,
3693
3962
  GridMarqueeDirective, FooterComponent, TableBodyComponent, LoadingComponent, StatusBarComponent,
3694
- IconWrapperComponent, WatermarkOverlayComponent, ...KENDO_PAGER, NgTemplateOutlet
3963
+ IconWrapperComponent, WatermarkOverlayComponent, ...KENDO_PAGER, NgTemplateOutlet, AdaptiveRendererComponent
3695
3964
  ]
3696
3965
  }]
3697
- }], 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: [{
3966
+ }], 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: [{
3698
3967
  type: Input
3699
3968
  }], pageSize: [{
3700
3969
  type: Input
@@ -3702,6 +3971,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3702
3971
  type: Input
3703
3972
  }], rowHeight: [{
3704
3973
  type: Input
3974
+ }], adaptiveMode: [{
3975
+ type: Input
3705
3976
  }], detailRowHeight: [{
3706
3977
  type: Input
3707
3978
  }], skip: [{
@@ -3736,8 +4007,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3736
4007
  type: Input
3737
4008
  }], navigable: [{
3738
4009
  type: Input
3739
- }], navigatable: [{
3740
- type: Input
3741
4010
  }], autoSize: [{
3742
4011
  type: Input
3743
4012
  }], rowClass: [{
@@ -3760,6 +4029,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3760
4029
  type: Input
3761
4030
  }], hideHeader: [{
3762
4031
  type: Input
4032
+ }], showInactiveTools: [{
4033
+ type: Input
4034
+ }], isDetailExpanded: [{
4035
+ type: Input
4036
+ }], isGroupExpanded: [{
4037
+ type: Input
3763
4038
  }], filterChange: [{
3764
4039
  type: Output
3765
4040
  }], pageChange: [{
@@ -3774,6 +4049,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3774
4049
  type: Output
3775
4050
  }], dataStateChange: [{
3776
4051
  type: Output
4052
+ }], gridStateChange: [{
4053
+ type: Output
3777
4054
  }], groupExpand: [{
3778
4055
  type: Output
3779
4056
  }], groupCollapse: [{
@@ -3898,8 +4175,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3898
4175
  }], dialogContainer: [{
3899
4176
  type: ViewChild,
3900
4177
  args: ['dialogContainer', { read: ViewContainerRef }]
3901
- }], isDetailExpanded: [{
3902
- type: Input
3903
- }], isGroupExpanded: [{
3904
- type: Input
4178
+ }], adaptiveRenderer: [{
4179
+ type: ViewChild,
4180
+ args: [AdaptiveRendererComponent]
3905
4181
  }] } });