@progress/kendo-angular-grid 17.0.0-develop.36 → 17.0.0-develop.38
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 +5 -4
- package/column-menu/column-list.component.d.ts +1 -1
- package/esm2022/column-menu/column-chooser-item-checked.directive.mjs +12 -9
- package/esm2022/column-menu/column-list.component.mjs +59 -66
- package/esm2022/filtering/boolean-filter.component.mjs +3 -12
- package/esm2022/filtering/cell/string-filter-cell.component.mjs +4 -2
- package/esm2022/filtering/filter-row.component.mjs +4 -8
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +8 -10
- package/esm2022/filtering/menu/filter-menu.module.mjs +1 -1
- package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +11 -11
- package/esm2022/grid.module.mjs +1 -1
- package/esm2022/grouping/group-header.component.mjs +2 -2
- package/esm2022/navigation/default-focusable-element.mjs +2 -1
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/cell.component.mjs +39 -59
- package/esm2022/rendering/footer/footer.component.mjs +2 -2
- package/esm2022/rendering/header/header.component.mjs +17 -20
- package/esm2022/rendering/header/header.module.mjs +1 -1
- package/esm2022/rendering/list.component.mjs +4 -4
- package/esm2022/rendering/table-body.component.mjs +10 -12
- package/esm2022/selection/selectall-checkbox.directive.mjs +19 -21
- package/esm2022/selection/selection-checkbox.directive.mjs +14 -10
- package/fesm2022/progress-kendo-angular-grid.mjs +202 -248
- package/filtering/boolean-filter.component.d.ts +0 -4
- package/filtering/menu/boolean-filter-menu.component.d.ts +2 -1
- package/package.json +18 -18
- package/schematics/ngAdd/index.js +4 -4
- package/selection/selectall-checkbox.directive.d.ts +5 -6
- package/selection/selection-checkbox.directive.d.ts +4 -3
|
@@ -2,19 +2,20 @@
|
|
|
2
2
|
* Copyright © 2024 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 { ElementRef
|
|
5
|
+
import { ElementRef } from '@angular/core';
|
|
6
|
+
import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
/**
|
|
8
9
|
* @hidden
|
|
9
10
|
*/
|
|
10
11
|
export declare class ColumnMenuChooserItemCheckedDirective {
|
|
11
12
|
host: ElementRef;
|
|
12
|
-
private renderer;
|
|
13
13
|
kendoColumnMenuChooserItemChecked: boolean;
|
|
14
|
+
checkbox: CheckBoxComponent;
|
|
14
15
|
private checkedChangeSub;
|
|
15
|
-
constructor(host: ElementRef
|
|
16
|
+
constructor(host: ElementRef);
|
|
16
17
|
ngAfterViewInit(): void;
|
|
17
18
|
ngOnDestroy(): void;
|
|
18
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuChooserItemCheckedDirective, never>;
|
|
19
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ColumnMenuChooserItemCheckedDirective, "[kendoColumnMenuChooserItemChecked]", never, { "kendoColumnMenuChooserItemChecked": { "alias": "kendoColumnMenuChooserItemChecked"; "required": false; }; }, {},
|
|
20
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ColumnMenuChooserItemCheckedDirective, "[kendoColumnMenuChooserItemChecked]", never, { "kendoColumnMenuChooserItemChecked": { "alias": "kendoColumnMenuChooserItemChecked"; "required": false; }; }, {}, ["checkbox"], never, true, never>;
|
|
20
21
|
}
|
|
@@ -33,6 +33,7 @@ export declare class ColumnListComponent implements OnInit, OnDestroy {
|
|
|
33
33
|
resetButton: ElementRef;
|
|
34
34
|
private applyButton;
|
|
35
35
|
private options;
|
|
36
|
+
private checkboxes;
|
|
36
37
|
private hasLocked;
|
|
37
38
|
private hasVisibleLocked;
|
|
38
39
|
private unlockedCount;
|
|
@@ -51,7 +52,6 @@ export declare class ColumnListComponent implements OnInit, OnDestroy {
|
|
|
51
52
|
applyChanges(): void;
|
|
52
53
|
onTab(e: Event): void;
|
|
53
54
|
onKeydown: (e: KeyboardEvent) => void;
|
|
54
|
-
private forEachCheckBox;
|
|
55
55
|
private updateDisabled;
|
|
56
56
|
private updateColumnState;
|
|
57
57
|
private setDisabledState;
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Copyright © 2024 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 { Directive, ElementRef, HostBinding, Input
|
|
5
|
+
import { ContentChild, Directive, ElementRef, HostBinding, Input } from '@angular/core';
|
|
6
|
+
import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
|
|
6
7
|
import { Subscription } from 'rxjs';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
/**
|
|
@@ -10,23 +11,22 @@ import * as i0 from "@angular/core";
|
|
|
10
11
|
*/
|
|
11
12
|
export class ColumnMenuChooserItemCheckedDirective {
|
|
12
13
|
host;
|
|
13
|
-
renderer;
|
|
14
14
|
kendoColumnMenuChooserItemChecked;
|
|
15
|
+
checkbox;
|
|
15
16
|
checkedChangeSub = new Subscription();
|
|
16
|
-
constructor(host
|
|
17
|
+
constructor(host) {
|
|
17
18
|
this.host = host;
|
|
18
|
-
this.renderer = renderer;
|
|
19
19
|
}
|
|
20
20
|
ngAfterViewInit() {
|
|
21
|
-
this.checkedChangeSub.add(this.
|
|
22
|
-
this.kendoColumnMenuChooserItemChecked =
|
|
21
|
+
this.checkedChangeSub.add(this.checkbox.checkedStateChange.subscribe(() => {
|
|
22
|
+
this.kendoColumnMenuChooserItemChecked = this.checkbox.checkedState === true;
|
|
23
23
|
}));
|
|
24
24
|
}
|
|
25
25
|
ngOnDestroy() {
|
|
26
26
|
this.checkedChangeSub.unsubscribe();
|
|
27
27
|
}
|
|
28
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuChooserItemCheckedDirective, deps: [{ token: i0.ElementRef }
|
|
29
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuChooserItemCheckedDirective, isStandalone: true, selector: "[kendoColumnMenuChooserItemChecked]", inputs: { kendoColumnMenuChooserItemChecked: "kendoColumnMenuChooserItemChecked" }, host: { properties: { "attr.aria-checked": "this.kendoColumnMenuChooserItemChecked" } }, ngImport: i0 });
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuChooserItemCheckedDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuChooserItemCheckedDirective, isStandalone: true, selector: "[kendoColumnMenuChooserItemChecked]", inputs: { kendoColumnMenuChooserItemChecked: "kendoColumnMenuChooserItemChecked" }, host: { properties: { "attr.aria-checked": "this.kendoColumnMenuChooserItemChecked" } }, queries: [{ propertyName: "checkbox", first: true, predicate: CheckBoxComponent, descendants: true }], ngImport: i0 });
|
|
30
30
|
}
|
|
31
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuChooserItemCheckedDirective, decorators: [{
|
|
32
32
|
type: Directive,
|
|
@@ -34,9 +34,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34
34
|
selector: '[kendoColumnMenuChooserItemChecked]',
|
|
35
35
|
standalone: true
|
|
36
36
|
}]
|
|
37
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { kendoColumnMenuChooserItemChecked: [{
|
|
38
38
|
type: HostBinding,
|
|
39
39
|
args: ['attr.aria-checked']
|
|
40
40
|
}, {
|
|
41
41
|
type: Input
|
|
42
|
+
}], checkbox: [{
|
|
43
|
+
type: ContentChild,
|
|
44
|
+
args: [CheckBoxComponent]
|
|
42
45
|
}] } });
|
|
@@ -9,6 +9,8 @@ import { ColumnMenuChooserItemCheckedDirective } from './column-chooser-item-che
|
|
|
9
9
|
import { Keys } from '@progress/kendo-angular-common';
|
|
10
10
|
import { Subscription } from 'rxjs';
|
|
11
11
|
import { NgFor, NgIf, NgClass } from '@angular/common';
|
|
12
|
+
import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
|
|
13
|
+
import { take } from 'rxjs/operators';
|
|
12
14
|
import * as i0 from "@angular/core";
|
|
13
15
|
import * as i1 from "./column-list-kb-nav.service";
|
|
14
16
|
/**
|
|
@@ -48,6 +50,7 @@ export class ColumnListComponent {
|
|
|
48
50
|
resetButton;
|
|
49
51
|
applyButton;
|
|
50
52
|
options;
|
|
53
|
+
checkboxes;
|
|
51
54
|
hasLocked;
|
|
52
55
|
hasVisibleLocked;
|
|
53
56
|
unlockedCount = 0;
|
|
@@ -68,36 +71,35 @@ export class ColumnListComponent {
|
|
|
68
71
|
}
|
|
69
72
|
this.ngZone.runOutsideAngular(() => {
|
|
70
73
|
this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'click', (e) => {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
74
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
75
|
+
const closestItem = e.target.closest('.k-column-list-item');
|
|
76
|
+
if (closestItem) {
|
|
77
|
+
const checkboxElement = closestItem.querySelector('.k-checkbox-wrap');
|
|
78
|
+
const checkbox = this.checkboxes.find(checkBox => checkBox.hostElement.nativeElement === checkboxElement);
|
|
79
|
+
const index = parseInt(checkboxElement.firstElementChild.getAttribute('data-index'), 10);
|
|
80
|
+
if (this.autoSync) {
|
|
81
|
+
if (!this.columns[index]) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const column = this.columns[index];
|
|
85
|
+
const hidden = !checkbox.checkedState;
|
|
86
|
+
if (Boolean(column.hidden) !== hidden) {
|
|
87
|
+
this.ngZone.run(() => {
|
|
88
|
+
column.hidden = hidden;
|
|
89
|
+
this.columnChange.emit([column]);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
this.updateDisabled();
|
|
95
|
+
}
|
|
96
|
+
if (index !== this.listNavigationService.activeIndex) {
|
|
97
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
|
|
98
|
+
this.listNavigationService.activeIndex = index;
|
|
99
|
+
this.listNavigationService.toggle(index, true);
|
|
90
100
|
}
|
|
91
101
|
}
|
|
92
|
-
|
|
93
|
-
this.updateDisabled();
|
|
94
|
-
}
|
|
95
|
-
if (index !== this.listNavigationService.activeIndex) {
|
|
96
|
-
this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
|
|
97
|
-
this.listNavigationService.activeIndex = index;
|
|
98
|
-
this.listNavigationService.toggle(index, true);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
102
|
+
});
|
|
101
103
|
}));
|
|
102
104
|
this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'keydown', this.onKeydown));
|
|
103
105
|
});
|
|
@@ -105,7 +107,7 @@ export class ColumnListComponent {
|
|
|
105
107
|
ngAfterViewInit() {
|
|
106
108
|
this.listNavigationService.items = this.options.toArray();
|
|
107
109
|
this.listNavigationService.toggle(0, true);
|
|
108
|
-
this.updateDisabled();
|
|
110
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => this.updateDisabled());
|
|
109
111
|
}
|
|
110
112
|
ngOnChanges(changes) {
|
|
111
113
|
if (!this.service) {
|
|
@@ -126,17 +128,17 @@ export class ColumnListComponent {
|
|
|
126
128
|
(this.hasVisibleLocked && !this.hasUnlockedFiltered && this.unlockedCount === 1 && !column.locked && !column.hidden);
|
|
127
129
|
}
|
|
128
130
|
cancelChanges() {
|
|
129
|
-
this.
|
|
130
|
-
element.
|
|
131
|
+
this.checkboxes.forEach((element, index) => {
|
|
132
|
+
element.checkedState = !this.columns[index].hidden;
|
|
131
133
|
});
|
|
132
134
|
this.updateDisabled();
|
|
133
135
|
this.reset.emit();
|
|
134
136
|
}
|
|
135
137
|
applyChanges() {
|
|
136
138
|
const changed = [];
|
|
137
|
-
this.
|
|
139
|
+
this.checkboxes.forEach((item, index) => {
|
|
138
140
|
const column = this.columns[index];
|
|
139
|
-
const hidden = !
|
|
141
|
+
const hidden = !item.checkedState;
|
|
140
142
|
if (Boolean(column.hidden) !== hidden) {
|
|
141
143
|
column.hidden = hidden;
|
|
142
144
|
changed.push(column);
|
|
@@ -170,20 +172,13 @@ export class ColumnListComponent {
|
|
|
170
172
|
this.listNavigationService.toggleCheckedState();
|
|
171
173
|
}
|
|
172
174
|
};
|
|
173
|
-
forEachCheckBox(callback) {
|
|
174
|
-
const checkboxes = this.element.nativeElement.getElementsByClassName('k-checkbox');
|
|
175
|
-
const length = checkboxes.length;
|
|
176
|
-
for (let idx = 0; idx < length; idx++) {
|
|
177
|
-
callback(checkboxes[idx], idx);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
175
|
updateDisabled() {
|
|
181
176
|
if (this.allowHideAll && !this.hasLocked) {
|
|
182
177
|
return;
|
|
183
178
|
}
|
|
184
179
|
const checkedItems = [];
|
|
185
|
-
this.
|
|
186
|
-
if (checkbox.
|
|
180
|
+
this.checkboxes.forEach((checkbox, index) => {
|
|
181
|
+
if (checkbox.checkedState) {
|
|
187
182
|
checkedItems.push({ checkbox, index });
|
|
188
183
|
}
|
|
189
184
|
this.setDisabledState(checkbox, false);
|
|
@@ -213,16 +208,17 @@ export class ColumnListComponent {
|
|
|
213
208
|
this.hasUnlockedFiltered = false;
|
|
214
209
|
}
|
|
215
210
|
}
|
|
216
|
-
setDisabledState(
|
|
217
|
-
|
|
218
|
-
const
|
|
211
|
+
setDisabledState(checkbox, disabled) {
|
|
212
|
+
this.ngZone.run(() => checkbox.disabled = disabled);
|
|
213
|
+
const checkboxElement = checkbox.hostElement.nativeElement;
|
|
214
|
+
const parentElement = checkboxElement.parentElement;
|
|
219
215
|
const classCommand = disabled ? 'addClass' : 'removeClass';
|
|
220
216
|
const attributeCommand = disabled ? 'setAttribute' : 'removeAttribute';
|
|
221
|
-
this.renderer[classCommand](
|
|
222
|
-
this.renderer[attributeCommand](
|
|
217
|
+
this.renderer[classCommand](parentElement, 'k-disabled');
|
|
218
|
+
this.renderer[attributeCommand](parentElement, 'aria-disabled', disabled ? 'true' : undefined);
|
|
223
219
|
}
|
|
224
220
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnListComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.ColumnListKeyboardNavigation }], target: i0.ɵɵFactoryTarget.Component });
|
|
225
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnListComponent, isStandalone: true, 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: `
|
|
221
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnListComponent, isStandalone: true, 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 }, { propertyName: "checkboxes", predicate: CheckBoxComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
226
222
|
<div
|
|
227
223
|
class="k-column-list"
|
|
228
224
|
role="listbox"
|
|
@@ -233,14 +229,11 @@ export class ColumnListComponent {
|
|
|
233
229
|
class='k-column-list-item'
|
|
234
230
|
[kendoColumnMenuChooserItemChecked]="!column.hidden"
|
|
235
231
|
role="option">
|
|
236
|
-
<
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
[
|
|
240
|
-
|
|
241
|
-
tabindex="-1"
|
|
242
|
-
[attr.aria-hidden]="true"
|
|
243
|
-
[disabled]="isDisabled(column)" />
|
|
232
|
+
<kendo-checkbox
|
|
233
|
+
[inputAttributes]="{'data-index': index.toString()}"
|
|
234
|
+
[checkedState]="!column.hidden"
|
|
235
|
+
[disabled]="isDisabled(column)"
|
|
236
|
+
></kendo-checkbox>
|
|
244
237
|
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
245
238
|
</label>
|
|
246
239
|
</div>
|
|
@@ -261,7 +254,7 @@ export class ColumnListComponent {
|
|
|
261
254
|
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
262
255
|
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
263
256
|
</div>
|
|
264
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ColumnMenuChooserItemCheckedDirective, selector: "[kendoColumnMenuChooserItemChecked]", inputs: ["kendoColumnMenuChooserItemChecked"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
257
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ColumnMenuChooserItemCheckedDirective, selector: "[kendoColumnMenuChooserItemChecked]", inputs: ["kendoColumnMenuChooserItemChecked"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }] });
|
|
265
258
|
}
|
|
266
259
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnListComponent, decorators: [{
|
|
267
260
|
type: Component,
|
|
@@ -279,14 +272,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
279
272
|
class='k-column-list-item'
|
|
280
273
|
[kendoColumnMenuChooserItemChecked]="!column.hidden"
|
|
281
274
|
role="option">
|
|
282
|
-
<
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
[
|
|
286
|
-
|
|
287
|
-
tabindex="-1"
|
|
288
|
-
[attr.aria-hidden]="true"
|
|
289
|
-
[disabled]="isDisabled(column)" />
|
|
275
|
+
<kendo-checkbox
|
|
276
|
+
[inputAttributes]="{'data-index': index.toString()}"
|
|
277
|
+
[checkedState]="!column.hidden"
|
|
278
|
+
[disabled]="isDisabled(column)"
|
|
279
|
+
></kendo-checkbox>
|
|
290
280
|
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
291
281
|
</label>
|
|
292
282
|
</div>
|
|
@@ -309,7 +299,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
309
299
|
</div>
|
|
310
300
|
`,
|
|
311
301
|
standalone: true,
|
|
312
|
-
imports: [NgFor, ColumnMenuChooserItemCheckedDirective, NgIf, NgClass]
|
|
302
|
+
imports: [NgFor, ColumnMenuChooserItemCheckedDirective, NgIf, NgClass, CheckBoxComponent]
|
|
313
303
|
}]
|
|
314
304
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.ColumnListKeyboardNavigation }]; }, propDecorators: { className: [{
|
|
315
305
|
type: HostBinding,
|
|
@@ -349,4 +339,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
349
339
|
}], options: [{
|
|
350
340
|
type: ViewChildren,
|
|
351
341
|
args: [ColumnMenuChooserItemCheckedDirective]
|
|
342
|
+
}], checkboxes: [{
|
|
343
|
+
type: ViewChildren,
|
|
344
|
+
args: [CheckBoxComponent]
|
|
352
345
|
}] } });
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
// eslint-disable no-access-missing-member
|
|
6
|
-
import { Input,
|
|
6
|
+
import { Input, Component } from '@angular/core';
|
|
7
7
|
import { ColumnComponent } from '../columns/column.component';
|
|
8
8
|
import { FilterService } from './filter.service';
|
|
9
9
|
import { BaseFilterCellComponent } from './base-filter-cell.component';
|
|
@@ -16,12 +16,6 @@ import * as i2 from "../common/provider.service";
|
|
|
16
16
|
*/
|
|
17
17
|
export class BooleanFilterComponent extends BaseFilterCellComponent {
|
|
18
18
|
ctx;
|
|
19
|
-
/**
|
|
20
|
-
* @hidden
|
|
21
|
-
*/
|
|
22
|
-
get hostClasses() {
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
19
|
/**
|
|
26
20
|
* The column with which the filter is associated.
|
|
27
21
|
* @type {ColumnComponent}
|
|
@@ -76,7 +70,7 @@ export class BooleanFilterComponent extends BaseFilterCellComponent {
|
|
|
76
70
|
this.defaultItem = { text: this.ctx.localization.get("filterBooleanAll"), value: null };
|
|
77
71
|
}
|
|
78
72
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanFilterComponent, deps: [{ token: i1.FilterService }, { token: i2.ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
79
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BooleanFilterComponent, selector: "kendo-grid-boolean-filter-base", inputs: { column: "column" },
|
|
73
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BooleanFilterComponent, selector: "kendo-grid-boolean-filter-base", inputs: { column: "column" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
80
74
|
}
|
|
81
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanFilterComponent, decorators: [{
|
|
82
76
|
type: Component,
|
|
@@ -84,9 +78,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
84
78
|
selector: 'kendo-grid-boolean-filter-base',
|
|
85
79
|
template: ``
|
|
86
80
|
}]
|
|
87
|
-
}], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.ContextService }]; }, propDecorators: {
|
|
88
|
-
type: HostBinding,
|
|
89
|
-
args: ['class.k-filtercell-boolean']
|
|
90
|
-
}], column: [{
|
|
81
|
+
}], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.ContextService }]; }, propDecorators: { column: [{
|
|
91
82
|
type: Input
|
|
92
83
|
}] } });
|
|
@@ -87,7 +87,8 @@ export class StringFilterCellComponent extends StringFilterComponent {
|
|
|
87
87
|
[columnLabel]="columnLabel"
|
|
88
88
|
[filterDelay]="filterDelay"
|
|
89
89
|
[placeholder]="placeholder"
|
|
90
|
-
[ngModel]="currentFilter?.value"
|
|
90
|
+
[ngModel]="currentFilter?.value ?? null"
|
|
91
|
+
></kendo-textbox>
|
|
91
92
|
</kendo-grid-filter-wrapper-cell>
|
|
92
93
|
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
93
94
|
}
|
|
@@ -110,7 +111,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
110
111
|
[columnLabel]="columnLabel"
|
|
111
112
|
[filterDelay]="filterDelay"
|
|
112
113
|
[placeholder]="placeholder"
|
|
113
|
-
[ngModel]="currentFilter?.value"
|
|
114
|
+
[ngModel]="currentFilter?.value ?? null"
|
|
115
|
+
></kendo-textbox>
|
|
114
116
|
</kendo-grid-filter-wrapper-cell>
|
|
115
117
|
`,
|
|
116
118
|
standalone: true,
|
|
@@ -46,14 +46,12 @@ export class FilterRowComponent {
|
|
|
46
46
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterRowComponent, deps: [{ token: i1.ContextService }, { token: i2.ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
47
47
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterRowComponent, isStandalone: true, selector: "[kendoGridFilterRow]", inputs: { columns: "columns", filter: "filter", groups: "groups", detailTemplate: "detailTemplate", logicalRowIndex: "logicalRowIndex", lockedColumnsCount: "lockedColumnsCount" }, host: { properties: { "class.k-filter-row": "this.filterRowClass" } }, ngImport: i0, template: `
|
|
48
48
|
<td
|
|
49
|
-
class="k-table-td"
|
|
50
|
-
[class.k-group-cell]="true"
|
|
49
|
+
class="k-table-td k-group-cell k-table-group-td"
|
|
51
50
|
*ngFor="let g of groups"
|
|
52
51
|
role="presentation">
|
|
53
52
|
</td>
|
|
54
53
|
<td
|
|
55
|
-
class="k-table-td"
|
|
56
|
-
[class.k-hierarchy-cell]="true"
|
|
54
|
+
class="k-table-td k-hierarchy-cell"
|
|
57
55
|
*ngIf="detailTemplate?.templateRef"
|
|
58
56
|
role="presentation">
|
|
59
57
|
</td>
|
|
@@ -78,14 +76,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
78
76
|
selector: '[kendoGridFilterRow]',
|
|
79
77
|
template: `
|
|
80
78
|
<td
|
|
81
|
-
class="k-table-td"
|
|
82
|
-
[class.k-group-cell]="true"
|
|
79
|
+
class="k-table-td k-group-cell k-table-group-td"
|
|
83
80
|
*ngFor="let g of groups"
|
|
84
81
|
role="presentation">
|
|
85
82
|
</td>
|
|
86
83
|
<td
|
|
87
|
-
class="k-table-td"
|
|
88
|
-
[class.k-hierarchy-cell]="true"
|
|
84
|
+
class="k-table-td k-hierarchy-cell"
|
|
89
85
|
*ngIf="detailTemplate?.templateRef"
|
|
90
86
|
role="presentation">
|
|
91
87
|
</td>
|
|
@@ -11,7 +11,7 @@ import { replaceMessagePlaceholder } from '../../utils';
|
|
|
11
11
|
import { MenuTabbingService } from './menu-tabbing.service';
|
|
12
12
|
import { ContextService } from '../../common/provider.service';
|
|
13
13
|
import { NgFor } from '@angular/common';
|
|
14
|
-
import {
|
|
14
|
+
import { RadioButtonComponent } from '@progress/kendo-angular-inputs';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
16
|
import * as i1 from "../../common/provider.service";
|
|
17
17
|
/**
|
|
@@ -80,7 +80,7 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
|
|
80
80
|
operator: "eq",
|
|
81
81
|
value: value
|
|
82
82
|
}));
|
|
83
|
-
this.filterService.menuTabbingService.firstFocusable = input;
|
|
83
|
+
this.filterService.menuTabbingService.firstFocusable = input.hostElement.nativeElement;
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* @hidden
|
|
@@ -109,21 +109,20 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
|
|
109
109
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BooleanFilterMenuComponent, isStandalone: true, selector: "kendo-grid-boolean-filter-menu", inputs: { filter: "filter", filterService: "filterService", menuTabbingService: "menuTabbingService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, viewQueries: [{ propertyName: "radioButtons", predicate: BooleanFilterRadioButtonDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
110
110
|
<ul class="k-radio-list k-reset">
|
|
111
111
|
<li *ngFor="let item of items">
|
|
112
|
-
<
|
|
112
|
+
<kendo-radiobutton
|
|
113
113
|
kendoFilterMenuRadioButton
|
|
114
114
|
[columnLabel]="columnLabel"
|
|
115
115
|
#input
|
|
116
116
|
[name]="idPrefix"
|
|
117
|
-
kendoRadioButton
|
|
118
117
|
[checked]="isSelected(item.value)"
|
|
119
118
|
[attr.id]="radioId(item.value)"
|
|
120
119
|
(change)="onChange(item.value, input)"
|
|
121
120
|
(keydown.shift.tab)="onShiftTab($event)"
|
|
122
|
-
|
|
121
|
+
></kendo-radiobutton>
|
|
123
122
|
<label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
|
|
124
123
|
</li>
|
|
125
124
|
</ul>
|
|
126
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "
|
|
125
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: RadioButtonComponent, selector: "kendo-radiobutton", inputs: ["checked"], outputs: ["checkedChange"], exportAs: ["kendoRadioButton"] }, { kind: "directive", type: BooleanFilterRadioButtonDirective, selector: "[kendoFilterMenuRadioButton]", inputs: ["columnLabel"] }] });
|
|
127
126
|
}
|
|
128
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanFilterMenuComponent, decorators: [{
|
|
129
128
|
type: Component,
|
|
@@ -132,23 +131,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
132
131
|
template: `
|
|
133
132
|
<ul class="k-radio-list k-reset">
|
|
134
133
|
<li *ngFor="let item of items">
|
|
135
|
-
<
|
|
134
|
+
<kendo-radiobutton
|
|
136
135
|
kendoFilterMenuRadioButton
|
|
137
136
|
[columnLabel]="columnLabel"
|
|
138
137
|
#input
|
|
139
138
|
[name]="idPrefix"
|
|
140
|
-
kendoRadioButton
|
|
141
139
|
[checked]="isSelected(item.value)"
|
|
142
140
|
[attr.id]="radioId(item.value)"
|
|
143
141
|
(change)="onChange(item.value, input)"
|
|
144
142
|
(keydown.shift.tab)="onShiftTab($event)"
|
|
145
|
-
|
|
143
|
+
></kendo-radiobutton>
|
|
146
144
|
<label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
|
|
147
145
|
</li>
|
|
148
146
|
</ul>
|
|
149
147
|
`,
|
|
150
148
|
standalone: true,
|
|
151
|
-
imports: [NgFor,
|
|
149
|
+
imports: [NgFor, RadioButtonComponent, BooleanFilterRadioButtonDirective]
|
|
152
150
|
}]
|
|
153
151
|
}], ctorParameters: function () { return [{ type: i1.ContextService }]; }, propDecorators: { hostClasses: [{
|
|
154
152
|
type: HostBinding,
|
|
@@ -90,7 +90,7 @@ export class FilterMenuModule {
|
|
|
90
90
|
MonthViewService,
|
|
91
91
|
YearViewService,
|
|
92
92
|
NavigationService
|
|
93
|
-
], imports: [i15.FilterCellOperatorsComponent, i35.FilterMenuComponent, i36.FilterMenuContainerComponent, i37.FilterMenuInputWrapperComponent, i38.StringFilterMenuInputComponent, i39.StringFilterMenuComponent, i41.NumericFilterMenuComponent, i42.NumericFilterMenuInputComponent, i43.DateFilterMenuInputComponent, i44.DateFilterMenuComponent] });
|
|
93
|
+
], imports: [i15.FilterCellOperatorsComponent, i35.FilterMenuComponent, i36.FilterMenuContainerComponent, i37.FilterMenuInputWrapperComponent, i38.StringFilterMenuInputComponent, i39.StringFilterMenuComponent, i41.NumericFilterMenuComponent, i42.NumericFilterMenuInputComponent, i43.DateFilterMenuInputComponent, i44.DateFilterMenuComponent, i46.BooleanFilterMenuComponent] });
|
|
94
94
|
}
|
|
95
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuModule, decorators: [{
|
|
96
96
|
type: NgModule,
|
|
@@ -11,7 +11,7 @@ import { ContextService } from '../../common/provider.service';
|
|
|
11
11
|
import { FilterInputDirective } from '../filter-input.directive';
|
|
12
12
|
import { FormsModule } from '@angular/forms';
|
|
13
13
|
import { FilterMenuInputWrapperComponent } from './filter-menu-input-wrapper.component';
|
|
14
|
-
import {
|
|
14
|
+
import { TextBoxComponent } from '@progress/kendo-angular-inputs';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
16
|
import * as i1 from "../../common/provider.service";
|
|
17
17
|
import * as i2 from "@angular/forms";
|
|
@@ -49,15 +49,15 @@ export class StringFilterMenuInputComponent {
|
|
|
49
49
|
[isFirstDropDown]="isFirstDropDown"
|
|
50
50
|
[menuTabbingService]="menuTabbingService"
|
|
51
51
|
>
|
|
52
|
-
<
|
|
53
|
-
kendoTextBox
|
|
52
|
+
<kendo-textbox
|
|
54
53
|
kendoFilterInput
|
|
55
54
|
[columnLabel]="columnLabel"
|
|
56
55
|
[filterDelay]="0"
|
|
57
|
-
[
|
|
58
|
-
[ngModel]="currentFilter?.value"
|
|
56
|
+
[placeholder]="placeholder"
|
|
57
|
+
[ngModel]="currentFilter?.value ?? null">
|
|
58
|
+
</kendo-textbox>
|
|
59
59
|
</kendo-grid-filter-menu-input-wrapper>
|
|
60
|
-
`, isInline: true, dependencies: [{ kind: "component", type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { kind: "
|
|
60
|
+
`, isInline: true, dependencies: [{ kind: "component", type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
61
61
|
}
|
|
62
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StringFilterMenuInputComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
@@ -74,17 +74,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
74
74
|
[isFirstDropDown]="isFirstDropDown"
|
|
75
75
|
[menuTabbingService]="menuTabbingService"
|
|
76
76
|
>
|
|
77
|
-
<
|
|
78
|
-
kendoTextBox
|
|
77
|
+
<kendo-textbox
|
|
79
78
|
kendoFilterInput
|
|
80
79
|
[columnLabel]="columnLabel"
|
|
81
80
|
[filterDelay]="0"
|
|
82
|
-
[
|
|
83
|
-
[ngModel]="currentFilter?.value"
|
|
81
|
+
[placeholder]="placeholder"
|
|
82
|
+
[ngModel]="currentFilter?.value ?? null">
|
|
83
|
+
</kendo-textbox>
|
|
84
84
|
</kendo-grid-filter-menu-input-wrapper>
|
|
85
85
|
`,
|
|
86
86
|
standalone: true,
|
|
87
|
-
imports: [FilterMenuInputWrapperComponent,
|
|
87
|
+
imports: [FilterMenuInputWrapperComponent, TextBoxComponent, FilterInputDirective, FormsModule]
|
|
88
88
|
}]
|
|
89
89
|
}], ctorParameters: function () { return [{ type: i1.ContextService }]; }, propDecorators: { operators: [{
|
|
90
90
|
type: Input
|
package/esm2022/grid.module.mjs
CHANGED
|
@@ -176,7 +176,7 @@ export class GridModule {
|
|
|
176
176
|
MonthViewService,
|
|
177
177
|
YearViewService,
|
|
178
178
|
NavigationService
|
|
179
|
-
], imports: [i4.GroupHeaderComponent, i5.GroupPanelComponent, i25.TableBodyComponent, i27.CellComponent, i28.EditCommandDirective, i29.CancelCommandDirective, i30.SaveCommandDirective, i31.RemoveCommandDirective, i32.AddCommandDirective, i37.HeaderComponent, i42.CustomMessagesComponent, i42.PagerInfoComponent, i42.PagerInputComponent, i42.PagerNextButtonsComponent, i42.PagerNumericButtonsComponent, i42.PagerPageSizesComponent, i42.PagerPrevButtonsComponent, i42.PagerComponent, i42.PagerSpacerComponent, i43.ToolBarComponent, i43.ToolbarCustomMessagesComponent, i43.ToolBarButtonComponent, i43.ToolBarButtonGroupComponent, i43.ToolBarDropDownButtonComponent, i43.ToolBarSeparatorComponent, i43.ToolBarSpacerComponent, i43.ToolBarSplitButtonComponent, i47.StringFilterCellComponent, i48.NumericFilterCellComponent, i49.AutoCompleteFilterCellComponent, i50.BooleanFilterCellComponent, i52.FilterCellWrapperComponent, i53.DateFilterCellComponent, i54.FilterCellOperatorsComponent, i54.FilterCellOperatorsComponent, i74.FilterMenuComponent, i75.FilterMenuContainerComponent, i76.FilterMenuInputWrapperComponent, i77.StringFilterMenuInputComponent, i78.StringFilterMenuComponent, i80.NumericFilterMenuComponent, i81.NumericFilterMenuInputComponent, i82.DateFilterMenuInputComponent, i83.DateFilterMenuComponent, i90.ColumnChooserComponent, i91.ColumnMenuChooserComponent, i92.ColumnMenuFilterComponent, i93.ColumnMenuItemComponent, i95.ColumnMenuSortComponent, i96.ColumnMenuComponent, i97.ColumnMenuLockComponent, i101.ColumnMenuStickComponent, i102.ColumnMenuPositionComponent, i103.ColumnMenuAutoSizeColumnComponent, i104.ColumnMenuAutoSizeAllColumnsComponent, i105.GridComponent, i106.ListComponent] });
|
|
179
|
+
], imports: [i4.GroupHeaderComponent, i5.GroupPanelComponent, i25.TableBodyComponent, i27.CellComponent, i28.EditCommandDirective, i29.CancelCommandDirective, i30.SaveCommandDirective, i31.RemoveCommandDirective, i32.AddCommandDirective, i37.HeaderComponent, i42.CustomMessagesComponent, i42.PagerInfoComponent, i42.PagerInputComponent, i42.PagerNextButtonsComponent, i42.PagerNumericButtonsComponent, i42.PagerPageSizesComponent, i42.PagerPrevButtonsComponent, i42.PagerComponent, i42.PagerSpacerComponent, i43.ToolBarComponent, i43.ToolbarCustomMessagesComponent, i43.ToolBarButtonComponent, i43.ToolBarButtonGroupComponent, i43.ToolBarDropDownButtonComponent, i43.ToolBarSeparatorComponent, i43.ToolBarSpacerComponent, i43.ToolBarSplitButtonComponent, i47.StringFilterCellComponent, i48.NumericFilterCellComponent, i49.AutoCompleteFilterCellComponent, i50.BooleanFilterCellComponent, i52.FilterCellWrapperComponent, i53.DateFilterCellComponent, i54.FilterCellOperatorsComponent, i54.FilterCellOperatorsComponent, i74.FilterMenuComponent, i75.FilterMenuContainerComponent, i76.FilterMenuInputWrapperComponent, i77.StringFilterMenuInputComponent, i78.StringFilterMenuComponent, i80.NumericFilterMenuComponent, i81.NumericFilterMenuInputComponent, i82.DateFilterMenuInputComponent, i83.DateFilterMenuComponent, i85.BooleanFilterMenuComponent, i89.ColumnListComponent, i90.ColumnChooserComponent, i91.ColumnMenuChooserComponent, i92.ColumnMenuFilterComponent, i93.ColumnMenuItemComponent, i95.ColumnMenuSortComponent, i96.ColumnMenuComponent, i97.ColumnMenuLockComponent, i101.ColumnMenuStickComponent, i102.ColumnMenuPositionComponent, i103.ColumnMenuAutoSizeColumnComponent, i104.ColumnMenuAutoSizeAllColumnsComponent, i105.GridComponent, i106.ListComponent] });
|
|
180
180
|
}
|
|
181
181
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridModule, decorators: [{
|
|
182
182
|
type: NgModule,
|
|
@@ -114,7 +114,7 @@ export class GroupHeaderComponent {
|
|
|
114
114
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GroupHeaderComponent, deps: [{ token: i1.GroupsService }, { token: i2.GroupInfoService }, { token: i3.ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
115
115
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GroupHeaderComponent, isStandalone: true, selector: "[kendoGridGroupHeader]", inputs: { rowIndex: "rowIndex", logicalRowIndex: "logicalRowIndex", item: "item", skipGroupDecoration: "skipGroupDecoration", hasDetails: "hasDetails", totalColumnsCount: "totalColumnsCount", hasGroupHeaderColumn: "hasGroupHeaderColumn", groupHeaderColumns: "groupHeaderColumns", columns: "columns", groups: "groups" }, host: { properties: { "class.k-grouping-row": "this.groupItemClass", "class.k-table-group-row": "this.tableGroupRowClass" } }, ngImport: i0, template: `
|
|
116
116
|
<ng-container *ngIf="!skipGroupDecoration">
|
|
117
|
-
<td class="k-group-cell k-table-td"
|
|
117
|
+
<td class="k-group-cell k-table-td k-table-group-td"
|
|
118
118
|
role="presentation"
|
|
119
119
|
*ngFor="let g of prefixGroupCell(item)"></td>
|
|
120
120
|
</ng-container>
|
|
@@ -189,7 +189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
189
189
|
selector: '[kendoGridGroupHeader]',
|
|
190
190
|
template: `
|
|
191
191
|
<ng-container *ngIf="!skipGroupDecoration">
|
|
192
|
-
<td class="k-group-cell k-table-td"
|
|
192
|
+
<td class="k-group-cell k-table-td k-table-group-td"
|
|
193
193
|
role="presentation"
|
|
194
194
|
*ngFor="let g of prefixGroupCell(item)"></td>
|
|
195
195
|
</ng-container>
|
|
@@ -6,9 +6,10 @@ import { closest, findFocusable, isVisible, matchesNodeName } from '../rendering
|
|
|
6
6
|
import { isDocumentAvailable } from '@progress/kendo-angular-common';
|
|
7
7
|
const isButton = matchesNodeName('button');
|
|
8
8
|
const isInputTag = matchesNodeName('input');
|
|
9
|
+
const isKendoInputTag = matchesNodeName('kendo-checkbox') || matchesNodeName('kendo-textbox');
|
|
9
10
|
const navigableRegex = /(button|checkbox|color|file|radio|reset|submit)/i;
|
|
10
11
|
const isNavigableInput = element => isInputTag(element) && navigableRegex.test(element.type);
|
|
11
|
-
const isNavigable = element => !element.disabled && (isButton(element) || isNavigableInput(element));
|
|
12
|
+
const isNavigable = element => !element.disabled && (isButton(element) || isNavigableInput(element) || isKendoInputTag(element));
|
|
12
13
|
/**
|
|
13
14
|
* @hidden
|
|
14
15
|
*/
|