@progress/kendo-angular-grid 7.0.1-dev.202205100915 → 7.1.0-dev.202205311232
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/bundles/kendo-angular-grid.umd.js +1 -1
- package/esm2015/column-menu/column-menu.component.js +2 -2
- package/esm2015/filtering/base-filter-cell.component.js +0 -1
- package/esm2015/filtering/menu/filter-menu.component.js +2 -2
- package/esm2015/grid.component.js +48 -37
- package/esm2015/main.js +1 -0
- package/esm2015/navigation/logical-cell.directive.js +3 -3
- package/esm2015/navigation/navigable-settings.js +5 -0
- package/esm2015/navigation/navigation.service.js +14 -1
- package/esm2015/package-metadata.js +1 -1
- package/esm2015/pager/pager.component.js +11 -11
- package/esm2015/rendering/header/header.component.js +1 -11
- package/esm2015/rendering/list.component.js +1 -1
- package/fesm2015/kendo-angular-grid.js +83 -70
- package/filtering/base-filter-cell.component.d.ts +0 -1
- package/grid.component.d.ts +8 -3
- package/main.d.ts +1 -0
- package/navigation/navigable-settings.d.ts +12 -0
- package/navigation/navigation.service.d.ts +7 -1
- package/package.json +1 -1
|
@@ -1515,6 +1515,8 @@ class NavigationService {
|
|
|
1515
1515
|
this.mode = 0 /* Standby */;
|
|
1516
1516
|
this.model = new NavigationModel();
|
|
1517
1517
|
this.cursor = new NavigationCursor(this.model);
|
|
1518
|
+
this.pagerIsNavigable = false;
|
|
1519
|
+
this.tableIsNavigable = false;
|
|
1518
1520
|
this.changes = this.cursor.changes;
|
|
1519
1521
|
}
|
|
1520
1522
|
set metadata(value) {
|
|
@@ -1527,6 +1529,12 @@ class NavigationService {
|
|
|
1527
1529
|
get enabled() {
|
|
1528
1530
|
return this.alive;
|
|
1529
1531
|
}
|
|
1532
|
+
get pagerEnabled() {
|
|
1533
|
+
return this.alive && this.pagerIsNavigable;
|
|
1534
|
+
}
|
|
1535
|
+
get tableEnabled() {
|
|
1536
|
+
return this.alive && this.tableIsNavigable;
|
|
1537
|
+
}
|
|
1530
1538
|
get activeCell() {
|
|
1531
1539
|
if (this.mode !== 0 /* Standby */) {
|
|
1532
1540
|
return this.cursor.cell;
|
|
@@ -1542,7 +1550,8 @@ class NavigationService {
|
|
|
1542
1550
|
get activeDataRow() {
|
|
1543
1551
|
return Math.max(0, this.activeRowIndex - this.meta.headerRows);
|
|
1544
1552
|
}
|
|
1545
|
-
init(meta) {
|
|
1553
|
+
init(meta, navigableOptions) {
|
|
1554
|
+
this.setActiveSections(navigableOptions);
|
|
1546
1555
|
this.alive = true;
|
|
1547
1556
|
this.focusRoot.active = true;
|
|
1548
1557
|
this.metadata = meta;
|
|
@@ -1718,6 +1727,10 @@ class NavigationService {
|
|
|
1718
1727
|
autoFocusCell(start, end) {
|
|
1719
1728
|
return !this.meta.virtualColumns || end < this.meta.columns.lockedLeafColumns.length || this.columnViewport.intersects(start, end);
|
|
1720
1729
|
}
|
|
1730
|
+
setActiveSections(navigableOptions) {
|
|
1731
|
+
this.pagerIsNavigable = navigableOptions.includes('pager');
|
|
1732
|
+
this.tableIsNavigable = navigableOptions.includes('table');
|
|
1733
|
+
}
|
|
1721
1734
|
focusAdjacentCell(fwd, wrap) {
|
|
1722
1735
|
this.focusCell();
|
|
1723
1736
|
let success = fwd ? this.moveCursorFwd() : this.moveCursorBwd();
|
|
@@ -2822,7 +2835,7 @@ const packageMetadata = {
|
|
|
2822
2835
|
name: '@progress/kendo-angular-grid',
|
|
2823
2836
|
productName: 'Kendo UI for Angular',
|
|
2824
2837
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
2825
|
-
publishDate:
|
|
2838
|
+
publishDate: 1654000234,
|
|
2826
2839
|
version: '',
|
|
2827
2840
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
2828
2841
|
};
|
|
@@ -7729,7 +7742,7 @@ class PagerComponent {
|
|
|
7729
7742
|
return this._isFocused;
|
|
7730
7743
|
}
|
|
7731
7744
|
get pagerAriaLabel() {
|
|
7732
|
-
return this.navigationService.
|
|
7745
|
+
return this.navigationService.pagerEnabled ? this.pagerLabel : undefined;
|
|
7733
7746
|
}
|
|
7734
7747
|
/**
|
|
7735
7748
|
* @hidden
|
|
@@ -7742,7 +7755,7 @@ class PagerComponent {
|
|
|
7742
7755
|
return this.focusGroup.isActive ? '0' : '-1';
|
|
7743
7756
|
}
|
|
7744
7757
|
onFocusIn(event) {
|
|
7745
|
-
if (this.navigationService.
|
|
7758
|
+
if (this.navigationService.pagerEnabled) {
|
|
7746
7759
|
const shouldFocusPager = event.target === this.element.nativeElement;
|
|
7747
7760
|
if (shouldFocusPager) {
|
|
7748
7761
|
this._isFocused = true;
|
|
@@ -7754,18 +7767,18 @@ class PagerComponent {
|
|
|
7754
7767
|
}
|
|
7755
7768
|
}
|
|
7756
7769
|
onFocusOut() {
|
|
7757
|
-
if (this.navigationService.
|
|
7770
|
+
if (this.navigationService.pagerEnabled) {
|
|
7758
7771
|
this._isFocused = false;
|
|
7759
7772
|
}
|
|
7760
7773
|
}
|
|
7761
7774
|
onEscape() {
|
|
7762
|
-
if (this.navigationService.
|
|
7775
|
+
if (this.navigationService.pagerEnabled) {
|
|
7763
7776
|
this.focusRoot.deactivate();
|
|
7764
7777
|
this.element.nativeElement.focus();
|
|
7765
7778
|
}
|
|
7766
7779
|
}
|
|
7767
7780
|
onEnter(event) {
|
|
7768
|
-
if (this.navigationService.
|
|
7781
|
+
if (this.navigationService.pagerEnabled && event.target === this.element.nativeElement) {
|
|
7769
7782
|
this.focusRoot.activate();
|
|
7770
7783
|
this.focusFirstElement();
|
|
7771
7784
|
}
|
|
@@ -7807,7 +7820,7 @@ class PagerComponent {
|
|
|
7807
7820
|
}
|
|
7808
7821
|
ngOnInit() {
|
|
7809
7822
|
this.subscriptions.add(this.pagerContext.pageChange.subscribe(this.changePage.bind(this)));
|
|
7810
|
-
if (this.navigationService.
|
|
7823
|
+
if (this.navigationService.pagerEnabled) {
|
|
7811
7824
|
this.focusRoot.deactivate();
|
|
7812
7825
|
}
|
|
7813
7826
|
}
|
|
@@ -7860,7 +7873,7 @@ class PagerComponent {
|
|
|
7860
7873
|
this.renderer.removeClass(element, 'k-pager-md');
|
|
7861
7874
|
}
|
|
7862
7875
|
shouldTriggerPageChange(target, condition) {
|
|
7863
|
-
return this.navigationService.
|
|
7876
|
+
return this.navigationService.pagerEnabled &&
|
|
7864
7877
|
target === this.element.nativeElement &&
|
|
7865
7878
|
condition;
|
|
7866
7879
|
}
|
|
@@ -7896,7 +7909,7 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
7896
7909
|
useClass: FocusGroup
|
|
7897
7910
|
}], usesOnChanges: true, ngImport: i0, template: `
|
|
7898
7911
|
<div
|
|
7899
|
-
*ngIf="navigationService.
|
|
7912
|
+
*ngIf="navigationService.pagerEnabled"
|
|
7900
7913
|
class="k-sr-only"
|
|
7901
7914
|
[tabindex]="focusTrapTabIndex"
|
|
7902
7915
|
[attr.aria-hidden]="true"
|
|
@@ -7923,7 +7936,7 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
7923
7936
|
></kendo-pager-page-sizes>
|
|
7924
7937
|
</ng-container>
|
|
7925
7938
|
<div
|
|
7926
|
-
*ngIf="navigationService.
|
|
7939
|
+
*ngIf="navigationService.pagerEnabled"
|
|
7927
7940
|
class="k-sr-only"
|
|
7928
7941
|
[tabindex]="focusTrapTabIndex"
|
|
7929
7942
|
[attr.aria-hidden]="true"
|
|
@@ -7949,7 +7962,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
7949
7962
|
}],
|
|
7950
7963
|
template: `
|
|
7951
7964
|
<div
|
|
7952
|
-
*ngIf="navigationService.
|
|
7965
|
+
*ngIf="navigationService.pagerEnabled"
|
|
7953
7966
|
class="k-sr-only"
|
|
7954
7967
|
[tabindex]="focusTrapTabIndex"
|
|
7955
7968
|
[attr.aria-hidden]="true"
|
|
@@ -7976,7 +7989,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
7976
7989
|
></kendo-pager-page-sizes>
|
|
7977
7990
|
</ng-container>
|
|
7978
7991
|
<div
|
|
7979
|
-
*ngIf="navigationService.
|
|
7992
|
+
*ngIf="navigationService.pagerEnabled"
|
|
7980
7993
|
class="k-sr-only"
|
|
7981
7994
|
[tabindex]="focusTrapTabIndex"
|
|
7982
7995
|
[attr.aria-hidden]="true"
|
|
@@ -8750,7 +8763,6 @@ const localizeOperators = operators => localization => Object.keys(operators).ma
|
|
|
8750
8763
|
}));
|
|
8751
8764
|
/**
|
|
8752
8765
|
* An abstract base class for the filter-cell component ([see example]({% slug reusablecustomfilters_grid %}#toc-filter-row)).
|
|
8753
|
-
* @hidden
|
|
8754
8766
|
*/
|
|
8755
8767
|
class BaseFilterCellComponent {
|
|
8756
8768
|
constructor(filterService) {
|
|
@@ -10974,7 +10986,7 @@ class FilterMenuComponent {
|
|
|
10974
10986
|
toggle(anchor, template) {
|
|
10975
10987
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef);
|
|
10976
10988
|
if (!this.popupRef) {
|
|
10977
|
-
if (this.navigationService.
|
|
10989
|
+
if (this.navigationService.tableEnabled) {
|
|
10978
10990
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
10979
10991
|
}
|
|
10980
10992
|
else {
|
|
@@ -10985,7 +10997,7 @@ class FilterMenuComponent {
|
|
|
10985
10997
|
}
|
|
10986
10998
|
close() {
|
|
10987
10999
|
this.popupService.destroy();
|
|
10988
|
-
if (this.navigationService.
|
|
11000
|
+
if (this.navigationService.tableEnabled) {
|
|
10989
11001
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
10990
11002
|
}
|
|
10991
11003
|
else {
|
|
@@ -12559,7 +12571,7 @@ class ColumnMenuComponent {
|
|
|
12559
12571
|
this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
|
|
12560
12572
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASS);
|
|
12561
12573
|
if (!this.popupRef) {
|
|
12562
|
-
if (this.navigationService.
|
|
12574
|
+
if (this.navigationService.tableEnabled) {
|
|
12563
12575
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
12564
12576
|
}
|
|
12565
12577
|
else {
|
|
@@ -12573,7 +12585,7 @@ class ColumnMenuComponent {
|
|
|
12573
12585
|
close() {
|
|
12574
12586
|
this.popupService.destroy();
|
|
12575
12587
|
this.popupRef = null;
|
|
12576
|
-
if (this.navigationService.
|
|
12588
|
+
if (this.navigationService.tableEnabled) {
|
|
12577
12589
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
12578
12590
|
}
|
|
12579
12591
|
else {
|
|
@@ -13489,13 +13501,13 @@ class LogicalCellDirective {
|
|
|
13489
13501
|
return this.logicalColIndex + 1;
|
|
13490
13502
|
}
|
|
13491
13503
|
ngOnInit() {
|
|
13492
|
-
if (!this.navigationService.
|
|
13504
|
+
if (!this.navigationService.tableEnabled) {
|
|
13493
13505
|
return;
|
|
13494
13506
|
}
|
|
13495
13507
|
this.navigationChange = this.navigationService.changes.subscribe((e) => this.onNavigationChange(e));
|
|
13496
13508
|
}
|
|
13497
13509
|
ngDoCheck() {
|
|
13498
|
-
if (!this.navigationService.
|
|
13510
|
+
if (!this.navigationService.tableEnabled || this.logicalColIndex === -1) {
|
|
13499
13511
|
return;
|
|
13500
13512
|
}
|
|
13501
13513
|
if (this.cellContext) {
|
|
@@ -13504,7 +13516,7 @@ class LogicalCellDirective {
|
|
|
13504
13516
|
this.registerNoChanges();
|
|
13505
13517
|
}
|
|
13506
13518
|
ngOnChanges(changes) {
|
|
13507
|
-
if (!this.navigationService.
|
|
13519
|
+
if (!this.navigationService.tableEnabled) {
|
|
13508
13520
|
return;
|
|
13509
13521
|
}
|
|
13510
13522
|
const keys = Object.keys(changes);
|
|
@@ -14717,21 +14729,11 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
14717
14729
|
[logicalSlaveCellsCount]="unlockedColumnsCount"
|
|
14718
14730
|
></tr>
|
|
14719
14731
|
</ng-container>
|
|
14720
|
-
`, isInline: true,
|
|
14732
|
+
`, isInline: true, components: [{ type: FilterMenuComponent, selector: "kendo-grid-filter-menu", inputs: ["column", "filter", "tabIndex"] }, { type: ColumnMenuComponent, selector: "kendo-grid-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate", "tabIndex"] }, { type: FilterRowComponent, selector: "[kendoGridFilterRow]", inputs: ["columns", "filter", "groups", "detailTemplate", "logicalRowIndex", "lockedColumnsCount"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: LogicalRowDirective, selector: "[kendoGridLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { type: i1$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: ColumnHandleDirective, selector: "[kendoGridColumnHandle]", inputs: ["columns", "column"] }] });
|
|
14721
14733
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
14722
14734
|
type: Component,
|
|
14723
14735
|
args: [{
|
|
14724
14736
|
selector: '[kendoGridHeader]',
|
|
14725
|
-
styles: [`
|
|
14726
|
-
.k-column-resizer {
|
|
14727
|
-
cursor: col-resize;
|
|
14728
|
-
display: block;
|
|
14729
|
-
height: 1000%;
|
|
14730
|
-
position: absolute;
|
|
14731
|
-
top: 0;
|
|
14732
|
-
width: .5em;
|
|
14733
|
-
}
|
|
14734
|
-
`],
|
|
14735
14737
|
template: `
|
|
14736
14738
|
<ng-container>
|
|
14737
14739
|
<tr *ngFor="let i of columnLevels; let levelIndex = index"
|
|
@@ -17309,7 +17311,7 @@ class ListComponent {
|
|
|
17309
17311
|
}
|
|
17310
17312
|
}
|
|
17311
17313
|
resetNavigationViewport() {
|
|
17312
|
-
if (!this.container || !this.navigationService.
|
|
17314
|
+
if (!this.container || !this.navigationService.tableEnabled ||
|
|
17313
17315
|
!this.navigationService.needsViewport() || this.data.length === 0) {
|
|
17314
17316
|
return;
|
|
17315
17317
|
}
|
|
@@ -18271,11 +18273,6 @@ class GridComponent {
|
|
|
18271
18273
|
* By default, grouping is disabled ([see example]({% slug groupingbasics_grid %})).
|
|
18272
18274
|
*/
|
|
18273
18275
|
this.groupable = false;
|
|
18274
|
-
/**
|
|
18275
|
-
* If set to `true`, the user can use dedicated shortcuts to interact with the Grid.
|
|
18276
|
-
* By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.
|
|
18277
|
-
*/
|
|
18278
|
-
this.navigable = false;
|
|
18279
18276
|
/**
|
|
18280
18277
|
* Indicates whether the Grid columns will be resized during initialization so that
|
|
18281
18278
|
* they fit their headers and row content. Defaults to `false`.
|
|
@@ -18451,6 +18448,7 @@ class GridComponent {
|
|
|
18451
18448
|
this.cachedWindowWidth = 0;
|
|
18452
18449
|
this._rowSelected = null;
|
|
18453
18450
|
this._cellSelected = null;
|
|
18451
|
+
this._navigable = [];
|
|
18454
18452
|
this.rtl = false;
|
|
18455
18453
|
this._rowClass = () => null;
|
|
18456
18454
|
validatePackage(packageMetadata);
|
|
@@ -18582,6 +18580,21 @@ class GridComponent {
|
|
|
18582
18580
|
get marqueeSelection() {
|
|
18583
18581
|
return this.selectionService.enableMarquee || this.cellSelectionService.enableMarquee;
|
|
18584
18582
|
}
|
|
18583
|
+
/**
|
|
18584
|
+
* If set to `true`, the user can use dedicated shortcuts to interact with the Grid.
|
|
18585
|
+
* By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.
|
|
18586
|
+
* To enable navigation through separate Grid sections only, provide a [`GridNavigableSection`]({% slug api_grid_gridnavigablesection %}) array.
|
|
18587
|
+
*/
|
|
18588
|
+
set navigable(value) {
|
|
18589
|
+
if (typeof value === 'boolean') {
|
|
18590
|
+
this._navigable = value ? ['table', 'pager'] : [];
|
|
18591
|
+
return;
|
|
18592
|
+
}
|
|
18593
|
+
this._navigable = value;
|
|
18594
|
+
}
|
|
18595
|
+
get navigable() {
|
|
18596
|
+
return this._navigable;
|
|
18597
|
+
}
|
|
18585
18598
|
/**
|
|
18586
18599
|
* @hidden
|
|
18587
18600
|
*
|
|
@@ -18805,6 +18818,9 @@ class GridComponent {
|
|
|
18805
18818
|
get ariaColCount() {
|
|
18806
18819
|
return this.columnsContainer.leafColumnsToRender.length;
|
|
18807
18820
|
}
|
|
18821
|
+
get navigation() {
|
|
18822
|
+
return this.navigationService;
|
|
18823
|
+
}
|
|
18808
18824
|
get isVirtual() {
|
|
18809
18825
|
return this.scrollable === 'virtual';
|
|
18810
18826
|
}
|
|
@@ -19000,6 +19016,16 @@ class GridComponent {
|
|
|
19000
19016
|
if (isChanged$1('groupable', changes, true)) {
|
|
19001
19017
|
this.groupable = changes.groupable.currentValue;
|
|
19002
19018
|
}
|
|
19019
|
+
if (isChanged$1('navigable', changes, true)) {
|
|
19020
|
+
if (this.navigationService.enabled) {
|
|
19021
|
+
this.navigationService.setActiveSections(this.navigable);
|
|
19022
|
+
}
|
|
19023
|
+
else {
|
|
19024
|
+
if (this.navigable.length) {
|
|
19025
|
+
this.navigationService.init(this.navigationMetadata(), this.navigable);
|
|
19026
|
+
}
|
|
19027
|
+
}
|
|
19028
|
+
}
|
|
19003
19029
|
}
|
|
19004
19030
|
ngAfterViewInit() {
|
|
19005
19031
|
this.attachScrollSync();
|
|
@@ -19019,8 +19045,8 @@ class GridComponent {
|
|
|
19019
19045
|
this.columnsChangeSubscription = this.columns.changes.subscribe(() => this.verifySettings());
|
|
19020
19046
|
}
|
|
19021
19047
|
ngOnInit() {
|
|
19022
|
-
if (this.navigable) {
|
|
19023
|
-
this.navigationService.init(this.navigationMetadata());
|
|
19048
|
+
if (this.navigable.length) {
|
|
19049
|
+
this.navigationService.init(this.navigationMetadata(), this.navigable);
|
|
19024
19050
|
}
|
|
19025
19051
|
}
|
|
19026
19052
|
ngOnDestroy() {
|
|
@@ -19981,8 +20007,8 @@ class GridComponent {
|
|
|
19981
20007
|
this.columnResize.emit(args);
|
|
19982
20008
|
}
|
|
19983
20009
|
assertNavigable() {
|
|
19984
|
-
if (isDevMode() && !this.
|
|
19985
|
-
throw new Error('The Grid should be configured as
|
|
20010
|
+
if (isDevMode() && !this.navigationService.enabled) {
|
|
20011
|
+
throw new Error('The Grid should be configured as navigable to control focus');
|
|
19986
20012
|
}
|
|
19987
20013
|
}
|
|
19988
20014
|
navigationMetadata() {
|
|
@@ -20348,8 +20374,8 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
20348
20374
|
<kendo-grid-toolbar class="k-toolbar k-grid-toolbar" *ngIf="showTopToolbar" position="top"></kendo-grid-toolbar>
|
|
20349
20375
|
<kendo-pager
|
|
20350
20376
|
*ngIf="showTopPager"
|
|
20351
|
-
[tabindex]="
|
|
20352
|
-
[attr.role]="
|
|
20377
|
+
[tabindex]="navigation.pagerEnabled ? '0' : '-1'"
|
|
20378
|
+
[attr.role]="navigation.pagerEnabled ? 'application' : undefined"
|
|
20353
20379
|
class="k-grid-pager-top"
|
|
20354
20380
|
[template]="pagerTemplate"
|
|
20355
20381
|
[pageSize]="pageSize"
|
|
@@ -20403,7 +20429,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
20403
20429
|
[columnMenuTemplate]="columnMenuTemplate"
|
|
20404
20430
|
[totalColumnsCount]="leafColumns.length"
|
|
20405
20431
|
[detailTemplate]="detailTemplate"
|
|
20406
|
-
[tabIndex]="
|
|
20432
|
+
[tabIndex]="navigation.tableEnabled ? '-1' : '0'">
|
|
20407
20433
|
</thead>
|
|
20408
20434
|
</table>
|
|
20409
20435
|
</div><div #header class="k-grid-header-wrap" role="presentation" data-scrollable
|
|
@@ -20434,7 +20460,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
20434
20460
|
[lockedColumnsCount]="lockedLeafColumns.length"
|
|
20435
20461
|
[totalColumnsCount]="leafColumns.length"
|
|
20436
20462
|
[detailTemplate]="detailTemplate"
|
|
20437
|
-
[tabIndex]="
|
|
20463
|
+
[tabIndex]="navigation.tableEnabled ? '-1' : '0'">
|
|
20438
20464
|
</thead>
|
|
20439
20465
|
</table>
|
|
20440
20466
|
<div *ngIf="virtualColumns" class="k-width-container" role="presentation">
|
|
@@ -20539,7 +20565,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
20539
20565
|
[columnMenu]="columnMenuOptions"
|
|
20540
20566
|
[columnMenuTemplate]="columnMenuTemplate"
|
|
20541
20567
|
[detailTemplate]="detailTemplate"
|
|
20542
|
-
[tabIndex]="
|
|
20568
|
+
[tabIndex]="navigation.tableEnabled ? '-1' : '0'">
|
|
20543
20569
|
</thead>
|
|
20544
20570
|
<tbody kendoGridTableBody
|
|
20545
20571
|
[isLoading]="loading"
|
|
@@ -20573,8 +20599,8 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
20573
20599
|
</div>
|
|
20574
20600
|
<kendo-pager
|
|
20575
20601
|
*ngIf="showBottomPager"
|
|
20576
|
-
[tabindex]="
|
|
20577
|
-
[attr.role]="
|
|
20602
|
+
[tabindex]="navigation.pagerEnabled ? '0' : '-1'"
|
|
20603
|
+
[attr.role]="navigation.pagerEnabled ? 'application' : undefined"
|
|
20578
20604
|
[template]="pagerTemplate"
|
|
20579
20605
|
[pageSize]="pageSize"
|
|
20580
20606
|
[total]="view.total"
|
|
@@ -20583,7 +20609,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
20583
20609
|
(pageChange)="notifyPageChange('pager', $event)">
|
|
20584
20610
|
</kendo-pager>
|
|
20585
20611
|
<kendo-grid-toolbar class="k-toolbar k-grid-toolbar k-grid-toolbar-bottom" *ngIf="showBottomToolbar" position="bottom"></kendo-grid-toolbar>
|
|
20586
|
-
`, isInline: true,
|
|
20612
|
+
`, isInline: true, components: [{ type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position"] }, { type: PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "template"], outputs: ["pageChange"] }, { type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "groups"], outputs: ["change"] }, { type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate"] }, { type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "tabIndex"] }, { type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex"] }, { type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "rowClass"] }, { type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { type: i1$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }], encapsulation: i0.ViewEncapsulation.None });
|
|
20587
20613
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GridComponent, decorators: [{
|
|
20588
20614
|
type: Component,
|
|
20589
20615
|
args: [{
|
|
@@ -20632,19 +20658,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
20632
20658
|
ContextService
|
|
20633
20659
|
],
|
|
20634
20660
|
selector: 'kendo-grid',
|
|
20635
|
-
styles: [
|
|
20636
|
-
// Styles for backwards compatibility with kendo-theme-default@v2.46.0 and earlier.
|
|
20637
|
-
` .k-grid .k-grid-aria-root {
|
|
20638
|
-
display: flex;
|
|
20639
|
-
flex-direction: column;
|
|
20640
|
-
flex: 1 1 auto;
|
|
20641
|
-
overflow: hidden;
|
|
20642
|
-
}
|
|
20643
|
-
|
|
20644
|
-
.k-grid .k-filter-row td {
|
|
20645
|
-
white-space: nowrap;
|
|
20646
|
-
}`
|
|
20647
|
-
],
|
|
20648
20661
|
template: `
|
|
20649
20662
|
<ng-container kendoGridLocalizedMessages
|
|
20650
20663
|
i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
|
|
@@ -20858,8 +20871,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
20858
20871
|
<kendo-grid-toolbar class="k-toolbar k-grid-toolbar" *ngIf="showTopToolbar" position="top"></kendo-grid-toolbar>
|
|
20859
20872
|
<kendo-pager
|
|
20860
20873
|
*ngIf="showTopPager"
|
|
20861
|
-
[tabindex]="
|
|
20862
|
-
[attr.role]="
|
|
20874
|
+
[tabindex]="navigation.pagerEnabled ? '0' : '-1'"
|
|
20875
|
+
[attr.role]="navigation.pagerEnabled ? 'application' : undefined"
|
|
20863
20876
|
class="k-grid-pager-top"
|
|
20864
20877
|
[template]="pagerTemplate"
|
|
20865
20878
|
[pageSize]="pageSize"
|
|
@@ -20913,7 +20926,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
20913
20926
|
[columnMenuTemplate]="columnMenuTemplate"
|
|
20914
20927
|
[totalColumnsCount]="leafColumns.length"
|
|
20915
20928
|
[detailTemplate]="detailTemplate"
|
|
20916
|
-
[tabIndex]="
|
|
20929
|
+
[tabIndex]="navigation.tableEnabled ? '-1' : '0'">
|
|
20917
20930
|
</thead>
|
|
20918
20931
|
</table>
|
|
20919
20932
|
</div><div #header class="k-grid-header-wrap" role="presentation" data-scrollable
|
|
@@ -20944,7 +20957,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
20944
20957
|
[lockedColumnsCount]="lockedLeafColumns.length"
|
|
20945
20958
|
[totalColumnsCount]="leafColumns.length"
|
|
20946
20959
|
[detailTemplate]="detailTemplate"
|
|
20947
|
-
[tabIndex]="
|
|
20960
|
+
[tabIndex]="navigation.tableEnabled ? '-1' : '0'">
|
|
20948
20961
|
</thead>
|
|
20949
20962
|
</table>
|
|
20950
20963
|
<div *ngIf="virtualColumns" class="k-width-container" role="presentation">
|
|
@@ -21049,7 +21062,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
21049
21062
|
[columnMenu]="columnMenuOptions"
|
|
21050
21063
|
[columnMenuTemplate]="columnMenuTemplate"
|
|
21051
21064
|
[detailTemplate]="detailTemplate"
|
|
21052
|
-
[tabIndex]="
|
|
21065
|
+
[tabIndex]="navigation.tableEnabled ? '-1' : '0'">
|
|
21053
21066
|
</thead>
|
|
21054
21067
|
<tbody kendoGridTableBody
|
|
21055
21068
|
[isLoading]="loading"
|
|
@@ -21083,8 +21096,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
21083
21096
|
</div>
|
|
21084
21097
|
<kendo-pager
|
|
21085
21098
|
*ngIf="showBottomPager"
|
|
21086
|
-
[tabindex]="
|
|
21087
|
-
[attr.role]="
|
|
21099
|
+
[tabindex]="navigation.pagerEnabled ? '0' : '-1'"
|
|
21100
|
+
[attr.role]="navigation.pagerEnabled ? 'application' : undefined"
|
|
21088
21101
|
[template]="pagerTemplate"
|
|
21089
21102
|
[pageSize]="pageSize"
|
|
21090
21103
|
[total]="view.total"
|
|
@@ -45,7 +45,6 @@ export declare const localizeOperators: (operators: any) => (localization: any)
|
|
|
45
45
|
}[];
|
|
46
46
|
/**
|
|
47
47
|
* An abstract base class for the filter-cell component ([see example]({% slug reusablecustomfilters_grid %}#toc-filter-row)).
|
|
48
|
-
* @hidden
|
|
49
48
|
*/
|
|
50
49
|
export declare abstract class BaseFilterCellComponent implements AfterContentInit, OnDestroy {
|
|
51
50
|
protected filterService: FilterService;
|
package/grid.component.d.ts
CHANGED
|
@@ -73,6 +73,7 @@ import { GroupRowArgs } from './grouping/group-rows-args.interface';
|
|
|
73
73
|
import { CellLoadingTemplateDirective } from './rendering/cell-loading.template.directive';
|
|
74
74
|
import { ContextService } from './common/provider.service';
|
|
75
75
|
import { LoadingTemplateDirective } from './rendering/loading-template.directive';
|
|
76
|
+
import { GridNavigableSettings } from './navigation/navigable-settings';
|
|
76
77
|
import * as i0 from "@angular/core";
|
|
77
78
|
/**
|
|
78
79
|
* Represents the Kendo UI Grid component for Angular.
|
|
@@ -306,14 +307,16 @@ export declare class GridComponent implements AfterContentInit, AfterViewInit, O
|
|
|
306
307
|
/**
|
|
307
308
|
* If set to `true`, the user can use dedicated shortcuts to interact with the Grid.
|
|
308
309
|
* By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.
|
|
310
|
+
* To enable navigation through separate Grid sections only, provide a [`GridNavigableSection`]({% slug api_grid_gridnavigablesection %}) array.
|
|
309
311
|
*/
|
|
310
|
-
navigable:
|
|
312
|
+
set navigable(value: GridNavigableSettings);
|
|
313
|
+
get navigable(): GridNavigableSettings;
|
|
311
314
|
/**
|
|
312
315
|
* @hidden
|
|
313
316
|
*
|
|
314
317
|
* An alias for `navigable` for users who migrate from Kendo UI for jQuery.
|
|
315
318
|
*/
|
|
316
|
-
set navigatable(value:
|
|
319
|
+
set navigatable(value: GridNavigableSettings);
|
|
317
320
|
/**
|
|
318
321
|
* Indicates whether the Grid columns will be resized during initialization so that
|
|
319
322
|
* they fit their headers and row content. Defaults to `false`.
|
|
@@ -325,7 +328,7 @@ export declare class GridComponent implements AfterContentInit, AfterViewInit, O
|
|
|
325
328
|
/**
|
|
326
329
|
* @hidden
|
|
327
330
|
*/
|
|
328
|
-
get navigatable():
|
|
331
|
+
get navigatable(): GridNavigableSettings;
|
|
329
332
|
/**
|
|
330
333
|
* Defines a function that is executed for every data row in the component.
|
|
331
334
|
*
|
|
@@ -598,6 +601,7 @@ export declare class GridComponent implements AfterContentInit, AfterViewInit, O
|
|
|
598
601
|
get showGroupFooters(): boolean;
|
|
599
602
|
get ariaRowCount(): number;
|
|
600
603
|
get ariaColCount(): number;
|
|
604
|
+
get navigation(): NavigationService;
|
|
601
605
|
private shouldGenerateColumns;
|
|
602
606
|
private direction;
|
|
603
607
|
private _sort;
|
|
@@ -615,6 +619,7 @@ export declare class GridComponent implements AfterContentInit, AfterViewInit, O
|
|
|
615
619
|
private _customToolbarTemplate;
|
|
616
620
|
private leafViewportColumns;
|
|
617
621
|
private viewportColumns;
|
|
622
|
+
private _navigable;
|
|
618
623
|
get isVirtual(): boolean;
|
|
619
624
|
get isScrollable(): boolean;
|
|
620
625
|
get visibleColumns(): QueryList<ColumnBase>;
|
package/main.d.ts
CHANGED
|
@@ -145,6 +145,7 @@ export { ColumnReorderConfig } from './dragdrop/column-reorder-config';
|
|
|
145
145
|
export { FocusableDirective } from './navigation/focusable.directive';
|
|
146
146
|
export { NavigationCell } from './navigation/navigation-cell.interface';
|
|
147
147
|
export { NavigationRow } from './navigation/navigation-row.interface';
|
|
148
|
+
export { GridNavigableSettings, GridNavigableSection } from './navigation/navigable-settings';
|
|
148
149
|
export { ColumnMenuSettings } from './column-menu/column-menu-settings.interface';
|
|
149
150
|
export { ColumnVisibilityChangeEvent } from './column-menu/column-visibility-change-event';
|
|
150
151
|
export { ExpandableColumnMenuItem } from './column-menu/column-menu-expandable-item.interface';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
/**
|
|
6
|
+
* Represents the possible navigable sections of the Grid.
|
|
7
|
+
*/
|
|
8
|
+
export declare type GridNavigableSection = 'pager' | 'table';
|
|
9
|
+
/**
|
|
10
|
+
* Represents the type of the Grid [`navigable`]({% slug api_grid_gridcomponent %}#toc-navigable) option.
|
|
11
|
+
*/
|
|
12
|
+
export declare type GridNavigableSettings = boolean | GridNavigableSection[];
|
|
@@ -19,6 +19,7 @@ import { GroupsService } from '../grouping/groups.service';
|
|
|
19
19
|
import { PagerContextService } from '../pager/pager-context.service';
|
|
20
20
|
import { DetailsService } from '../rendering/details/details.service';
|
|
21
21
|
import { ScrollRequestService } from '../scrolling/scroll-request.service';
|
|
22
|
+
import { GridNavigableSection } from './navigable-settings';
|
|
22
23
|
import * as i0 from "@angular/core";
|
|
23
24
|
/**
|
|
24
25
|
* @hidden
|
|
@@ -50,6 +51,8 @@ export declare class NavigationService implements OnDestroy {
|
|
|
50
51
|
set metadata(value: NavigationMetadata);
|
|
51
52
|
get metadata(): NavigationMetadata;
|
|
52
53
|
get enabled(): boolean;
|
|
54
|
+
get pagerEnabled(): boolean;
|
|
55
|
+
get tableEnabled(): boolean;
|
|
53
56
|
get activeCell(): NavigationCell;
|
|
54
57
|
get activeRow(): NavigationRow;
|
|
55
58
|
viewport: NavigationViewport;
|
|
@@ -64,9 +67,11 @@ export declare class NavigationService implements OnDestroy {
|
|
|
64
67
|
private subs;
|
|
65
68
|
private pendingRowIndex;
|
|
66
69
|
private virtualCell;
|
|
70
|
+
private pagerIsNavigable;
|
|
71
|
+
private tableIsNavigable;
|
|
67
72
|
private get activeDataRow();
|
|
68
73
|
constructor(zone: NgZone, domEvents: DomEventsService, pagerContextService: PagerContextService, scrollRequestService: ScrollRequestService, groupsService: GroupsService, detailsService: DetailsService, focusRoot: FocusRoot, editService: EditService, cd: ChangeDetectorRef, localization: LocalizationService, focusableParent: FocusableDirective);
|
|
69
|
-
init(meta: NavigationMetadata): void;
|
|
74
|
+
init(meta: NavigationMetadata, navigableOptions: GridNavigableSection[]): void;
|
|
70
75
|
ngOnDestroy(): void;
|
|
71
76
|
registerCell(cell: LogicalCell): void;
|
|
72
77
|
registerCellOnCurrentRow(cell: LogicalCell): void;
|
|
@@ -88,6 +93,7 @@ export declare class NavigationService implements OnDestroy {
|
|
|
88
93
|
toggle(active: boolean): void;
|
|
89
94
|
hasFocus(): boolean;
|
|
90
95
|
autoFocusCell(start: number, end: number): boolean;
|
|
96
|
+
setActiveSections(navigableOptions: GridNavigableSection[]): void;
|
|
91
97
|
private focusAdjacentCell;
|
|
92
98
|
private enterCell;
|
|
93
99
|
private leaveCell;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-grid",
|
|
3
|
-
"version": "7.0
|
|
3
|
+
"version": "7.1.0-dev.202205311232",
|
|
4
4
|
"description": "Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|