@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
|
@@ -34,7 +34,7 @@ import * as i3$1 from '@progress/kendo-angular-inputs';
|
|
|
34
34
|
import { NumericTextBoxComponent, InputsModule, NumericTextBoxModule } from '@progress/kendo-angular-inputs';
|
|
35
35
|
import * as i4$3 from '@progress/kendo-angular-dateinputs';
|
|
36
36
|
import { DatePickerModule } from '@progress/kendo-angular-dateinputs';
|
|
37
|
-
import * as
|
|
37
|
+
import * as i17 from '@progress/kendo-angular-layout';
|
|
38
38
|
import { TabStripComponent, TabStripModule } from '@progress/kendo-angular-layout';
|
|
39
39
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
40
40
|
import { getter } from '@progress/kendo-common';
|
|
@@ -4474,8 +4474,8 @@ const packageMetadata = {
|
|
|
4474
4474
|
name: '@progress/kendo-angular-grid',
|
|
4475
4475
|
productName: 'Kendo UI for Angular',
|
|
4476
4476
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
4477
|
-
publishDate:
|
|
4478
|
-
version: '13.4.
|
|
4477
|
+
publishDate: 1693335897,
|
|
4478
|
+
version: '13.4.1-develop.1',
|
|
4479
4479
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
4480
4480
|
};
|
|
4481
4481
|
|
|
@@ -11154,10 +11154,10 @@ class FilterMenuContainerComponent {
|
|
|
11154
11154
|
e.preventDefault();
|
|
11155
11155
|
if (buttonType === 'reset') {
|
|
11156
11156
|
// eslint-disable-next-line no-unused-expressions
|
|
11157
|
-
this.
|
|
11157
|
+
this.menuTabbingService.firstFocusable.focus();
|
|
11158
11158
|
}
|
|
11159
11159
|
else {
|
|
11160
|
-
this.menuTabbingService.firstFocusable.focus();
|
|
11160
|
+
this.disabled ? this.menuTabbingService.firstFocusable.focus() : this.resetButton.nativeElement.focus();
|
|
11161
11161
|
}
|
|
11162
11162
|
}
|
|
11163
11163
|
}
|
|
@@ -11283,15 +11283,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11283
11283
|
args: ['filterButton', { static: false }]
|
|
11284
11284
|
}] } });
|
|
11285
11285
|
|
|
11286
|
+
let id$3 = 0;
|
|
11287
|
+
const getId$1 = (gridId) => `${gridId}-filter-menu-${id$3++}`;
|
|
11286
11288
|
/**
|
|
11287
11289
|
* @hidden
|
|
11288
11290
|
*/
|
|
11289
11291
|
class FilterMenuComponent {
|
|
11290
|
-
constructor(filterService, popupService, ctx, navigationService) {
|
|
11292
|
+
constructor(filterService, popupService, ctx, navigationService, renderer, cdr, idService) {
|
|
11291
11293
|
this.filterService = filterService;
|
|
11292
11294
|
this.popupService = popupService;
|
|
11293
11295
|
this.ctx = ctx;
|
|
11294
11296
|
this.navigationService = navigationService;
|
|
11297
|
+
this.renderer = renderer;
|
|
11298
|
+
this.cdr = cdr;
|
|
11299
|
+
this.idService = idService;
|
|
11295
11300
|
this.filterIcon = filterIcon;
|
|
11296
11301
|
this.tabIndex = '-1';
|
|
11297
11302
|
}
|
|
@@ -11306,9 +11311,36 @@ class FilterMenuComponent {
|
|
|
11306
11311
|
const columnName = this.column.title || this.column.field;
|
|
11307
11312
|
return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
|
|
11308
11313
|
}
|
|
11314
|
+
/**
|
|
11315
|
+
* @hidden
|
|
11316
|
+
*/
|
|
11317
|
+
get isNavigable() {
|
|
11318
|
+
return this.navigationService.tableEnabled;
|
|
11319
|
+
}
|
|
11309
11320
|
toggle(anchor, template) {
|
|
11321
|
+
var _a;
|
|
11310
11322
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef);
|
|
11311
|
-
|
|
11323
|
+
// Needed as changes to 'popupRef' are not reflected
|
|
11324
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
11325
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
11326
|
+
if (this.popupRef) {
|
|
11327
|
+
this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
|
|
11328
|
+
this.popupRef = null;
|
|
11329
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
11330
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
11331
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
11332
|
+
});
|
|
11333
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-filter-popup');
|
|
11334
|
+
if (popupAriaElement) {
|
|
11335
|
+
const popupId = getId$1((_a = this.idService) === null || _a === void 0 ? void 0 : _a.gridId());
|
|
11336
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
11337
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
11338
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.filterLabel);
|
|
11339
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
11340
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
11341
|
+
}
|
|
11342
|
+
}
|
|
11343
|
+
else {
|
|
11312
11344
|
if (this.navigationService.tableEnabled) {
|
|
11313
11345
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
11314
11346
|
}
|
|
@@ -11320,6 +11352,8 @@ class FilterMenuComponent {
|
|
|
11320
11352
|
}
|
|
11321
11353
|
close() {
|
|
11322
11354
|
this.popupService.destroy();
|
|
11355
|
+
this.popupRef = null;
|
|
11356
|
+
this.cdr.markForCheck();
|
|
11323
11357
|
if (this.navigationService.tableEnabled) {
|
|
11324
11358
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
11325
11359
|
}
|
|
@@ -11328,7 +11362,7 @@ class FilterMenuComponent {
|
|
|
11328
11362
|
}
|
|
11329
11363
|
}
|
|
11330
11364
|
}
|
|
11331
|
-
FilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: FilterService }, { token: SinglePopupService }, { token: ContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11365
|
+
FilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: FilterService }, { token: SinglePopupService }, { token: ContextService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
11332
11366
|
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: `
|
|
11333
11367
|
<a #anchor
|
|
11334
11368
|
class="k-grid-filter-menu k-grid-header-menu"
|
|
@@ -11337,7 +11371,9 @@ FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
11337
11371
|
(click)="toggle(anchor, template)"
|
|
11338
11372
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
11339
11373
|
href="#"
|
|
11340
|
-
[attr.title]="filterLabel"
|
|
11374
|
+
[attr.title]="filterLabel"
|
|
11375
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'"
|
|
11376
|
+
[attr.aria-expanded]="isNavigable ? undefined : false">
|
|
11341
11377
|
<kendo-icon-wrapper
|
|
11342
11378
|
name="filter"
|
|
11343
11379
|
[svgIcon]="filterIcon"></kendo-icon-wrapper>
|
|
@@ -11365,7 +11401,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11365
11401
|
(click)="toggle(anchor, template)"
|
|
11366
11402
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
11367
11403
|
href="#"
|
|
11368
|
-
[attr.title]="filterLabel"
|
|
11404
|
+
[attr.title]="filterLabel"
|
|
11405
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'"
|
|
11406
|
+
[attr.aria-expanded]="isNavigable ? undefined : false">
|
|
11369
11407
|
<kendo-icon-wrapper
|
|
11370
11408
|
name="filter"
|
|
11371
11409
|
[svgIcon]="filterIcon"></kendo-icon-wrapper>
|
|
@@ -11382,7 +11420,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11382
11420
|
</ng-template>
|
|
11383
11421
|
`
|
|
11384
11422
|
}]
|
|
11385
|
-
}], ctorParameters: function () {
|
|
11423
|
+
}], ctorParameters: function () {
|
|
11424
|
+
return [{ type: FilterService }, { type: SinglePopupService }, { type: ContextService }, { type: NavigationService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: IdService, decorators: [{
|
|
11425
|
+
type: Optional
|
|
11426
|
+
}] }];
|
|
11427
|
+
}, propDecorators: { column: [{
|
|
11386
11428
|
type: Input
|
|
11387
11429
|
}], filter: [{
|
|
11388
11430
|
type: Input
|
|
@@ -11440,7 +11482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11440
11482
|
/**
|
|
11441
11483
|
* @hidden
|
|
11442
11484
|
*/
|
|
11443
|
-
const
|
|
11485
|
+
const ColumnMenuErrorMessages = {
|
|
11444
11486
|
autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
|
|
11445
11487
|
autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns'
|
|
11446
11488
|
};
|
|
@@ -11548,6 +11590,9 @@ class ColumnMenuItemComponent {
|
|
|
11548
11590
|
this.collapse = new EventEmitter();
|
|
11549
11591
|
this.contentState = 'collapsed';
|
|
11550
11592
|
}
|
|
11593
|
+
ngAfterViewInit() {
|
|
11594
|
+
this.contentTemplate && (this.contentId = `k-${guid()}`);
|
|
11595
|
+
}
|
|
11551
11596
|
ngOnChanges(changes) {
|
|
11552
11597
|
if (changes.expanded) {
|
|
11553
11598
|
this.updateContentState();
|
|
@@ -11582,13 +11627,14 @@ ColumnMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
11582
11627
|
[class.k-selected]="selected"
|
|
11583
11628
|
[class.k-disabled]="disabled"
|
|
11584
11629
|
role="button"
|
|
11585
|
-
[attr.aria-expanded]="expanded"
|
|
11630
|
+
[attr.aria-expanded]="expanded"
|
|
11631
|
+
[attr.aria-controls]="expanded ? contentId : undefined">
|
|
11586
11632
|
<kendo-icon-wrapper
|
|
11587
11633
|
[name]="icon"
|
|
11588
11634
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
11589
11635
|
{{ text }}
|
|
11590
11636
|
</div>
|
|
11591
|
-
<div *ngIf="contentTemplate" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11637
|
+
<div *ngIf="contentTemplate" [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11592
11638
|
<ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
|
|
11593
11639
|
</ng-container>
|
|
11594
11640
|
<div>
|
|
@@ -11650,13 +11696,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11650
11696
|
[class.k-selected]="selected"
|
|
11651
11697
|
[class.k-disabled]="disabled"
|
|
11652
11698
|
role="button"
|
|
11653
|
-
[attr.aria-expanded]="expanded"
|
|
11699
|
+
[attr.aria-expanded]="expanded"
|
|
11700
|
+
[attr.aria-controls]="expanded ? contentId : undefined">
|
|
11654
11701
|
<kendo-icon-wrapper
|
|
11655
11702
|
[name]="icon"
|
|
11656
11703
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
11657
11704
|
{{ text }}
|
|
11658
11705
|
</div>
|
|
11659
|
-
<div *ngIf="contentTemplate" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11706
|
+
<div *ngIf="contentTemplate" [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11660
11707
|
<ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
|
|
11661
11708
|
</ng-container>
|
|
11662
11709
|
<div>
|
|
@@ -12032,14 +12079,79 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12032
12079
|
type: Input
|
|
12033
12080
|
}] } });
|
|
12034
12081
|
|
|
12082
|
+
/**
|
|
12083
|
+
* @hidden
|
|
12084
|
+
*/
|
|
12085
|
+
class ColumnListKeyboardNavigation {
|
|
12086
|
+
constructor(renderer) {
|
|
12087
|
+
this.renderer = renderer;
|
|
12088
|
+
this.activeIndex = 0;
|
|
12089
|
+
}
|
|
12090
|
+
next() {
|
|
12091
|
+
this.toggle(this.activeIndex, false);
|
|
12092
|
+
this.activeIndex = Math.min(this.activeIndex + 1, this.items.length - 1);
|
|
12093
|
+
this.toggle(this.activeIndex, true);
|
|
12094
|
+
}
|
|
12095
|
+
prev() {
|
|
12096
|
+
this.toggle(this.activeIndex, false);
|
|
12097
|
+
this.activeIndex = Math.max(this.activeIndex - 1, 0);
|
|
12098
|
+
this.toggle(this.activeIndex, true);
|
|
12099
|
+
}
|
|
12100
|
+
toggle(index, active) {
|
|
12101
|
+
var _a;
|
|
12102
|
+
const element = (_a = this.items[index]) === null || _a === void 0 ? void 0 : _a.host.nativeElement;
|
|
12103
|
+
element && this.renderer.setAttribute(this.items[index].host.nativeElement, 'tabindex', active ? '0' : '-1');
|
|
12104
|
+
active && element && element.focus();
|
|
12105
|
+
}
|
|
12106
|
+
toggleCheckedState() {
|
|
12107
|
+
this.items[this.activeIndex].host.nativeElement.firstElementChild.click();
|
|
12108
|
+
}
|
|
12109
|
+
}
|
|
12110
|
+
ColumnListKeyboardNavigation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12111
|
+
ColumnListKeyboardNavigation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation });
|
|
12112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation, decorators: [{
|
|
12113
|
+
type: Injectable
|
|
12114
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
|
12115
|
+
|
|
12116
|
+
/**
|
|
12117
|
+
* @hidden
|
|
12118
|
+
*/
|
|
12119
|
+
class ColumnMenuChooserItemCheckedDirective {
|
|
12120
|
+
constructor(host, renderer) {
|
|
12121
|
+
this.host = host;
|
|
12122
|
+
this.renderer = renderer;
|
|
12123
|
+
this.checkedChangeSub = new Subscription();
|
|
12124
|
+
}
|
|
12125
|
+
ngAfterViewInit() {
|
|
12126
|
+
this.checkedChangeSub.add(this.renderer.listen(this.host.nativeElement.firstElementChild, 'change', (e) => {
|
|
12127
|
+
this.kendoColumnMenuChooserItemChecked = e.target.checked;
|
|
12128
|
+
}));
|
|
12129
|
+
}
|
|
12130
|
+
ngOnDestroy() {
|
|
12131
|
+
this.checkedChangeSub.unsubscribe();
|
|
12132
|
+
}
|
|
12133
|
+
}
|
|
12134
|
+
ColumnMenuChooserItemCheckedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserItemCheckedDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
12135
|
+
ColumnMenuChooserItemCheckedDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ColumnMenuChooserItemCheckedDirective, selector: "[kendoColumnMenuChooserItemChecked]", inputs: { kendoColumnMenuChooserItemChecked: "kendoColumnMenuChooserItemChecked" }, host: { properties: { "attr.aria-checked": "this.kendoColumnMenuChooserItemChecked" } }, ngImport: i0 });
|
|
12136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserItemCheckedDirective, decorators: [{
|
|
12137
|
+
type: Directive,
|
|
12138
|
+
args: [{ selector: '[kendoColumnMenuChooserItemChecked]' }]
|
|
12139
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { kendoColumnMenuChooserItemChecked: [{
|
|
12140
|
+
type: HostBinding,
|
|
12141
|
+
args: ['attr.aria-checked']
|
|
12142
|
+
}, {
|
|
12143
|
+
type: Input
|
|
12144
|
+
}] } });
|
|
12145
|
+
|
|
12035
12146
|
/**
|
|
12036
12147
|
* @hidden
|
|
12037
12148
|
*/
|
|
12038
12149
|
class ColumnListComponent {
|
|
12039
|
-
constructor(element, ngZone, renderer) {
|
|
12150
|
+
constructor(element, ngZone, renderer, listNavigationService) {
|
|
12040
12151
|
this.element = element;
|
|
12041
12152
|
this.ngZone = ngZone;
|
|
12042
12153
|
this.renderer = renderer;
|
|
12154
|
+
this.listNavigationService = listNavigationService;
|
|
12043
12155
|
this.reset = new EventEmitter();
|
|
12044
12156
|
this.apply = new EventEmitter();
|
|
12045
12157
|
this.columnChange = new EventEmitter();
|
|
@@ -12047,10 +12159,28 @@ class ColumnListComponent {
|
|
|
12047
12159
|
this.allowHideAll = false;
|
|
12048
12160
|
this.actionsClass = 'k-actions k-actions-stretched k-actions-horizontal';
|
|
12049
12161
|
this.unlockedCount = 0;
|
|
12162
|
+
this.domSubscriptions = new Subscription();
|
|
12163
|
+
this.onKeydown = (e) => {
|
|
12164
|
+
if (e.keyCode !== Keys.Tab) {
|
|
12165
|
+
e.preventDefault();
|
|
12166
|
+
}
|
|
12167
|
+
if (e.keyCode === Keys.ArrowDown) {
|
|
12168
|
+
this.listNavigationService.next();
|
|
12169
|
+
}
|
|
12170
|
+
else if (e.keyCode === Keys.ArrowUp) {
|
|
12171
|
+
this.listNavigationService.prev();
|
|
12172
|
+
}
|
|
12173
|
+
else if (e.keyCode === Keys.Space && e.target.classList.contains('k-column-list-item')) {
|
|
12174
|
+
this.listNavigationService.toggleCheckedState();
|
|
12175
|
+
}
|
|
12176
|
+
};
|
|
12050
12177
|
}
|
|
12051
12178
|
get className() {
|
|
12052
12179
|
return true;
|
|
12053
12180
|
}
|
|
12181
|
+
isChecked(checkbox) {
|
|
12182
|
+
return checkbox.checked;
|
|
12183
|
+
}
|
|
12054
12184
|
set columns(value) {
|
|
12055
12185
|
this._columns = value.filter(column => column.includeInChooser !== false);
|
|
12056
12186
|
this.allColumns = value;
|
|
@@ -12068,12 +12198,21 @@ class ColumnListComponent {
|
|
|
12068
12198
|
return;
|
|
12069
12199
|
}
|
|
12070
12200
|
this.ngZone.runOutsideAngular(() => {
|
|
12071
|
-
this.domSubscriptions
|
|
12072
|
-
|
|
12201
|
+
this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'click', (e) => {
|
|
12202
|
+
const closestItem = e.target.closest('.k-column-list-item');
|
|
12203
|
+
if (closestItem) {
|
|
12204
|
+
const checkbox = closestItem.querySelector('.k-checkbox');
|
|
12205
|
+
const index = parseInt(checkbox.getAttribute('data-index'), 10);
|
|
12206
|
+
if (e.target === checkbox) {
|
|
12207
|
+
closestItem.focus();
|
|
12208
|
+
}
|
|
12209
|
+
else {
|
|
12210
|
+
e.preventDefault();
|
|
12211
|
+
checkbox.checked = !checkbox.checked;
|
|
12212
|
+
}
|
|
12073
12213
|
if (this.autoSync) {
|
|
12074
|
-
const index = parseInt(e.target.getAttribute('data-index'), 10);
|
|
12075
12214
|
const column = this.columns[index];
|
|
12076
|
-
const hidden = !
|
|
12215
|
+
const hidden = !checkbox.checked;
|
|
12077
12216
|
if (Boolean(column.hidden) !== hidden) {
|
|
12078
12217
|
this.ngZone.run(() => {
|
|
12079
12218
|
column.hidden = hidden;
|
|
@@ -12084,10 +12223,20 @@ class ColumnListComponent {
|
|
|
12084
12223
|
else {
|
|
12085
12224
|
this.updateDisabled();
|
|
12086
12225
|
}
|
|
12226
|
+
if (index !== this.listNavigationService.activeIndex) {
|
|
12227
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
|
|
12228
|
+
this.listNavigationService.activeIndex = index;
|
|
12229
|
+
this.listNavigationService.toggle(index, true);
|
|
12230
|
+
}
|
|
12087
12231
|
}
|
|
12088
|
-
});
|
|
12232
|
+
}));
|
|
12233
|
+
this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'keydown', this.onKeydown));
|
|
12089
12234
|
});
|
|
12090
12235
|
}
|
|
12236
|
+
ngAfterViewInit() {
|
|
12237
|
+
this.listNavigationService.items = this.options.toArray();
|
|
12238
|
+
this.listNavigationService.toggle(0, true);
|
|
12239
|
+
}
|
|
12091
12240
|
ngOnChanges(changes) {
|
|
12092
12241
|
if (!this.service) {
|
|
12093
12242
|
return;
|
|
@@ -12100,9 +12249,7 @@ class ColumnListComponent {
|
|
|
12100
12249
|
}
|
|
12101
12250
|
}
|
|
12102
12251
|
ngOnDestroy() {
|
|
12103
|
-
|
|
12104
|
-
this.domSubscriptions();
|
|
12105
|
-
}
|
|
12252
|
+
this.domSubscriptions.unsubscribe();
|
|
12106
12253
|
}
|
|
12107
12254
|
cancelChanges() {
|
|
12108
12255
|
this.forEachCheckBox((element, index) => {
|
|
@@ -12130,6 +12277,9 @@ class ColumnListComponent {
|
|
|
12130
12277
|
if (this.service) {
|
|
12131
12278
|
this.service.menuTabbingService.firstFocusable.focus();
|
|
12132
12279
|
}
|
|
12280
|
+
else {
|
|
12281
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, true);
|
|
12282
|
+
}
|
|
12133
12283
|
}
|
|
12134
12284
|
}
|
|
12135
12285
|
forEachCheckBox(callback) {
|
|
@@ -12176,35 +12326,94 @@ class ColumnListComponent {
|
|
|
12176
12326
|
}
|
|
12177
12327
|
}
|
|
12178
12328
|
}
|
|
12179
|
-
ColumnListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
12180
|
-
ColumnListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: { columns: "columns", autoSync: "autoSync", 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" } }, viewQueries: [{ propertyName: "applyButton", first: true, predicate: ["applyButton"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
12181
|
-
<div
|
|
12182
|
-
|
|
12183
|
-
|
|
12329
|
+
ColumnListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: ColumnListKeyboardNavigation }], target: i0.ɵɵFactoryTarget.Component });
|
|
12330
|
+
ColumnListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnListComponent, 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 }], usesOnChanges: true, ngImport: i0, template: `
|
|
12331
|
+
<div
|
|
12332
|
+
class="k-column-list"
|
|
12333
|
+
role="listbox"
|
|
12334
|
+
aria-multiselectable="true"
|
|
12335
|
+
[attr.aria-label]="ariaLabel">
|
|
12336
|
+
<label
|
|
12337
|
+
*ngFor="let column of columns; let index = index;"
|
|
12338
|
+
class='k-column-list-item'
|
|
12339
|
+
[kendoColumnMenuChooserItemChecked]="!column.hidden"
|
|
12340
|
+
role="option">
|
|
12341
|
+
<input
|
|
12342
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
12343
|
+
type="checkbox"
|
|
12344
|
+
[attr.data-index]="index"
|
|
12345
|
+
[checked]="!column.hidden"
|
|
12346
|
+
tabindex="-1"
|
|
12347
|
+
[attr.aria-hidden]="true"
|
|
12348
|
+
[disabled]="isDisabled(column)" />
|
|
12349
|
+
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
12184
12350
|
</label>
|
|
12185
12351
|
</div>
|
|
12186
12352
|
<div [ngClass]="actionsClass" *ngIf="!autoSync">
|
|
12187
|
-
<button
|
|
12188
|
-
|
|
12353
|
+
<button
|
|
12354
|
+
#applyButton
|
|
12355
|
+
type="button"
|
|
12356
|
+
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12357
|
+
(click)="applyChanges()"
|
|
12358
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
|
|
12359
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
|
|
12360
|
+
<button
|
|
12361
|
+
#resetButton
|
|
12362
|
+
type="button"
|
|
12363
|
+
(keydown.tab)="onTab($event)"
|
|
12364
|
+
class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12365
|
+
(click)="cancelChanges()"
|
|
12366
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
12367
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
12189
12368
|
</div>
|
|
12190
|
-
`, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
12369
|
+
`, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ColumnMenuChooserItemCheckedDirective, selector: "[kendoColumnMenuChooserItemChecked]", inputs: ["kendoColumnMenuChooserItemChecked"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
12191
12370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListComponent, decorators: [{
|
|
12192
12371
|
type: Component,
|
|
12193
12372
|
args: [{
|
|
12194
12373
|
selector: 'kendo-grid-columnlist',
|
|
12374
|
+
providers: [ColumnListKeyboardNavigation],
|
|
12195
12375
|
template: `
|
|
12196
|
-
<div
|
|
12197
|
-
|
|
12198
|
-
|
|
12376
|
+
<div
|
|
12377
|
+
class="k-column-list"
|
|
12378
|
+
role="listbox"
|
|
12379
|
+
aria-multiselectable="true"
|
|
12380
|
+
[attr.aria-label]="ariaLabel">
|
|
12381
|
+
<label
|
|
12382
|
+
*ngFor="let column of columns; let index = index;"
|
|
12383
|
+
class='k-column-list-item'
|
|
12384
|
+
[kendoColumnMenuChooserItemChecked]="!column.hidden"
|
|
12385
|
+
role="option">
|
|
12386
|
+
<input
|
|
12387
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
12388
|
+
type="checkbox"
|
|
12389
|
+
[attr.data-index]="index"
|
|
12390
|
+
[checked]="!column.hidden"
|
|
12391
|
+
tabindex="-1"
|
|
12392
|
+
[attr.aria-hidden]="true"
|
|
12393
|
+
[disabled]="isDisabled(column)" />
|
|
12394
|
+
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
12199
12395
|
</label>
|
|
12200
12396
|
</div>
|
|
12201
12397
|
<div [ngClass]="actionsClass" *ngIf="!autoSync">
|
|
12202
|
-
<button
|
|
12203
|
-
|
|
12398
|
+
<button
|
|
12399
|
+
#applyButton
|
|
12400
|
+
type="button"
|
|
12401
|
+
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12402
|
+
(click)="applyChanges()"
|
|
12403
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
|
|
12404
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
|
|
12405
|
+
<button
|
|
12406
|
+
#resetButton
|
|
12407
|
+
type="button"
|
|
12408
|
+
(keydown.tab)="onTab($event)"
|
|
12409
|
+
class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12410
|
+
(click)="cancelChanges()"
|
|
12411
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
12412
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
12204
12413
|
</div>
|
|
12205
12414
|
`
|
|
12206
12415
|
}]
|
|
12207
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { className: [{
|
|
12416
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: ColumnListKeyboardNavigation }]; }, propDecorators: { className: [{
|
|
12208
12417
|
type: HostBinding,
|
|
12209
12418
|
args: ["class.k-column-list-wrapper"]
|
|
12210
12419
|
}], reset: [{
|
|
@@ -12217,6 +12426,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12217
12426
|
type: Input
|
|
12218
12427
|
}], autoSync: [{
|
|
12219
12428
|
type: Input
|
|
12429
|
+
}], ariaLabel: [{
|
|
12430
|
+
type: Input
|
|
12220
12431
|
}], allowHideAll: [{
|
|
12221
12432
|
type: Input
|
|
12222
12433
|
}], applyText: [{
|
|
@@ -12231,9 +12442,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12231
12442
|
type: Input
|
|
12232
12443
|
}], service: [{
|
|
12233
12444
|
type: Input
|
|
12445
|
+
}], resetButton: [{
|
|
12446
|
+
type: ViewChild,
|
|
12447
|
+
args: ['resetButton', { static: false }]
|
|
12234
12448
|
}], applyButton: [{
|
|
12235
12449
|
type: ViewChild,
|
|
12236
12450
|
args: ['applyButton', { static: false }]
|
|
12451
|
+
}], options: [{
|
|
12452
|
+
type: ViewChildren,
|
|
12453
|
+
args: [ColumnMenuChooserItemCheckedDirective]
|
|
12237
12454
|
}] } });
|
|
12238
12455
|
|
|
12239
12456
|
/**
|
|
@@ -12326,6 +12543,7 @@ ColumnMenuChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
12326
12543
|
<kendo-grid-columnlist
|
|
12327
12544
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
12328
12545
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
12546
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
12329
12547
|
[columns]="columns"
|
|
12330
12548
|
[autoSync]="false"
|
|
12331
12549
|
[allowHideAll]="false"
|
|
@@ -12337,7 +12555,7 @@ ColumnMenuChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
12337
12555
|
</kendo-grid-columnlist>
|
|
12338
12556
|
</ng-template>
|
|
12339
12557
|
</kendo-grid-columnmenu-item>
|
|
12340
|
-
`, isInline: true, components: [{ type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded"], outputs: ["itemClick", "expand", "collapse"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }], directives: [{ type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
|
|
12558
|
+
`, isInline: true, components: [{ type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded"], outputs: ["itemClick", "expand", "collapse"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }], directives: [{ type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
|
|
12341
12559
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserComponent, decorators: [{
|
|
12342
12560
|
type: Component,
|
|
12343
12561
|
args: [{
|
|
@@ -12354,6 +12572,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12354
12572
|
<kendo-grid-columnlist
|
|
12355
12573
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
12356
12574
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
12575
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
12357
12576
|
[columns]="columns"
|
|
12358
12577
|
[autoSync]="false"
|
|
12359
12578
|
[allowHideAll]="false"
|
|
@@ -12757,7 +12976,7 @@ class ColumnMenuAutoSizeColumnComponent extends ColumnMenuItemBase {
|
|
|
12757
12976
|
ngOnInit() {
|
|
12758
12977
|
const isVirtualColumns = this.ctx.grid.columnMenuTemplate && this.ctx.grid.virtualColumns;
|
|
12759
12978
|
if (isVirtualColumns && isDevMode()) {
|
|
12760
|
-
console.warn(
|
|
12979
|
+
console.warn(ColumnMenuErrorMessages.autoSizeColumn);
|
|
12761
12980
|
}
|
|
12762
12981
|
}
|
|
12763
12982
|
/**
|
|
@@ -12824,7 +13043,7 @@ class ColumnMenuAutoSizeAllColumnsComponent extends ColumnMenuItemBase {
|
|
|
12824
13043
|
ngOnInit() {
|
|
12825
13044
|
const isVirtualColumns = this.ctx.grid.columnMenuTemplate && this.ctx.grid.virtualColumns;
|
|
12826
13045
|
if (isVirtualColumns && isDevMode()) {
|
|
12827
|
-
console.warn(
|
|
13046
|
+
console.warn(ColumnMenuErrorMessages.autoSizeAllColumns);
|
|
12828
13047
|
}
|
|
12829
13048
|
}
|
|
12830
13049
|
/**
|
|
@@ -12861,6 +13080,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12861
13080
|
}], ctorParameters: function () { return [{ type: ContextService }]; } });
|
|
12862
13081
|
|
|
12863
13082
|
const POPUP_CLASS = 'k-grid-columnmenu-popup';
|
|
13083
|
+
let id$2 = 0;
|
|
13084
|
+
const getId = (gridId) => `${gridId}-column-menu-${id$2++}`;
|
|
12864
13085
|
/**
|
|
12865
13086
|
* Represents the [column menu](slug:columnmenu_grid#toc-customizing-the-position) component.
|
|
12866
13087
|
*
|
|
@@ -12873,7 +13094,7 @@ const POPUP_CLASS = 'k-grid-columnmenu-popup';
|
|
|
12873
13094
|
* </kendo-grid>
|
|
12874
13095
|
*/
|
|
12875
13096
|
class ColumnMenuComponent {
|
|
12876
|
-
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService) {
|
|
13097
|
+
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService, idService) {
|
|
12877
13098
|
this.navigationService = navigationService;
|
|
12878
13099
|
this.popupService = popupService;
|
|
12879
13100
|
this.service = service;
|
|
@@ -12881,6 +13102,7 @@ class ColumnMenuComponent {
|
|
|
12881
13102
|
this.renderer = renderer;
|
|
12882
13103
|
this.cdr = cdr;
|
|
12883
13104
|
this.columnInfoService = columnInfoService;
|
|
13105
|
+
this.idService = idService;
|
|
12884
13106
|
/**
|
|
12885
13107
|
* @hidden
|
|
12886
13108
|
*/
|
|
@@ -12926,7 +13148,7 @@ class ColumnMenuComponent {
|
|
|
12926
13148
|
*/
|
|
12927
13149
|
this.expandedPosition = false;
|
|
12928
13150
|
this.moreVerticalIcon = moreVerticalIcon;
|
|
12929
|
-
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this));
|
|
13151
|
+
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this, true));
|
|
12930
13152
|
}
|
|
12931
13153
|
/**
|
|
12932
13154
|
* @hidden
|
|
@@ -12952,6 +13174,12 @@ class ColumnMenuComponent {
|
|
|
12952
13174
|
get hasFilter() {
|
|
12953
13175
|
return hasFilter(this.settings, this.column);
|
|
12954
13176
|
}
|
|
13177
|
+
/**
|
|
13178
|
+
* @hidden
|
|
13179
|
+
*/
|
|
13180
|
+
get isNavigable() {
|
|
13181
|
+
return this.navigationService.tableEnabled;
|
|
13182
|
+
}
|
|
12955
13183
|
/**
|
|
12956
13184
|
* @hidden
|
|
12957
13185
|
*/
|
|
@@ -12968,7 +13196,7 @@ class ColumnMenuComponent {
|
|
|
12968
13196
|
* @hidden
|
|
12969
13197
|
*/
|
|
12970
13198
|
onApply(changed) {
|
|
12971
|
-
this.close();
|
|
13199
|
+
this.close(true);
|
|
12972
13200
|
if (changed.length) {
|
|
12973
13201
|
this.cdr.markForCheck();
|
|
12974
13202
|
this.columnInfoService.changeVisibility(changed);
|
|
@@ -13014,11 +13242,11 @@ class ColumnMenuComponent {
|
|
|
13014
13242
|
if (this.ctx.grid.virtualColumns && isDevMode()) {
|
|
13015
13243
|
if (this.settings.autoSizeAllColumns) {
|
|
13016
13244
|
this.settings.autoSizeAllColumns = false;
|
|
13017
|
-
console.warn(
|
|
13245
|
+
console.warn(ColumnMenuErrorMessages.autoSizeAllColumns);
|
|
13018
13246
|
}
|
|
13019
13247
|
if (this.settings.autoSizeColumn) {
|
|
13020
13248
|
this.settings.autoSizeColumn = false;
|
|
13021
|
-
console.warn(
|
|
13249
|
+
console.warn(ColumnMenuErrorMessages.autoSizeColumn);
|
|
13022
13250
|
}
|
|
13023
13251
|
}
|
|
13024
13252
|
this.service.menuTabbingService.isTabbedInterface = this.settings.view === 'tabbed' ? true : false;
|
|
@@ -13037,7 +13265,7 @@ class ColumnMenuComponent {
|
|
|
13037
13265
|
* @hidden
|
|
13038
13266
|
*/
|
|
13039
13267
|
toggle(e, anchor, template) {
|
|
13040
|
-
var _a;
|
|
13268
|
+
var _a, _b;
|
|
13041
13269
|
if (e) {
|
|
13042
13270
|
e.preventDefault();
|
|
13043
13271
|
e.stopImmediatePropagation();
|
|
@@ -13046,12 +13274,32 @@ class ColumnMenuComponent {
|
|
|
13046
13274
|
this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
|
|
13047
13275
|
this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
|
|
13048
13276
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASS);
|
|
13049
|
-
|
|
13050
|
-
|
|
13051
|
-
|
|
13052
|
-
|
|
13277
|
+
// Needed as changes to 'popupRef' and 'popupId' are not reflected
|
|
13278
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
13279
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
13280
|
+
if (this.popupRef) {
|
|
13281
|
+
this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
|
|
13282
|
+
this.popupRef = null;
|
|
13283
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
13284
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
13285
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
13286
|
+
});
|
|
13287
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
|
|
13288
|
+
if (popupAriaElement) {
|
|
13289
|
+
const popupId = getId((_a = this.idService) === null || _a === void 0 ? void 0 : _a.gridId());
|
|
13290
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
13291
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
13292
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
|
|
13293
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
13294
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
13295
|
+
}
|
|
13296
|
+
if (this.settings.view === 'tabbed') {
|
|
13297
|
+
this.renderer.addClass(this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup'), 'k-column-menu-tabbed');
|
|
13298
|
+
this.cdr.detectChanges();
|
|
13299
|
+
(_b = this.tabStrip) === null || _b === void 0 ? void 0 : _b.selectTab(0);
|
|
13300
|
+
}
|
|
13053
13301
|
}
|
|
13054
|
-
|
|
13302
|
+
else {
|
|
13055
13303
|
if (this.navigationService.tableEnabled) {
|
|
13056
13304
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
13057
13305
|
}
|
|
@@ -13063,9 +13311,13 @@ class ColumnMenuComponent {
|
|
|
13063
13311
|
/**
|
|
13064
13312
|
* @hidden
|
|
13065
13313
|
*/
|
|
13066
|
-
close() {
|
|
13314
|
+
close(triggerFocus = false) {
|
|
13067
13315
|
this.popupService.destroy();
|
|
13068
13316
|
this.popupRef = null;
|
|
13317
|
+
this.cdr.markForCheck();
|
|
13318
|
+
if (!triggerFocus) {
|
|
13319
|
+
return;
|
|
13320
|
+
}
|
|
13069
13321
|
if (this.navigationService.tableEnabled) {
|
|
13070
13322
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
13071
13323
|
}
|
|
@@ -13085,7 +13337,7 @@ class ColumnMenuComponent {
|
|
|
13085
13337
|
return typeof (menuItemSettings) === 'object' ? menuItemSettings.expanded : false;
|
|
13086
13338
|
}
|
|
13087
13339
|
}
|
|
13088
|
-
ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: NavigationService }, { token: SinglePopupService }, { token: ColumnMenuService }, { token: ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13340
|
+
ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: NavigationService }, { token: SinglePopupService }, { token: ColumnMenuService }, { token: ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: ColumnInfoService }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
13089
13341
|
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: [
|
|
13090
13342
|
ColumnMenuService,
|
|
13091
13343
|
MenuTabbingService
|
|
@@ -13097,7 +13349,9 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13097
13349
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
13098
13350
|
href="#"
|
|
13099
13351
|
[tabindex]="tabIndex"
|
|
13100
|
-
[attr.title]="columnMenuTitle"
|
|
13352
|
+
[attr.title]="columnMenuTitle"
|
|
13353
|
+
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
13354
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
13101
13355
|
<kendo-icon-wrapper
|
|
13102
13356
|
name="more-vertical"
|
|
13103
13357
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
|
@@ -13110,7 +13364,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13110
13364
|
</ng-template>
|
|
13111
13365
|
<ng-template #defaultTemplate>
|
|
13112
13366
|
<kendo-grid-columnmenu-container
|
|
13113
|
-
(keydown.escape)="close()"
|
|
13367
|
+
(keydown.escape)="close(true)"
|
|
13114
13368
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
13115
13369
|
<kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
|
13116
13370
|
</kendo-grid-columnmenu-sort>
|
|
@@ -13162,7 +13416,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13162
13416
|
</kendo-grid-columnmenu-container>
|
|
13163
13417
|
</ng-template>
|
|
13164
13418
|
<ng-template #tabbedInterfaceTemplate>
|
|
13165
|
-
<kendo-tabstrip #tabstrip (keydown.escape)="close()">
|
|
13419
|
+
<kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
|
|
13166
13420
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
13167
13421
|
<ng-template kendoTabTitle>
|
|
13168
13422
|
<kendo-icon-wrapper
|
|
@@ -13249,7 +13503,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13249
13503
|
</kendo-tabstrip-tab>
|
|
13250
13504
|
</kendo-tabstrip>
|
|
13251
13505
|
</ng-template>
|
|
13252
|
-
`, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type:
|
|
13506
|
+
`, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { type: 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: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { type: i17.TabTitleDirective, selector: "[kendoTabTitle]" }, { type: i17.TabContentDirective, selector: "[kendoTabContent]" }] });
|
|
13253
13507
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
|
|
13254
13508
|
type: Component,
|
|
13255
13509
|
args: [{
|
|
@@ -13266,7 +13520,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13266
13520
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
13267
13521
|
href="#"
|
|
13268
13522
|
[tabindex]="tabIndex"
|
|
13269
|
-
[attr.title]="columnMenuTitle"
|
|
13523
|
+
[attr.title]="columnMenuTitle"
|
|
13524
|
+
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
13525
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
13270
13526
|
<kendo-icon-wrapper
|
|
13271
13527
|
name="more-vertical"
|
|
13272
13528
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
|
@@ -13279,7 +13535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13279
13535
|
</ng-template>
|
|
13280
13536
|
<ng-template #defaultTemplate>
|
|
13281
13537
|
<kendo-grid-columnmenu-container
|
|
13282
|
-
(keydown.escape)="close()"
|
|
13538
|
+
(keydown.escape)="close(true)"
|
|
13283
13539
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
13284
13540
|
<kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
|
13285
13541
|
</kendo-grid-columnmenu-sort>
|
|
@@ -13331,7 +13587,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13331
13587
|
</kendo-grid-columnmenu-container>
|
|
13332
13588
|
</ng-template>
|
|
13333
13589
|
<ng-template #tabbedInterfaceTemplate>
|
|
13334
|
-
<kendo-tabstrip #tabstrip (keydown.escape)="close()">
|
|
13590
|
+
<kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
|
|
13335
13591
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
13336
13592
|
<ng-template kendoTabTitle>
|
|
13337
13593
|
<kendo-icon-wrapper
|
|
@@ -13420,7 +13676,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13420
13676
|
</ng-template>
|
|
13421
13677
|
`
|
|
13422
13678
|
}]
|
|
13423
|
-
}], ctorParameters: function () {
|
|
13679
|
+
}], ctorParameters: function () {
|
|
13680
|
+
return [{ type: NavigationService }, { type: SinglePopupService }, { type: ColumnMenuService }, { type: ContextService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: ColumnInfoService }, { type: IdService, decorators: [{
|
|
13681
|
+
type: Optional
|
|
13682
|
+
}] }];
|
|
13683
|
+
}, propDecorators: { standalone: [{
|
|
13424
13684
|
type: HostBinding,
|
|
13425
13685
|
args: ['class.k-grid-column-menu-standalone']
|
|
13426
13686
|
}, {
|
|
@@ -14363,7 +14623,7 @@ class LogicalCellDirective {
|
|
|
14363
14623
|
this.renderer.addClass(el, 'k-focus');
|
|
14364
14624
|
}
|
|
14365
14625
|
if (this.headerLabelText) {
|
|
14366
|
-
el.
|
|
14626
|
+
el.removeAttribute('aria-label');
|
|
14367
14627
|
}
|
|
14368
14628
|
}
|
|
14369
14629
|
else {
|
|
@@ -15061,7 +15321,7 @@ const modifierKeys = ['alt', 'ctrl', 'shift', 'meta'];
|
|
|
15061
15321
|
* @hidden
|
|
15062
15322
|
*/
|
|
15063
15323
|
class HeaderComponent {
|
|
15064
|
-
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService) {
|
|
15324
|
+
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService, navigationService) {
|
|
15065
15325
|
this.popupService = popupService;
|
|
15066
15326
|
this.hint = hint;
|
|
15067
15327
|
this.cue = cue;
|
|
@@ -15071,6 +15331,7 @@ class HeaderComponent {
|
|
|
15071
15331
|
this.columnInfoService = columnInfoService;
|
|
15072
15332
|
this.cd = cd;
|
|
15073
15333
|
this.contextService = contextService;
|
|
15334
|
+
this.navigationService = navigationService;
|
|
15074
15335
|
this.columns = [];
|
|
15075
15336
|
this.groups = [];
|
|
15076
15337
|
this.sort = new Array();
|
|
@@ -15205,6 +15466,9 @@ class HeaderComponent {
|
|
|
15205
15466
|
return 'descending';
|
|
15206
15467
|
}
|
|
15207
15468
|
}
|
|
15469
|
+
get isNavigable() {
|
|
15470
|
+
return this.navigationService.tableEnabled;
|
|
15471
|
+
}
|
|
15208
15472
|
/**
|
|
15209
15473
|
*
|
|
15210
15474
|
* @param column
|
|
@@ -15432,7 +15696,7 @@ class HeaderComponent {
|
|
|
15432
15696
|
});
|
|
15433
15697
|
}
|
|
15434
15698
|
}
|
|
15435
|
-
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: SinglePopupService }, { token: DragHintService }, { token: DropCueService }, { token: ColumnReorderService }, { token: IdService }, { token: SortService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15699
|
+
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: SinglePopupService }, { token: DragHintService }, { token: DropCueService }, { token: ColumnReorderService }, { token: IdService }, { token: SortService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: ContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15436
15700
|
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: `
|
|
15437
15701
|
<ng-container>
|
|
15438
15702
|
<tr *ngFor="let i of columnLevels; let levelIndex = index"
|
|
@@ -15484,7 +15748,9 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
15484
15748
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
15485
15749
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
15486
15750
|
[attr.colspan]="column.colspan"
|
|
15487
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15751
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15752
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
15753
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
15488
15754
|
|
|
15489
15755
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
15490
15756
|
<span class="k-cell-inner">
|
|
@@ -15706,7 +15972,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15706
15972
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
15707
15973
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
15708
15974
|
[attr.colspan]="column.colspan"
|
|
15709
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15975
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15976
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
15977
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
15710
15978
|
|
|
15711
15979
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
15712
15980
|
<span class="k-cell-inner">
|
|
@@ -15874,7 +16142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15874
16142
|
</ng-container>
|
|
15875
16143
|
`
|
|
15876
16144
|
}]
|
|
15877
|
-
}], ctorParameters: function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: IdService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: ContextService }]; }, propDecorators: { totalColumnLevels: [{
|
|
16145
|
+
}], ctorParameters: function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: IdService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: ContextService }, { type: NavigationService }]; }, propDecorators: { totalColumnLevels: [{
|
|
15878
16146
|
type: Input
|
|
15879
16147
|
}], columns: [{
|
|
15880
16148
|
type: Input
|
|
@@ -24202,6 +24470,7 @@ class ColumnChooserComponent {
|
|
|
24202
24470
|
* @hidden
|
|
24203
24471
|
*/
|
|
24204
24472
|
toggle(anchor, template) {
|
|
24473
|
+
var _a;
|
|
24205
24474
|
if (!this.popupRef) {
|
|
24206
24475
|
const direction = this.ctx.localization.rtl ? 'right' : 'left';
|
|
24207
24476
|
this.popupRef = this.popupService.open({
|
|
@@ -24211,13 +24480,30 @@ class ColumnChooserComponent {
|
|
|
24211
24480
|
anchorAlign: { vertical: 'bottom', horizontal: direction },
|
|
24212
24481
|
popupAlign: { vertical: 'top', horizontal: direction }
|
|
24213
24482
|
});
|
|
24214
|
-
|
|
24483
|
+
const popupElement = (_a = this.popupRef) === null || _a === void 0 ? void 0 : _a.popupElement;
|
|
24484
|
+
if (popupElement) {
|
|
24485
|
+
const popupId = `k-${guid()}`;
|
|
24486
|
+
const popupAriaElement = popupElement.querySelector('.k-popup');
|
|
24487
|
+
this.ngZone.runOutsideAngular(() => {
|
|
24488
|
+
this.escapeListener = this.renderer.listen(popupAriaElement, 'keydown', (e) => {
|
|
24489
|
+
if (e.keyCode === Keys.Escape) {
|
|
24490
|
+
this.close(true);
|
|
24491
|
+
}
|
|
24492
|
+
});
|
|
24493
|
+
});
|
|
24494
|
+
this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
|
|
24495
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
24496
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
24497
|
+
this.popupId = popupId;
|
|
24498
|
+
}
|
|
24215
24499
|
if (!isDocumentAvailable()) {
|
|
24216
24500
|
return;
|
|
24217
24501
|
}
|
|
24218
24502
|
this.ngZone.runOutsideAngular(() => this.closeClick = this.renderer.listen('document', 'click', ({ target }) => {
|
|
24219
24503
|
if (!closest(target, node => node === this.popupRef.popupElement || node === anchor.element)) {
|
|
24220
|
-
this.
|
|
24504
|
+
this.ngZone.run(() => {
|
|
24505
|
+
this.close();
|
|
24506
|
+
});
|
|
24221
24507
|
}
|
|
24222
24508
|
}));
|
|
24223
24509
|
}
|
|
@@ -24229,7 +24515,7 @@ class ColumnChooserComponent {
|
|
|
24229
24515
|
* @hidden
|
|
24230
24516
|
*/
|
|
24231
24517
|
onApply(changed) {
|
|
24232
|
-
this.close();
|
|
24518
|
+
this.close(true);
|
|
24233
24519
|
if (changed.length) {
|
|
24234
24520
|
this.changeDetector.markForCheck();
|
|
24235
24521
|
this.columnInfoService.changeVisibility(changed);
|
|
@@ -24242,12 +24528,24 @@ class ColumnChooserComponent {
|
|
|
24242
24528
|
this.changeDetector.markForCheck();
|
|
24243
24529
|
this.columnInfoService.changeVisibility(changed);
|
|
24244
24530
|
}
|
|
24245
|
-
|
|
24531
|
+
/**
|
|
24532
|
+
* @hidden
|
|
24533
|
+
*/
|
|
24534
|
+
onShiftTab(e) {
|
|
24535
|
+
if (e.target.matches('.k-column-list-item')) {
|
|
24536
|
+
e.preventDefault();
|
|
24537
|
+
this.columnList.resetButton.nativeElement.focus();
|
|
24538
|
+
}
|
|
24539
|
+
}
|
|
24540
|
+
close(focusAnchor = false) {
|
|
24246
24541
|
if (this.popupRef) {
|
|
24247
24542
|
this.popupRef.close();
|
|
24248
24543
|
this.popupRef = null;
|
|
24544
|
+
this.changeDetector.markForCheck();
|
|
24545
|
+
this.escapeListener && this.escapeListener();
|
|
24249
24546
|
}
|
|
24250
24547
|
this.detachClose();
|
|
24548
|
+
focusAnchor && this.anchor.element.focus();
|
|
24251
24549
|
}
|
|
24252
24550
|
detachClose() {
|
|
24253
24551
|
if (this.closeClick) {
|
|
@@ -24257,7 +24555,7 @@ class ColumnChooserComponent {
|
|
|
24257
24555
|
}
|
|
24258
24556
|
}
|
|
24259
24557
|
ColumnChooserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnChooserComponent, deps: [{ token: ContextService }, { token: ColumnInfoService }, { token: i1$2.PopupService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
24260
|
-
ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnChooserComponent, selector: "kendo-grid-column-chooser", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll" }, ngImport: i0, template: `
|
|
24558
|
+
ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnChooserComponent, selector: "kendo-grid-column-chooser", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true }, { propertyName: "columnList", first: true, predicate: ["columnList"], descendants: true }], ngImport: i0, template: `
|
|
24261
24559
|
<button #anchor
|
|
24262
24560
|
kendoButton
|
|
24263
24561
|
type="button"
|
|
@@ -24265,20 +24563,27 @@ ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
24265
24563
|
fillMode="flat"
|
|
24266
24564
|
[attr.title]="ctx.localization.get('columns')"
|
|
24267
24565
|
icon="columns"
|
|
24268
|
-
[svgIcon]="columnsIcon"
|
|
24566
|
+
[svgIcon]="columnsIcon"
|
|
24567
|
+
[attr.aria-haspopup]="'dialog'"
|
|
24568
|
+
[attr.aria-expanded]="!!(popupRef)"
|
|
24569
|
+
[attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
|
|
24269
24570
|
<ng-template #template>
|
|
24270
24571
|
<span class='k-column-chooser-title'>{{ ctx.localization.get('columns') }}</span>
|
|
24271
24572
|
<kendo-grid-columnlist
|
|
24573
|
+
#columnList
|
|
24272
24574
|
[columns]="columns"
|
|
24575
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
24576
|
+
[isLast]="true"
|
|
24273
24577
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
24274
24578
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
24275
24579
|
[autoSync]="autoSync"
|
|
24276
24580
|
[allowHideAll]="allowHideAll"
|
|
24277
24581
|
(apply)="onApply($event)"
|
|
24278
|
-
(columnChange)="onChange($event)"
|
|
24582
|
+
(columnChange)="onChange($event)"
|
|
24583
|
+
(keydown.shift.tab)="onShiftTab($event)">
|
|
24279
24584
|
</kendo-grid-columnlist>
|
|
24280
24585
|
</ng-template>
|
|
24281
|
-
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
24586
|
+
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
24282
24587
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnChooserComponent, decorators: [{
|
|
24283
24588
|
type: Component,
|
|
24284
24589
|
args: [{
|
|
@@ -24291,17 +24596,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
24291
24596
|
fillMode="flat"
|
|
24292
24597
|
[attr.title]="ctx.localization.get('columns')"
|
|
24293
24598
|
icon="columns"
|
|
24294
|
-
[svgIcon]="columnsIcon"
|
|
24599
|
+
[svgIcon]="columnsIcon"
|
|
24600
|
+
[attr.aria-haspopup]="'dialog'"
|
|
24601
|
+
[attr.aria-expanded]="!!(popupRef)"
|
|
24602
|
+
[attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
|
|
24295
24603
|
<ng-template #template>
|
|
24296
24604
|
<span class='k-column-chooser-title'>{{ ctx.localization.get('columns') }}</span>
|
|
24297
24605
|
<kendo-grid-columnlist
|
|
24606
|
+
#columnList
|
|
24298
24607
|
[columns]="columns"
|
|
24608
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
24609
|
+
[isLast]="true"
|
|
24299
24610
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
24300
24611
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
24301
24612
|
[autoSync]="autoSync"
|
|
24302
24613
|
[allowHideAll]="allowHideAll"
|
|
24303
24614
|
(apply)="onApply($event)"
|
|
24304
|
-
(columnChange)="onChange($event)"
|
|
24615
|
+
(columnChange)="onChange($event)"
|
|
24616
|
+
(keydown.shift.tab)="onShiftTab($event)">
|
|
24305
24617
|
</kendo-grid-columnlist>
|
|
24306
24618
|
</ng-template>
|
|
24307
24619
|
`
|
|
@@ -24310,9 +24622,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
24310
24622
|
type: Input
|
|
24311
24623
|
}], allowHideAll: [{
|
|
24312
24624
|
type: Input
|
|
24625
|
+
}], anchor: [{
|
|
24626
|
+
type: ViewChild,
|
|
24627
|
+
args: ['anchor']
|
|
24628
|
+
}], columnList: [{
|
|
24629
|
+
type: ViewChild,
|
|
24630
|
+
args: ['columnList']
|
|
24313
24631
|
}] } });
|
|
24314
24632
|
|
|
24315
24633
|
const COMPONENTS = [
|
|
24634
|
+
ColumnMenuChooserItemCheckedDirective,
|
|
24316
24635
|
ColumnListComponent,
|
|
24317
24636
|
ColumnChooserComponent,
|
|
24318
24637
|
ColumnMenuChooserComponent,
|
|
@@ -24355,7 +24674,8 @@ class ColumnMenuModule {
|
|
|
24355
24674
|
}
|
|
24356
24675
|
}
|
|
24357
24676
|
ColumnMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24358
|
-
ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, declarations: [
|
|
24677
|
+
ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, declarations: [ColumnMenuChooserItemCheckedDirective,
|
|
24678
|
+
ColumnListComponent,
|
|
24359
24679
|
ColumnChooserComponent,
|
|
24360
24680
|
ColumnMenuChooserComponent,
|
|
24361
24681
|
ColumnMenuFilterComponent,
|
|
@@ -24370,7 +24690,8 @@ ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
24370
24690
|
ColumnMenuStickComponent,
|
|
24371
24691
|
ColumnMenuPositionComponent,
|
|
24372
24692
|
ColumnMenuAutoSizeColumnComponent,
|
|
24373
|
-
ColumnMenuAutoSizeAllColumnsComponent], imports: [CommonModule, FilterMenuModule, ButtonModule, TabStripModule], exports: [
|
|
24693
|
+
ColumnMenuAutoSizeAllColumnsComponent], imports: [CommonModule, FilterMenuModule, ButtonModule, TabStripModule], exports: [ColumnMenuChooserItemCheckedDirective,
|
|
24694
|
+
ColumnListComponent,
|
|
24374
24695
|
ColumnChooserComponent,
|
|
24375
24696
|
ColumnMenuChooserComponent,
|
|
24376
24697
|
ColumnMenuFilterComponent,
|