@progress/kendo-angular-treelist 18.2.1-develop.3 → 18.3.0-develop.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/column-menu/column-chooser-item-checked.directive.d.ts +21 -0
- package/column-menu/column-chooser.component.d.ts +14 -3
- package/column-menu/column-list-kb-nav.service.d.ts +22 -0
- package/column-menu/column-list.component.d.ts +20 -5
- package/column-menu/column-menu-autosize-all.component.d.ts +39 -0
- package/column-menu/column-menu-autosize.component.d.ts +43 -0
- package/column-menu/column-menu-chooser.component.d.ts +16 -4
- package/column-menu/column-menu-container.component.d.ts +21 -0
- package/column-menu/column-menu-expandable-item.interface.d.ts +14 -0
- package/column-menu/column-menu-filter.component.d.ts +16 -3
- package/column-menu/column-menu-item.component.d.ts +11 -3
- package/column-menu/column-menu-item.directive.d.ts +45 -0
- package/column-menu/column-menu-settings.interface.d.ts +11 -2
- package/column-menu/column-menu.component.d.ts +40 -15
- package/column-menu/column-menu.service.d.ts +14 -0
- package/column-menu/utils.d.ts +13 -0
- package/columns/sort-settings.d.ts +12 -0
- package/common/error-messages.d.ts +8 -0
- package/common/id.service.d.ts +3 -0
- package/common/provider.service.d.ts +3 -1
- package/esm2022/column-menu/column-chooser-item-checked.directive.mjs +45 -0
- package/esm2022/column-menu/column-chooser.component.mjs +69 -14
- package/esm2022/column-menu/column-list-kb-nav.service.mjs +40 -0
- package/esm2022/column-menu/column-list.component.mjs +172 -50
- package/esm2022/column-menu/column-menu-autosize-all.component.mjs +79 -0
- package/esm2022/column-menu/column-menu-autosize.component.mjs +87 -0
- package/esm2022/column-menu/column-menu-chooser.component.mjs +44 -12
- package/esm2022/column-menu/column-menu-container.component.mjs +58 -0
- package/esm2022/column-menu/column-menu-expandable-item.interface.mjs +5 -0
- package/esm2022/column-menu/column-menu-filter.component.mjs +58 -25
- package/esm2022/column-menu/column-menu-item-base.mjs +2 -1
- package/esm2022/column-menu/column-menu-item.component.mjs +34 -5
- package/esm2022/column-menu/column-menu-item.directive.mjs +125 -0
- package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
- package/esm2022/column-menu/column-menu.component.mjs +264 -67
- package/esm2022/column-menu/column-menu.service.mjs +18 -2
- package/esm2022/column-menu/utils.mjs +21 -1
- package/esm2022/common/error-messages.mjs +15 -0
- package/esm2022/common/id.service.mjs +9 -0
- package/esm2022/common/provider.service.mjs +7 -3
- package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +5 -2
- package/esm2022/filtering/cell/date-filter-cell.component.mjs +20 -3
- package/esm2022/filtering/cell/numeric-filter-cell.component.mjs +17 -3
- package/esm2022/filtering/filter-row.component.mjs +1 -1
- package/esm2022/filtering/filter.service.mjs +17 -3
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +40 -14
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +47 -17
- package/esm2022/filtering/menu/date-filter-menu.component.mjs +27 -7
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +83 -31
- package/esm2022/filtering/menu/filter-menu-dropdownlist.directive.mjs +44 -0
- package/esm2022/filtering/menu/filter-menu-host.directive.mjs +6 -1
- package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +52 -9
- package/esm2022/filtering/menu/filter-menu.component.mjs +111 -16
- package/esm2022/filtering/menu/menu-tabbing.service.mjs +22 -0
- package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +49 -35
- package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +37 -7
- package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +13 -4
- package/esm2022/filtering/menu/string-filter-menu.component.mjs +27 -8
- package/esm2022/filtering/operators/after-eq-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/after-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/before-eq-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/before-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/contains-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/ends-with-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/eq-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/filter-operator.base.mjs +18 -18
- package/esm2022/filtering/operators/gt-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/gte-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/is-empty-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/is-not-empty-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/is-not-null-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/isnull-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/lt-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/lte-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/neq-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/not-contains-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/starts-with-filter-operator.component.mjs +1 -1
- package/esm2022/localization/messages.mjs +97 -3
- package/esm2022/navigation/logical-cell.directive.mjs +4 -1
- package/esm2022/navigation/navigation.service.mjs +4 -4
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/header/header.component.mjs +336 -178
- package/esm2022/rendering/table-body.component.mjs +1 -1
- package/esm2022/selection/selection.service.mjs +2 -2
- package/esm2022/treelist.component.mjs +73 -9
- package/fesm2022/progress-kendo-angular-treelist.mjs +2231 -628
- package/filtering/cell/date-filter-cell.component.d.ts +4 -0
- package/filtering/cell/numeric-filter-cell.component.d.ts +4 -0
- package/filtering/filter.service.d.ts +10 -1
- package/filtering/menu/boolean-filter-menu.component.d.ts +19 -7
- package/filtering/menu/date-filter-menu-input.component.d.ts +10 -3
- package/filtering/menu/date-filter-menu.component.d.ts +7 -1
- package/filtering/menu/filter-menu-container.component.d.ts +23 -6
- package/filtering/menu/filter-menu-dropdownlist.directive.d.ts +19 -0
- package/filtering/menu/filter-menu-host.directive.d.ts +3 -1
- package/filtering/menu/filter-menu-input-wrapper.component.d.ts +12 -2
- package/filtering/menu/filter-menu.component.d.ts +30 -7
- package/filtering/menu/menu-tabbing.service.d.ts +18 -0
- package/filtering/menu/numeric-filter-menu-input.component.d.ts +12 -26
- package/filtering/menu/numeric-filter-menu.component.d.ts +13 -1
- package/filtering/menu/string-filter-menu-input.component.d.ts +4 -1
- package/filtering/menu/string-filter-menu.component.d.ts +7 -1
- package/index.d.ts +1 -0
- package/localization/messages.d.ts +79 -3
- package/navigation/logical-cell.directive.d.ts +2 -1
- package/package.json +18 -18
- package/rendering/header/header.component.d.ts +43 -10
- package/schematics/ngAdd/index.js +3 -3
@@ -2,32 +2,52 @@
|
|
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, Input, TemplateRef, HostBinding, ChangeDetectorRef } from '@angular/core';
|
5
|
+
import { Component, Input, TemplateRef, HostBinding, ChangeDetectorRef, Optional, isDevMode, ElementRef, ViewChild, Renderer2 } from '@angular/core';
|
6
6
|
import { NgClass, NgTemplateOutlet, NgIf } from '@angular/common';
|
7
|
-
import { LocalizationService } from "@progress/kendo-angular-l10n";
|
8
7
|
import { moreVerticalIcon } from '@progress/kendo-svg-icons';
|
9
8
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
10
9
|
import { SinglePopupService } from '../common/single-popup.service';
|
11
10
|
import { ColumnMenuService } from './column-menu.service';
|
12
11
|
import { filtersByField } from '../filtering/base-filter-cell.component';
|
13
|
-
import { hasFilter, hasSort, hasLock, hasColumnChooser } from './utils';
|
12
|
+
import { hasFilter, hasSort, hasLock, hasColumnChooser, hasAutoSizeColumn, hasAutoSizeAllColumns } from './utils';
|
14
13
|
import { ColumnMenuFilterComponent } from './column-menu-filter.component';
|
15
14
|
import { ColumnMenuChooserComponent } from './column-menu-chooser.component';
|
16
15
|
import { ColumnMenuLockComponent } from './column-menu-lock.component';
|
17
16
|
import { ColumnMenuSortComponent } from './column-menu-sort.component';
|
17
|
+
import { ColumnMenuContainerComponent } from './column-menu-container.component';
|
18
|
+
import { ColumnMenuAutoSizeAllColumnsComponent } from './column-menu-autosize-all.component';
|
19
|
+
import { ColumnMenuAutoSizeColumnComponent } from './column-menu-autosize.component';
|
20
|
+
import { ColumnMenuItemDirective } from './column-menu-item.directive';
|
21
|
+
import { NavigationService } from '../navigation/navigation.service';
|
22
|
+
import { IdService } from '../common/id.service';
|
23
|
+
import { ContextService } from '../common/provider.service';
|
24
|
+
import { ColumnMenuErrorMessages } from '../common/error-messages';
|
25
|
+
import { Subscription } from 'rxjs';
|
26
|
+
import { replaceMessagePlaceholder } from '../utils';
|
27
|
+
import { MenuTabbingService } from '../filtering/menu/menu-tabbing.service';
|
18
28
|
import * as i0 from "@angular/core";
|
19
|
-
import * as i1 from "../
|
20
|
-
import * as i2 from "
|
21
|
-
import * as i3 from "
|
29
|
+
import * as i1 from "../navigation/navigation.service";
|
30
|
+
import * as i2 from "../common/single-popup.service";
|
31
|
+
import * as i3 from "../common/provider.service";
|
32
|
+
import * as i4 from "./column-menu.service";
|
33
|
+
import * as i5 from "../common/id.service";
|
22
34
|
const POPUP_CLASSES = 'k-grid-columnmenu-popup k-column-menu';
|
35
|
+
let id = 0;
|
36
|
+
const getId = (gridId) => `${gridId}-column-menu-${id++}`;
|
23
37
|
/**
|
24
38
|
* Represents the [column menu]({% slug columnmenu_treelist %}) component of the TreeList.
|
25
39
|
*/
|
26
40
|
export class ColumnMenuComponent {
|
41
|
+
navigationService;
|
27
42
|
popupService;
|
28
|
-
|
43
|
+
ctx;
|
29
44
|
service;
|
30
45
|
cdr;
|
46
|
+
renderer;
|
47
|
+
idService;
|
48
|
+
anchor;
|
49
|
+
template;
|
50
|
+
defaultTemplate;
|
31
51
|
/**
|
32
52
|
* @hidden
|
33
53
|
*/
|
@@ -58,6 +78,11 @@ export class ColumnMenuComponent {
|
|
58
78
|
* @hidden
|
59
79
|
*/
|
60
80
|
columnMenuTemplate;
|
81
|
+
/**
|
82
|
+
* @hidden
|
83
|
+
*/
|
84
|
+
tabIndex = '-1';
|
85
|
+
moreVerticalIcon = moreVerticalIcon;
|
61
86
|
/**
|
62
87
|
* @hidden
|
63
88
|
*/
|
@@ -66,16 +91,43 @@ export class ColumnMenuComponent {
|
|
66
91
|
* @hidden
|
67
92
|
*/
|
68
93
|
expandedColumns = false;
|
69
|
-
moreVerticalIcon = moreVerticalIcon;
|
70
94
|
popupRef;
|
71
95
|
closeSubscription;
|
72
|
-
|
96
|
+
popupSubs = new Subscription();
|
97
|
+
constructor(navigationService, popupService, ctx, service, cdr, renderer, idService) {
|
98
|
+
this.navigationService = navigationService;
|
73
99
|
this.popupService = popupService;
|
74
|
-
this.
|
100
|
+
this.ctx = ctx;
|
75
101
|
this.service = service;
|
76
102
|
this.cdr = cdr;
|
103
|
+
this.renderer = renderer;
|
104
|
+
this.idService = idService;
|
77
105
|
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this));
|
78
106
|
}
|
107
|
+
ngAfterViewInit() {
|
108
|
+
if (this.ctx.treelist.virtualColumns && isDevMode()) {
|
109
|
+
if (this.settings.autoSizeAllColumns) {
|
110
|
+
this.settings.autoSizeAllColumns = false;
|
111
|
+
console.warn(ColumnMenuErrorMessages.autoSizeAllColumns);
|
112
|
+
}
|
113
|
+
if (this.settings.autoSizeColumn) {
|
114
|
+
this.settings.autoSizeColumn = false;
|
115
|
+
console.warn(ColumnMenuErrorMessages.autoSizeColumn);
|
116
|
+
}
|
117
|
+
}
|
118
|
+
}
|
119
|
+
ngOnChanges() {
|
120
|
+
this.service.column = this.column;
|
121
|
+
this.service.sort = this.sort;
|
122
|
+
this.service.filter = this.filter;
|
123
|
+
this.service.sortable = this.sortable;
|
124
|
+
}
|
125
|
+
ngOnDestroy() {
|
126
|
+
this.close();
|
127
|
+
this.closeSubscription.unsubscribe();
|
128
|
+
this.popupSubs?.unsubscribe();
|
129
|
+
this.closeSubscription = this.popupSubs = null;
|
130
|
+
}
|
79
131
|
/**
|
80
132
|
* @hidden
|
81
133
|
*/
|
@@ -107,118 +159,261 @@ export class ColumnMenuComponent {
|
|
107
159
|
get hasLock() {
|
108
160
|
return hasLock(this.settings, this.column);
|
109
161
|
}
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
162
|
+
/**
|
163
|
+
* @hidden
|
164
|
+
*/
|
165
|
+
get hasAutoSizeColumn() {
|
166
|
+
return hasAutoSizeColumn(this.settings);
|
115
167
|
}
|
116
|
-
|
117
|
-
|
118
|
-
|
168
|
+
/**
|
169
|
+
* @hidden
|
170
|
+
*/
|
171
|
+
get hasAutoSizeAllColumns() {
|
172
|
+
return hasAutoSizeAllColumns(this.settings);
|
173
|
+
}
|
174
|
+
/**
|
175
|
+
* @hidden
|
176
|
+
*/
|
177
|
+
get isNavigable() {
|
178
|
+
return this.navigationService.enabled;
|
119
179
|
}
|
120
180
|
/**
|
121
181
|
* @hidden
|
122
182
|
*/
|
123
183
|
toggle(e, anchor, template) {
|
124
|
-
e
|
125
|
-
|
126
|
-
|
184
|
+
if (e) {
|
185
|
+
e.preventDefault();
|
186
|
+
e instanceof KeyboardEvent && e.stopImmediatePropagation();
|
187
|
+
}
|
188
|
+
this.expandedFilter = this.getExpandedState(this.settings.filter);
|
189
|
+
this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
|
127
190
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASSES);
|
191
|
+
// Needed as changes to 'popupRef' and 'popupId' are not reflected
|
192
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
193
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
194
|
+
if (this.popupRef) {
|
195
|
+
this.popupSubs?.unsubscribe();
|
196
|
+
this.popupSubs = null;
|
197
|
+
this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
|
198
|
+
this.popupSubs?.unsubscribe();
|
199
|
+
this.popupSubs = null;
|
200
|
+
this.close(true);
|
201
|
+
this.updateAria(ariaRoot);
|
202
|
+
});
|
203
|
+
this.popupSubs.add(() => this.popupRef.popup.instance.close.subscribe(() => {
|
204
|
+
this.popupSubs?.unsubscribe();
|
205
|
+
this.popupSubs = this.popupRef = null;
|
206
|
+
this.updateAria(ariaRoot);
|
207
|
+
}));
|
208
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
|
209
|
+
if (popupAriaElement) {
|
210
|
+
const popupId = getId(this.idService?.gridId());
|
211
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
212
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
213
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
|
214
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
215
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
216
|
+
}
|
217
|
+
}
|
218
|
+
else {
|
219
|
+
this.focusRoot();
|
220
|
+
}
|
128
221
|
}
|
129
222
|
/**
|
130
223
|
* @hidden
|
131
224
|
*/
|
132
|
-
close() {
|
225
|
+
close(triggerFocus = false) {
|
133
226
|
this.popupService.destroy();
|
134
227
|
this.popupRef = null;
|
135
228
|
this.cdr.markForCheck();
|
229
|
+
if (!triggerFocus) {
|
230
|
+
return;
|
231
|
+
}
|
232
|
+
this.focusRoot();
|
136
233
|
}
|
137
234
|
/**
|
138
235
|
* @hidden
|
139
236
|
*/
|
140
|
-
|
141
|
-
this.
|
142
|
-
this.
|
237
|
+
get columnMenuTitle() {
|
238
|
+
const localizationMsg = this.ctx.localization.get('columnMenu') || '';
|
239
|
+
const columnName = this.column.title || this.column.field;
|
240
|
+
return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
|
143
241
|
}
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
this.
|
149
|
-
this.
|
242
|
+
getExpandedState(menuItemSettings) {
|
243
|
+
return typeof (menuItemSettings) === 'object' ? menuItemSettings.expanded : false;
|
244
|
+
}
|
245
|
+
updateAria(ariaRoot) {
|
246
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
247
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
150
248
|
}
|
151
|
-
|
152
|
-
|
249
|
+
focusRoot() {
|
250
|
+
this.isNavigable ? this.navigationService.focusCell(0, this.column.leafIndex) : this.anchor.nativeElement.focus();
|
251
|
+
}
|
252
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: i1.NavigationService }, { token: i2.SinglePopupService }, { token: i3.ContextService }, { token: i4.ColumnMenuService }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i5.IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
253
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuComponent, isStandalone: true, selector: "kendo-treelist-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate", tabIndex: "tabIndex" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [
|
254
|
+
ColumnMenuService,
|
255
|
+
MenuTabbingService
|
256
|
+
], viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, static: true }, { propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true, read: TemplateRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
153
257
|
<a #anchor
|
154
258
|
class="k-grid-column-menu k-grid-header-menu"
|
155
259
|
[ngClass]="{ 'k-active': isActive }"
|
156
260
|
(click)="toggle($event, anchor, template)"
|
261
|
+
(keydown.enter)="$event.stopImmediatePropagation()"
|
157
262
|
href="#"
|
158
|
-
tabindex="
|
159
|
-
[attr.title]="
|
263
|
+
[tabindex]="tabIndex"
|
264
|
+
[attr.title]="columnMenuTitle"
|
265
|
+
[attr.aria-expanded]="isNavigable ? undefined : false"
|
266
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
160
267
|
<kendo-icon-wrapper
|
161
268
|
name="more-vertical"
|
162
269
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
163
270
|
</a>
|
164
271
|
<ng-template #template>
|
165
|
-
<
|
166
|
-
|
167
|
-
|
272
|
+
<kendo-treelist-columnmenu-container
|
273
|
+
(keydown.escape)="close(true)"
|
274
|
+
(keydown.enter)="$event.stopImmediatePropagation()">
|
275
|
+
<ng-container
|
276
|
+
[ngTemplateOutlet]="column.columnMenuTemplateRef || columnMenuTemplate || defaultTemplate"
|
277
|
+
[ngTemplateOutletContext]="{ service: service, column: column }">
|
278
|
+
</ng-container>
|
279
|
+
</kendo-treelist-columnmenu-container>
|
168
280
|
</ng-template>
|
169
281
|
<ng-template #defaultTemplate>
|
170
|
-
<kendo-treelist-columnmenu-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
[
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
282
|
+
<kendo-treelist-columnmenu-container
|
283
|
+
(keydown.escape)="close(true)"
|
284
|
+
(keydown.enter)="$event.stopImmediatePropagation()">
|
285
|
+
<kendo-treelist-columnmenu-sort #sortItem [kendoTreeListColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
286
|
+
</kendo-treelist-columnmenu-sort>
|
287
|
+
<kendo-treelist-columnmenu-lock #lockItem *ngIf="hasLock" [kendoTreeListColumnMenuItem]="lockItem" [service]="service">
|
288
|
+
</kendo-treelist-columnmenu-lock>
|
289
|
+
<span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasColumnChooser || hasAutoSizeColumn || hasAutoSizeAllColumns" class="k-separator"></span>
|
290
|
+
<kendo-treelist-columnmenu-chooser
|
291
|
+
#chooserItem
|
292
|
+
*ngIf="hasColumnChooser"
|
293
|
+
[kendoTreeListColumnMenuItem]="chooserItem"
|
294
|
+
[service]="service"
|
295
|
+
[expanded]="expandedColumns">
|
296
|
+
</kendo-treelist-columnmenu-chooser>
|
297
|
+
<kendo-treelist-columnmenu-autosize-column
|
298
|
+
#autoSizeColumnItem
|
299
|
+
*ngIf="hasAutoSizeColumn"
|
300
|
+
[service]="service"
|
301
|
+
[kendoTreeListColumnMenuItem]="autoSizeColumnItem"
|
302
|
+
[column]="column"
|
303
|
+
>
|
304
|
+
</kendo-treelist-columnmenu-autosize-column>
|
305
|
+
|
306
|
+
<kendo-treelist-columnmenu-autosize-all-columns
|
307
|
+
#autoSizeAllColumnsItem
|
308
|
+
*ngIf="hasAutoSizeAllColumns"
|
309
|
+
[service]="service"
|
310
|
+
[kendoTreeListColumnMenuItem]="autoSizeAllColumnsItem"
|
311
|
+
>
|
312
|
+
</kendo-treelist-columnmenu-autosize-all-columns>
|
313
|
+
<span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasColumnChooser || hasAutoSizeColumn || hasAutoSizeAllColumns" class="k-separator"></span>
|
314
|
+
<kendo-treelist-columnmenu-filter
|
315
|
+
#filterItem
|
316
|
+
*ngIf="hasFilter"
|
317
|
+
[kendoTreeListColumnMenuItem]="filterItem"
|
318
|
+
[service]="service"
|
319
|
+
[expanded]="expandedFilter">
|
320
|
+
</kendo-treelist-columnmenu-filter>
|
321
|
+
</kendo-treelist-columnmenu-container>
|
180
322
|
</ng-template>
|
181
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-treelist-columnmenu-sort" }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-treelist-columnmenu-lock" }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-treelist-columnmenu-chooser", inputs: ["expanded"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-treelist-columnmenu-filter", inputs: ["expanded"], outputs: ["expand", "collapse"] }] });
|
323
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-treelist-columnmenu-sort" }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-treelist-columnmenu-lock" }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-treelist-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-treelist-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-treelist-columnmenu-container" }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-treelist-columnmenu-autosize-all-columns" }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-treelist-columnmenu-autosize-column", inputs: ["column"] }, { kind: "directive", type: ColumnMenuItemDirective, selector: "[kendoTreeListColumnMenuItem]", inputs: ["kendoTreeListColumnMenuItem"] }] });
|
182
324
|
}
|
183
325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
|
184
326
|
type: Component,
|
185
327
|
args: [{
|
186
|
-
providers: [
|
328
|
+
providers: [
|
329
|
+
ColumnMenuService,
|
330
|
+
MenuTabbingService
|
331
|
+
],
|
187
332
|
selector: 'kendo-treelist-column-menu',
|
188
333
|
template: `
|
189
334
|
<a #anchor
|
190
335
|
class="k-grid-column-menu k-grid-header-menu"
|
191
336
|
[ngClass]="{ 'k-active': isActive }"
|
192
337
|
(click)="toggle($event, anchor, template)"
|
338
|
+
(keydown.enter)="$event.stopImmediatePropagation()"
|
193
339
|
href="#"
|
194
|
-
tabindex="
|
195
|
-
[attr.title]="
|
340
|
+
[tabindex]="tabIndex"
|
341
|
+
[attr.title]="columnMenuTitle"
|
342
|
+
[attr.aria-expanded]="isNavigable ? undefined : false"
|
343
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
196
344
|
<kendo-icon-wrapper
|
197
345
|
name="more-vertical"
|
198
346
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
199
347
|
</a>
|
200
348
|
<ng-template #template>
|
201
|
-
<
|
202
|
-
|
203
|
-
|
349
|
+
<kendo-treelist-columnmenu-container
|
350
|
+
(keydown.escape)="close(true)"
|
351
|
+
(keydown.enter)="$event.stopImmediatePropagation()">
|
352
|
+
<ng-container
|
353
|
+
[ngTemplateOutlet]="column.columnMenuTemplateRef || columnMenuTemplate || defaultTemplate"
|
354
|
+
[ngTemplateOutletContext]="{ service: service, column: column }">
|
355
|
+
</ng-container>
|
356
|
+
</kendo-treelist-columnmenu-container>
|
204
357
|
</ng-template>
|
205
358
|
<ng-template #defaultTemplate>
|
206
|
-
<kendo-treelist-columnmenu-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
[
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
359
|
+
<kendo-treelist-columnmenu-container
|
360
|
+
(keydown.escape)="close(true)"
|
361
|
+
(keydown.enter)="$event.stopImmediatePropagation()">
|
362
|
+
<kendo-treelist-columnmenu-sort #sortItem [kendoTreeListColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
363
|
+
</kendo-treelist-columnmenu-sort>
|
364
|
+
<kendo-treelist-columnmenu-lock #lockItem *ngIf="hasLock" [kendoTreeListColumnMenuItem]="lockItem" [service]="service">
|
365
|
+
</kendo-treelist-columnmenu-lock>
|
366
|
+
<span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasColumnChooser || hasAutoSizeColumn || hasAutoSizeAllColumns" class="k-separator"></span>
|
367
|
+
<kendo-treelist-columnmenu-chooser
|
368
|
+
#chooserItem
|
369
|
+
*ngIf="hasColumnChooser"
|
370
|
+
[kendoTreeListColumnMenuItem]="chooserItem"
|
371
|
+
[service]="service"
|
372
|
+
[expanded]="expandedColumns">
|
373
|
+
</kendo-treelist-columnmenu-chooser>
|
374
|
+
<kendo-treelist-columnmenu-autosize-column
|
375
|
+
#autoSizeColumnItem
|
376
|
+
*ngIf="hasAutoSizeColumn"
|
377
|
+
[service]="service"
|
378
|
+
[kendoTreeListColumnMenuItem]="autoSizeColumnItem"
|
379
|
+
[column]="column"
|
380
|
+
>
|
381
|
+
</kendo-treelist-columnmenu-autosize-column>
|
382
|
+
|
383
|
+
<kendo-treelist-columnmenu-autosize-all-columns
|
384
|
+
#autoSizeAllColumnsItem
|
385
|
+
*ngIf="hasAutoSizeAllColumns"
|
386
|
+
[service]="service"
|
387
|
+
[kendoTreeListColumnMenuItem]="autoSizeAllColumnsItem"
|
388
|
+
>
|
389
|
+
</kendo-treelist-columnmenu-autosize-all-columns>
|
390
|
+
<span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasColumnChooser || hasAutoSizeColumn || hasAutoSizeAllColumns" class="k-separator"></span>
|
391
|
+
<kendo-treelist-columnmenu-filter
|
392
|
+
#filterItem
|
393
|
+
*ngIf="hasFilter"
|
394
|
+
[kendoTreeListColumnMenuItem]="filterItem"
|
395
|
+
[service]="service"
|
396
|
+
[expanded]="expandedFilter">
|
397
|
+
</kendo-treelist-columnmenu-filter>
|
398
|
+
</kendo-treelist-columnmenu-container>
|
216
399
|
</ng-template>
|
217
400
|
`,
|
218
401
|
standalone: true,
|
219
|
-
imports: [NgClass, IconWrapperComponent, NgTemplateOutlet, NgIf, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuChooserComponent,
|
402
|
+
imports: [NgClass, IconWrapperComponent, NgTemplateOutlet, NgIf, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuChooserComponent,
|
403
|
+
ColumnMenuFilterComponent, ColumnMenuContainerComponent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuItemDirective]
|
220
404
|
}]
|
221
|
-
}], ctorParameters: function () { return [{ type: i1.
|
405
|
+
}], ctorParameters: function () { return [{ type: i1.NavigationService }, { type: i2.SinglePopupService }, { type: i3.ContextService }, { type: i4.ColumnMenuService }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i5.IdService, decorators: [{
|
406
|
+
type: Optional
|
407
|
+
}] }]; }, propDecorators: { anchor: [{
|
408
|
+
type: ViewChild,
|
409
|
+
args: ['anchor', { static: true }]
|
410
|
+
}], template: [{
|
411
|
+
type: ViewChild,
|
412
|
+
args: ['template', { static: true, read: TemplateRef }]
|
413
|
+
}], defaultTemplate: [{
|
414
|
+
type: ViewChild,
|
415
|
+
args: ['defaultTemplate', { static: true, read: TemplateRef }]
|
416
|
+
}], standalone: [{
|
222
417
|
type: HostBinding,
|
223
418
|
args: ['class.k-grid-column-menu-standalone']
|
224
419
|
}, {
|
@@ -235,4 +430,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
235
430
|
type: Input
|
236
431
|
}], columnMenuTemplate: [{
|
237
432
|
type: Input
|
433
|
+
}], tabIndex: [{
|
434
|
+
type: Input
|
238
435
|
}] } });
|
@@ -3,7 +3,9 @@
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Injectable, EventEmitter } from '@angular/core';
|
6
|
+
import { MenuTabbingService } from '../filtering/menu/menu-tabbing.service';
|
6
7
|
import * as i0 from "@angular/core";
|
8
|
+
import * as i1 from "../filtering/menu/menu-tabbing.service";
|
7
9
|
/**
|
8
10
|
* Represents the service that is passed to the
|
9
11
|
* [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
|
@@ -21,6 +23,10 @@ import * as i0 from "@angular/core";
|
|
21
23
|
* ```
|
22
24
|
*/
|
23
25
|
export class ColumnMenuService {
|
26
|
+
/**
|
27
|
+
* @hidden
|
28
|
+
*/
|
29
|
+
menuTabbingService;
|
24
30
|
/**
|
25
31
|
* @hidden
|
26
32
|
*/
|
@@ -41,15 +47,25 @@ export class ColumnMenuService {
|
|
41
47
|
* @hidden
|
42
48
|
*/
|
43
49
|
sortable;
|
50
|
+
/**
|
51
|
+
* @hidden
|
52
|
+
*/
|
53
|
+
columnMenuContainer;
|
54
|
+
/**
|
55
|
+
* @hidden
|
56
|
+
*/
|
57
|
+
constructor(menuTabbingService) {
|
58
|
+
this.menuTabbingService = menuTabbingService;
|
59
|
+
}
|
44
60
|
/**
|
45
61
|
* Closes the column menu.
|
46
62
|
*/
|
47
63
|
close() {
|
48
64
|
this.closeMenu.emit();
|
49
65
|
}
|
50
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuService, deps: [{ token: i1.MenuTabbingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
51
67
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuService });
|
52
68
|
}
|
53
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuService, decorators: [{
|
54
70
|
type: Injectable
|
55
|
-
}] });
|
71
|
+
}], ctorParameters: function () { return [{ type: i1.MenuTabbingService }]; } });
|
@@ -21,4 +21,24 @@ export const hasColumnChooser = (settings) => settings.columnChooser !== false;
|
|
21
21
|
/**
|
22
22
|
* @hidden
|
23
23
|
*/
|
24
|
-
export const
|
24
|
+
export const hasAutoSizeColumn = (settings) => settings.autoSizeColumn;
|
25
|
+
/**
|
26
|
+
* @hidden
|
27
|
+
*/
|
28
|
+
export const hasAutoSizeAllColumns = (settings) => settings.autoSizeAllColumns;
|
29
|
+
/**
|
30
|
+
* @hidden
|
31
|
+
*/
|
32
|
+
export const autoSizeColumn = (treelist, service, column) => {
|
33
|
+
column ? treelist.autoFitColumn(column) : treelist.autoFitColumns();
|
34
|
+
service.close();
|
35
|
+
};
|
36
|
+
/**
|
37
|
+
* @hidden
|
38
|
+
*/
|
39
|
+
export const hasItems = (settings, column) => hasAutoSizeAllColumns(settings) ||
|
40
|
+
hasColumnChooser(settings) ||
|
41
|
+
hasFilter(settings, column) ||
|
42
|
+
hasAutoSizeColumn(settings) ||
|
43
|
+
hasLock(settings, column) ||
|
44
|
+
hasSort(settings, column);
|
@@ -0,0 +1,15 @@
|
|
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
|
+
/**
|
6
|
+
* @hidden
|
7
|
+
*/
|
8
|
+
export const ColumnMenuErrorMessages = {
|
9
|
+
autoSizeColumn: `The auto size column does not work with enabled virtual columns.
|
10
|
+
See https://www.telerik.com/kendo-angular-ui/components/treelist/accessories/column-menu/#toc-autosize-column-item.`,
|
11
|
+
autoSizeAllColumns: `The auto size all columns does not work with enabled virtual columns.
|
12
|
+
See https://www.telerik.com/kendo-angular-ui/components/treelist/accessories/column-menu/#toc-autosize-all-columns-item.`,
|
13
|
+
serviceInput: `The service input of the predefined column menu components is mandatory.
|
14
|
+
See https://www.telerik.com/kendo-angular-ui/components/treelist/accessories/column-menu/#toc-customizing-the-content.`
|
15
|
+
};
|
@@ -17,6 +17,15 @@ export class IdService {
|
|
17
17
|
cellId(rowIndex, colIndex) {
|
18
18
|
return `${this.prefix}-r${rowIndex}c${colIndex}`;
|
19
19
|
}
|
20
|
+
gridId() {
|
21
|
+
return this.prefix;
|
22
|
+
}
|
23
|
+
selectionCheckboxId(itemIndex) {
|
24
|
+
return `${this.prefix}-checkbox${itemIndex}`;
|
25
|
+
}
|
26
|
+
selectAllCheckboxId() {
|
27
|
+
return `${this.prefix}-select-all`;
|
28
|
+
}
|
20
29
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
21
30
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IdService });
|
22
31
|
}
|
@@ -4,7 +4,9 @@
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Injectable, Renderer2 } from '@angular/core';
|
6
6
|
import { TreeListToolbarNavigationService } from '../rendering/toolbar/toolbar-navigation.service';
|
7
|
+
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
7
8
|
import * as i0 from "@angular/core";
|
9
|
+
import * as i1 from "@progress/kendo-angular-l10n";
|
8
10
|
/**
|
9
11
|
* @hidden
|
10
12
|
*
|
@@ -15,16 +17,18 @@ import * as i0 from "@angular/core";
|
|
15
17
|
* and a avoids dependency cycles between components.
|
16
18
|
*/
|
17
19
|
export class ContextService {
|
20
|
+
localization;
|
18
21
|
treelist;
|
19
22
|
topToolbarNavigation;
|
20
23
|
bottomToolbarNavigation;
|
21
|
-
constructor(renderer) {
|
24
|
+
constructor(renderer, localization) {
|
25
|
+
this.localization = localization;
|
22
26
|
this.topToolbarNavigation = new TreeListToolbarNavigationService(renderer);
|
23
27
|
this.bottomToolbarNavigation = new TreeListToolbarNavigationService(renderer);
|
24
28
|
}
|
25
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextService, deps: [{ token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
26
30
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextService });
|
27
31
|
}
|
28
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextService, decorators: [{
|
29
33
|
type: Injectable
|
30
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
34
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.LocalizationService }]; } });
|
@@ -10,6 +10,7 @@ import { BooleanFilterComponent } from '../boolean-filter.component';
|
|
10
10
|
import { replaceMessagePlaceholder } from '../../utils';
|
11
11
|
import { FilterInputDirective } from '../filter-input.directive';
|
12
12
|
import { FilterCellWrapperComponent } from './filter-cell-wrapper.component';
|
13
|
+
import { FocusableDirective } from '../../navigation/focusable.directive';
|
13
14
|
import * as i0 from "@angular/core";
|
14
15
|
import * as i1 from "../filter.service";
|
15
16
|
import * as i2 from "@progress/kendo-angular-l10n";
|
@@ -62,6 +63,7 @@ export class BooleanFilterCellComponent extends BooleanFilterComponent {
|
|
62
63
|
[defaultOperator]="operator">
|
63
64
|
<kendo-dropdownlist
|
64
65
|
kendoFilterInput
|
66
|
+
kendoTreeListFocusable
|
65
67
|
[defaultItem]="defaultItem"
|
66
68
|
[columnLabel]="columnLabel"
|
67
69
|
[data]="items"
|
@@ -72,7 +74,7 @@ export class BooleanFilterCellComponent extends BooleanFilterComponent {
|
|
72
74
|
[value]="currentFilter?.value">
|
73
75
|
</kendo-dropdownlist>
|
74
76
|
</kendo-treelist-filter-wrapper-cell>
|
75
|
-
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
|
77
|
+
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }] });
|
76
78
|
}
|
77
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
|
78
80
|
type: Component,
|
@@ -86,6 +88,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
86
88
|
[defaultOperator]="operator">
|
87
89
|
<kendo-dropdownlist
|
88
90
|
kendoFilterInput
|
91
|
+
kendoTreeListFocusable
|
89
92
|
[defaultItem]="defaultItem"
|
90
93
|
[columnLabel]="columnLabel"
|
91
94
|
[data]="items"
|
@@ -98,6 +101,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
98
101
|
</kendo-treelist-filter-wrapper-cell>
|
99
102
|
`,
|
100
103
|
standalone: true,
|
101
|
-
imports: [FilterCellWrapperComponent, DropDownListComponent, FilterInputDirective]
|
104
|
+
imports: [FilterCellWrapperComponent, DropDownListComponent, FilterInputDirective, FocusableDirective]
|
102
105
|
}]
|
103
106
|
}], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }]; } });
|