@progress/kendo-angular-grid 13.3.1-develop.1 → 13.4.0-develop.10
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/cell/autocomplete-filter-cell.component.mjs +1 -1
- package/esm2020/filtering/cell/boolean-filter-cell.component.mjs +1 -1
- package/esm2020/filtering/cell/filter-cell-operators.component.mjs +1 -1
- package/esm2020/filtering/menu/date-filter-menu.component.mjs +1 -1
- package/esm2020/filtering/menu/filter-menu-container.component.mjs +2 -2
- package/esm2020/filtering/menu/filter-menu-input-wrapper.component.mjs +1 -1
- package/esm2020/filtering/menu/filter-menu-template.directive.mjs +21 -1
- package/esm2020/filtering/menu/filter-menu.component.mjs +52 -10
- package/esm2020/filtering/menu/numeric-filter-menu.component.mjs +1 -1
- package/esm2020/filtering/menu/string-filter-menu.component.mjs +1 -1
- package/esm2020/navigation/logical-cell.directive.mjs +1 -1
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/pager/pager-numeric-buttons.component.mjs +14 -8
- package/esm2020/pager/pager-page-sizes.component.mjs +1 -1
- package/esm2020/pager/pager.component.mjs +76 -42
- package/esm2020/rendering/footer/footer.component.mjs +1 -1
- package/esm2020/rendering/groups-expand.directive.mjs +9 -1
- package/esm2020/rendering/header/header.component.mjs +31 -21
- package/fesm2015/progress-kendo-angular-grid.mjs +927 -540
- package/fesm2020/progress-kendo-angular-grid.mjs +928 -549
- package/filtering/menu/filter-menu-template.directive.d.ts +21 -1
- package/filtering/menu/filter-menu.component.d.ts +13 -4
- package/package.json +16 -16
- package/pager/pager-numeric-buttons.component.d.ts +2 -1
- package/pager/pager.component.d.ts +5 -1
- package/rendering/header/header.component.d.ts +4 -1
- package/schematics/ngAdd/index.js +3 -3
|
@@ -9,7 +9,7 @@ export const packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-grid',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
13
|
-
version: '13.
|
|
12
|
+
publishDate: 1692972014,
|
|
13
|
+
version: '13.4.0-develop.10',
|
|
14
14
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
15
15
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component,
|
|
5
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from '@angular/core';
|
|
6
6
|
import { ContextService } from '../common/provider.service';
|
|
7
7
|
import { PagerContextService } from './pager-context.service';
|
|
8
8
|
import { PagerElementComponent } from './pager-element.component';
|
|
@@ -19,7 +19,6 @@ export class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
|
19
19
|
constructor(ctx, cd, pagerContext) {
|
|
20
20
|
super(ctx, pagerContext, cd);
|
|
21
21
|
this.pagerContext = pagerContext;
|
|
22
|
-
this.numbersWrapClass = true;
|
|
23
22
|
}
|
|
24
23
|
/**
|
|
25
24
|
* @hidden
|
|
@@ -89,10 +88,12 @@ export class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
|
89
88
|
}
|
|
90
89
|
}
|
|
91
90
|
PagerNumericButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNumericButtonsComponent, deps: [{ token: i1.ContextService }, { token: i0.ChangeDetectorRef }, { token: i2.PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
92
|
-
PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: { buttonCount: "buttonCount" },
|
|
91
|
+
PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: { buttonCount: "buttonCount" }, viewQueries: [{ propertyName: "selectElement", first: true, predicate: ["select"], descendants: true, read: ElementRef }, { propertyName: "numbersElement", first: true, predicate: ["numbers"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
|
|
93
92
|
<select
|
|
93
|
+
#select
|
|
94
94
|
class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
95
95
|
kendoGridFocusable
|
|
96
|
+
[style.display]="'none'"
|
|
96
97
|
[attr.title]="textFor('selectPage')"
|
|
97
98
|
[attr.aria-label]="textFor('selectPage')"
|
|
98
99
|
[ngClass]="{
|
|
@@ -119,7 +120,7 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
119
120
|
[attr.aria-label]="pageLabel(end + 1)">...
|
|
120
121
|
</option>
|
|
121
122
|
</select>
|
|
122
|
-
<div class="k-pager-numbers">
|
|
123
|
+
<div class="k-pager-numbers" #numbers>
|
|
123
124
|
<button *ngIf="start > 1"
|
|
124
125
|
type="button"
|
|
125
126
|
kendoGridFocusable
|
|
@@ -169,8 +170,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
169
170
|
selector: 'kendo-pager-numeric-buttons',
|
|
170
171
|
template: `
|
|
171
172
|
<select
|
|
173
|
+
#select
|
|
172
174
|
class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
173
175
|
kendoGridFocusable
|
|
176
|
+
[style.display]="'none'"
|
|
174
177
|
[attr.title]="textFor('selectPage')"
|
|
175
178
|
[attr.aria-label]="textFor('selectPage')"
|
|
176
179
|
[ngClass]="{
|
|
@@ -197,7 +200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
197
200
|
[attr.aria-label]="pageLabel(end + 1)">...
|
|
198
201
|
</option>
|
|
199
202
|
</select>
|
|
200
|
-
<div class="k-pager-numbers">
|
|
203
|
+
<div class="k-pager-numbers" #numbers>
|
|
201
204
|
<button *ngIf="start > 1"
|
|
202
205
|
type="button"
|
|
203
206
|
kendoGridFocusable
|
|
@@ -241,9 +244,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
241
244
|
</div>
|
|
242
245
|
`
|
|
243
246
|
}]
|
|
244
|
-
}], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i0.ChangeDetectorRef }, { type: i2.PagerContextService }]; }, propDecorators: {
|
|
245
|
-
type:
|
|
246
|
-
args: ['
|
|
247
|
+
}], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i0.ChangeDetectorRef }, { type: i2.PagerContextService }]; }, propDecorators: { selectElement: [{
|
|
248
|
+
type: ViewChild,
|
|
249
|
+
args: ['select', { read: ElementRef }]
|
|
250
|
+
}], numbersElement: [{
|
|
251
|
+
type: ViewChild,
|
|
252
|
+
args: ['numbers', { read: ElementRef }]
|
|
247
253
|
}], buttonCount: [{
|
|
248
254
|
type: Input
|
|
249
255
|
}] } });
|
|
@@ -109,7 +109,7 @@ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
109
109
|
[value]="pageSize"
|
|
110
110
|
(valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
|
|
111
111
|
<kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
|
|
112
|
-
`, isInline: true, components: [{ type: i4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }], directives: [{ type: i6.PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]" }, { type: i7.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
112
|
+
`, isInline: true, components: [{ type: i4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }], directives: [{ type: i6.PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]" }, { type: i7.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
113
113
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
|
|
114
114
|
type: Component,
|
|
115
115
|
args: [{
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Component, Input, EventEmitter, Output, HostBinding, ElementRef, Renderer2, HostListener, NgZone, Optional, Inject } from '@angular/core';
|
|
5
|
+
import { Component, Input, EventEmitter, Output, HostBinding, ElementRef, Renderer2, HostListener, NgZone, Optional, Inject, ViewChild } from '@angular/core';
|
|
6
6
|
import { normalize } from './pager-settings';
|
|
7
7
|
import { PagerTemplateDirective } from './pager-template.directive';
|
|
8
8
|
import { anyChanged, replaceMessagePlaceholder } from '../utils';
|
|
@@ -16,6 +16,9 @@ import { FocusGroup } from '../navigation/focus-group';
|
|
|
16
16
|
import { FocusRoot, FOCUS_ROOT_ACTIVE } from '../navigation/focus-root';
|
|
17
17
|
import { findFocusableChild, findLastFocusableChild } from '../rendering/common/dom-queries';
|
|
18
18
|
import { ContextService } from '../common/provider.service';
|
|
19
|
+
import { PagerInfoComponent } from './pager-info.component';
|
|
20
|
+
import { PagerPageSizesComponent } from './pager-page-sizes.component';
|
|
21
|
+
import { PagerNumericButtonsComponent } from './pager-numeric-buttons.component';
|
|
19
22
|
import * as i0 from "@angular/core";
|
|
20
23
|
import * as i1 from "./pager-context.service";
|
|
21
24
|
import * as i2 from "../navigation/navigation.service";
|
|
@@ -59,18 +62,33 @@ export class PagerComponent {
|
|
|
59
62
|
if (this.template || !element) {
|
|
60
63
|
return;
|
|
61
64
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
65
|
+
this.zone.runOutsideAngular(() => {
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
const width = element.offsetWidth;
|
|
68
|
+
if (this.numericButtons) {
|
|
69
|
+
const selectElement = this.numericButtons.selectElement.nativeElement;
|
|
70
|
+
const numbersElement = this.numericButtons.numbersElement.nativeElement;
|
|
71
|
+
this.renderer.removeStyle(numbersElement, 'display');
|
|
72
|
+
this.renderer.setStyle(selectElement, 'display', 'none');
|
|
73
|
+
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
74
|
+
this.renderer.removeStyle(selectElement, 'display');
|
|
75
|
+
this.renderer.setStyle(numbersElement, 'display', 'none');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (this.pagerInfo) {
|
|
79
|
+
this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
|
|
80
|
+
if (width < RESPONSIVE_BREAKPOINT_LARGE) {
|
|
81
|
+
this.renderer.setStyle(this.pagerInfo.nativeElement, 'display', 'none');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (this.pagerPageSizes) {
|
|
85
|
+
this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
|
|
86
|
+
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
87
|
+
this.renderer.setStyle(this.pagerPageSizes.nativeElement, 'display', 'none');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
74
92
|
};
|
|
75
93
|
}
|
|
76
94
|
set options(value) {
|
|
@@ -189,12 +207,10 @@ export class PagerComponent {
|
|
|
189
207
|
}
|
|
190
208
|
const changesInTemplate = changes['template'];
|
|
191
209
|
if (changesInTemplate) {
|
|
192
|
-
|
|
193
|
-
changesInTemplate.currentValue ? this.clearResponsiveClasses() : this.resizeHandler();
|
|
210
|
+
changesInTemplate.currentValue ? this.clearResponsiveStyling() : this.resizeHandler();
|
|
194
211
|
}
|
|
195
212
|
if (changes['options']) {
|
|
196
|
-
|
|
197
|
-
this.settings.responsive ? this.resizeHandler() : this.clearResponsiveClasses();
|
|
213
|
+
this.settings.responsive ? this.resizeHandler() : this.clearResponsiveStyling();
|
|
198
214
|
}
|
|
199
215
|
}
|
|
200
216
|
ngOnDestroy() {
|
|
@@ -220,11 +236,6 @@ export class PagerComponent {
|
|
|
220
236
|
}
|
|
221
237
|
});
|
|
222
238
|
}
|
|
223
|
-
clearResponsiveClasses() {
|
|
224
|
-
const element = this.element.nativeElement;
|
|
225
|
-
this.renderer.removeClass(element, 'k-pager-mobile-sm');
|
|
226
|
-
this.renderer.removeClass(element, 'k-pager-mobile-md');
|
|
227
|
-
}
|
|
228
239
|
shouldTriggerPageChange(target, condition) {
|
|
229
240
|
return this.navigationService.pagerEnabled &&
|
|
230
241
|
target === this.element.nativeElement &&
|
|
@@ -247,6 +258,18 @@ export class PagerComponent {
|
|
|
247
258
|
this.cellContext.focusGroup = this.focusGroup;
|
|
248
259
|
}
|
|
249
260
|
}
|
|
261
|
+
clearResponsiveStyling() {
|
|
262
|
+
this.zone.runOutsideAngular(() => {
|
|
263
|
+
setTimeout(() => {
|
|
264
|
+
if (this.numericButtons) {
|
|
265
|
+
this.renderer.removeStyle(this.numericButtons.numbersElement.nativeElement, 'display');
|
|
266
|
+
this.renderer.setStyle(this.numericButtons.selectElement.nativeElement, 'display', 'none');
|
|
267
|
+
}
|
|
268
|
+
this.pagerInfo && this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
|
|
269
|
+
this.pagerPageSizes && this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
}
|
|
250
273
|
}
|
|
251
274
|
PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerComponent, deps: [{ token: i1.PagerContextService }, { token: i2.NavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i3.ContextService }, { token: CELL_CONTEXT, optional: true }, { token: i4.FocusRoot }, { token: i5.FocusGroup }], target: i0.ɵɵFactoryTarget.Component });
|
|
252
275
|
PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerComponent, selector: "kendo-pager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", options: "options", size: "size", template: "template" }, outputs: { pageChange: "pageChange" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut()", "keydown.escape": "onEscape()", "keydown.enter": "onEnter($event)", "keydown.arrowleft": "navigateToPreviousPage($event)", "keydown.pageup": "navigateToPreviousPage($event)", "keydown.arrowright": "navigateToNextPage($event)", "keydown.pagedown": "navigateToNextPage($event)", "keydown.home": "navigateToFirstPage($event)", "keydown.end": "navigateToLastPage($event)" }, properties: { "class.k-pager-wrap": "this.pagerWrapClass", "class.k-grid-pager": "this.gridPagerClass", "class.k-pager-sm": "this.sizeSmallClass", "class.k-pager-md": "this.sizeMediumClass", "class.k-focus": "this.isFocused", "attr.aria-label": "this.pagerAriaLabel" } }, providers: [{
|
|
@@ -260,7 +283,7 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
260
283
|
provide: FocusGroup,
|
|
261
284
|
deps: [FocusRoot],
|
|
262
285
|
useClass: FocusGroup
|
|
263
|
-
}], usesOnChanges: true, ngImport: i0, template: `
|
|
286
|
+
}], viewQueries: [{ propertyName: "pagerInfo", first: true, predicate: PagerInfoComponent, descendants: true, read: ElementRef }, { propertyName: "pagerPageSizes", first: true, predicate: PagerPageSizesComponent, descendants: true, read: ElementRef }, { propertyName: "numericButtons", first: true, predicate: PagerNumericButtonsComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
264
287
|
<div
|
|
265
288
|
*ngIf="navigationService.pagerEnabled"
|
|
266
289
|
class="k-sr-only"
|
|
@@ -274,20 +297,21 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
274
297
|
[ngTemplateOutletContext]="templateContext">
|
|
275
298
|
</ng-container>
|
|
276
299
|
<ng-container *ngIf="!template?.templateRef">
|
|
277
|
-
<
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
300
|
+
<div class="k-pager-numbers-wrap">
|
|
301
|
+
<kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
|
|
302
|
+
<kendo-pager-numeric-buttons
|
|
303
|
+
[size]="size"
|
|
304
|
+
*ngIf="settings.type === 'numeric'"
|
|
305
|
+
[buttonCount]="settings.buttonCount">
|
|
306
|
+
</kendo-pager-numeric-buttons>
|
|
307
|
+
<kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
|
|
308
|
+
<kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
|
|
309
|
+
</div>
|
|
285
310
|
<kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
|
|
286
311
|
<kendo-pager-page-sizes
|
|
287
312
|
[size]="size"
|
|
288
313
|
*ngIf="settings.pageSizes"
|
|
289
314
|
[pageSizes]="$any(settings.pageSizes)"
|
|
290
|
-
#pageSizes
|
|
291
315
|
></kendo-pager-page-sizes>
|
|
292
316
|
</ng-container>
|
|
293
317
|
<div
|
|
@@ -329,20 +353,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
329
353
|
[ngTemplateOutletContext]="templateContext">
|
|
330
354
|
</ng-container>
|
|
331
355
|
<ng-container *ngIf="!template?.templateRef">
|
|
332
|
-
<
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
356
|
+
<div class="k-pager-numbers-wrap">
|
|
357
|
+
<kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
|
|
358
|
+
<kendo-pager-numeric-buttons
|
|
359
|
+
[size]="size"
|
|
360
|
+
*ngIf="settings.type === 'numeric'"
|
|
361
|
+
[buttonCount]="settings.buttonCount">
|
|
362
|
+
</kendo-pager-numeric-buttons>
|
|
363
|
+
<kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
|
|
364
|
+
<kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
|
|
365
|
+
</div>
|
|
340
366
|
<kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
|
|
341
367
|
<kendo-pager-page-sizes
|
|
342
368
|
[size]="size"
|
|
343
369
|
*ngIf="settings.pageSizes"
|
|
344
370
|
[pageSizes]="$any(settings.pageSizes)"
|
|
345
|
-
#pageSizes
|
|
346
371
|
></kendo-pager-page-sizes>
|
|
347
372
|
</ng-container>
|
|
348
373
|
<div
|
|
@@ -360,7 +385,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
360
385
|
}, {
|
|
361
386
|
type: Inject,
|
|
362
387
|
args: [CELL_CONTEXT]
|
|
363
|
-
}] }, { type: i4.FocusRoot }, { type: i5.FocusGroup }]; }, propDecorators: {
|
|
388
|
+
}] }, { type: i4.FocusRoot }, { type: i5.FocusGroup }]; }, propDecorators: { pagerInfo: [{
|
|
389
|
+
type: ViewChild,
|
|
390
|
+
args: [PagerInfoComponent, { read: ElementRef }]
|
|
391
|
+
}], pagerPageSizes: [{
|
|
392
|
+
type: ViewChild,
|
|
393
|
+
args: [PagerPageSizesComponent, { read: ElementRef }]
|
|
394
|
+
}], numericButtons: [{
|
|
395
|
+
type: ViewChild,
|
|
396
|
+
args: [PagerNumericButtonsComponent]
|
|
397
|
+
}], total: [{
|
|
364
398
|
type: Input
|
|
365
399
|
}], skip: [{
|
|
366
400
|
type: Input
|
|
@@ -42,7 +42,7 @@ export class FooterComponent {
|
|
|
42
42
|
}
|
|
43
43
|
addStickyStyles(column) {
|
|
44
44
|
const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);
|
|
45
|
-
return { ...column.
|
|
45
|
+
return { ...column.footerStyle, ...stickyStyles };
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
FooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FooterComponent, deps: [{ token: i1.ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -101,7 +101,15 @@ export class ExpandGroupDirective {
|
|
|
101
101
|
this.expandedGroupKeys.push(key);
|
|
102
102
|
}
|
|
103
103
|
else {
|
|
104
|
-
const index = this.expandedGroupKeys.
|
|
104
|
+
const index = this.expandedGroupKeys.findIndex(group => {
|
|
105
|
+
if (this.expandGroupBy) {
|
|
106
|
+
return group === key;
|
|
107
|
+
}
|
|
108
|
+
else if (key.parentGroupKeys?.length === 0) {
|
|
109
|
+
return group.value === key.value;
|
|
110
|
+
}
|
|
111
|
+
return JSON.stringify(group) === JSON.stringify(key);
|
|
112
|
+
});
|
|
105
113
|
this.expandedGroupKeys.splice(index, 1);
|
|
106
114
|
}
|
|
107
115
|
this.expandedGroupKeysChange.emit(this.expandedGroupKeys.slice());
|
|
@@ -31,6 +31,7 @@ import { sortAscSmallIcon, sortDescSmallIcon } from '@progress/kendo-svg-icons';
|
|
|
31
31
|
import { ContextService } from '../../common/provider.service';
|
|
32
32
|
import { ColumnReorderEvent } from '../../dragdrop/column-reorder-event';
|
|
33
33
|
import { ColumnsContainer } from '../../columns/columns-container';
|
|
34
|
+
import { NavigationService } from '../../navigation/navigation.service';
|
|
34
35
|
import * as i0 from "@angular/core";
|
|
35
36
|
import * as i1 from "../../common/single-popup.service";
|
|
36
37
|
import * as i2 from "../../dragdrop/drag-hint.service";
|
|
@@ -40,20 +41,21 @@ import * as i5 from "../../common/id.service";
|
|
|
40
41
|
import * as i6 from "../../common/sort.service";
|
|
41
42
|
import * as i7 from "./../../common/column-info.service";
|
|
42
43
|
import * as i8 from "../../common/provider.service";
|
|
43
|
-
import * as i9 from "../../
|
|
44
|
-
import * as i10 from "../../
|
|
45
|
-
import * as i11 from "
|
|
46
|
-
import * as i12 from "
|
|
47
|
-
import * as i13 from "
|
|
48
|
-
import * as i14 from "
|
|
49
|
-
import * as i15 from "../../navigation/logical-
|
|
50
|
-
import * as i16 from "../../
|
|
51
|
-
import * as i17 from "
|
|
52
|
-
import * as i18 from "
|
|
53
|
-
import * as i19 from "
|
|
54
|
-
import * as i20 from "
|
|
55
|
-
import * as i21 from "../../
|
|
56
|
-
import * as i22 from "../../
|
|
44
|
+
import * as i9 from "../../navigation/navigation.service";
|
|
45
|
+
import * as i10 from "../../filtering/menu/filter-menu.component";
|
|
46
|
+
import * as i11 from "../../column-menu/column-menu.component";
|
|
47
|
+
import * as i12 from "@progress/kendo-angular-icons";
|
|
48
|
+
import * as i13 from "../../filtering/filter-row.component";
|
|
49
|
+
import * as i14 from "@angular/common";
|
|
50
|
+
import * as i15 from "../../navigation/logical-row.directive";
|
|
51
|
+
import * as i16 from "../../navigation/logical-cell.directive";
|
|
52
|
+
import * as i17 from "../../dragdrop/drop-target.directive";
|
|
53
|
+
import * as i18 from "@progress/kendo-angular-common";
|
|
54
|
+
import * as i19 from "../../dragdrop/draggable-column.directive";
|
|
55
|
+
import * as i20 from "../common/template-context.directive";
|
|
56
|
+
import * as i21 from "../../selection/selectall-checkbox.directive";
|
|
57
|
+
import * as i22 from "../../navigation/focusable.directive";
|
|
58
|
+
import * as i23 from "../../column-resizing/column-handle.directive";
|
|
57
59
|
const mergeObjects = (...args) => Object.assign.apply(null, [{}].concat(args));
|
|
58
60
|
const directions = initialDirection => initialDirection === "asc" ? ["asc", "desc"] : ["desc", "asc"];
|
|
59
61
|
/**
|
|
@@ -79,7 +81,7 @@ const modifierKeys = ['alt', 'ctrl', 'shift', 'meta'];
|
|
|
79
81
|
* @hidden
|
|
80
82
|
*/
|
|
81
83
|
export class HeaderComponent {
|
|
82
|
-
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService) {
|
|
84
|
+
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService, navigationService) {
|
|
83
85
|
this.popupService = popupService;
|
|
84
86
|
this.hint = hint;
|
|
85
87
|
this.cue = cue;
|
|
@@ -89,6 +91,7 @@ export class HeaderComponent {
|
|
|
89
91
|
this.columnInfoService = columnInfoService;
|
|
90
92
|
this.cd = cd;
|
|
91
93
|
this.contextService = contextService;
|
|
94
|
+
this.navigationService = navigationService;
|
|
92
95
|
this.columns = [];
|
|
93
96
|
this.groups = [];
|
|
94
97
|
this.sort = new Array();
|
|
@@ -223,6 +226,9 @@ export class HeaderComponent {
|
|
|
223
226
|
return 'descending';
|
|
224
227
|
}
|
|
225
228
|
}
|
|
229
|
+
get isNavigable() {
|
|
230
|
+
return this.navigationService.tableEnabled;
|
|
231
|
+
}
|
|
226
232
|
/**
|
|
227
233
|
*
|
|
228
234
|
* @param column
|
|
@@ -333,7 +339,7 @@ export class HeaderComponent {
|
|
|
333
339
|
}
|
|
334
340
|
addStickyStyles(column) {
|
|
335
341
|
const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);
|
|
336
|
-
return { ...column.
|
|
342
|
+
return { ...column.headerStyle, ...stickyStyles };
|
|
337
343
|
}
|
|
338
344
|
toggleDirection(field, allowUnsort, initialDirection) {
|
|
339
345
|
const descriptor = this.sortDescriptor(field);
|
|
@@ -450,7 +456,7 @@ export class HeaderComponent {
|
|
|
450
456
|
});
|
|
451
457
|
}
|
|
452
458
|
}
|
|
453
|
-
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: i1.SinglePopupService }, { token: i2.DragHintService }, { token: i3.DropCueService }, { token: i4.ColumnReorderService }, { token: i5.IdService }, { token: i6.SortService }, { token: i7.ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: i8.ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
459
|
+
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: i1.SinglePopupService }, { token: i2.DragHintService }, { token: i3.DropCueService }, { token: i4.ColumnReorderService }, { token: i5.IdService }, { token: i6.SortService }, { token: i7.ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: i8.ContextService }, { token: i9.NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
454
460
|
HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: { totalColumnLevels: "totalColumnLevels", columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", filterable: "filterable", sort: "sort", filter: "filter", sortable: "sortable", groupable: "groupable", lockedColumnsCount: "lockedColumnsCount", resizable: "resizable", reorderable: "reorderable", columnMenu: "columnMenu", columnMenuTemplate: "columnMenuTemplate", totalColumnsCount: "totalColumnsCount", totalColumns: "totalColumns", tabIndex: "tabIndex", size: "size" }, host: { properties: { "class.k-grid-header": "this.headerClass", "class.k-table-thead": "this.hostClass" } }, viewQueries: [{ propertyName: "dropTargets", predicate: DropTargetDirective, descendants: true }, { propertyName: "filterMenus", predicate: FilterMenuComponent, descendants: true }, { propertyName: "columnMenus", predicate: ColumnMenuComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
455
461
|
<ng-container>
|
|
456
462
|
<tr *ngFor="let i of columnLevels; let levelIndex = index"
|
|
@@ -502,7 +508,9 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
502
508
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
503
509
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
504
510
|
[attr.colspan]="column.colspan"
|
|
505
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
511
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
512
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
513
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
506
514
|
|
|
507
515
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
508
516
|
<span class="k-cell-inner">
|
|
@@ -668,7 +676,7 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
668
676
|
[totalColumns]="totalColumns"
|
|
669
677
|
></tr>
|
|
670
678
|
</ng-container>
|
|
671
|
-
`, isInline: true, components: [{ type:
|
|
679
|
+
`, isInline: true, components: [{ type: i10.FilterMenuComponent, selector: "kendo-grid-filter-menu", inputs: ["column", "filter", "tabIndex"] }, { type: i11.ColumnMenuComponent, selector: "kendo-grid-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate", "tabIndex"] }, { type: i12.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i13.FilterRowComponent, selector: "[kendoGridFilterRow]", inputs: ["columns", "filter", "groups", "detailTemplate", "logicalRowIndex", "lockedColumnsCount"] }], directives: [{ type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i15.LogicalRowDirective, selector: "[kendoGridLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem", "totalColumns"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i16.LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { type: i17.DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { type: i18.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i19.DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { type: i14.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i14.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i20.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i21.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { type: i22.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i23.ColumnHandleDirective, selector: "[kendoGridColumnHandle]", inputs: ["columns", "column"] }] });
|
|
672
680
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
673
681
|
type: Component,
|
|
674
682
|
args: [{
|
|
@@ -724,7 +732,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
724
732
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
725
733
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
726
734
|
[attr.colspan]="column.colspan"
|
|
727
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
735
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
736
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
737
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
728
738
|
|
|
729
739
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
730
740
|
<span class="k-cell-inner">
|
|
@@ -892,7 +902,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
892
902
|
</ng-container>
|
|
893
903
|
`
|
|
894
904
|
}]
|
|
895
|
-
}], ctorParameters: function () { return [{ type: i1.SinglePopupService }, { type: i2.DragHintService }, { type: i3.DropCueService }, { type: i4.ColumnReorderService }, { type: i5.IdService }, { type: i6.SortService }, { type: i7.ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: i8.ContextService }]; }, propDecorators: { totalColumnLevels: [{
|
|
905
|
+
}], ctorParameters: function () { return [{ type: i1.SinglePopupService }, { type: i2.DragHintService }, { type: i3.DropCueService }, { type: i4.ColumnReorderService }, { type: i5.IdService }, { type: i6.SortService }, { type: i7.ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: i8.ContextService }, { type: i9.NavigationService }]; }, propDecorators: { totalColumnLevels: [{
|
|
896
906
|
type: Input
|
|
897
907
|
}], columns: [{
|
|
898
908
|
type: Input
|