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

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
@@ -0,0 +1,1108 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Component, ViewChild, ViewContainerRef } from '@angular/core';
6
+ import { AdaptiveGridService } from '../common/adaptiveness.service';
7
+ import { ActionSheetComponent, ActionSheetContentTemplateDirective, ActionSheetFooterTemplateDirective, ActionSheetHeaderTemplateDirective, ActionSheetViewComponent } from '@progress/kendo-angular-navigation';
8
+ import { FilterMenuContainerComponent } from '../filtering/menu/filter-menu-container.component';
9
+ import { FilterToolbarToolComponent } from '../rendering/toolbar/tools/filter-toolbar-tool.component';
10
+ import { ButtonDirective } from '@progress/kendo-angular-buttons';
11
+ import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
12
+ import { arrowRotateCcwIcon, cancelIcon, checkIcon, chevronLeftIcon, filterClearIcon, filterIcon, saveIcon, xIcon } from '@progress/kendo-svg-icons';
13
+ import { FilterService } from '../filtering/filter.service';
14
+ import { ColumnMenuContainerComponent } from '../column-menu/column-menu-container.component';
15
+ import { ColumnMenuFilterComponent } from '../column-menu/column-menu-filter.component';
16
+ import { ColumnMenuSortComponent } from '../column-menu/column-menu-sort.component';
17
+ import { ColumnMenuLockComponent } from '../column-menu/column-menu-lock.component';
18
+ import { ColumnMenuStickComponent } from '../column-menu/column-menu-stick.component';
19
+ import { ColumnMenuPositionComponent } from '../column-menu/column-menu-position.component';
20
+ import { ColumnMenuChooserComponent } from '../column-menu/column-menu-chooser.component';
21
+ import { ColumnMenuAutoSizeColumnComponent } from '../column-menu/column-menu-autosize.component';
22
+ import { ColumnMenuAutoSizeAllColumnsComponent } from '../column-menu/column-menu-autosize-all.component';
23
+ import { ColumnMenuItemComponent } from '../column-menu/column-menu-item.component';
24
+ import { ColumnMenuItemDirective } from '../column-menu/column-menu-item.directive';
25
+ import { hasFilter, hasSort, hasLock, hasStick, hasColumnChooser, hasAutoSizeColumn, hasPosition, hasAutoSizeAllColumns } from '../column-menu/utils';
26
+ import { ColumnMenuService } from '../column-menu/column-menu.service';
27
+ import { ColumnListComponent } from '../column-menu/column-list.component';
28
+ import { ContextService } from '../common/provider.service';
29
+ import { replaceMessagePlaceholder } from '../utils';
30
+ import { AdaptiveService } from '@progress/kendo-angular-utils';
31
+ import { SortService } from '../common/sort.service';
32
+ import { ColumnInfoService } from '../common/column-info.service';
33
+ import { normalize } from '../columns/sort-settings';
34
+ import { directions } from '../rendering/toolbar/tools/sort-toolbar-tool.component';
35
+ import { EventsOutsideAngularDirective } from '@progress/kendo-angular-common';
36
+ import { FormComponent } from '../editing/form';
37
+ import * as i0 from "@angular/core";
38
+ import * as i1 from "../column-menu/column-menu.service";
39
+ import * as i2 from "../common/adaptiveness.service";
40
+ import * as i3 from "../filtering/filter.service";
41
+ import * as i4 from "../common/provider.service";
42
+ import * as i5 from "@progress/kendo-angular-utils";
43
+ import * as i6 from "../common/sort.service";
44
+ import * as i7 from "../common/column-info.service";
45
+ /**
46
+ * @hidden
47
+ */
48
+ export class AdaptiveRendererComponent {
49
+ service;
50
+ adaptiveGridService;
51
+ filterService;
52
+ ctx;
53
+ adaptiveService;
54
+ sortService;
55
+ columnInfoService;
56
+ xIcon = xIcon;
57
+ checkIcon = checkIcon;
58
+ filterIcon = filterIcon;
59
+ arrowRotateCcwIcon = arrowRotateCcwIcon;
60
+ chevronLeft = chevronLeftIcon;
61
+ filterClearIcon = filterClearIcon;
62
+ cancelIcon = cancelIcon;
63
+ saveIcon = saveIcon;
64
+ columns;
65
+ actionsClass = 'k-actions';
66
+ externalEditingSettings;
67
+ get hasSort() {
68
+ return hasSort(this.ctx.grid.columnMenu, this.adaptiveGridService.column);
69
+ }
70
+ get hasColumnChooser() {
71
+ return hasColumnChooser(this.ctx.grid.columnMenu);
72
+ }
73
+ get hasFilter() {
74
+ return hasFilter(this.ctx.grid.columnMenu, this.adaptiveGridService.column);
75
+ }
76
+ get hasAutoSizeColumn() {
77
+ return hasAutoSizeColumn(this.ctx.grid.columnMenu);
78
+ }
79
+ get hasAutoSizeAllColumns() {
80
+ return hasAutoSizeAllColumns(this.ctx.grid.columnMenu);
81
+ }
82
+ get hasLock() {
83
+ return hasLock(this.ctx.grid.columnMenu, this.adaptiveGridService.column);
84
+ }
85
+ get hasStick() {
86
+ return hasStick(this.ctx.grid.columnMenu, this.adaptiveGridService.column);
87
+ }
88
+ get hasPosition() {
89
+ return hasPosition(this.ctx.grid.columnMenu, this.adaptiveGridService.column);
90
+ }
91
+ getColumnComponent(column) {
92
+ return column;
93
+ }
94
+ get hasTitle() {
95
+ const hasTitle = this.adaptiveGridService.viewType === 'columnMenu' ||
96
+ this.adaptiveGridService.viewType === 'filterToolbarTool' ||
97
+ this.adaptiveGridService.viewType === 'columnChooserToolbarTool' ||
98
+ this.adaptiveGridService.viewType === 'filterMenu' ||
99
+ this.adaptiveGridService.viewType === 'sortToolbarTool' ||
100
+ this.adaptiveGridService.viewType === 'externalEditing';
101
+ return hasTitle;
102
+ }
103
+ get hasSubtitle() {
104
+ const hasSubtitle = (this.adaptiveGridService.viewType === 'columnMenu' && this.adaptiveGridService.secondaryView === 'columnChooser') ||
105
+ this.adaptiveGridService.viewType === 'columnChooserToolbarTool';
106
+ return hasSubtitle;
107
+ }
108
+ get actionSheetTitle() {
109
+ if (this.adaptiveGridService.viewType === 'columnMenu') {
110
+ if (this.adaptiveGridService.secondaryView === 'columnChooser') {
111
+ return this.messageFor('columns');
112
+ }
113
+ if (this.adaptiveGridService.secondaryView === 'columnPosition') {
114
+ return this.messageFor('setColumnPosition');
115
+ }
116
+ if (this.adaptiveGridService.secondaryView === 'columnFilter') {
117
+ return this.adaptiveGridService.column.title || this.adaptiveGridService.column.field;
118
+ }
119
+ return this.columnMenuTitle;
120
+ }
121
+ if (this.adaptiveGridService.viewType === 'filterToolbarTool') {
122
+ if (this.adaptiveGridService.secondaryView === 'columnFilter') {
123
+ return this.adaptiveGridService.column.title || this.adaptiveGridService.column.field;
124
+ }
125
+ return this.messageFor('adaptiveFilterTitle');
126
+ }
127
+ if (this.adaptiveGridService.viewType === 'filterMenu') {
128
+ return this.adaptiveGridService.column.title || this.adaptiveGridService.column.field;
129
+ }
130
+ if (this.adaptiveGridService.viewType === 'columnChooserToolbarTool') {
131
+ return this.messageFor('columns');
132
+ }
133
+ if (this.adaptiveGridService.viewType === 'sortToolbarTool') {
134
+ return this.messageFor('adaptiveSortTitle');
135
+ }
136
+ if (this.adaptiveGridService.viewType === 'externalEditing') {
137
+ return this.messageFor(this.externalEditingSettings.event.isNew ? 'externalEditingAddTitle' : 'externalEditingTitle');
138
+ }
139
+ }
140
+ get adaptiveFilterTitle() {
141
+ const columnTitle = this.adaptiveGridService.column.title || this.adaptiveGridService.column.field;
142
+ return `${this.messageFor('adaptiveFilterTitle')} ${columnTitle}`;
143
+ }
144
+ get columnMenuTitle() {
145
+ const columnName = this.adaptiveGridService.column.title || this.adaptiveGridService.column.field;
146
+ return columnName;
147
+ }
148
+ get filterLabel() {
149
+ const localizationMsg = this.messageFor('filterMenuTitle') || '';
150
+ const columnName = this.adaptiveGridService.column.title || this.adaptiveGridService.column.field;
151
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
152
+ }
153
+ columnList;
154
+ filterToolbarToolTemplate;
155
+ filterMenuContainer;
156
+ actionSheet;
157
+ adaptiveSizeChangeSubscription;
158
+ constructor(service, adaptiveGridService, filterService, ctx, adaptiveService, sortService, columnInfoService) {
159
+ this.service = service;
160
+ this.adaptiveGridService = adaptiveGridService;
161
+ this.filterService = filterService;
162
+ this.ctx = ctx;
163
+ this.adaptiveService = adaptiveService;
164
+ this.sortService = sortService;
165
+ this.columnInfoService = columnInfoService;
166
+ this.adaptiveSizeChangeSubscription = this.adaptiveService.sizeChanges.subscribe(() => {
167
+ if (this.ctx.grid.isOpen) {
168
+ if (this.actionSheet.expanded) {
169
+ this.actionSheet.toggle(false);
170
+ }
171
+ else {
172
+ this.adaptiveGridService.popupRef.close();
173
+ this.adaptiveGridService.popupRef = null;
174
+ }
175
+ }
176
+ });
177
+ }
178
+ ngOnInit() {
179
+ this.columns = this.columnInfoService.leafNamedColumns.filter(column => column?.sortable);
180
+ }
181
+ ngOnDestroy() {
182
+ if (this.adaptiveSizeChangeSubscription) {
183
+ this.adaptiveSizeChangeSubscription.unsubscribe();
184
+ }
185
+ }
186
+ messageFor = token => this.ctx.localization.get(token);
187
+ close() {
188
+ this.actionSheet.toggle(false);
189
+ this.adaptiveGridService.reset();
190
+ }
191
+ prevView() {
192
+ this.adaptiveGridService.secondaryView = null;
193
+ this.adaptiveGridService.filterMenuContainerComponentRef?.destroy();
194
+ this.actionSheet.prevView();
195
+ }
196
+ clearFilters() {
197
+ const emptyFilter = { logic: 'and', filters: [] };
198
+ this.filterService.filter(emptyFilter);
199
+ this.actionSheet.toggle(false);
200
+ }
201
+ navigateToColumnsView() {
202
+ this.adaptiveGridService.secondaryView = 'columnChooser';
203
+ this.actionSheet.nextView();
204
+ }
205
+ navigateToFilterView() {
206
+ this.adaptiveGridService.secondaryView = 'columnFilter';
207
+ this.actionSheet.nextView();
208
+ }
209
+ navigateToPositionView() {
210
+ this.adaptiveGridService.secondaryView = 'columnPosition';
211
+ this.actionSheet.nextView();
212
+ }
213
+ applyChanges() {
214
+ this.columnList.applyChanges();
215
+ this.actionSheet.toggle(false);
216
+ }
217
+ sortBy(column) {
218
+ this.toggleSort(this.getColumnComponent(column));
219
+ }
220
+ toggleSort(column) {
221
+ const field = column?.field;
222
+ if (!field) {
223
+ return;
224
+ }
225
+ const descriptor = this.getDescriptor(column);
226
+ this.sortService.sort(descriptor);
227
+ }
228
+ getDescriptor(column) {
229
+ const { allowUnsort, mode, initialDirection } = normalize(this.ctx.grid.sortable, column.sortable);
230
+ const field = column?.field;
231
+ if (!field) {
232
+ return;
233
+ }
234
+ const descriptorT = this.ctx.grid.sort.find(item => item.field === field) || { field };
235
+ const [first, second] = directions(initialDirection);
236
+ let dir = first;
237
+ if (descriptorT.dir === first) {
238
+ dir = second;
239
+ }
240
+ else if (descriptorT.dir === second && allowUnsort) {
241
+ dir = undefined;
242
+ }
243
+ const descriptor = { field, dir };
244
+ if (mode === 'single') {
245
+ return [descriptor];
246
+ }
247
+ return [...this.ctx.grid.sort.filter(desc => desc.field !== field), descriptor];
248
+ }
249
+ clearSorting() {
250
+ if (this.ctx.grid.sort.length > 0) {
251
+ this.sortService.sort([]);
252
+ }
253
+ this.actionSheet.toggle(false);
254
+ }
255
+ onAnimationEnd() {
256
+ this.adaptiveGridService.notifyAnimationEnd();
257
+ }
258
+ cancelChanges() {
259
+ this.columnList.cancelChanges();
260
+ }
261
+ onTab(event) {
262
+ this.columnList.onTab(event);
263
+ }
264
+ saveEditing() {
265
+ const { event, formGroup, externalEditingDirective } = this.externalEditingSettings;
266
+ externalEditingDirective.saveHandler({ ...event, formGroup });
267
+ this.actionSheet.toggle(false);
268
+ }
269
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveRendererComponent, deps: [{ token: i1.ColumnMenuService }, { token: i2.AdaptiveGridService }, { token: i3.FilterService }, { token: i4.ContextService }, { token: i5.AdaptiveService }, { token: i6.SortService }, { token: i7.ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
270
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdaptiveRendererComponent, isStandalone: true, selector: "kendo-grid-adaptive-renderer", viewQueries: [{ propertyName: "columnList", first: true, predicate: ["columnList"], descendants: true }, { propertyName: "filterToolbarToolTemplate", first: true, predicate: ["filterToolbarToolTemplate"], descendants: true, read: ViewContainerRef }, { propertyName: "filterMenuContainer", first: true, predicate: ["filterMenuContainer"], descendants: true }, { propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }], ngImport: i0, template: `
271
+ <kendo-actionsheet
272
+ [cssClass]="{
273
+ 'k-adaptive-actionsheet': true,
274
+ 'k-actionsheet-fullscreen': adaptiveService.size === 'small',
275
+ 'k-actionsheet-bottom': adaptiveService.size === 'medium'
276
+ }"
277
+ [cssStyle]="{
278
+ height: adaptiveService.size === 'small' ? '100vh' : '60vh'
279
+ }"
280
+ [overlayClickClose]="true"
281
+ (collapse)="adaptiveGridService.reset()">
282
+
283
+ <!-- sortToolbarTool view -->
284
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'sortToolbarTool'">
285
+ <ng-template kendoActionSheetHeaderTemplate>
286
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
287
+ </ng-container>
288
+ </ng-template>
289
+ <ng-template kendoActionSheetContentTemplate>
290
+ <div class="k-column-menu k-column-menu-lg">
291
+ <div class="k-columnmenu-item-wrapper">
292
+ <kendo-grid-columnmenu-item *ngFor="let column of columns"
293
+ [column]="getColumnComponent(column)"
294
+ [text]="column.title || getColumnComponent(column).field"
295
+ (itemClick)="sortBy(column)">
296
+ </kendo-grid-columnmenu-item>
297
+ </div>
298
+ </div>
299
+ </ng-template>
300
+ <ng-template kendoActionSheetFooterTemplate>
301
+ <button
302
+ kendoButton
303
+ size="large"
304
+ fillMode="solid"
305
+ icon="x"
306
+ [svgIcon]="xIcon"
307
+ (click)="clearSorting()">
308
+ {{messageFor('sortClearButton')}}
309
+ </button>
310
+ <button
311
+ kendoButton
312
+ size="large"
313
+ fillMode="solid"
314
+ icon="check"
315
+ [svgIcon]="checkIcon"
316
+ themeColor="primary"
317
+ (click)="actionSheet.toggle(false)">
318
+ {{messageFor('sortDoneButton')}}
319
+ </button>
320
+ </ng-template>
321
+ </kendo-actionsheet-view>
322
+
323
+ <!-- columnChooserToolbarTool view -->
324
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'columnChooserToolbarTool'">
325
+ <ng-template kendoActionSheetHeaderTemplate>
326
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
327
+ </ng-container>
328
+ </ng-template>
329
+ <ng-template kendoActionSheetContentTemplate>
330
+ <kendo-grid-columnlist
331
+ #columnList
332
+ [columns]="adaptiveGridService.columns"
333
+ [ariaLabel]="messageFor('columns')"
334
+ [isLast]="true"
335
+ [showActions]="false"
336
+ [applyText]="messageFor('columnsApply')"
337
+ [resetText]="messageFor('columnsReset')"
338
+ [autoSync]="false"
339
+ [actionsClass]="actionsClass"
340
+ [allowHideAll]="false"
341
+ >
342
+ </kendo-grid-columnlist>
343
+ </ng-template>
344
+ <ng-template kendoActionSheetFooterTemplate>
345
+ <ng-container [ngTemplateOutlet]="actionSheetFooterTemplate">
346
+ </ng-container>
347
+ </ng-template>
348
+ </kendo-actionsheet-view>
349
+
350
+ <!-- filterToolbarTool first view -->
351
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'filterToolbarTool'"
352
+ [kendoEventsOutsideAngular]="{transitionend: onAnimationEnd}"
353
+ [scope]="this">
354
+ <ng-template kendoActionSheetHeaderTemplate>
355
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
356
+ </ng-container>
357
+ </ng-template>
358
+ <ng-template kendoActionSheetContentTemplate>
359
+ <div class="k-column-menu k-column-menu-lg">
360
+ <kendo-filter-toolbar-tool></kendo-filter-toolbar-tool>
361
+ </div>
362
+ </ng-template>
363
+ <ng-template kendoActionSheetFooterTemplate>
364
+ <button kendoButton
365
+ icon="filter-clear"
366
+ [svgIcon]="filterClearIcon"
367
+ size="large"
368
+ (click)="clearFilters()">
369
+ {{messageFor('filterClearAllButton')}}
370
+ </button>
371
+ </ng-template>
372
+ </kendo-actionsheet-view>
373
+
374
+ <!-- filterToolbarTool second view -->
375
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'filterToolbarTool'">
376
+ <ng-template kendoActionSheetHeaderTemplate>
377
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
378
+ </ng-container>
379
+ </ng-template>
380
+ <ng-template kendoActionSheetContentTemplate>
381
+ <ng-container #filterToolbarToolTemplate></ng-container>
382
+ </ng-template>
383
+ <ng-template kendoActionSheetFooterTemplate>
384
+ <ng-container [ngTemplateOutlet]="filterFooterButtons">
385
+ </ng-container>
386
+ </ng-template>
387
+ </kendo-actionsheet-view>
388
+
389
+ <!-- filterMenu view -->
390
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'filterMenu'">
391
+ <ng-template kendoActionSheetHeaderTemplate >
392
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
393
+ </ng-container>
394
+ </ng-template>
395
+ <ng-template kendoActionSheetContentTemplate>
396
+ <kendo-grid-filter-menu-container
397
+ #filterMenuContainer
398
+ [column]="adaptiveGridService.column"
399
+ [filter]="ctx.grid.filter"
400
+ (close)="close()"
401
+ (keydown.enter)="$event.stopImmediatePropagation()">
402
+ </kendo-grid-filter-menu-container>
403
+ </ng-template>
404
+ <ng-template kendoActionSheetFooterTemplate>
405
+ <ng-container [ngTemplateOutlet]="filterFooterButtons">
406
+ </ng-container>
407
+ </ng-template>
408
+ </kendo-actionsheet-view>
409
+
410
+ <!-- columnMenu first view -->
411
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'columnMenu'"
412
+ [kendoEventsOutsideAngular]="{transitionend: onAnimationEnd}"
413
+ [scope]="this">
414
+ <ng-template kendoActionSheetHeaderTemplate>
415
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
416
+ </ng-container>
417
+ </ng-template>
418
+ <ng-template kendoActionSheetContentTemplate>
419
+ <div class="k-column-menu k-column-menu-lg">
420
+ <kendo-grid-columnmenu-container>
421
+ <kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="adaptiveGridService.columnMenuService">
422
+ </kendo-grid-columnmenu-sort>
423
+ <kendo-grid-columnmenu-lock #lockItem *ngIf="hasLock && !hasPosition" [kendoGridColumnMenuItem]="lockItem" [service]="adaptiveGridService.columnMenuService">
424
+ </kendo-grid-columnmenu-lock>
425
+ <kendo-grid-columnmenu-stick #stickItem *ngIf="hasStick && !hasPosition" [kendoGridColumnMenuItem]="stickItem" [service]="adaptiveGridService.columnMenuService">
426
+ </kendo-grid-columnmenu-stick>
427
+ <kendo-grid-columnmenu-position
428
+ #positionItem
429
+ *ngIf="hasPosition"
430
+ [showLock]="hasLock"
431
+ [showStick]="hasStick"
432
+ [kendoGridColumnMenuItem]="positionItem"
433
+ [service]="adaptiveGridService.columnMenuService"
434
+ [expanded]="false"
435
+ (collapse)="navigateToPositionView()">
436
+ </kendo-grid-columnmenu-position>
437
+ <span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasLock || hasStick || adaptiveGridService.column.sortable" class="k-separator"></span>
438
+ <kendo-grid-columnmenu-chooser
439
+ #chooserItem
440
+ *ngIf="hasColumnChooser"
441
+ [kendoGridColumnMenuItem]="chooserItem"
442
+ [service]="adaptiveGridService.columnMenuService"
443
+ [expanded]="false"
444
+ (collapse)="navigateToColumnsView()">
445
+ </kendo-grid-columnmenu-chooser>
446
+ <kendo-grid-columnmenu-autosize-column
447
+ #autoSizeColumnItem
448
+ *ngIf="hasAutoSizeColumn"
449
+ [service]="adaptiveGridService.columnMenuService"
450
+ [kendoGridColumnMenuItem]="autoSizeColumnItem"
451
+ [column]="adaptiveGridService.column"
452
+ >
453
+ </kendo-grid-columnmenu-autosize-column>
454
+
455
+ <kendo-grid-columnmenu-autosize-all-columns
456
+ #autoSizeAllColumnsItem
457
+ *ngIf="hasAutoSizeAllColumns"
458
+ [service]="adaptiveGridService.columnMenuService"
459
+ [kendoGridColumnMenuItem]="autoSizeAllColumnsItem"
460
+ >
461
+ </kendo-grid-columnmenu-autosize-all-columns>
462
+ <span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="adaptiveGridService.column.filterable" class="k-separator"></span>
463
+ <kendo-grid-columnmenu-filter
464
+ #filterItem
465
+ *ngIf="hasFilter"
466
+ [kendoGridColumnMenuItem]="filterItem"
467
+ [service]="adaptiveGridService.columnMenuService"
468
+ [expanded]="false"
469
+ (collapse)="navigateToFilterView()">
470
+ </kendo-grid-columnmenu-filter>
471
+ </kendo-grid-columnmenu-container>
472
+ </div>
473
+ </ng-template>
474
+ </kendo-actionsheet-view>
475
+
476
+ <!-- columnMenu second view -->
477
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'columnMenu'">
478
+ <ng-template kendoActionSheetHeaderTemplate>
479
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
480
+ </ng-container>
481
+ </ng-template>
482
+
483
+ <ng-template kendoActionSheetContentTemplate>
484
+ <kendo-grid-columnlist
485
+ *ngIf="adaptiveGridService.secondaryView === 'columnChooser'"
486
+ #columnList
487
+ [columns]="adaptiveGridService.columns"
488
+ [ariaLabel]="messageFor('columns')"
489
+ [isLast]="true"
490
+ [showActions]="false"
491
+ [applyText]="messageFor('columnsApply')"
492
+ [resetText]="messageFor('columnsReset')"
493
+ [autoSync]="false"
494
+ [actionsClass]="actionsClass"
495
+ [allowHideAll]="false"
496
+ >
497
+ </kendo-grid-columnlist>
498
+ <kendo-grid-filter-menu-container
499
+ *ngIf="adaptiveGridService.secondaryView === 'columnFilter'"
500
+ [column]="adaptiveGridService.column"
501
+ [filter]="ctx.grid.filter"
502
+ (close)="close()"
503
+ [kendoEventsOutsideAngular]="{'keydown.escape': close}"
504
+ [scope]="this">
505
+ </kendo-grid-filter-menu-container>
506
+ <kendo-grid-columnmenu-lock
507
+ *ngIf="adaptiveGridService.secondaryView === 'columnPosition' && hasLock"
508
+ [service]="adaptiveGridService.columnMenuService">
509
+ </kendo-grid-columnmenu-lock>
510
+ <kendo-grid-columnmenu-stick
511
+ *ngIf="adaptiveGridService.secondaryView === 'columnPosition' && hasStick"
512
+ [service]="adaptiveGridService.columnMenuService">
513
+ </kendo-grid-columnmenu-stick>
514
+ </ng-template>
515
+ <ng-template *ngIf="adaptiveGridService.secondaryView === 'columnChooser'" kendoActionSheetFooterTemplate>
516
+ <ng-container [ngTemplateOutlet]="actionSheetFooterTemplate">
517
+ </ng-container>
518
+ </ng-template>
519
+
520
+ <ng-template *ngIf="adaptiveGridService.secondaryView === 'columnFilter'" kendoActionSheetFooterTemplate>
521
+ <ng-container [ngTemplateOutlet]="filterFooterButtons">
522
+ </ng-container>
523
+ </ng-template>
524
+ </kendo-actionsheet-view>
525
+
526
+ <!-- external editing view -->
527
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'externalEditing'">
528
+ <ng-template kendoActionSheetHeaderTemplate>
529
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
530
+ </ng-container>
531
+ </ng-template>
532
+
533
+ <ng-template kendoActionSheetContentTemplate>
534
+ <kendo-grid-external-form
535
+ [controls]="externalEditingSettings.formControls"
536
+ [formGroup]="externalEditingSettings.formGroup"
537
+ [formSettings]="externalEditingSettings.formSettings"
538
+ [actionButtons]="false">
539
+ </kendo-grid-external-form>
540
+ </ng-template>
541
+
542
+ <ng-template kendoActionSheetFooterTemplate>
543
+ <button kendoButton
544
+ size="large"
545
+ icon="cancel"
546
+ [svgIcon]="cancelIcon"
547
+ (click)="actionSheet.toggle(false)">
548
+ {{messageFor('externalEditingCancelText')}}
549
+ </button>
550
+ <button kendoButton
551
+ themeColor="primary"
552
+ size="large"
553
+ icon="save"
554
+ [svgIcon]="saveIcon"
555
+ (click)="saveEditing()"
556
+ [disabled]="!externalEditingSettings.formGroup.valid">
557
+ {{messageFor('externalEditingSaveText')}}
558
+ </button>
559
+ </ng-template>
560
+ </kendo-actionsheet-view>
561
+ </kendo-actionsheet>
562
+
563
+ <ng-template #actionSheetHeaderTemplate>
564
+ <div class="k-actionsheet-titlebar-group">
565
+ <div *ngIf="adaptiveGridService.secondaryView" class="k-actionsheet-actions">
566
+ <button
567
+ kendoButton
568
+ icon="chevron-left"
569
+ [svgIcon]="chevronLeft"
570
+ fillMode="flat"
571
+ size="large"
572
+ [title]="messageFor('adaptiveBackButtonTitle')"
573
+ (click)="prevView()">
574
+ </button>
575
+ </div>
576
+ <div class="k-actionsheet-title">
577
+ <div *ngIf="hasTitle" class="k-text-center">
578
+ {{actionSheetTitle}}
579
+ </div>
580
+ <div *ngIf="hasSubtitle"
581
+ class="k-actionsheet-subtitle k-text-center">
582
+ {{messageFor('columnsSubtitle')}}
583
+ </div>
584
+ </div>
585
+ <div *ngIf="adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-actionsheet-actions">
586
+ <button
587
+ kendoButton
588
+ icon="x"
589
+ [svgIcon]="xIcon"
590
+ fillMode="flat"
591
+ size="large"
592
+ [title]="messageFor('adaptiveCloseButtonTitle')"
593
+ (click)="close()">
594
+ </button>
595
+ </div>
596
+ <div *ngIf="adaptiveGridService.viewType === 'sortToolbarTool'" class="k-actionsheet-actions">
597
+ <button
598
+ kendoButton
599
+ icon="check"
600
+ [svgIcon]="checkIcon"
601
+ fillMode="flat"
602
+ size="large"
603
+ themeColor="primary"
604
+ [title]="messageFor('adaptiveCloseButtonTitle')"
605
+ (click)="actionSheet.toggle(false)">
606
+ </button>
607
+ </div>
608
+ </div>
609
+ </ng-template>
610
+
611
+ <ng-template #actionSheetFooterTemplate>
612
+ <button
613
+ #resetButton
614
+ kendoButton
615
+ size="large"
616
+ fillMode="solid"
617
+ [svgIcon]="arrowRotateCcwIcon"
618
+ icon="arrow-rotate-ccw"
619
+ type="button"
620
+ [kendoEventsOutsideAngular]="{click: cancelChanges,
621
+ 'keydown.enter': cancelChanges,
622
+ 'keydown.space': cancelChanges,
623
+ 'keydown.tab': onTab
624
+ }"
625
+ [scope]="this">
626
+ {{ messageFor('columnsReset') }}
627
+ </button>
628
+ <button
629
+ #applyButton
630
+ kendoButton
631
+ type="button"
632
+ [svgIcon]="checkIcon"
633
+ icon="check"
634
+ size="large"
635
+ fillMode="solid"
636
+ themeColor="primary"
637
+ [kendoEventsOutsideAngular]="{click: applyChanges,
638
+ 'keydown.enter': applyChanges,
639
+ 'keydown.space': applyChanges
640
+ }"
641
+ [scope]="this">
642
+ {{ messageFor('columnsApply') }}
643
+ </button>
644
+ </ng-template>
645
+
646
+ <ng-template #filterFooterButtons>
647
+ <button
648
+ kendoButton
649
+ size="large"
650
+ fillMode="solid"
651
+ (click)="adaptiveGridService.resetFilter()">
652
+ {{messageFor('filterClearButton')}}
653
+ </button>
654
+ <button
655
+ kendoButton
656
+ size="large"
657
+ fillMode="solid"
658
+ themeColor="primary"
659
+ [disabled]="adaptiveGridService.filterMenuContainer.disabled"
660
+ (click)="adaptiveGridService.submitFilter()">
661
+ {{messageFor('filterFilterButton')}}
662
+ </button>
663
+ </ng-template>
664
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "component", type: ActionSheetViewComponent, selector: "kendo-actionsheet-view", inputs: ["title", "subtitle", "titleId"] }, { kind: "component", type: FilterToolbarToolComponent, selector: "kendo-filter-toolbar-tool", outputs: ["close"] }, { kind: "component", type: ButtonDirective, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: ActionSheetHeaderTemplateDirective, selector: "[kendoActionSheetHeaderTemplate]" }, { kind: "directive", type: ActionSheetContentTemplateDirective, selector: "[kendoActionSheetContentTemplate]" }, { kind: "directive", type: ActionSheetFooterTemplateDirective, selector: "[kendoActionSheetFooterTemplate]" }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { kind: "component", type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: FormComponent, selector: "kendo-grid-external-form", inputs: ["controls", "formSettings", "formGroup", "actionButtons"], outputs: ["formSubmit"] }] });
665
+ }
666
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveRendererComponent, decorators: [{
667
+ type: Component,
668
+ args: [{
669
+ selector: 'kendo-grid-adaptive-renderer',
670
+ template: `
671
+ <kendo-actionsheet
672
+ [cssClass]="{
673
+ 'k-adaptive-actionsheet': true,
674
+ 'k-actionsheet-fullscreen': adaptiveService.size === 'small',
675
+ 'k-actionsheet-bottom': adaptiveService.size === 'medium'
676
+ }"
677
+ [cssStyle]="{
678
+ height: adaptiveService.size === 'small' ? '100vh' : '60vh'
679
+ }"
680
+ [overlayClickClose]="true"
681
+ (collapse)="adaptiveGridService.reset()">
682
+
683
+ <!-- sortToolbarTool view -->
684
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'sortToolbarTool'">
685
+ <ng-template kendoActionSheetHeaderTemplate>
686
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
687
+ </ng-container>
688
+ </ng-template>
689
+ <ng-template kendoActionSheetContentTemplate>
690
+ <div class="k-column-menu k-column-menu-lg">
691
+ <div class="k-columnmenu-item-wrapper">
692
+ <kendo-grid-columnmenu-item *ngFor="let column of columns"
693
+ [column]="getColumnComponent(column)"
694
+ [text]="column.title || getColumnComponent(column).field"
695
+ (itemClick)="sortBy(column)">
696
+ </kendo-grid-columnmenu-item>
697
+ </div>
698
+ </div>
699
+ </ng-template>
700
+ <ng-template kendoActionSheetFooterTemplate>
701
+ <button
702
+ kendoButton
703
+ size="large"
704
+ fillMode="solid"
705
+ icon="x"
706
+ [svgIcon]="xIcon"
707
+ (click)="clearSorting()">
708
+ {{messageFor('sortClearButton')}}
709
+ </button>
710
+ <button
711
+ kendoButton
712
+ size="large"
713
+ fillMode="solid"
714
+ icon="check"
715
+ [svgIcon]="checkIcon"
716
+ themeColor="primary"
717
+ (click)="actionSheet.toggle(false)">
718
+ {{messageFor('sortDoneButton')}}
719
+ </button>
720
+ </ng-template>
721
+ </kendo-actionsheet-view>
722
+
723
+ <!-- columnChooserToolbarTool view -->
724
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'columnChooserToolbarTool'">
725
+ <ng-template kendoActionSheetHeaderTemplate>
726
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
727
+ </ng-container>
728
+ </ng-template>
729
+ <ng-template kendoActionSheetContentTemplate>
730
+ <kendo-grid-columnlist
731
+ #columnList
732
+ [columns]="adaptiveGridService.columns"
733
+ [ariaLabel]="messageFor('columns')"
734
+ [isLast]="true"
735
+ [showActions]="false"
736
+ [applyText]="messageFor('columnsApply')"
737
+ [resetText]="messageFor('columnsReset')"
738
+ [autoSync]="false"
739
+ [actionsClass]="actionsClass"
740
+ [allowHideAll]="false"
741
+ >
742
+ </kendo-grid-columnlist>
743
+ </ng-template>
744
+ <ng-template kendoActionSheetFooterTemplate>
745
+ <ng-container [ngTemplateOutlet]="actionSheetFooterTemplate">
746
+ </ng-container>
747
+ </ng-template>
748
+ </kendo-actionsheet-view>
749
+
750
+ <!-- filterToolbarTool first view -->
751
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'filterToolbarTool'"
752
+ [kendoEventsOutsideAngular]="{transitionend: onAnimationEnd}"
753
+ [scope]="this">
754
+ <ng-template kendoActionSheetHeaderTemplate>
755
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
756
+ </ng-container>
757
+ </ng-template>
758
+ <ng-template kendoActionSheetContentTemplate>
759
+ <div class="k-column-menu k-column-menu-lg">
760
+ <kendo-filter-toolbar-tool></kendo-filter-toolbar-tool>
761
+ </div>
762
+ </ng-template>
763
+ <ng-template kendoActionSheetFooterTemplate>
764
+ <button kendoButton
765
+ icon="filter-clear"
766
+ [svgIcon]="filterClearIcon"
767
+ size="large"
768
+ (click)="clearFilters()">
769
+ {{messageFor('filterClearAllButton')}}
770
+ </button>
771
+ </ng-template>
772
+ </kendo-actionsheet-view>
773
+
774
+ <!-- filterToolbarTool second view -->
775
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'filterToolbarTool'">
776
+ <ng-template kendoActionSheetHeaderTemplate>
777
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
778
+ </ng-container>
779
+ </ng-template>
780
+ <ng-template kendoActionSheetContentTemplate>
781
+ <ng-container #filterToolbarToolTemplate></ng-container>
782
+ </ng-template>
783
+ <ng-template kendoActionSheetFooterTemplate>
784
+ <ng-container [ngTemplateOutlet]="filterFooterButtons">
785
+ </ng-container>
786
+ </ng-template>
787
+ </kendo-actionsheet-view>
788
+
789
+ <!-- filterMenu view -->
790
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'filterMenu'">
791
+ <ng-template kendoActionSheetHeaderTemplate >
792
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
793
+ </ng-container>
794
+ </ng-template>
795
+ <ng-template kendoActionSheetContentTemplate>
796
+ <kendo-grid-filter-menu-container
797
+ #filterMenuContainer
798
+ [column]="adaptiveGridService.column"
799
+ [filter]="ctx.grid.filter"
800
+ (close)="close()"
801
+ (keydown.enter)="$event.stopImmediatePropagation()">
802
+ </kendo-grid-filter-menu-container>
803
+ </ng-template>
804
+ <ng-template kendoActionSheetFooterTemplate>
805
+ <ng-container [ngTemplateOutlet]="filterFooterButtons">
806
+ </ng-container>
807
+ </ng-template>
808
+ </kendo-actionsheet-view>
809
+
810
+ <!-- columnMenu first view -->
811
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'columnMenu'"
812
+ [kendoEventsOutsideAngular]="{transitionend: onAnimationEnd}"
813
+ [scope]="this">
814
+ <ng-template kendoActionSheetHeaderTemplate>
815
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
816
+ </ng-container>
817
+ </ng-template>
818
+ <ng-template kendoActionSheetContentTemplate>
819
+ <div class="k-column-menu k-column-menu-lg">
820
+ <kendo-grid-columnmenu-container>
821
+ <kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="adaptiveGridService.columnMenuService">
822
+ </kendo-grid-columnmenu-sort>
823
+ <kendo-grid-columnmenu-lock #lockItem *ngIf="hasLock && !hasPosition" [kendoGridColumnMenuItem]="lockItem" [service]="adaptiveGridService.columnMenuService">
824
+ </kendo-grid-columnmenu-lock>
825
+ <kendo-grid-columnmenu-stick #stickItem *ngIf="hasStick && !hasPosition" [kendoGridColumnMenuItem]="stickItem" [service]="adaptiveGridService.columnMenuService">
826
+ </kendo-grid-columnmenu-stick>
827
+ <kendo-grid-columnmenu-position
828
+ #positionItem
829
+ *ngIf="hasPosition"
830
+ [showLock]="hasLock"
831
+ [showStick]="hasStick"
832
+ [kendoGridColumnMenuItem]="positionItem"
833
+ [service]="adaptiveGridService.columnMenuService"
834
+ [expanded]="false"
835
+ (collapse)="navigateToPositionView()">
836
+ </kendo-grid-columnmenu-position>
837
+ <span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasLock || hasStick || adaptiveGridService.column.sortable" class="k-separator"></span>
838
+ <kendo-grid-columnmenu-chooser
839
+ #chooserItem
840
+ *ngIf="hasColumnChooser"
841
+ [kendoGridColumnMenuItem]="chooserItem"
842
+ [service]="adaptiveGridService.columnMenuService"
843
+ [expanded]="false"
844
+ (collapse)="navigateToColumnsView()">
845
+ </kendo-grid-columnmenu-chooser>
846
+ <kendo-grid-columnmenu-autosize-column
847
+ #autoSizeColumnItem
848
+ *ngIf="hasAutoSizeColumn"
849
+ [service]="adaptiveGridService.columnMenuService"
850
+ [kendoGridColumnMenuItem]="autoSizeColumnItem"
851
+ [column]="adaptiveGridService.column"
852
+ >
853
+ </kendo-grid-columnmenu-autosize-column>
854
+
855
+ <kendo-grid-columnmenu-autosize-all-columns
856
+ #autoSizeAllColumnsItem
857
+ *ngIf="hasAutoSizeAllColumns"
858
+ [service]="adaptiveGridService.columnMenuService"
859
+ [kendoGridColumnMenuItem]="autoSizeAllColumnsItem"
860
+ >
861
+ </kendo-grid-columnmenu-autosize-all-columns>
862
+ <span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="adaptiveGridService.column.filterable" class="k-separator"></span>
863
+ <kendo-grid-columnmenu-filter
864
+ #filterItem
865
+ *ngIf="hasFilter"
866
+ [kendoGridColumnMenuItem]="filterItem"
867
+ [service]="adaptiveGridService.columnMenuService"
868
+ [expanded]="false"
869
+ (collapse)="navigateToFilterView()">
870
+ </kendo-grid-columnmenu-filter>
871
+ </kendo-grid-columnmenu-container>
872
+ </div>
873
+ </ng-template>
874
+ </kendo-actionsheet-view>
875
+
876
+ <!-- columnMenu second view -->
877
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'columnMenu'">
878
+ <ng-template kendoActionSheetHeaderTemplate>
879
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
880
+ </ng-container>
881
+ </ng-template>
882
+
883
+ <ng-template kendoActionSheetContentTemplate>
884
+ <kendo-grid-columnlist
885
+ *ngIf="adaptiveGridService.secondaryView === 'columnChooser'"
886
+ #columnList
887
+ [columns]="adaptiveGridService.columns"
888
+ [ariaLabel]="messageFor('columns')"
889
+ [isLast]="true"
890
+ [showActions]="false"
891
+ [applyText]="messageFor('columnsApply')"
892
+ [resetText]="messageFor('columnsReset')"
893
+ [autoSync]="false"
894
+ [actionsClass]="actionsClass"
895
+ [allowHideAll]="false"
896
+ >
897
+ </kendo-grid-columnlist>
898
+ <kendo-grid-filter-menu-container
899
+ *ngIf="adaptiveGridService.secondaryView === 'columnFilter'"
900
+ [column]="adaptiveGridService.column"
901
+ [filter]="ctx.grid.filter"
902
+ (close)="close()"
903
+ [kendoEventsOutsideAngular]="{'keydown.escape': close}"
904
+ [scope]="this">
905
+ </kendo-grid-filter-menu-container>
906
+ <kendo-grid-columnmenu-lock
907
+ *ngIf="adaptiveGridService.secondaryView === 'columnPosition' && hasLock"
908
+ [service]="adaptiveGridService.columnMenuService">
909
+ </kendo-grid-columnmenu-lock>
910
+ <kendo-grid-columnmenu-stick
911
+ *ngIf="adaptiveGridService.secondaryView === 'columnPosition' && hasStick"
912
+ [service]="adaptiveGridService.columnMenuService">
913
+ </kendo-grid-columnmenu-stick>
914
+ </ng-template>
915
+ <ng-template *ngIf="adaptiveGridService.secondaryView === 'columnChooser'" kendoActionSheetFooterTemplate>
916
+ <ng-container [ngTemplateOutlet]="actionSheetFooterTemplate">
917
+ </ng-container>
918
+ </ng-template>
919
+
920
+ <ng-template *ngIf="adaptiveGridService.secondaryView === 'columnFilter'" kendoActionSheetFooterTemplate>
921
+ <ng-container [ngTemplateOutlet]="filterFooterButtons">
922
+ </ng-container>
923
+ </ng-template>
924
+ </kendo-actionsheet-view>
925
+
926
+ <!-- external editing view -->
927
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'externalEditing'">
928
+ <ng-template kendoActionSheetHeaderTemplate>
929
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
930
+ </ng-container>
931
+ </ng-template>
932
+
933
+ <ng-template kendoActionSheetContentTemplate>
934
+ <kendo-grid-external-form
935
+ [controls]="externalEditingSettings.formControls"
936
+ [formGroup]="externalEditingSettings.formGroup"
937
+ [formSettings]="externalEditingSettings.formSettings"
938
+ [actionButtons]="false">
939
+ </kendo-grid-external-form>
940
+ </ng-template>
941
+
942
+ <ng-template kendoActionSheetFooterTemplate>
943
+ <button kendoButton
944
+ size="large"
945
+ icon="cancel"
946
+ [svgIcon]="cancelIcon"
947
+ (click)="actionSheet.toggle(false)">
948
+ {{messageFor('externalEditingCancelText')}}
949
+ </button>
950
+ <button kendoButton
951
+ themeColor="primary"
952
+ size="large"
953
+ icon="save"
954
+ [svgIcon]="saveIcon"
955
+ (click)="saveEditing()"
956
+ [disabled]="!externalEditingSettings.formGroup.valid">
957
+ {{messageFor('externalEditingSaveText')}}
958
+ </button>
959
+ </ng-template>
960
+ </kendo-actionsheet-view>
961
+ </kendo-actionsheet>
962
+
963
+ <ng-template #actionSheetHeaderTemplate>
964
+ <div class="k-actionsheet-titlebar-group">
965
+ <div *ngIf="adaptiveGridService.secondaryView" class="k-actionsheet-actions">
966
+ <button
967
+ kendoButton
968
+ icon="chevron-left"
969
+ [svgIcon]="chevronLeft"
970
+ fillMode="flat"
971
+ size="large"
972
+ [title]="messageFor('adaptiveBackButtonTitle')"
973
+ (click)="prevView()">
974
+ </button>
975
+ </div>
976
+ <div class="k-actionsheet-title">
977
+ <div *ngIf="hasTitle" class="k-text-center">
978
+ {{actionSheetTitle}}
979
+ </div>
980
+ <div *ngIf="hasSubtitle"
981
+ class="k-actionsheet-subtitle k-text-center">
982
+ {{messageFor('columnsSubtitle')}}
983
+ </div>
984
+ </div>
985
+ <div *ngIf="adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-actionsheet-actions">
986
+ <button
987
+ kendoButton
988
+ icon="x"
989
+ [svgIcon]="xIcon"
990
+ fillMode="flat"
991
+ size="large"
992
+ [title]="messageFor('adaptiveCloseButtonTitle')"
993
+ (click)="close()">
994
+ </button>
995
+ </div>
996
+ <div *ngIf="adaptiveGridService.viewType === 'sortToolbarTool'" class="k-actionsheet-actions">
997
+ <button
998
+ kendoButton
999
+ icon="check"
1000
+ [svgIcon]="checkIcon"
1001
+ fillMode="flat"
1002
+ size="large"
1003
+ themeColor="primary"
1004
+ [title]="messageFor('adaptiveCloseButtonTitle')"
1005
+ (click)="actionSheet.toggle(false)">
1006
+ </button>
1007
+ </div>
1008
+ </div>
1009
+ </ng-template>
1010
+
1011
+ <ng-template #actionSheetFooterTemplate>
1012
+ <button
1013
+ #resetButton
1014
+ kendoButton
1015
+ size="large"
1016
+ fillMode="solid"
1017
+ [svgIcon]="arrowRotateCcwIcon"
1018
+ icon="arrow-rotate-ccw"
1019
+ type="button"
1020
+ [kendoEventsOutsideAngular]="{click: cancelChanges,
1021
+ 'keydown.enter': cancelChanges,
1022
+ 'keydown.space': cancelChanges,
1023
+ 'keydown.tab': onTab
1024
+ }"
1025
+ [scope]="this">
1026
+ {{ messageFor('columnsReset') }}
1027
+ </button>
1028
+ <button
1029
+ #applyButton
1030
+ kendoButton
1031
+ type="button"
1032
+ [svgIcon]="checkIcon"
1033
+ icon="check"
1034
+ size="large"
1035
+ fillMode="solid"
1036
+ themeColor="primary"
1037
+ [kendoEventsOutsideAngular]="{click: applyChanges,
1038
+ 'keydown.enter': applyChanges,
1039
+ 'keydown.space': applyChanges
1040
+ }"
1041
+ [scope]="this">
1042
+ {{ messageFor('columnsApply') }}
1043
+ </button>
1044
+ </ng-template>
1045
+
1046
+ <ng-template #filterFooterButtons>
1047
+ <button
1048
+ kendoButton
1049
+ size="large"
1050
+ fillMode="solid"
1051
+ (click)="adaptiveGridService.resetFilter()">
1052
+ {{messageFor('filterClearButton')}}
1053
+ </button>
1054
+ <button
1055
+ kendoButton
1056
+ size="large"
1057
+ fillMode="solid"
1058
+ themeColor="primary"
1059
+ [disabled]="adaptiveGridService.filterMenuContainer.disabled"
1060
+ (click)="adaptiveGridService.submitFilter()">
1061
+ {{messageFor('filterFilterButton')}}
1062
+ </button>
1063
+ </ng-template>
1064
+ `,
1065
+ standalone: true,
1066
+ imports: [
1067
+ NgIf,
1068
+ NgFor,
1069
+ NgTemplateOutlet,
1070
+ ActionSheetComponent,
1071
+ ActionSheetViewComponent,
1072
+ FilterToolbarToolComponent,
1073
+ ButtonDirective,
1074
+ ActionSheetHeaderTemplateDirective,
1075
+ ActionSheetContentTemplateDirective,
1076
+ ActionSheetFooterTemplateDirective,
1077
+ ButtonDirective,
1078
+ ColumnMenuContainerComponent,
1079
+ ColumnMenuFilterComponent,
1080
+ ColumnMenuSortComponent,
1081
+ ColumnMenuLockComponent,
1082
+ ColumnMenuStickComponent,
1083
+ ColumnMenuPositionComponent,
1084
+ ColumnMenuChooserComponent,
1085
+ ColumnMenuAutoSizeColumnComponent,
1086
+ ColumnMenuAutoSizeAllColumnsComponent,
1087
+ ColumnMenuItemComponent,
1088
+ ColumnMenuItemDirective,
1089
+ ColumnListComponent,
1090
+ FilterMenuContainerComponent,
1091
+ ColumnMenuLockComponent,
1092
+ EventsOutsideAngularDirective,
1093
+ FormComponent
1094
+ ]
1095
+ }]
1096
+ }], ctorParameters: function () { return [{ type: i1.ColumnMenuService }, { type: i2.AdaptiveGridService }, { type: i3.FilterService }, { type: i4.ContextService }, { type: i5.AdaptiveService }, { type: i6.SortService }, { type: i7.ColumnInfoService }]; }, propDecorators: { columnList: [{
1097
+ type: ViewChild,
1098
+ args: ['columnList', { static: false }]
1099
+ }], filterToolbarToolTemplate: [{
1100
+ type: ViewChild,
1101
+ args: ['filterToolbarToolTemplate', { read: ViewContainerRef, static: false }]
1102
+ }], filterMenuContainer: [{
1103
+ type: ViewChild,
1104
+ args: ['filterMenuContainer']
1105
+ }], actionSheet: [{
1106
+ type: ViewChild,
1107
+ args: [ActionSheetComponent]
1108
+ }] } });