@progress/kendo-angular-grid 19.0.0-develop.17 → 19.0.0-develop.18

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 (70) hide show
  1. package/adaptiveness/adaptive-mode.d.ts +12 -0
  2. package/adaptiveness/adaptive-renderer.component.d.ts +84 -0
  3. package/column-menu/column-chooser.component.d.ts +4 -0
  4. package/column-menu/column-list.component.d.ts +9 -3
  5. package/column-menu/column-menu-item.component.d.ts +38 -2
  6. package/column-menu/column-menu-item.directive.d.ts +5 -2
  7. package/column-menu/column-menu.component.d.ts +4 -2
  8. package/common/adaptiveness.service.d.ts +50 -0
  9. package/common/single-popup.service.d.ts +3 -1
  10. package/directives.d.ts +1 -1
  11. package/editing-directives/external-editing.directive.d.ts +3 -1
  12. package/esm2022/adaptiveness/adaptive-mode.mjs +5 -0
  13. package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1106 -0
  14. package/esm2022/column-menu/column-chooser.component.mjs +13 -11
  15. package/esm2022/column-menu/column-list.component.mjs +42 -8
  16. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +1 -1
  17. package/esm2022/column-menu/column-menu-autosize.component.mjs +1 -1
  18. package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -1
  19. package/esm2022/column-menu/column-menu-container.component.mjs +1 -1
  20. package/esm2022/column-menu/column-menu-filter.component.mjs +1 -1
  21. package/esm2022/column-menu/column-menu-item.component.mjs +106 -11
  22. package/esm2022/column-menu/column-menu-item.directive.mjs +14 -5
  23. package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
  24. package/esm2022/column-menu/column-menu-position.component.mjs +1 -1
  25. package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
  26. package/esm2022/column-menu/column-menu-stick.component.mjs +1 -1
  27. package/esm2022/column-menu/column-menu.component.mjs +60 -41
  28. package/esm2022/common/adaptiveness.service.mjs +72 -0
  29. package/esm2022/common/single-popup.service.mjs +9 -3
  30. package/esm2022/directives.mjs +1 -1
  31. package/esm2022/editing-directives/external-editing.directive.mjs +28 -14
  32. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +2 -2
  33. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +2 -0
  34. package/esm2022/filtering/menu/date-filter-menu.component.mjs +4 -0
  35. package/esm2022/filtering/menu/filter-menu-container.component.mjs +21 -10
  36. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +24 -4
  37. package/esm2022/filtering/menu/filter-menu.component.mjs +44 -29
  38. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +4 -0
  39. package/esm2022/filtering/menu/string-filter-menu.component.mjs +4 -0
  40. package/esm2022/grid.component.mjs +143 -28
  41. package/esm2022/grid.module.mjs +1 -1
  42. package/esm2022/index.mjs +1 -1
  43. package/esm2022/localization/messages.mjs +62 -2
  44. package/esm2022/package-metadata.mjs +2 -2
  45. package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +203 -0
  46. package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +39 -26
  47. package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +19 -7
  48. package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +26 -4
  49. package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +21 -8
  50. package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +16 -3
  51. package/esm2022/utils.mjs +0 -13
  52. package/fesm2022/progress-kendo-angular-grid.mjs +2960 -1360
  53. package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
  54. package/filtering/menu/filter-menu-container.component.d.ts +14 -4
  55. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +8 -3
  56. package/filtering/menu/filter-menu.component.d.ts +6 -3
  57. package/grid.component.d.ts +30 -3
  58. package/grid.module.d.ts +1 -1
  59. package/index.d.ts +1 -1
  60. package/localization/messages.d.ts +42 -2
  61. package/package.json +21 -20
  62. package/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.d.ts +13 -3
  63. package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +3 -1
  64. package/rendering/toolbar/tools/filter-tool-wrapper.component.d.ts +5 -5
  65. package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +4 -1
  66. package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +3 -1
  67. package/rendering/toolbar/tools/sort-toolbar-tool.component.d.ts +4 -0
  68. package/schematics/ngAdd/index.js +4 -4
  69. package/utils.d.ts +0 -4
  70. package/esm2022/column-menu/column-chooser-tool.directive.mjs +0 -160
