@progress/kendo-angular-grid 19.0.0-develop.17 → 19.0.0-develop.19
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.
- package/adaptiveness/adaptive-mode.d.ts +12 -0
- package/adaptiveness/adaptive-renderer.component.d.ts +84 -0
- package/column-menu/column-chooser.component.d.ts +4 -0
- package/column-menu/column-list.component.d.ts +9 -3
- package/column-menu/column-menu-item.component.d.ts +38 -2
- package/column-menu/column-menu-item.directive.d.ts +5 -2
- package/column-menu/column-menu.component.d.ts +4 -2
- package/common/adaptiveness.service.d.ts +50 -0
- package/common/single-popup.service.d.ts +3 -1
- package/directives.d.ts +1 -1
- package/editing-directives/external-editing.directive.d.ts +3 -1
- package/esm2022/adaptiveness/adaptive-mode.mjs +5 -0
- package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1106 -0
- package/esm2022/column-menu/column-chooser.component.mjs +13 -11
- package/esm2022/column-menu/column-list.component.mjs +42 -8
- package/esm2022/column-menu/column-menu-autosize-all.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-autosize.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-container.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-filter.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-item.component.mjs +106 -11
- package/esm2022/column-menu/column-menu-item.directive.mjs +14 -5
- package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-position.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-stick.component.mjs +1 -1
- package/esm2022/column-menu/column-menu.component.mjs +68 -44
- package/esm2022/common/adaptiveness.service.mjs +72 -0
- package/esm2022/common/single-popup.service.mjs +9 -3
- package/esm2022/directives.mjs +1 -1
- package/esm2022/editing-directives/external-editing.directive.mjs +28 -14
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +2 -2
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +2 -0
- package/esm2022/filtering/menu/date-filter-menu.component.mjs +4 -0
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +21 -10
- package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +24 -4
- package/esm2022/filtering/menu/filter-menu.component.mjs +44 -29
- package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +4 -0
- package/esm2022/filtering/menu/string-filter-menu.component.mjs +4 -0
- package/esm2022/grid.component.mjs +143 -28
- package/esm2022/grid.module.mjs +1 -1
- package/esm2022/index.mjs +1 -1
- package/esm2022/localization/messages.mjs +62 -2
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.mjs +50 -9
- package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +39 -26
- package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +19 -7
- package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +26 -4
- package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +21 -8
- package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +16 -3
- package/esm2022/utils.mjs +0 -13
- package/fesm2022/progress-kendo-angular-grid.mjs +2947 -1344
- package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
- package/filtering/menu/filter-menu-container.component.d.ts +14 -4
- package/filtering/menu/filter-menu-input-wrapper.component.d.ts +8 -3
- package/filtering/menu/filter-menu.component.d.ts +6 -3
- package/grid.component.d.ts +30 -3
- package/grid.module.d.ts +1 -1
- package/index.d.ts +1 -1
- package/localization/messages.d.ts +42 -2
- package/package.json +21 -20
- package/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.d.ts +13 -3
- package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +3 -1
- package/rendering/toolbar/tools/filter-tool-wrapper.component.d.ts +5 -5
- package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +4 -1
- package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +3 -1
- package/rendering/toolbar/tools/sort-toolbar-tool.component.d.ts +4 -0
- package/schematics/ngAdd/index.js +4 -4
- package/utils.d.ts +0 -4
|
@@ -70,6 +70,10 @@ export class ColumnChooserComponent {
|
|
|
70
70
|
ngOnDestroy() {
|
|
71
71
|
this.close();
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* @hidden
|
|
75
|
+
*/
|
|
76
|
+
messageFor = token => this.ctx.localization.get(token);
|
|
73
77
|
/**
|
|
74
78
|
* @hidden
|
|
75
79
|
*/
|
|
@@ -154,28 +158,27 @@ export class ColumnChooserComponent {
|
|
|
154
158
|
type="button"
|
|
155
159
|
(click)="toggle(anchor, template)"
|
|
156
160
|
fillMode="flat"
|
|
157
|
-
[attr.title]="
|
|
161
|
+
[attr.title]="messageFor('columns')"
|
|
158
162
|
icon="columns"
|
|
159
163
|
[svgIcon]="columnsIcon"
|
|
160
164
|
[attr.aria-haspopup]="'dialog'"
|
|
161
165
|
[attr.aria-expanded]="!!(popupRef)"
|
|
162
166
|
[attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
|
|
163
167
|
<ng-template #template>
|
|
164
|
-
<span class='k-column-chooser-title'>{{ ctx.localization.get('columns') }}</span>
|
|
165
168
|
<kendo-grid-columnlist
|
|
166
169
|
#columnList
|
|
167
170
|
[columns]="columns"
|
|
168
|
-
[ariaLabel]="
|
|
171
|
+
[ariaLabel]="messageFor('columns')"
|
|
169
172
|
[isLast]="true"
|
|
170
|
-
[applyText]="
|
|
171
|
-
[resetText]="
|
|
173
|
+
[applyText]="messageFor('columnsApply')"
|
|
174
|
+
[resetText]="messageFor('columnsReset')"
|
|
172
175
|
[autoSync]="autoSync"
|
|
173
176
|
[allowHideAll]="allowHideAll"
|
|
174
177
|
(apply)="onApply($event)"
|
|
175
178
|
(columnChange)="onChange($event)">
|
|
176
179
|
</kendo-grid-columnlist>
|
|
177
180
|
</ng-template>
|
|
178
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, 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: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
181
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, 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: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
179
182
|
}
|
|
180
183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChooserComponent, decorators: [{
|
|
181
184
|
type: Component,
|
|
@@ -187,21 +190,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
187
190
|
type="button"
|
|
188
191
|
(click)="toggle(anchor, template)"
|
|
189
192
|
fillMode="flat"
|
|
190
|
-
[attr.title]="
|
|
193
|
+
[attr.title]="messageFor('columns')"
|
|
191
194
|
icon="columns"
|
|
192
195
|
[svgIcon]="columnsIcon"
|
|
193
196
|
[attr.aria-haspopup]="'dialog'"
|
|
194
197
|
[attr.aria-expanded]="!!(popupRef)"
|
|
195
198
|
[attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
|
|
196
199
|
<ng-template #template>
|
|
197
|
-
<span class='k-column-chooser-title'>{{ ctx.localization.get('columns') }}</span>
|
|
198
200
|
<kendo-grid-columnlist
|
|
199
201
|
#columnList
|
|
200
202
|
[columns]="columns"
|
|
201
|
-
[ariaLabel]="
|
|
203
|
+
[ariaLabel]="messageFor('columns')"
|
|
202
204
|
[isLast]="true"
|
|
203
|
-
[applyText]="
|
|
204
|
-
[resetText]="
|
|
205
|
+
[applyText]="messageFor('columnsApply')"
|
|
206
|
+
[resetText]="messageFor('columnsReset')"
|
|
205
207
|
[autoSync]="autoSync"
|
|
206
208
|
[allowHideAll]="allowHideAll"
|
|
207
209
|
(apply)="onApply($event)"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Component, HostBinding, Input, ElementRef, NgZone, Renderer2, Output, EventEmitter, ViewChild, ViewChildren, QueryList } from '@angular/core';
|
|
5
|
+
import { Component, HostBinding, Input, ElementRef, NgZone, Renderer2, Output, EventEmitter, ViewChild, ViewChildren, QueryList, Optional } from '@angular/core';
|
|
6
6
|
import { ColumnMenuService } from './column-menu.service';
|
|
7
7
|
import { ColumnListKeyboardNavigation } from './column-list-kb-nav.service';
|
|
8
8
|
import { ColumnMenuChooserItemCheckedDirective } from './column-chooser-item-checked.directive';
|
|
@@ -13,8 +13,12 @@ import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
|
|
|
13
13
|
import { take } from 'rxjs/operators';
|
|
14
14
|
import { arrowRotateCcwIcon, checkIcon } from '@progress/kendo-svg-icons';
|
|
15
15
|
import { ButtonDirective } from '@progress/kendo-angular-buttons';
|
|
16
|
+
import { ContextService } from '../common/provider.service';
|
|
17
|
+
import { AdaptiveGridService } from '../common/adaptiveness.service';
|
|
16
18
|
import * as i0 from "@angular/core";
|
|
17
19
|
import * as i1 from "./column-list-kb-nav.service";
|
|
20
|
+
import * as i2 from "../common/adaptiveness.service";
|
|
21
|
+
import * as i3 from "../common/provider.service";
|
|
18
22
|
/**
|
|
19
23
|
* @hidden
|
|
20
24
|
*/
|
|
@@ -23,9 +27,12 @@ export class ColumnListComponent {
|
|
|
23
27
|
ngZone;
|
|
24
28
|
renderer;
|
|
25
29
|
listNavigationService;
|
|
30
|
+
adaptiveGridService;
|
|
31
|
+
ctx;
|
|
26
32
|
checkIcon = checkIcon;
|
|
27
33
|
arrowRotateCcwIcon = arrowRotateCcwIcon;
|
|
28
34
|
className = true;
|
|
35
|
+
listSize = true;
|
|
29
36
|
reset = new EventEmitter();
|
|
30
37
|
apply = new EventEmitter();
|
|
31
38
|
columnChange = new EventEmitter();
|
|
@@ -37,6 +44,7 @@ export class ColumnListComponent {
|
|
|
37
44
|
get columns() {
|
|
38
45
|
return this._columns;
|
|
39
46
|
}
|
|
47
|
+
showActions = true;
|
|
40
48
|
autoSync = true;
|
|
41
49
|
ariaLabel;
|
|
42
50
|
allowHideAll = false;
|
|
@@ -58,11 +66,13 @@ export class ColumnListComponent {
|
|
|
58
66
|
_columns;
|
|
59
67
|
allColumns;
|
|
60
68
|
domSubscriptions = new Subscription();
|
|
61
|
-
constructor(element, ngZone, renderer, listNavigationService) {
|
|
69
|
+
constructor(element, ngZone, renderer, listNavigationService, adaptiveGridService, ctx) {
|
|
62
70
|
this.element = element;
|
|
63
71
|
this.ngZone = ngZone;
|
|
64
72
|
this.renderer = renderer;
|
|
65
73
|
this.listNavigationService = listNavigationService;
|
|
74
|
+
this.adaptiveGridService = adaptiveGridService;
|
|
75
|
+
this.ctx = ctx;
|
|
66
76
|
}
|
|
67
77
|
ngOnInit() {
|
|
68
78
|
if (!this.element) {
|
|
@@ -81,9 +91,16 @@ export class ColumnListComponent {
|
|
|
81
91
|
ngAfterViewInit() {
|
|
82
92
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
83
93
|
this.listNavigationService.items = this.options.toArray();
|
|
84
|
-
this.
|
|
94
|
+
if (!this.ctx) {
|
|
95
|
+
this.listNavigationService.toggle(0, true);
|
|
96
|
+
}
|
|
85
97
|
this.updateDisabled();
|
|
86
98
|
});
|
|
99
|
+
if (this.ctx?.grid?.isActionSheetExpanded) {
|
|
100
|
+
this.domSubscriptions.add(this.adaptiveGridService.animationEnd.subscribe(() => {
|
|
101
|
+
this.listNavigationService.toggle(0, true);
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
87
104
|
}
|
|
88
105
|
ngOnChanges(changes) {
|
|
89
106
|
if (!this.service) {
|
|
@@ -251,8 +268,8 @@ export class ColumnListComponent {
|
|
|
251
268
|
}
|
|
252
269
|
}
|
|
253
270
|
};
|
|
254
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnListComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.ColumnListKeyboardNavigation }], target: i0.ɵɵFactoryTarget.Component });
|
|
255
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnListComponent, isStandalone: true, selector: "kendo-grid-columnlist", inputs: { columns: "columns", autoSync: "autoSync", ariaLabel: "ariaLabel", allowHideAll: "allowHideAll", applyText: "applyText", resetText: "resetText", actionsClass: "actionsClass", isLast: "isLast", isExpanded: "isExpanded", service: "service" }, outputs: { reset: "reset", apply: "apply", columnChange: "columnChange" }, host: { properties: { "class.k-column-list-wrapper": "this.className" } }, providers: [ColumnListKeyboardNavigation], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }, { propertyName: "applyButton", first: true, predicate: ["applyButton"], descendants: true }, { propertyName: "options", predicate: ColumnMenuChooserItemCheckedDirective, descendants: true }, { propertyName: "checkboxes", predicate: CheckBoxComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
271
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnListComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.ColumnListKeyboardNavigation }, { token: i2.AdaptiveGridService, optional: true }, { token: i3.ContextService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
272
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnListComponent, isStandalone: true, selector: "kendo-grid-columnlist", inputs: { columns: "columns", showActions: "showActions", autoSync: "autoSync", ariaLabel: "ariaLabel", allowHideAll: "allowHideAll", applyText: "applyText", resetText: "resetText", actionsClass: "actionsClass", isLast: "isLast", isExpanded: "isExpanded", service: "service" }, outputs: { reset: "reset", apply: "apply", columnChange: "columnChange" }, host: { properties: { "class.k-column-list-wrapper": "this.className", "class.k-column-list-md": "this.listSize" } }, providers: [ColumnListKeyboardNavigation], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }, { propertyName: "applyButton", first: true, predicate: ["applyButton"], descendants: true }, { propertyName: "options", predicate: ColumnMenuChooserItemCheckedDirective, descendants: true }, { propertyName: "checkboxes", predicate: CheckBoxComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
256
273
|
<div
|
|
257
274
|
class="k-column-list"
|
|
258
275
|
role="listbox"
|
|
@@ -272,11 +289,13 @@ export class ColumnListComponent {
|
|
|
272
289
|
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
273
290
|
</label>
|
|
274
291
|
</div>
|
|
275
|
-
<div [ngClass]="actionsClass" *ngIf="!autoSync">
|
|
292
|
+
<div [ngClass]="actionsClass" *ngIf="!autoSync && showActions">
|
|
276
293
|
<button
|
|
277
294
|
#applyButton
|
|
278
295
|
kendoButton
|
|
279
296
|
type="button"
|
|
297
|
+
icon="check"
|
|
298
|
+
[svgIcon]="checkIcon"
|
|
280
299
|
themeColor="primary"
|
|
281
300
|
(click)="applyChanges()"
|
|
282
301
|
(keydown.enter)="$event.preventDefault(); $event.stopPropagation(); applyChanges();"
|
|
@@ -285,6 +304,8 @@ export class ColumnListComponent {
|
|
|
285
304
|
#resetButton
|
|
286
305
|
kendoButton
|
|
287
306
|
type="button"
|
|
307
|
+
icon="reset"
|
|
308
|
+
[svgIcon]="arrowRotateCcwIcon"
|
|
288
309
|
(keydown.tab)="onTab($event)"
|
|
289
310
|
(click)="cancelChanges()"
|
|
290
311
|
(keydown.enter)="$event.preventDefault(); $event.stopPropagation(); cancelChanges();"
|
|
@@ -317,11 +338,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
317
338
|
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
318
339
|
</label>
|
|
319
340
|
</div>
|
|
320
|
-
<div [ngClass]="actionsClass" *ngIf="!autoSync">
|
|
341
|
+
<div [ngClass]="actionsClass" *ngIf="!autoSync && showActions">
|
|
321
342
|
<button
|
|
322
343
|
#applyButton
|
|
323
344
|
kendoButton
|
|
324
345
|
type="button"
|
|
346
|
+
icon="check"
|
|
347
|
+
[svgIcon]="checkIcon"
|
|
325
348
|
themeColor="primary"
|
|
326
349
|
(click)="applyChanges()"
|
|
327
350
|
(keydown.enter)="$event.preventDefault(); $event.stopPropagation(); applyChanges();"
|
|
@@ -330,6 +353,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
330
353
|
#resetButton
|
|
331
354
|
kendoButton
|
|
332
355
|
type="button"
|
|
356
|
+
icon="reset"
|
|
357
|
+
[svgIcon]="arrowRotateCcwIcon"
|
|
333
358
|
(keydown.tab)="onTab($event)"
|
|
334
359
|
(click)="cancelChanges()"
|
|
335
360
|
(keydown.enter)="$event.preventDefault(); $event.stopPropagation(); cancelChanges();"
|
|
@@ -339,9 +364,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
339
364
|
standalone: true,
|
|
340
365
|
imports: [NgFor, ColumnMenuChooserItemCheckedDirective, NgIf, NgClass, CheckBoxComponent, ButtonDirective]
|
|
341
366
|
}]
|
|
342
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.ColumnListKeyboardNavigation }
|
|
367
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.ColumnListKeyboardNavigation }, { type: i2.AdaptiveGridService, decorators: [{
|
|
368
|
+
type: Optional
|
|
369
|
+
}] }, { type: i3.ContextService, decorators: [{
|
|
370
|
+
type: Optional
|
|
371
|
+
}] }]; }, propDecorators: { className: [{
|
|
343
372
|
type: HostBinding,
|
|
344
373
|
args: ["class.k-column-list-wrapper"]
|
|
374
|
+
}], listSize: [{
|
|
375
|
+
type: HostBinding,
|
|
376
|
+
args: ["class.k-column-list-md"]
|
|
345
377
|
}], reset: [{
|
|
346
378
|
type: Output
|
|
347
379
|
}], apply: [{
|
|
@@ -350,6 +382,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
350
382
|
type: Output
|
|
351
383
|
}], columns: [{
|
|
352
384
|
type: Input
|
|
385
|
+
}], showActions: [{
|
|
386
|
+
type: Input
|
|
353
387
|
}], autoSync: [{
|
|
354
388
|
type: Input
|
|
355
389
|
}], ariaLabel: [{
|
|
@@ -58,7 +58,7 @@ export class ColumnMenuAutoSizeAllColumnsComponent extends ColumnMenuItemBase {
|
|
|
58
58
|
[svgIcon]="displayInlineFlexIcon"
|
|
59
59
|
(itemClick)="autoSizeAllColumns()"
|
|
60
60
|
></kendo-grid-columnmenu-item>
|
|
61
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
61
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
62
62
|
}
|
|
63
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuAutoSizeAllColumnsComponent, decorators: [{
|
|
64
64
|
type: Component,
|
|
@@ -64,7 +64,7 @@ export class ColumnMenuAutoSizeColumnComponent extends ColumnMenuItemBase {
|
|
|
64
64
|
[svgIcon]="maxWidthIcon"
|
|
65
65
|
(itemClick)="autoSizeColumn()"
|
|
66
66
|
></kendo-grid-columnmenu-item>
|
|
67
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
67
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
68
68
|
}
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuAutoSizeColumnComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
@@ -118,7 +118,7 @@ export class ColumnMenuChooserComponent extends ColumnMenuItemBase {
|
|
|
118
118
|
</kendo-grid-columnlist>
|
|
119
119
|
</ng-template>
|
|
120
120
|
</kendo-grid-columnmenu-item>
|
|
121
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
121
|
+
`, isInline: true, dependencies: [{ 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: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
122
122
|
}
|
|
123
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuChooserComponent, decorators: [{
|
|
124
124
|
type: Component,
|
|
@@ -33,7 +33,7 @@ export class ColumnMenuContainerComponent {
|
|
|
33
33
|
else {
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
this.ngZone.onStable.pipe(take(1)).subscribe(() => this.service.menuTabbingService.firstFocusable
|
|
36
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => this.service.menuTabbingService.firstFocusable?.focus());
|
|
37
37
|
}
|
|
38
38
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuContainerComponent, deps: [{ token: i1.ColumnMenuService }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
39
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuContainerComponent, isStandalone: true, selector: "kendo-grid-columnmenu-container", queries: [{ propertyName: "columnMenuItems", predicate: ColumnMenuItemDirective, descendants: true }], ngImport: i0, template: `
|
|
@@ -97,7 +97,7 @@ export class ColumnMenuFilterComponent extends ColumnMenuItemBase {
|
|
|
97
97
|
</kendo-grid-filter-menu-container>
|
|
98
98
|
</ng-template>
|
|
99
99
|
</kendo-grid-columnmenu-item>
|
|
100
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }] });
|
|
100
|
+
`, isInline: true, dependencies: [{ 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: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }] });
|
|
101
101
|
}
|
|
102
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuFilterComponent, decorators: [{
|
|
103
103
|
type: Component,
|
|
@@ -5,13 +5,21 @@
|
|
|
5
5
|
import { Component, Input, Output, EventEmitter, ContentChild, NgZone } from '@angular/core';
|
|
6
6
|
import { trigger, transition, style, animate, state } from '@angular/animations';
|
|
7
7
|
import { ColumnMenuItemContentTemplateDirective } from './column-menu-item-content-template.directive';
|
|
8
|
-
import { chevronDownIcon, chevronUpIcon } from '@progress/kendo-svg-icons';
|
|
8
|
+
import { chevronDownIcon, chevronRightIcon, chevronUpIcon, filterIcon, sortAscSmallIcon, sortDescSmallIcon } from '@progress/kendo-svg-icons';
|
|
9
9
|
import { guid } from '@progress/kendo-angular-common';
|
|
10
10
|
import { ColumnMenuService } from './column-menu.service';
|
|
11
11
|
import { NgIf, NgTemplateOutlet } from '@angular/common';
|
|
12
12
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
|
13
13
|
import { take } from 'rxjs/operators';
|
|
14
|
+
import { ContextService } from '../common/provider.service';
|
|
15
|
+
import { filtersByField } from '../filtering/base-filter-cell.component';
|
|
16
|
+
import { AdaptiveGridService } from '../common/adaptiveness.service';
|
|
17
|
+
import { ColumnComponent } from '../columns/column.component';
|
|
18
|
+
import { normalize } from '../columns/sort-settings';
|
|
19
|
+
import { isPresent } from '../utils';
|
|
14
20
|
import * as i0 from "@angular/core";
|
|
21
|
+
import * as i1 from "../common/provider.service";
|
|
22
|
+
import * as i2 from "../common/adaptiveness.service";
|
|
15
23
|
/**
|
|
16
24
|
* Represents an item that can be placed inside a
|
|
17
25
|
* [ColumnMenuTemplate]({% slug api_grid_columnmenutemplatedirective %}) directive.
|
|
@@ -27,6 +35,16 @@ import * as i0 from "@angular/core";
|
|
|
27
35
|
*/
|
|
28
36
|
export class ColumnMenuItemComponent {
|
|
29
37
|
ngZone;
|
|
38
|
+
ctx;
|
|
39
|
+
adaptiveGridService;
|
|
40
|
+
/**
|
|
41
|
+
* @hidden
|
|
42
|
+
*/
|
|
43
|
+
sortAscSmallIcon = sortAscSmallIcon;
|
|
44
|
+
/**
|
|
45
|
+
* @hidden
|
|
46
|
+
*/
|
|
47
|
+
sortDescSmallIcon = sortDescSmallIcon;
|
|
30
48
|
/**
|
|
31
49
|
* Fires when the item is clicked.
|
|
32
50
|
*/
|
|
@@ -69,19 +87,39 @@ export class ColumnMenuItemComponent {
|
|
|
69
87
|
* Required to include the item in the column menu keyboard navigation sequence.
|
|
70
88
|
*/
|
|
71
89
|
service;
|
|
90
|
+
/**
|
|
91
|
+
* @hidden
|
|
92
|
+
*/
|
|
93
|
+
column;
|
|
72
94
|
contentTemplate;
|
|
73
95
|
contentState = 'collapsed';
|
|
74
96
|
contentId;
|
|
75
97
|
chevronUpIcon = chevronUpIcon;
|
|
76
98
|
chevronDownIcon = chevronDownIcon;
|
|
99
|
+
chevronRightIcon = chevronRightIcon;
|
|
100
|
+
filterIcon = filterIcon;
|
|
101
|
+
/**
|
|
102
|
+
* @hidden
|
|
103
|
+
*/
|
|
104
|
+
get hasFilters() {
|
|
105
|
+
return filtersByField(this.ctx.grid.filter, this.column.field).length > 0;
|
|
106
|
+
}
|
|
77
107
|
get expandedIcon() {
|
|
108
|
+
if (this.ctx.grid.isActionSheetExpanded) {
|
|
109
|
+
return 'arrow-chevron-right';
|
|
110
|
+
}
|
|
78
111
|
return this.expanded ? 'arrow-chevron-up' : 'arrow-chevron-down';
|
|
79
112
|
}
|
|
80
113
|
get expandedSvgIcon() {
|
|
114
|
+
if (this.ctx.grid.isActionSheetExpanded) {
|
|
115
|
+
return this.chevronRightIcon;
|
|
116
|
+
}
|
|
81
117
|
return this.expanded ? this.chevronUpIcon : this.chevronDownIcon;
|
|
82
118
|
}
|
|
83
|
-
constructor(ngZone) {
|
|
119
|
+
constructor(ngZone, ctx, adaptiveGridService) {
|
|
84
120
|
this.ngZone = ngZone;
|
|
121
|
+
this.ctx = ctx;
|
|
122
|
+
this.adaptiveGridService = adaptiveGridService;
|
|
85
123
|
}
|
|
86
124
|
ngAfterViewInit() {
|
|
87
125
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
@@ -93,14 +131,41 @@ export class ColumnMenuItemComponent {
|
|
|
93
131
|
this.updateContentState();
|
|
94
132
|
}
|
|
95
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* @hidden
|
|
136
|
+
*/
|
|
137
|
+
sortDescriptor(field) {
|
|
138
|
+
return this.ctx.grid.sort.find(item => item.field === field) || { field };
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @hidden
|
|
142
|
+
*/
|
|
143
|
+
showSortNumbering(column) {
|
|
144
|
+
const { showIndexes } = normalize(this.ctx.grid.sortable);
|
|
145
|
+
return showIndexes
|
|
146
|
+
&& this.ctx.grid.sort
|
|
147
|
+
&& this.ctx.grid.sort.filter(({ dir }) => isPresent(dir)).length > 1
|
|
148
|
+
&& this.sortOrder(column.field) > 0;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* @hidden
|
|
152
|
+
*/
|
|
153
|
+
sortOrder(field) {
|
|
154
|
+
return this.ctx.grid.sort
|
|
155
|
+
.filter(({ dir }) => isPresent(dir))
|
|
156
|
+
.findIndex(x => x.field === field)
|
|
157
|
+
+ 1;
|
|
158
|
+
}
|
|
96
159
|
/**
|
|
97
160
|
* @hidden
|
|
98
161
|
*/
|
|
99
162
|
onClick(e) {
|
|
100
163
|
this.itemClick.emit(e);
|
|
101
164
|
if (this.contentTemplate) {
|
|
102
|
-
|
|
103
|
-
|
|
165
|
+
if (!this.ctx.grid.isActionSheetExpanded) {
|
|
166
|
+
this.expanded = !this.expanded;
|
|
167
|
+
this.updateContentState();
|
|
168
|
+
}
|
|
104
169
|
if (this.expanded) {
|
|
105
170
|
this.expand.emit();
|
|
106
171
|
}
|
|
@@ -112,8 +177,8 @@ export class ColumnMenuItemComponent {
|
|
|
112
177
|
updateContentState() {
|
|
113
178
|
this.contentState = this.expanded ? 'expanded' : 'collapsed';
|
|
114
179
|
}
|
|
115
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", text: "text", selected: "selected", disabled: "disabled", expanded: "expanded", service: "service" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ColumnMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
180
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemComponent, deps: [{ token: i0.NgZone }, { token: i1.ContextService }, { token: i2.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", text: "text", selected: "selected", disabled: "disabled", expanded: "expanded", service: "service", column: "column" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ColumnMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
117
182
|
<div *ngIf="contentTemplate; else content" class="k-expander">
|
|
118
183
|
<ng-container [ngTemplateOutlet]="content"></ng-container>
|
|
119
184
|
</div>
|
|
@@ -133,8 +198,22 @@ export class ColumnMenuItemComponent {
|
|
|
133
198
|
[name]="icon"
|
|
134
199
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
135
200
|
{{ text }}
|
|
136
|
-
<span *ngIf="
|
|
137
|
-
|
|
201
|
+
<span *ngIf="ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir"
|
|
202
|
+
class="k-columnmenu-indicators">
|
|
203
|
+
<kendo-icon-wrapper
|
|
204
|
+
[name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
|
|
205
|
+
[svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
|
|
206
|
+
</kendo-icon-wrapper>
|
|
207
|
+
<span *ngIf="showSortNumbering(column)" class="k-sort-index">{{sortOrder(column.field)}}</span>
|
|
208
|
+
</span>
|
|
209
|
+
<kendo-icon-wrapper
|
|
210
|
+
*ngIf="ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters"
|
|
211
|
+
class="k-columnmenu-indicators"
|
|
212
|
+
name="filter"
|
|
213
|
+
[svgIcon]="filterIcon">
|
|
214
|
+
</kendo-icon-wrapper>
|
|
215
|
+
<span *ngIf="contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-spacer"></span>
|
|
216
|
+
<span *ngIf="contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-expander-indicator">
|
|
138
217
|
<kendo-icon-wrapper
|
|
139
218
|
[name]="expandedIcon"
|
|
140
219
|
[svgIcon]="expandedSvgIcon">
|
|
@@ -217,8 +296,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
217
296
|
[name]="icon"
|
|
218
297
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
219
298
|
{{ text }}
|
|
220
|
-
<span *ngIf="
|
|
221
|
-
|
|
299
|
+
<span *ngIf="ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir"
|
|
300
|
+
class="k-columnmenu-indicators">
|
|
301
|
+
<kendo-icon-wrapper
|
|
302
|
+
[name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
|
|
303
|
+
[svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
|
|
304
|
+
</kendo-icon-wrapper>
|
|
305
|
+
<span *ngIf="showSortNumbering(column)" class="k-sort-index">{{sortOrder(column.field)}}</span>
|
|
306
|
+
</span>
|
|
307
|
+
<kendo-icon-wrapper
|
|
308
|
+
*ngIf="ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters"
|
|
309
|
+
class="k-columnmenu-indicators"
|
|
310
|
+
name="filter"
|
|
311
|
+
[svgIcon]="filterIcon">
|
|
312
|
+
</kendo-icon-wrapper>
|
|
313
|
+
<span *ngIf="contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-spacer"></span>
|
|
314
|
+
<span *ngIf="contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool'" class="k-expander-indicator">
|
|
222
315
|
<kendo-icon-wrapper
|
|
223
316
|
[name]="expandedIcon"
|
|
224
317
|
[svgIcon]="expandedSvgIcon">
|
|
@@ -234,7 +327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
234
327
|
standalone: true,
|
|
235
328
|
imports: [IconWrapperComponent, NgIf, NgTemplateOutlet]
|
|
236
329
|
}]
|
|
237
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { itemClick: [{
|
|
330
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.ContextService }, { type: i2.AdaptiveGridService }]; }, propDecorators: { itemClick: [{
|
|
238
331
|
type: Output
|
|
239
332
|
}], expand: [{
|
|
240
333
|
type: Output
|
|
@@ -254,6 +347,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
254
347
|
type: Input
|
|
255
348
|
}], service: [{
|
|
256
349
|
type: Input
|
|
350
|
+
}], column: [{
|
|
351
|
+
type: Input
|
|
257
352
|
}], contentTemplate: [{
|
|
258
353
|
type: ContentChild,
|
|
259
354
|
args: [ColumnMenuItemContentTemplateDirective]
|
|
@@ -2,17 +2,21 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Directive, ElementRef, Input, NgZone, Renderer2 } from '@angular/core';
|
|
5
|
+
import { ChangeDetectorRef, Directive, ElementRef, Input, NgZone, Renderer2 } from '@angular/core';
|
|
6
6
|
import { Subscription } from 'rxjs';
|
|
7
7
|
import { Keys } from '@progress/kendo-angular-common';
|
|
8
8
|
import { ColumnMenuPositionComponent } from './column-menu-position.component';
|
|
9
9
|
import { ColumnMenuChooserComponent } from './column-menu-chooser.component';
|
|
10
10
|
import { ColumnMenuFilterComponent } from './column-menu-filter.component';
|
|
11
|
+
import { ContextService } from '../common/provider.service';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "../common/provider.service";
|
|
12
14
|
export class ColumnMenuItemDirective {
|
|
13
15
|
hostElement;
|
|
14
16
|
renderer;
|
|
15
17
|
ngZone;
|
|
18
|
+
cdr;
|
|
19
|
+
ctx;
|
|
16
20
|
/**
|
|
17
21
|
* The reference to the Grid column menu item. Required to include the item in the built-in keyboard navigation.
|
|
18
22
|
*/
|
|
@@ -55,6 +59,9 @@ export class ColumnMenuItemDirective {
|
|
|
55
59
|
});
|
|
56
60
|
if (this.isExpandableItem()) {
|
|
57
61
|
this.menuItemComponent.isLast = true;
|
|
62
|
+
if (this.ctx.grid.isActionSheetExpanded) {
|
|
63
|
+
this.cdr.detectChanges();
|
|
64
|
+
}
|
|
58
65
|
}
|
|
59
66
|
}
|
|
60
67
|
this._isLast = value;
|
|
@@ -69,10 +76,12 @@ export class ColumnMenuItemDirective {
|
|
|
69
76
|
_isLast = false;
|
|
70
77
|
columnMenuItems;
|
|
71
78
|
subs = new Subscription();
|
|
72
|
-
constructor(hostElement, renderer, ngZone) {
|
|
79
|
+
constructor(hostElement, renderer, ngZone, cdr, ctx) {
|
|
73
80
|
this.hostElement = hostElement;
|
|
74
81
|
this.renderer = renderer;
|
|
75
82
|
this.ngZone = ngZone;
|
|
83
|
+
this.cdr = cdr;
|
|
84
|
+
this.ctx = ctx;
|
|
76
85
|
}
|
|
77
86
|
ngAfterViewInit() {
|
|
78
87
|
this.columnMenuItems = this.hostElement.nativeElement.querySelectorAll('.k-columnmenu-item');
|
|
@@ -80,7 +89,7 @@ export class ColumnMenuItemDirective {
|
|
|
80
89
|
if (this.menuItemComponent instanceof ColumnMenuFilterComponent) {
|
|
81
90
|
this.menuItemComponent.service.menuTabbingService.isColumnMenu = true;
|
|
82
91
|
}
|
|
83
|
-
this.menuItemComponent.service?.columnMenuContainer
|
|
92
|
+
this.menuItemComponent.service?.columnMenuContainer?.templateMenuItems.push(this);
|
|
84
93
|
}
|
|
85
94
|
ngOnDestroy() {
|
|
86
95
|
if (this.subs) {
|
|
@@ -112,7 +121,7 @@ export class ColumnMenuItemDirective {
|
|
|
112
121
|
this.menuItemComponent instanceof ColumnMenuChooserComponent ||
|
|
113
122
|
this.menuItemComponent instanceof ColumnMenuPositionComponent;
|
|
114
123
|
}
|
|
115
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
124
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.ContextService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
116
125
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuItemDirective, isStandalone: true, selector: "[kendoGridColumnMenuItem]", inputs: { menuItemComponent: ["kendoGridColumnMenuItem", "menuItemComponent"] }, ngImport: i0 });
|
|
117
126
|
}
|
|
118
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemDirective, decorators: [{
|
|
@@ -121,7 +130,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
121
130
|
selector: '[kendoGridColumnMenuItem]',
|
|
122
131
|
standalone: true
|
|
123
132
|
}]
|
|
124
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { menuItemComponent: [{
|
|
133
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.ContextService }]; }, propDecorators: { menuItemComponent: [{
|
|
125
134
|
type: Input,
|
|
126
135
|
args: ['kendoGridColumnMenuItem']
|
|
127
136
|
}] } });
|
|
@@ -89,7 +89,7 @@ export class ColumnMenuLockComponent extends ColumnMenuItemBase {
|
|
|
89
89
|
(itemClick)="toggleColumn()"
|
|
90
90
|
[disabled]="disabled">
|
|
91
91
|
</kendo-grid-columnmenu-item>
|
|
92
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
92
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
93
93
|
}
|
|
94
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuLockComponent, decorators: [{
|
|
95
95
|
type: Component,
|
|
@@ -138,7 +138,7 @@ export class ColumnMenuPositionComponent extends ColumnMenuItemBase {
|
|
|
138
138
|
</kendo-grid-columnmenu-stick>
|
|
139
139
|
</ng-template>
|
|
140
140
|
</kendo-grid-columnmenu-item>
|
|
141
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }] });
|
|
141
|
+
`, isInline: true, dependencies: [{ 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: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }] });
|
|
142
142
|
}
|
|
143
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuPositionComponent, decorators: [{
|
|
144
144
|
type: Component,
|
|
@@ -91,7 +91,7 @@ export class ColumnMenuSortComponent extends ColumnMenuItemBase {
|
|
|
91
91
|
(itemClick)="toggleSort('desc')"
|
|
92
92
|
[selected]="sortedDesc">
|
|
93
93
|
</kendo-grid-columnmenu-item>
|
|
94
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
94
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
95
95
|
}
|
|
96
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuSortComponent, decorators: [{
|
|
97
97
|
type: Component,
|
|
@@ -91,7 +91,7 @@ export class ColumnMenuStickComponent extends ColumnMenuItemBase {
|
|
|
91
91
|
(itemClick)="toggleColumn()"
|
|
92
92
|
[disabled]="disabled">
|
|
93
93
|
</kendo-grid-columnmenu-item>
|
|
94
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
94
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
95
95
|
}
|
|
96
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuStickComponent, decorators: [{
|
|
97
97
|
type: Component,
|