@progress/kendo-angular-grid 13.4.0-develop.9 → 13.4.1-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 +20 -0
- package/column-menu/column-chooser.component.d.ts +9 -1
- package/column-menu/column-list-kb-nav.service.d.ts +22 -0
- package/column-menu/column-list.component.d.ts +10 -2
- package/column-menu/column-menu-item.component.d.ts +2 -0
- package/column-menu/column-menu.component.d.ts +10 -4
- package/column-menu/column-menu.module.d.ts +22 -21
- package/common/error-messages.d.ts +1 -1
- package/esm2020/column-menu/column-chooser-item-checked.directive.mjs +36 -0
- package/esm2020/column-menu/column-chooser.component.mjs +63 -12
- package/esm2020/column-menu/column-list-kb-nav.service.mjs +38 -0
- package/esm2020/column-menu/column-list.component.mjs +137 -26
- package/esm2020/column-menu/column-menu-autosize-all.component.mjs +2 -2
- package/esm2020/column-menu/column-menu-autosize.component.mjs +2 -2
- package/esm2020/column-menu/column-menu-chooser.component.mjs +3 -1
- package/esm2020/column-menu/column-menu-item.component.mjs +10 -4
- package/esm2020/column-menu/column-menu.component.mjs +79 -37
- package/esm2020/column-menu/column-menu.module.mjs +6 -2
- package/esm2020/common/error-messages.mjs +1 -1
- package/esm2020/filtering/menu/filter-menu-container.component.mjs +2 -2
- package/esm2020/filtering/menu/filter-menu.component.mjs +52 -10
- package/esm2020/navigation/logical-cell.directive.mjs +1 -1
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/rendering/header/header.component.mjs +30 -20
- package/fesm2015/progress-kendo-angular-grid.mjs +402 -81
- package/fesm2020/progress-kendo-angular-grid.mjs +394 -80
- package/filtering/menu/filter-menu.component.d.ts +13 -4
- package/package.json +16 -16
- package/rendering/header/header.component.d.ts +4 -1
- package/schematics/ngAdd/index.js +3 -3
|
@@ -4,39 +4,44 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { MenuTabbingService } from './../filtering/menu/menu-tabbing.service';
|
|
6
6
|
import { NavigationService } from './../navigation/navigation.service';
|
|
7
|
-
import { Component, Renderer2, Input, TemplateRef, HostBinding, ElementRef, ViewChild, isDevMode, ChangeDetectorRef } from '@angular/core';
|
|
7
|
+
import { Component, Renderer2, Input, TemplateRef, HostBinding, ElementRef, ViewChild, isDevMode, ChangeDetectorRef, Optional } from '@angular/core';
|
|
8
8
|
import { SinglePopupService } from '../common/single-popup.service';
|
|
9
9
|
import { ColumnMenuService } from './column-menu.service';
|
|
10
10
|
import { filtersByField } from '../filtering/base-filter-cell.component';
|
|
11
11
|
import { hasFilter, hasSort, hasLock, hasStick, hasColumnChooser, hasAutoSizeColumn, hasPosition, hasAutoSizeAllColumns } from './utils';
|
|
12
12
|
import { replaceMessagePlaceholder } from '../utils';
|
|
13
13
|
import { ContextService } from '../common/provider.service';
|
|
14
|
-
import {
|
|
14
|
+
import { ColumnMenuErrorMessages } from '../common/error-messages';
|
|
15
15
|
import { moreVerticalIcon, columnsIcon, filterIcon, slidersIcon } from '@progress/kendo-svg-icons';
|
|
16
16
|
import { TabStripComponent } from '@progress/kendo-angular-layout';
|
|
17
17
|
import { ColumnInfoService } from '../common/column-info.service';
|
|
18
|
+
import { IdService } from '../common/id.service';
|
|
19
|
+
import { take } from 'rxjs/operators';
|
|
18
20
|
import * as i0 from "@angular/core";
|
|
19
21
|
import * as i1 from "./../navigation/navigation.service";
|
|
20
22
|
import * as i2 from "../common/single-popup.service";
|
|
21
23
|
import * as i3 from "./column-menu.service";
|
|
22
24
|
import * as i4 from "../common/provider.service";
|
|
23
25
|
import * as i5 from "../common/column-info.service";
|
|
24
|
-
import * as i6 from "
|
|
25
|
-
import * as i7 from "
|
|
26
|
-
import * as i8 from "./column-menu-
|
|
27
|
-
import * as i9 from "./column-menu-
|
|
28
|
-
import * as i10 from "./column-menu-
|
|
29
|
-
import * as i11 from "./column-menu-
|
|
30
|
-
import * as i12 from "./column-menu-
|
|
31
|
-
import * as i13 from "./column-menu-
|
|
32
|
-
import * as i14 from "./column-menu-autosize
|
|
33
|
-
import * as i15 from "./column-menu-
|
|
34
|
-
import * as i16 from "
|
|
35
|
-
import * as i17 from "
|
|
36
|
-
import * as i18 from "
|
|
37
|
-
import * as i19 from "
|
|
38
|
-
import * as i20 from "
|
|
26
|
+
import * as i6 from "../common/id.service";
|
|
27
|
+
import * as i7 from "@progress/kendo-angular-icons";
|
|
28
|
+
import * as i8 from "./column-menu-container.component";
|
|
29
|
+
import * as i9 from "./column-menu-sort.component";
|
|
30
|
+
import * as i10 from "./column-menu-lock.component";
|
|
31
|
+
import * as i11 from "./column-menu-stick.component";
|
|
32
|
+
import * as i12 from "./column-menu-position.component";
|
|
33
|
+
import * as i13 from "./column-menu-chooser.component";
|
|
34
|
+
import * as i14 from "./column-menu-autosize.component";
|
|
35
|
+
import * as i15 from "./column-menu-autosize-all.component";
|
|
36
|
+
import * as i16 from "./column-menu-filter.component";
|
|
37
|
+
import * as i17 from "@progress/kendo-angular-layout";
|
|
38
|
+
import * as i18 from "../filtering/menu/filter-menu-container.component";
|
|
39
|
+
import * as i19 from "./column-list.component";
|
|
40
|
+
import * as i20 from "@angular/common";
|
|
41
|
+
import * as i21 from "./column-menu-item.directive";
|
|
39
42
|
const POPUP_CLASS = 'k-grid-columnmenu-popup';
|
|
43
|
+
let id = 0;
|
|
44
|
+
const getId = (gridId) => `${gridId}-column-menu-${id++}`;
|
|
40
45
|
/**
|
|
41
46
|
* Represents the [column menu](slug:columnmenu_grid#toc-customizing-the-position) component.
|
|
42
47
|
*
|
|
@@ -49,7 +54,7 @@ const POPUP_CLASS = 'k-grid-columnmenu-popup';
|
|
|
49
54
|
* </kendo-grid>
|
|
50
55
|
*/
|
|
51
56
|
export class ColumnMenuComponent {
|
|
52
|
-
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService) {
|
|
57
|
+
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService, idService) {
|
|
53
58
|
this.navigationService = navigationService;
|
|
54
59
|
this.popupService = popupService;
|
|
55
60
|
this.service = service;
|
|
@@ -57,6 +62,7 @@ export class ColumnMenuComponent {
|
|
|
57
62
|
this.renderer = renderer;
|
|
58
63
|
this.cdr = cdr;
|
|
59
64
|
this.columnInfoService = columnInfoService;
|
|
65
|
+
this.idService = idService;
|
|
60
66
|
/**
|
|
61
67
|
* @hidden
|
|
62
68
|
*/
|
|
@@ -102,7 +108,7 @@ export class ColumnMenuComponent {
|
|
|
102
108
|
*/
|
|
103
109
|
this.expandedPosition = false;
|
|
104
110
|
this.moreVerticalIcon = moreVerticalIcon;
|
|
105
|
-
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this));
|
|
111
|
+
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this, true));
|
|
106
112
|
}
|
|
107
113
|
/**
|
|
108
114
|
* @hidden
|
|
@@ -128,6 +134,12 @@ export class ColumnMenuComponent {
|
|
|
128
134
|
get hasFilter() {
|
|
129
135
|
return hasFilter(this.settings, this.column);
|
|
130
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* @hidden
|
|
139
|
+
*/
|
|
140
|
+
get isNavigable() {
|
|
141
|
+
return this.navigationService.tableEnabled;
|
|
142
|
+
}
|
|
131
143
|
/**
|
|
132
144
|
* @hidden
|
|
133
145
|
*/
|
|
@@ -144,7 +156,7 @@ export class ColumnMenuComponent {
|
|
|
144
156
|
* @hidden
|
|
145
157
|
*/
|
|
146
158
|
onApply(changed) {
|
|
147
|
-
this.close();
|
|
159
|
+
this.close(true);
|
|
148
160
|
if (changed.length) {
|
|
149
161
|
this.cdr.markForCheck();
|
|
150
162
|
this.columnInfoService.changeVisibility(changed);
|
|
@@ -190,11 +202,11 @@ export class ColumnMenuComponent {
|
|
|
190
202
|
if (this.ctx.grid.virtualColumns && isDevMode()) {
|
|
191
203
|
if (this.settings.autoSizeAllColumns) {
|
|
192
204
|
this.settings.autoSizeAllColumns = false;
|
|
193
|
-
console.warn(
|
|
205
|
+
console.warn(ColumnMenuErrorMessages.autoSizeAllColumns);
|
|
194
206
|
}
|
|
195
207
|
if (this.settings.autoSizeColumn) {
|
|
196
208
|
this.settings.autoSizeColumn = false;
|
|
197
|
-
console.warn(
|
|
209
|
+
console.warn(ColumnMenuErrorMessages.autoSizeColumn);
|
|
198
210
|
}
|
|
199
211
|
}
|
|
200
212
|
this.service.menuTabbingService.isTabbedInterface = this.settings.view === 'tabbed' ? true : false;
|
|
@@ -221,12 +233,32 @@ export class ColumnMenuComponent {
|
|
|
221
233
|
this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
|
|
222
234
|
this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
|
|
223
235
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASS);
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
236
|
+
// Needed as changes to 'popupRef' and 'popupId' are not reflected
|
|
237
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
238
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
239
|
+
if (this.popupRef) {
|
|
240
|
+
this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
|
|
241
|
+
this.popupRef = null;
|
|
242
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
243
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
244
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
245
|
+
});
|
|
246
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
|
|
247
|
+
if (popupAriaElement) {
|
|
248
|
+
const popupId = getId(this.idService?.gridId());
|
|
249
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
250
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
251
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
|
|
252
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
253
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
254
|
+
}
|
|
255
|
+
if (this.settings.view === 'tabbed') {
|
|
256
|
+
this.renderer.addClass(this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup'), 'k-column-menu-tabbed');
|
|
257
|
+
this.cdr.detectChanges();
|
|
258
|
+
this.tabStrip?.selectTab(0);
|
|
259
|
+
}
|
|
228
260
|
}
|
|
229
|
-
|
|
261
|
+
else {
|
|
230
262
|
if (this.navigationService.tableEnabled) {
|
|
231
263
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
232
264
|
}
|
|
@@ -238,9 +270,13 @@ export class ColumnMenuComponent {
|
|
|
238
270
|
/**
|
|
239
271
|
* @hidden
|
|
240
272
|
*/
|
|
241
|
-
close() {
|
|
273
|
+
close(triggerFocus = false) {
|
|
242
274
|
this.popupService.destroy();
|
|
243
275
|
this.popupRef = null;
|
|
276
|
+
this.cdr.markForCheck();
|
|
277
|
+
if (!triggerFocus) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
244
280
|
if (this.navigationService.tableEnabled) {
|
|
245
281
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
246
282
|
}
|
|
@@ -260,7 +296,7 @@ export class ColumnMenuComponent {
|
|
|
260
296
|
return typeof (menuItemSettings) === 'object' ? menuItemSettings.expanded : false;
|
|
261
297
|
}
|
|
262
298
|
}
|
|
263
|
-
ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: i1.NavigationService }, { token: i2.SinglePopupService }, { token: i3.ColumnMenuService }, { token: i4.ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i5.ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
299
|
+
ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: i1.NavigationService }, { token: i2.SinglePopupService }, { token: i3.ColumnMenuService }, { token: i4.ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i5.ColumnInfoService }, { token: i6.IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
264
300
|
ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnMenuComponent, selector: "kendo-grid-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: [
|
|
265
301
|
ColumnMenuService,
|
|
266
302
|
MenuTabbingService
|
|
@@ -272,7 +308,9 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
272
308
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
273
309
|
href="#"
|
|
274
310
|
[tabindex]="tabIndex"
|
|
275
|
-
[attr.title]="columnMenuTitle"
|
|
311
|
+
[attr.title]="columnMenuTitle"
|
|
312
|
+
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
313
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
276
314
|
<kendo-icon-wrapper
|
|
277
315
|
name="more-vertical"
|
|
278
316
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
|
@@ -285,7 +323,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
285
323
|
</ng-template>
|
|
286
324
|
<ng-template #defaultTemplate>
|
|
287
325
|
<kendo-grid-columnmenu-container
|
|
288
|
-
(keydown.escape)="close()"
|
|
326
|
+
(keydown.escape)="close(true)"
|
|
289
327
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
290
328
|
<kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
|
291
329
|
</kendo-grid-columnmenu-sort>
|
|
@@ -337,7 +375,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
337
375
|
</kendo-grid-columnmenu-container>
|
|
338
376
|
</ng-template>
|
|
339
377
|
<ng-template #tabbedInterfaceTemplate>
|
|
340
|
-
<kendo-tabstrip #tabstrip (keydown.escape)="close()">
|
|
378
|
+
<kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
|
|
341
379
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
342
380
|
<ng-template kendoTabTitle>
|
|
343
381
|
<kendo-icon-wrapper
|
|
@@ -424,7 +462,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
424
462
|
</kendo-tabstrip-tab>
|
|
425
463
|
</kendo-tabstrip>
|
|
426
464
|
</ng-template>
|
|
427
|
-
`, isInline: true, components: [{ type:
|
|
465
|
+
`, isInline: true, components: [{ type: i7.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i8.ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { type: i9.ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { type: i10.ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { type: i11.ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { type: i12.ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { type: i13.ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type: i14.ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { type: i15.ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { type: i16.ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type: i17.TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon", "closeIconClass", "closeSVGIcon"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { type: i17.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { type: i18.FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { type: i19.ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }], directives: [{ type: i20.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i20.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i20.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i21.ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { type: i17.TabTitleDirective, selector: "[kendoTabTitle]" }, { type: i17.TabContentDirective, selector: "[kendoTabContent]" }] });
|
|
428
466
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
|
|
429
467
|
type: Component,
|
|
430
468
|
args: [{
|
|
@@ -441,7 +479,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
441
479
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
442
480
|
href="#"
|
|
443
481
|
[tabindex]="tabIndex"
|
|
444
|
-
[attr.title]="columnMenuTitle"
|
|
482
|
+
[attr.title]="columnMenuTitle"
|
|
483
|
+
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
484
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
445
485
|
<kendo-icon-wrapper
|
|
446
486
|
name="more-vertical"
|
|
447
487
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
|
@@ -454,7 +494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
454
494
|
</ng-template>
|
|
455
495
|
<ng-template #defaultTemplate>
|
|
456
496
|
<kendo-grid-columnmenu-container
|
|
457
|
-
(keydown.escape)="close()"
|
|
497
|
+
(keydown.escape)="close(true)"
|
|
458
498
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
459
499
|
<kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
|
460
500
|
</kendo-grid-columnmenu-sort>
|
|
@@ -506,7 +546,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
506
546
|
</kendo-grid-columnmenu-container>
|
|
507
547
|
</ng-template>
|
|
508
548
|
<ng-template #tabbedInterfaceTemplate>
|
|
509
|
-
<kendo-tabstrip #tabstrip (keydown.escape)="close()">
|
|
549
|
+
<kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
|
|
510
550
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
511
551
|
<ng-template kendoTabTitle>
|
|
512
552
|
<kendo-icon-wrapper
|
|
@@ -595,7 +635,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
595
635
|
</ng-template>
|
|
596
636
|
`
|
|
597
637
|
}]
|
|
598
|
-
}], ctorParameters: function () { return [{ type: i1.NavigationService }, { type: i2.SinglePopupService }, { type: i3.ColumnMenuService }, { type: i4.ContextService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i5.ColumnInfoService }
|
|
638
|
+
}], ctorParameters: function () { return [{ type: i1.NavigationService }, { type: i2.SinglePopupService }, { type: i3.ColumnMenuService }, { type: i4.ContextService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i5.ColumnInfoService }, { type: i6.IdService, decorators: [{
|
|
639
|
+
type: Optional
|
|
640
|
+
}] }]; }, propDecorators: { standalone: [{
|
|
599
641
|
type: HostBinding,
|
|
600
642
|
args: ['class.k-grid-column-menu-standalone']
|
|
601
643
|
}, {
|
|
@@ -23,8 +23,10 @@ import { ColumnMenuAutoSizeColumnComponent } from './column-menu-autosize.compon
|
|
|
23
23
|
import { ColumnMenuAutoSizeAllColumnsComponent } from './column-menu-autosize-all.component';
|
|
24
24
|
import { ButtonModule } from '@progress/kendo-angular-buttons';
|
|
25
25
|
import { TabStripModule } from '@progress/kendo-angular-layout';
|
|
26
|
+
import { ColumnMenuChooserItemCheckedDirective } from './column-chooser-item-checked.directive';
|
|
26
27
|
import * as i0 from "@angular/core";
|
|
27
28
|
const COMPONENTS = [
|
|
29
|
+
ColumnMenuChooserItemCheckedDirective,
|
|
28
30
|
ColumnListComponent,
|
|
29
31
|
ColumnChooserComponent,
|
|
30
32
|
ColumnMenuChooserComponent,
|
|
@@ -67,7 +69,8 @@ export class ColumnMenuModule {
|
|
|
67
69
|
}
|
|
68
70
|
}
|
|
69
71
|
ColumnMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
70
|
-
ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, declarations: [
|
|
72
|
+
ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, declarations: [ColumnMenuChooserItemCheckedDirective,
|
|
73
|
+
ColumnListComponent,
|
|
71
74
|
ColumnChooserComponent,
|
|
72
75
|
ColumnMenuChooserComponent,
|
|
73
76
|
ColumnMenuFilterComponent,
|
|
@@ -82,7 +85,8 @@ ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
82
85
|
ColumnMenuStickComponent,
|
|
83
86
|
ColumnMenuPositionComponent,
|
|
84
87
|
ColumnMenuAutoSizeColumnComponent,
|
|
85
|
-
ColumnMenuAutoSizeAllColumnsComponent], imports: [CommonModule, FilterMenuModule, ButtonModule, TabStripModule], exports: [
|
|
88
|
+
ColumnMenuAutoSizeAllColumnsComponent], imports: [CommonModule, FilterMenuModule, ButtonModule, TabStripModule], exports: [ColumnMenuChooserItemCheckedDirective,
|
|
89
|
+
ColumnListComponent,
|
|
86
90
|
ColumnChooserComponent,
|
|
87
91
|
ColumnMenuChooserComponent,
|
|
88
92
|
ColumnMenuFilterComponent,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @hidden
|
|
7
7
|
*/
|
|
8
|
-
export const
|
|
8
|
+
export const ColumnMenuErrorMessages = {
|
|
9
9
|
autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
|
|
10
10
|
autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns'
|
|
11
11
|
};
|
|
@@ -137,10 +137,10 @@ export class FilterMenuContainerComponent {
|
|
|
137
137
|
e.preventDefault();
|
|
138
138
|
if (buttonType === 'reset') {
|
|
139
139
|
// eslint-disable-next-line no-unused-expressions
|
|
140
|
-
this.
|
|
140
|
+
this.menuTabbingService.firstFocusable.focus();
|
|
141
141
|
}
|
|
142
142
|
else {
|
|
143
|
-
this.menuTabbingService.firstFocusable.focus();
|
|
143
|
+
this.disabled ? this.menuTabbingService.firstFocusable.focus() : this.resetButton.nativeElement.focus();
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { NavigationService } from './../../navigation/navigation.service';
|
|
6
|
-
import { Component, ElementRef, Input, TemplateRef, ViewChild } from '@angular/core';
|
|
6
|
+
import { ChangeDetectorRef, Component, ElementRef, Input, Optional, Renderer2, TemplateRef, ViewChild } from '@angular/core';
|
|
7
7
|
import { FilterService } from "../filter.service";
|
|
8
8
|
import { ColumnComponent } from '../../columns/column.component';
|
|
9
9
|
import { SinglePopupService } from '../../common/single-popup.service';
|
|
@@ -11,22 +11,30 @@ import { filtersByField } from '../base-filter-cell.component';
|
|
|
11
11
|
import { replaceMessagePlaceholder } from '../../utils';
|
|
12
12
|
import { filterIcon } from '@progress/kendo-svg-icons';
|
|
13
13
|
import { ContextService } from '../../common/provider.service';
|
|
14
|
+
import { IdService } from '../../common/id.service';
|
|
15
|
+
import { take } from 'rxjs/operators';
|
|
14
16
|
import * as i0 from "@angular/core";
|
|
15
17
|
import * as i1 from "../filter.service";
|
|
16
18
|
import * as i2 from "../../common/single-popup.service";
|
|
17
19
|
import * as i3 from "../../common/provider.service";
|
|
18
20
|
import * as i4 from "./../../navigation/navigation.service";
|
|
19
|
-
import * as i5 from "
|
|
20
|
-
import * as i6 from "
|
|
21
|
+
import * as i5 from "../../common/id.service";
|
|
22
|
+
import * as i6 from "@progress/kendo-angular-icons";
|
|
23
|
+
import * as i7 from "./filter-menu-container.component";
|
|
24
|
+
let id = 0;
|
|
25
|
+
const getId = (gridId) => `${gridId}-filter-menu-${id++}`;
|
|
21
26
|
/**
|
|
22
27
|
* @hidden
|
|
23
28
|
*/
|
|
24
29
|
export class FilterMenuComponent {
|
|
25
|
-
constructor(filterService, popupService, ctx, navigationService) {
|
|
30
|
+
constructor(filterService, popupService, ctx, navigationService, renderer, cdr, idService) {
|
|
26
31
|
this.filterService = filterService;
|
|
27
32
|
this.popupService = popupService;
|
|
28
33
|
this.ctx = ctx;
|
|
29
34
|
this.navigationService = navigationService;
|
|
35
|
+
this.renderer = renderer;
|
|
36
|
+
this.cdr = cdr;
|
|
37
|
+
this.idService = idService;
|
|
30
38
|
this.filterIcon = filterIcon;
|
|
31
39
|
this.tabIndex = '-1';
|
|
32
40
|
}
|
|
@@ -41,9 +49,35 @@ export class FilterMenuComponent {
|
|
|
41
49
|
const columnName = this.column.title || this.column.field;
|
|
42
50
|
return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
|
|
43
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* @hidden
|
|
54
|
+
*/
|
|
55
|
+
get isNavigable() {
|
|
56
|
+
return this.navigationService.tableEnabled;
|
|
57
|
+
}
|
|
44
58
|
toggle(anchor, template) {
|
|
45
59
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef);
|
|
46
|
-
|
|
60
|
+
// Needed as changes to 'popupRef' are not reflected
|
|
61
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
62
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
63
|
+
if (this.popupRef) {
|
|
64
|
+
this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
|
|
65
|
+
this.popupRef = null;
|
|
66
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
67
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
68
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
69
|
+
});
|
|
70
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-filter-popup');
|
|
71
|
+
if (popupAriaElement) {
|
|
72
|
+
const popupId = getId(this.idService?.gridId());
|
|
73
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
74
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
75
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.filterLabel);
|
|
76
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
77
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
47
81
|
if (this.navigationService.tableEnabled) {
|
|
48
82
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
49
83
|
}
|
|
@@ -55,6 +89,8 @@ export class FilterMenuComponent {
|
|
|
55
89
|
}
|
|
56
90
|
close() {
|
|
57
91
|
this.popupService.destroy();
|
|
92
|
+
this.popupRef = null;
|
|
93
|
+
this.cdr.markForCheck();
|
|
58
94
|
if (this.navigationService.tableEnabled) {
|
|
59
95
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
60
96
|
}
|
|
@@ -63,7 +99,7 @@ export class FilterMenuComponent {
|
|
|
63
99
|
}
|
|
64
100
|
}
|
|
65
101
|
}
|
|
66
|
-
FilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: i1.FilterService }, { token: i2.SinglePopupService }, { token: i3.ContextService }, { token: i4.NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
+
FilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: i1.FilterService }, { token: i2.SinglePopupService }, { token: i3.ContextService }, { token: i4.NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i5.IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
67
103
|
FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FilterMenuComponent, selector: "kendo-grid-filter-menu", inputs: { column: "column", filter: "filter", tabIndex: "tabIndex" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, static: true }, { propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `
|
|
68
104
|
<a #anchor
|
|
69
105
|
class="k-grid-filter-menu k-grid-header-menu"
|
|
@@ -72,7 +108,9 @@ FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
72
108
|
(click)="toggle(anchor, template)"
|
|
73
109
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
74
110
|
href="#"
|
|
75
|
-
[attr.title]="filterLabel"
|
|
111
|
+
[attr.title]="filterLabel"
|
|
112
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'"
|
|
113
|
+
[attr.aria-expanded]="isNavigable ? undefined : false">
|
|
76
114
|
<kendo-icon-wrapper
|
|
77
115
|
name="filter"
|
|
78
116
|
[svgIcon]="filterIcon"></kendo-icon-wrapper>
|
|
@@ -87,7 +125,7 @@ FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
87
125
|
>
|
|
88
126
|
</kendo-grid-filter-menu-container>
|
|
89
127
|
</ng-template>
|
|
90
|
-
`, isInline: true, components: [{ type:
|
|
128
|
+
`, isInline: true, components: [{ type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i7.FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }] });
|
|
91
129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, decorators: [{
|
|
92
130
|
type: Component,
|
|
93
131
|
args: [{
|
|
@@ -100,7 +138,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
100
138
|
(click)="toggle(anchor, template)"
|
|
101
139
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
102
140
|
href="#"
|
|
103
|
-
[attr.title]="filterLabel"
|
|
141
|
+
[attr.title]="filterLabel"
|
|
142
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'"
|
|
143
|
+
[attr.aria-expanded]="isNavigable ? undefined : false">
|
|
104
144
|
<kendo-icon-wrapper
|
|
105
145
|
name="filter"
|
|
106
146
|
[svgIcon]="filterIcon"></kendo-icon-wrapper>
|
|
@@ -117,7 +157,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
117
157
|
</ng-template>
|
|
118
158
|
`
|
|
119
159
|
}]
|
|
120
|
-
}], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.SinglePopupService }, { type: i3.ContextService }, { type: i4.NavigationService }
|
|
160
|
+
}], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.SinglePopupService }, { type: i3.ContextService }, { type: i4.NavigationService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i5.IdService, decorators: [{
|
|
161
|
+
type: Optional
|
|
162
|
+
}] }]; }, propDecorators: { column: [{
|
|
121
163
|
type: Input
|
|
122
164
|
}], filter: [{
|
|
123
165
|
type: Input
|
|
@@ -9,7 +9,7 @@ export const packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-grid',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
13
|
-
version: '13.4.
|
|
12
|
+
publishDate: 1693335897,
|
|
13
|
+
version: '13.4.1-develop.1',
|
|
14
14
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
15
15
|
};
|
|
@@ -31,6 +31,7 @@ import { sortAscSmallIcon, sortDescSmallIcon } from '@progress/kendo-svg-icons';
|
|
|
31
31
|
import { ContextService } from '../../common/provider.service';
|
|
32
32
|
import { ColumnReorderEvent } from '../../dragdrop/column-reorder-event';
|
|
33
33
|
import { ColumnsContainer } from '../../columns/columns-container';
|
|
34
|
+
import { NavigationService } from '../../navigation/navigation.service';
|
|
34
35
|
import * as i0 from "@angular/core";
|
|
35
36
|
import * as i1 from "../../common/single-popup.service";
|
|
36
37
|
import * as i2 from "../../dragdrop/drag-hint.service";
|
|
@@ -40,20 +41,21 @@ import * as i5 from "../../common/id.service";
|
|
|
40
41
|
import * as i6 from "../../common/sort.service";
|
|
41
42
|
import * as i7 from "./../../common/column-info.service";
|
|
42
43
|
import * as i8 from "../../common/provider.service";
|
|
43
|
-
import * as i9 from "../../
|
|
44
|
-
import * as i10 from "../../
|
|
45
|
-
import * as i11 from "
|
|
46
|
-
import * as i12 from "
|
|
47
|
-
import * as i13 from "
|
|
48
|
-
import * as i14 from "
|
|
49
|
-
import * as i15 from "../../navigation/logical-
|
|
50
|
-
import * as i16 from "../../
|
|
51
|
-
import * as i17 from "
|
|
52
|
-
import * as i18 from "
|
|
53
|
-
import * as i19 from "
|
|
54
|
-
import * as i20 from "
|
|
55
|
-
import * as i21 from "../../
|
|
56
|
-
import * as i22 from "../../
|
|
44
|
+
import * as i9 from "../../navigation/navigation.service";
|
|
45
|
+
import * as i10 from "../../filtering/menu/filter-menu.component";
|
|
46
|
+
import * as i11 from "../../column-menu/column-menu.component";
|
|
47
|
+
import * as i12 from "@progress/kendo-angular-icons";
|
|
48
|
+
import * as i13 from "../../filtering/filter-row.component";
|
|
49
|
+
import * as i14 from "@angular/common";
|
|
50
|
+
import * as i15 from "../../navigation/logical-row.directive";
|
|
51
|
+
import * as i16 from "../../navigation/logical-cell.directive";
|
|
52
|
+
import * as i17 from "../../dragdrop/drop-target.directive";
|
|
53
|
+
import * as i18 from "@progress/kendo-angular-common";
|
|
54
|
+
import * as i19 from "../../dragdrop/draggable-column.directive";
|
|
55
|
+
import * as i20 from "../common/template-context.directive";
|
|
56
|
+
import * as i21 from "../../selection/selectall-checkbox.directive";
|
|
57
|
+
import * as i22 from "../../navigation/focusable.directive";
|
|
58
|
+
import * as i23 from "../../column-resizing/column-handle.directive";
|
|
57
59
|
const mergeObjects = (...args) => Object.assign.apply(null, [{}].concat(args));
|
|
58
60
|
const directions = initialDirection => initialDirection === "asc" ? ["asc", "desc"] : ["desc", "asc"];
|
|
59
61
|
/**
|
|
@@ -79,7 +81,7 @@ const modifierKeys = ['alt', 'ctrl', 'shift', 'meta'];
|
|
|
79
81
|
* @hidden
|
|
80
82
|
*/
|
|
81
83
|
export class HeaderComponent {
|
|
82
|
-
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService) {
|
|
84
|
+
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService, navigationService) {
|
|
83
85
|
this.popupService = popupService;
|
|
84
86
|
this.hint = hint;
|
|
85
87
|
this.cue = cue;
|
|
@@ -89,6 +91,7 @@ export class HeaderComponent {
|
|
|
89
91
|
this.columnInfoService = columnInfoService;
|
|
90
92
|
this.cd = cd;
|
|
91
93
|
this.contextService = contextService;
|
|
94
|
+
this.navigationService = navigationService;
|
|
92
95
|
this.columns = [];
|
|
93
96
|
this.groups = [];
|
|
94
97
|
this.sort = new Array();
|
|
@@ -223,6 +226,9 @@ export class HeaderComponent {
|
|
|
223
226
|
return 'descending';
|
|
224
227
|
}
|
|
225
228
|
}
|
|
229
|
+
get isNavigable() {
|
|
230
|
+
return this.navigationService.tableEnabled;
|
|
231
|
+
}
|
|
226
232
|
/**
|
|
227
233
|
*
|
|
228
234
|
* @param column
|
|
@@ -450,7 +456,7 @@ export class HeaderComponent {
|
|
|
450
456
|
});
|
|
451
457
|
}
|
|
452
458
|
}
|
|
453
|
-
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: i1.SinglePopupService }, { token: i2.DragHintService }, { token: i3.DropCueService }, { token: i4.ColumnReorderService }, { token: i5.IdService }, { token: i6.SortService }, { token: i7.ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: i8.ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
459
|
+
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: i1.SinglePopupService }, { token: i2.DragHintService }, { token: i3.DropCueService }, { token: i4.ColumnReorderService }, { token: i5.IdService }, { token: i6.SortService }, { token: i7.ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: i8.ContextService }, { token: i9.NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
454
460
|
HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: { totalColumnLevels: "totalColumnLevels", columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", filterable: "filterable", sort: "sort", filter: "filter", sortable: "sortable", groupable: "groupable", lockedColumnsCount: "lockedColumnsCount", resizable: "resizable", reorderable: "reorderable", columnMenu: "columnMenu", columnMenuTemplate: "columnMenuTemplate", totalColumnsCount: "totalColumnsCount", totalColumns: "totalColumns", tabIndex: "tabIndex", size: "size" }, host: { properties: { "class.k-grid-header": "this.headerClass", "class.k-table-thead": "this.hostClass" } }, viewQueries: [{ propertyName: "dropTargets", predicate: DropTargetDirective, descendants: true }, { propertyName: "filterMenus", predicate: FilterMenuComponent, descendants: true }, { propertyName: "columnMenus", predicate: ColumnMenuComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
455
461
|
<ng-container>
|
|
456
462
|
<tr *ngFor="let i of columnLevels; let levelIndex = index"
|
|
@@ -502,7 +508,9 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
502
508
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
503
509
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
504
510
|
[attr.colspan]="column.colspan"
|
|
505
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
511
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
512
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
513
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
506
514
|
|
|
507
515
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
508
516
|
<span class="k-cell-inner">
|
|
@@ -668,7 +676,7 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
668
676
|
[totalColumns]="totalColumns"
|
|
669
677
|
></tr>
|
|
670
678
|
</ng-container>
|
|
671
|
-
`, isInline: true, components: [{ type:
|
|
679
|
+
`, isInline: true, components: [{ type: i10.FilterMenuComponent, selector: "kendo-grid-filter-menu", inputs: ["column", "filter", "tabIndex"] }, { type: i11.ColumnMenuComponent, selector: "kendo-grid-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate", "tabIndex"] }, { type: i12.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i13.FilterRowComponent, selector: "[kendoGridFilterRow]", inputs: ["columns", "filter", "groups", "detailTemplate", "logicalRowIndex", "lockedColumnsCount"] }], directives: [{ type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i15.LogicalRowDirective, selector: "[kendoGridLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem", "totalColumns"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i16.LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { type: i17.DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { type: i18.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i19.DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { type: i14.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i14.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i20.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i21.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { type: i22.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i23.ColumnHandleDirective, selector: "[kendoGridColumnHandle]", inputs: ["columns", "column"] }] });
|
|
672
680
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
673
681
|
type: Component,
|
|
674
682
|
args: [{
|
|
@@ -724,7 +732,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
724
732
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
725
733
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
726
734
|
[attr.colspan]="column.colspan"
|
|
727
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
735
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
736
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
737
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
728
738
|
|
|
729
739
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
730
740
|
<span class="k-cell-inner">
|
|
@@ -892,7 +902,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
892
902
|
</ng-container>
|
|
893
903
|
`
|
|
894
904
|
}]
|
|
895
|
-
}], ctorParameters: function () { return [{ type: i1.SinglePopupService }, { type: i2.DragHintService }, { type: i3.DropCueService }, { type: i4.ColumnReorderService }, { type: i5.IdService }, { type: i6.SortService }, { type: i7.ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: i8.ContextService }]; }, propDecorators: { totalColumnLevels: [{
|
|
905
|
+
}], ctorParameters: function () { return [{ type: i1.SinglePopupService }, { type: i2.DragHintService }, { type: i3.DropCueService }, { type: i4.ColumnReorderService }, { type: i5.IdService }, { type: i6.SortService }, { type: i7.ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: i8.ContextService }, { type: i9.NavigationService }]; }, propDecorators: { totalColumnLevels: [{
|
|
896
906
|
type: Input
|
|
897
907
|
}], columns: [{
|
|
898
908
|
type: Input
|