@@ -0,0 +1,1106 @@
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
+ {{messageFor('externalEditingSaveText')}}
557
+ </button>
558
+ </ng-template>
559
+ </kendo-actionsheet-view>
560
+ </kendo-actionsheet>
561
+
562
+ <ng-template #actionSheetHeaderTemplate>
563
+ <div class="k-actionsheet-titlebar-group">
564
+ <div *ngIf="adaptiveGridService.secondaryView" class="k-actionsheet-actions">
565
+ <button
566
+ kendoButton
567
+ icon="chevron-left"
568
+ [svgIcon]="chevronLeft"
569
+ fillMode="flat"
570
+ size="large"
571
+ [title]="messageFor('adaptiveBackButtonTitle')"
572
+ (click)="prevView()">
573
+ </button>
574
+ </div>
575
+ <div class="k-actionsheet-title">
576
+ <div *ngIf="hasTitle" class="k-text-center">
577
+ {{actionSheetTitle}}
578
+ </div>
579
+ <div *ngIf="hasSubtitle"
580
+ class="k-actionsheet-subtitle k-text-center">
581
+ {{messageFor('columnsSubtitle')}}
582
+ </div>
583
+ </div>
584
+ <div *ngIf="adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-actionsheet-actions">
585
+ <button
586
+ kendoButton
587
+ icon="x"
588
+ [svgIcon]="xIcon"
589
+ fillMode="flat"
590
+ size="large"
591
+ [title]="messageFor('adaptiveCloseButtonTitle')"
592
+ (click)="close()">
593
+ </button>
594
+ </div>
595
+ <div *ngIf="adaptiveGridService.viewType === 'sortToolbarTool'" class="k-actionsheet-actions">
596
+ <button
597
+ kendoButton
598
+ icon="check"
599
+ [svgIcon]="checkIcon"
600
+ fillMode="flat"
601
+ size="large"
602
+ themeColor="primary"
603
+ [title]="messageFor('adaptiveCloseButtonTitle')"
604
+ (click)="actionSheet.toggle(false)">
605
+ </button>
606
+ </div>
607
+ </div>
608
+ </ng-template>
609
+
610
+ <ng-template #actionSheetFooterTemplate>
611
+ <button
612
+ #resetButton
613
+ kendoButton
614
+ size="large"
615
+ fillMode="solid"
616
+ [svgIcon]="arrowRotateCcwIcon"
617
+ icon="arrow-rotate-ccw"
618
+ type="button"
619
+ [kendoEventsOutsideAngular]="{click: cancelChanges,
620
+ 'keydown.enter': cancelChanges,
621
+ 'keydown.space': cancelChanges,
622
+ 'keydown.tab': onTab
623
+ }"
624
+ [scope]="this">
625
+ {{ messageFor('columnsReset') }}
626
+ </button>
627
+ <button
628
+ #applyButton
629
+ kendoButton
630
+ type="button"
631
+ [svgIcon]="checkIcon"
632
+ icon="check"
633
+ size="large"
634
+ fillMode="solid"
635
+ themeColor="primary"
636
+ [kendoEventsOutsideAngular]="{click: applyChanges,
637
+ 'keydown.enter': applyChanges,
638
+ 'keydown.space': applyChanges
639
+ }"
640
+ [scope]="this">
641
+ {{ messageFor('columnsApply') }}
642
+ </button>
643
+ </ng-template>
644
+
645
+ <ng-template #filterFooterButtons>
646
+ <button
647
+ kendoButton
648
+ size="large"
649
+ fillMode="solid"
650
+ (click)="adaptiveGridService.resetFilter()">
651
+ {{messageFor('filterClearButton')}}
652
+ </button>
653
+ <button
654
+ kendoButton
655
+ size="large"
656
+ fillMode="solid"
657
+ themeColor="primary"
658
+ [disabled]="adaptiveGridService.filterMenuContainer.disabled"
659
+ (click)="adaptiveGridService.submitFilter()">
660
+ {{messageFor('filterFilterButton')}}
661
+ </button>
662
+ </ng-template>
663
+ `, 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", "text", "selected", "disabled", "expanded", "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"] }] });
664
+ }
665
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveRendererComponent, decorators: [{
666
+ type: Component,
667
+ args: [{
668
+ selector: 'kendo-grid-adaptive-renderer',
669
+ template: `
670
+ <kendo-actionsheet
671
+ [cssClass]="{
672
+ 'k-adaptive-actionsheet': true,
673
+ 'k-actionsheet-fullscreen': adaptiveService.size === 'small',
674
+ 'k-actionsheet-bottom': adaptiveService.size === 'medium'
675
+ }"
676
+ [cssStyle]="{
677
+ height: adaptiveService.size === 'small' ? '100vh' : '60vh'
678
+ }"
679
+ [overlayClickClose]="true"
680
+ (collapse)="adaptiveGridService.reset()">
681
+
682
+ <!-- sortToolbarTool view -->
683
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'sortToolbarTool'">
684
+ <ng-template kendoActionSheetHeaderTemplate>
685
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
686
+ </ng-container>
687
+ </ng-template>
688
+ <ng-template kendoActionSheetContentTemplate>
689
+ <div class="k-column-menu k-column-menu-lg">
690
+ <div class="k-columnmenu-item-wrapper">
691
+ <kendo-grid-columnmenu-item *ngFor="let column of columns"
692
+ [column]="getColumnComponent(column)"
693
+ [text]="column.title || getColumnComponent(column).field"
694
+ (itemClick)="sortBy(column)">
695
+ </kendo-grid-columnmenu-item>
696
+ </div>
697
+ </div>
698
+ </ng-template>
699
+ <ng-template kendoActionSheetFooterTemplate>
700
+ <button
701
+ kendoButton
702
+ size="large"
703
+ fillMode="solid"
704
+ icon="x"
705
+ [svgIcon]="xIcon"
706
+ (click)="clearSorting()">
707
+ {{messageFor('sortClearButton')}}
708
+ </button>
709
+ <button
710
+ kendoButton
711
+ size="large"
712
+ fillMode="solid"
713
+ icon="check"
714
+ [svgIcon]="checkIcon"
715
+ themeColor="primary"
716
+ (click)="actionSheet.toggle(false)">
717
+ {{messageFor('sortDoneButton')}}
718
+ </button>
719
+ </ng-template>
720
+ </kendo-actionsheet-view>
721
+
722
+ <!-- columnChooserToolbarTool view -->
723
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'columnChooserToolbarTool'">
724
+ <ng-template kendoActionSheetHeaderTemplate>
725
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
726
+ </ng-container>
727
+ </ng-template>
728
+ <ng-template kendoActionSheetContentTemplate>
729
+ <kendo-grid-columnlist
730
+ #columnList
731
+ [columns]="adaptiveGridService.columns"
732
+ [ariaLabel]="messageFor('columns')"
733
+ [isLast]="true"
734
+ [showActions]="false"
735
+ [applyText]="messageFor('columnsApply')"
736
+ [resetText]="messageFor('columnsReset')"
737
+ [autoSync]="false"
738
+ [actionsClass]="actionsClass"
739
+ [allowHideAll]="false"
740
+ >
741
+ </kendo-grid-columnlist>
742
+ </ng-template>
743
+ <ng-template kendoActionSheetFooterTemplate>
744
+ <ng-container [ngTemplateOutlet]="actionSheetFooterTemplate">
745
+ </ng-container>
746
+ </ng-template>
747
+ </kendo-actionsheet-view>
748
+
749
+ <!-- filterToolbarTool first view -->
750
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'filterToolbarTool'"
751
+ [kendoEventsOutsideAngular]="{transitionend: onAnimationEnd}"
752
+ [scope]="this">
753
+ <ng-template kendoActionSheetHeaderTemplate>
754
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
755
+ </ng-container>
756
+ </ng-template>
757
+ <ng-template kendoActionSheetContentTemplate>
758
+ <div class="k-column-menu k-column-menu-lg">
759
+ <kendo-filter-toolbar-tool></kendo-filter-toolbar-tool>
760
+ </div>
761
+ </ng-template>
762
+ <ng-template kendoActionSheetFooterTemplate>
763
+ <button kendoButton
764
+ icon="filter-clear"
765
+ [svgIcon]="filterClearIcon"
766
+ size="large"
767
+ (click)="clearFilters()">
768
+ {{messageFor('filterClearAllButton')}}
769
+ </button>
770
+ </ng-template>
771
+ </kendo-actionsheet-view>
772
+
773
+ <!-- filterToolbarTool second view -->
774
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'filterToolbarTool'">
775
+ <ng-template kendoActionSheetHeaderTemplate>
776
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
777
+ </ng-container>
778
+ </ng-template>
779
+ <ng-template kendoActionSheetContentTemplate>
780
+ <ng-container #filterToolbarToolTemplate></ng-container>
781
+ </ng-template>
782
+ <ng-template kendoActionSheetFooterTemplate>
783
+ <ng-container [ngTemplateOutlet]="filterFooterButtons">
784
+ </ng-container>
785
+ </ng-template>
786
+ </kendo-actionsheet-view>
787
+
788
+ <!-- filterMenu view -->
789
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'filterMenu'">
790
+ <ng-template kendoActionSheetHeaderTemplate >
791
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
792
+ </ng-container>
793
+ </ng-template>
794
+ <ng-template kendoActionSheetContentTemplate>
795
+ <kendo-grid-filter-menu-container
796
+ #filterMenuContainer
797
+ [column]="adaptiveGridService.column"
798
+ [filter]="ctx.grid.filter"
799
+ (close)="close()"
800
+ (keydown.enter)="$event.stopImmediatePropagation()">
801
+ </kendo-grid-filter-menu-container>
802
+ </ng-template>
803
+ <ng-template kendoActionSheetFooterTemplate>
804
+ <ng-container [ngTemplateOutlet]="filterFooterButtons">
805
+ </ng-container>
806
+ </ng-template>
807
+ </kendo-actionsheet-view>
808
+
809
+ <!-- columnMenu first view -->
810
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'columnMenu'"
811
+ [kendoEventsOutsideAngular]="{transitionend: onAnimationEnd}"
812
+ [scope]="this">
813
+ <ng-template kendoActionSheetHeaderTemplate>
814
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
815
+ </ng-container>
816
+ </ng-template>
817
+ <ng-template kendoActionSheetContentTemplate>
818
+ <div class="k-column-menu k-column-menu-lg">
819
+ <kendo-grid-columnmenu-container>
820
+ <kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="adaptiveGridService.columnMenuService">
821
+ </kendo-grid-columnmenu-sort>
822
+ <kendo-grid-columnmenu-lock #lockItem *ngIf="hasLock && !hasPosition" [kendoGridColumnMenuItem]="lockItem" [service]="adaptiveGridService.columnMenuService">
823
+ </kendo-grid-columnmenu-lock>
824
+ <kendo-grid-columnmenu-stick #stickItem *ngIf="hasStick && !hasPosition" [kendoGridColumnMenuItem]="stickItem" [service]="adaptiveGridService.columnMenuService">
825
+ </kendo-grid-columnmenu-stick>
826
+ <kendo-grid-columnmenu-position
827
+ #positionItem
828
+ *ngIf="hasPosition"
829
+ [showLock]="hasLock"
830
+ [showStick]="hasStick"
831
+ [kendoGridColumnMenuItem]="positionItem"
832
+ [service]="adaptiveGridService.columnMenuService"
833
+ [expanded]="false"
834
+ (collapse)="navigateToPositionView()">
835
+ </kendo-grid-columnmenu-position>
836
+ <span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasLock || hasStick || adaptiveGridService.column.sortable" class="k-separator"></span>
837
+ <kendo-grid-columnmenu-chooser
838
+ #chooserItem
839
+ *ngIf="hasColumnChooser"
840
+ [kendoGridColumnMenuItem]="chooserItem"
841
+ [service]="adaptiveGridService.columnMenuService"
842
+ [expanded]="false"
843
+ (collapse)="navigateToColumnsView()">
844
+ </kendo-grid-columnmenu-chooser>
845
+ <kendo-grid-columnmenu-autosize-column
846
+ #autoSizeColumnItem
847
+ *ngIf="hasAutoSizeColumn"
848
+ [service]="adaptiveGridService.columnMenuService"
849
+ [kendoGridColumnMenuItem]="autoSizeColumnItem"
850
+ [column]="adaptiveGridService.column"
851
+ >
852
+ </kendo-grid-columnmenu-autosize-column>
853
+
854
+ <kendo-grid-columnmenu-autosize-all-columns
855
+ #autoSizeAllColumnsItem
856
+ *ngIf="hasAutoSizeAllColumns"
857
+ [service]="adaptiveGridService.columnMenuService"
858
+ [kendoGridColumnMenuItem]="autoSizeAllColumnsItem"
859
+ >
860
+ </kendo-grid-columnmenu-autosize-all-columns>
861
+ <span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="adaptiveGridService.column.filterable" class="k-separator"></span>
862
+ <kendo-grid-columnmenu-filter
863
+ #filterItem
864
+ *ngIf="hasFilter"
865
+ [kendoGridColumnMenuItem]="filterItem"
866
+ [service]="adaptiveGridService.columnMenuService"
867
+ [expanded]="false"
868
+ (collapse)="navigateToFilterView()">
869
+ </kendo-grid-columnmenu-filter>
870
+ </kendo-grid-columnmenu-container>
871
+ </div>
872
+ </ng-template>
873
+ </kendo-actionsheet-view>
874
+
875
+ <!-- columnMenu second view -->
876
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'columnMenu'">
877
+ <ng-template kendoActionSheetHeaderTemplate>
878
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
879
+ </ng-container>
880
+ </ng-template>
881
+
882
+ <ng-template kendoActionSheetContentTemplate>
883
+ <kendo-grid-columnlist
884
+ *ngIf="adaptiveGridService.secondaryView === 'columnChooser'"
885
+ #columnList
886
+ [columns]="adaptiveGridService.columns"
887
+ [ariaLabel]="messageFor('columns')"
888
+ [isLast]="true"
889
+ [showActions]="false"
890
+ [applyText]="messageFor('columnsApply')"
891
+ [resetText]="messageFor('columnsReset')"
892
+ [autoSync]="false"
893
+ [actionsClass]="actionsClass"
894
+ [allowHideAll]="false"
895
+ >
896
+ </kendo-grid-columnlist>
897
+ <kendo-grid-filter-menu-container
898
+ *ngIf="adaptiveGridService.secondaryView === 'columnFilter'"
899
+ [column]="adaptiveGridService.column"
900
+ [filter]="ctx.grid.filter"
901
+ (close)="close()"
902
+ [kendoEventsOutsideAngular]="{'keydown.escape': close}"
903
+ [scope]="this">
904
+ </kendo-grid-filter-menu-container>
905
+ <kendo-grid-columnmenu-lock
906
+ *ngIf="adaptiveGridService.secondaryView === 'columnPosition' && hasLock"
907
+ [service]="adaptiveGridService.columnMenuService">
908
+ </kendo-grid-columnmenu-lock>
909
+ <kendo-grid-columnmenu-stick
910
+ *ngIf="adaptiveGridService.secondaryView === 'columnPosition' && hasStick"
911
+ [service]="adaptiveGridService.columnMenuService">
912
+ </kendo-grid-columnmenu-stick>
913
+ </ng-template>
914
+ <ng-template *ngIf="adaptiveGridService.secondaryView === 'columnChooser'" kendoActionSheetFooterTemplate>
915
+ <ng-container [ngTemplateOutlet]="actionSheetFooterTemplate">
916
+ </ng-container>
917
+ </ng-template>
918
+
919
+ <ng-template *ngIf="adaptiveGridService.secondaryView === 'columnFilter'" kendoActionSheetFooterTemplate>
920
+ <ng-container [ngTemplateOutlet]="filterFooterButtons">
921
+ </ng-container>
922
+ </ng-template>
923
+ </kendo-actionsheet-view>
924
+
925
+ <!-- external editing view -->
926
+ <kendo-actionsheet-view *ngIf="adaptiveGridService.viewType === 'externalEditing'">
927
+ <ng-template kendoActionSheetHeaderTemplate>
928
+ <ng-container [ngTemplateOutlet]="actionSheetHeaderTemplate">
929
+ </ng-container>
930
+ </ng-template>
931
+
932
+ <ng-template kendoActionSheetContentTemplate>
933
+ <kendo-grid-external-form
934
+ [controls]="externalEditingSettings.formControls"
935
+ [formGroup]="externalEditingSettings.formGroup"
936
+ [formSettings]="externalEditingSettings.formSettings"
937
+ [actionButtons]="false">
938
+ </kendo-grid-external-form>
939
+ </ng-template>
940
+
941
+ <ng-template kendoActionSheetFooterTemplate>
942
+ <button kendoButton
943
+ size="large"
944
+ icon="cancel"
945
+ [svgIcon]="cancelIcon"
946
+ (click)="actionSheet.toggle(false)">
947
+ {{messageFor('externalEditingCancelText')}}
948
+ </button>
949
+ <button kendoButton
950
+ themeColor="primary"
951
+ size="large"
952
+ icon="save"
953
+ [svgIcon]="saveIcon"
954
+ (click)="saveEditing()">
955
+ {{messageFor('externalEditingSaveText')}}
956
+ </button>
957
+ </ng-template>
958
+ </kendo-actionsheet-view>
959
+ </kendo-actionsheet>
960
+
961
+ <ng-template #actionSheetHeaderTemplate>
962
+ <div class="k-actionsheet-titlebar-group">
963
+ <div *ngIf="adaptiveGridService.secondaryView" class="k-actionsheet-actions">
964
+ <button
965
+ kendoButton
966
+ icon="chevron-left"
967
+ [svgIcon]="chevronLeft"
968
+ fillMode="flat"
969
+ size="large"
970
+ [title]="messageFor('adaptiveBackButtonTitle')"
971
+ (click)="prevView()">
972
+ </button>
973
+ </div>
974
+ <div class="k-actionsheet-title">
975
+ <div *ngIf="hasTitle" class="k-text-center">
976
+ {{actionSheetTitle}}
977
+ </div>
978
+ <div *ngIf="hasSubtitle"
979
+ class="k-actionsheet-subtitle k-text-center">
980
+ {{messageFor('columnsSubtitle')}}
981
+ </div>
982
+ </div>
983
+ <div *ngIf="adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-actionsheet-actions">
984
+ <button
985
+ kendoButton
986
+ icon="x"
987
+ [svgIcon]="xIcon"
988
+ fillMode="flat"
989
+ size="large"
990
+ [title]="messageFor('adaptiveCloseButtonTitle')"
991
+ (click)="close()">
992
+ </button>
993
+ </div>
994
+ <div *ngIf="adaptiveGridService.viewType === 'sortToolbarTool'" class="k-actionsheet-actions">
995
+ <button
996
+ kendoButton
997
+ icon="check"
998
+ [svgIcon]="checkIcon"
999
+ fillMode="flat"
1000
+ size="large"
1001
+ themeColor="primary"
1002
+ [title]="messageFor('adaptiveCloseButtonTitle')"
1003
+ (click)="actionSheet.toggle(false)">
1004
+ </button>
1005
+ </div>
1006
+ </div>
1007
+ </ng-template>
1008
+
1009
+ <ng-template #actionSheetFooterTemplate>
1010
+ <button
1011
+ #resetButton
1012
+ kendoButton
1013
+ size="large"
1014
+ fillMode="solid"
1015
+ [svgIcon]="arrowRotateCcwIcon"
1016
+ icon="arrow-rotate-ccw"
1017
+ type="button"
1018
+ [kendoEventsOutsideAngular]="{click: cancelChanges,
1019
+ 'keydown.enter': cancelChanges,
1020
+ 'keydown.space': cancelChanges,
1021
+ 'keydown.tab': onTab
1022
+ }"
1023
+ [scope]="this">
1024
+ {{ messageFor('columnsReset') }}
1025
+ </button>
1026
+ <button
1027
+ #applyButton
1028
+ kendoButton
1029
+ type="button"
1030
+ [svgIcon]="checkIcon"
1031
+ icon="check"
1032
+ size="large"
1033
+ fillMode="solid"
1034
+ themeColor="primary"
1035
+ [kendoEventsOutsideAngular]="{click: applyChanges,
1036
+ 'keydown.enter': applyChanges,
1037
+ 'keydown.space': applyChanges
1038
+ }"
1039
+ [scope]="this">
1040
+ {{ messageFor('columnsApply') }}
1041
+ </button>
1042
+ </ng-template>
1043
+
1044
+ <ng-template #filterFooterButtons>
1045
+ <button
1046
+ kendoButton
1047
+ size="large"
1048
+ fillMode="solid"
1049
+ (click)="adaptiveGridService.resetFilter()">
1050
+ {{messageFor('filterClearButton')}}
1051
+ </button>
1052
+ <button
1053
+ kendoButton
1054
+ size="large"
1055
+ fillMode="solid"
1056
+ themeColor="primary"
1057
+ [disabled]="adaptiveGridService.filterMenuContainer.disabled"
1058
+ (click)="adaptiveGridService.submitFilter()">
1059
+ {{messageFor('filterFilterButton')}}
1060
+ </button>
1061
+ </ng-template>
1062
+ `,
1063
+ standalone: true,
1064
+ imports: [
1065
+ NgIf,
1066
+ NgFor,
1067
+ NgTemplateOutlet,
1068
+ ActionSheetComponent,
1069
+ ActionSheetViewComponent,
1070
+ FilterToolbarToolComponent,
1071
+ ButtonDirective,
1072
+ ActionSheetHeaderTemplateDirective,
1073
+ ActionSheetContentTemplateDirective,
1074
+ ActionSheetFooterTemplateDirective,
1075
+ ButtonDirective,
1076
+ ColumnMenuContainerComponent,
1077
+ ColumnMenuFilterComponent,
1078
+ ColumnMenuSortComponent,
1079
+ ColumnMenuLockComponent,
1080
+ ColumnMenuStickComponent,
1081
+ ColumnMenuPositionComponent,
1082
+ ColumnMenuChooserComponent,
1083
+ ColumnMenuAutoSizeColumnComponent,
1084
+ ColumnMenuAutoSizeAllColumnsComponent,
1085
+ ColumnMenuItemComponent,
1086
+ ColumnMenuItemDirective,
1087
+ ColumnListComponent,
1088
+ FilterMenuContainerComponent,
1089
+ ColumnMenuLockComponent,
1090
+ EventsOutsideAngularDirective,
1091
+ FormComponent
1092
+ ]
1093
+ }]
1094
+ }], 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: [{
1095
+ type: ViewChild,
1096
+ args: ['columnList', { static: false }]
1097
+ }], filterToolbarToolTemplate: [{
1098
+ type: ViewChild,
1099
+ args: ['filterToolbarToolTemplate', { read: ViewContainerRef, static: false }]
1100
+ }], filterMenuContainer: [{
1101
+ type: ViewChild,
1102
+ args: ['filterMenuContainer']
1103
+ }], actionSheet: [{
1104
+ type: ViewChild,
1105
+ args: [ActionSheetComponent]
1106
+ }] } });