@progress/kendo-angular-grid 18.2.1-develop.3 → 18.3.0-develop.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/column-menu/column-chooser.component.d.ts +1 -4
- package/column-menu/column-list.component.d.ts +1 -2
- package/column-menu/column-menu-item.component.d.ts +2 -2
- package/column-menu/column-menu.component.d.ts +1 -0
- package/column-menu/column-menu.service.d.ts +4 -4
- package/column-menu/utils.d.ts +2 -2
- package/esm2022/column-menu/column-chooser.component.mjs +2 -5
- package/esm2022/column-menu/column-list-kb-nav.service.mjs +1 -1
- package/esm2022/column-menu/column-list.component.mjs +25 -19
- package/esm2022/column-menu/column-menu.component.mjs +10 -17
- package/esm2022/column-menu/column-menu.service.mjs +6 -6
- package/esm2022/column-menu/utils.mjs +2 -3
- package/esm2022/filtering/cell/date-filter-cell.component.mjs +5 -22
- package/esm2022/filtering/cell/numeric-filter-cell.component.mjs +4 -8
- package/esm2022/filtering/cell/string-filter-cell.component.mjs +0 -2
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +1 -1
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +6 -12
- package/esm2022/filtering/menu/date-filter-menu.component.mjs +4 -8
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +1 -3
- package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +2 -2
- package/esm2022/filtering/menu/filter-menu.component.mjs +8 -17
- package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +6 -12
- package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +4 -8
- package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +2 -4
- package/esm2022/filtering/operators/after-eq-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/after-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/before-eq-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/before-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/contains-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/ends-with-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/eq-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/filter-operator.base.mjs +18 -18
- package/esm2022/filtering/operators/gt-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/gte-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/is-empty-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/is-not-empty-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/is-not-null-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/isnull-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/lt-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/lte-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/neq-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/not-contains-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/starts-with-filter-operator.component.mjs +1 -1
- package/esm2022/grid.component.mjs +2 -0
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/header/header.component.mjs +12 -18
- package/fesm2022/progress-kendo-angular-grid.mjs +145 -210
- package/filtering/cell/date-filter-cell.component.d.ts +1 -14
- package/filtering/menu/filter-menu.component.d.ts +1 -0
- package/package.json +19 -19
- package/schematics/ngAdd/index.js +4 -4
|
@@ -31,10 +31,6 @@ export declare class ColumnChooserComponent implements OnDestroy {
|
|
|
31
31
|
private ngZone;
|
|
32
32
|
private renderer;
|
|
33
33
|
private changeDetector;
|
|
34
|
-
/**
|
|
35
|
-
* @hidden
|
|
36
|
-
*/
|
|
37
|
-
columnsIcon: SVGIcon;
|
|
38
34
|
/**
|
|
39
35
|
* Specifies if the changes in the visibility of the column will be immediately applied.
|
|
40
36
|
*
|
|
@@ -50,6 +46,7 @@ export declare class ColumnChooserComponent implements OnDestroy {
|
|
|
50
46
|
private anchor;
|
|
51
47
|
private columnList;
|
|
52
48
|
get columns(): any[];
|
|
49
|
+
columnsIcon: SVGIcon;
|
|
53
50
|
popupRef: any;
|
|
54
51
|
popupId: string;
|
|
55
52
|
private closeClick;
|
|
@@ -14,8 +14,7 @@ export declare class ColumnListComponent implements OnInit, OnDestroy {
|
|
|
14
14
|
private ngZone;
|
|
15
15
|
private renderer;
|
|
16
16
|
private listNavigationService;
|
|
17
|
-
|
|
18
|
-
isChecked(checkbox: any): any;
|
|
17
|
+
className: boolean;
|
|
19
18
|
reset: EventEmitter<any>;
|
|
20
19
|
apply: EventEmitter<any>;
|
|
21
20
|
columnChange: EventEmitter<any>;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2025 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 { EventEmitter, OnChanges } from '@angular/core';
|
|
5
|
+
import { EventEmitter, OnChanges, AfterViewInit } from '@angular/core';
|
|
6
6
|
import { ColumnMenuItemContentTemplateDirective } from './column-menu-item-content-template.directive';
|
|
7
7
|
import { SVGIcon } from '@progress/kendo-svg-icons';
|
|
8
8
|
import { ColumnMenuService } from './column-menu.service';
|
|
@@ -20,7 +20,7 @@ import * as i0 from "@angular/core";
|
|
|
20
20
|
* </kendo-grid>
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
|
-
export declare class ColumnMenuItemComponent implements OnChanges {
|
|
23
|
+
export declare class ColumnMenuItemComponent implements AfterViewInit, OnChanges {
|
|
24
24
|
/**
|
|
25
25
|
* Fires when the item is clicked.
|
|
26
26
|
*/
|
|
@@ -175,6 +175,7 @@ export declare class ColumnMenuComponent implements AfterViewInit, OnChanges, On
|
|
|
175
175
|
get columnMenuTitle(): string;
|
|
176
176
|
private getExpandedState;
|
|
177
177
|
private updateAria;
|
|
178
|
+
private focusRoot;
|
|
178
179
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuComponent, [null, null, null, null, null, null, null, { optional: true; }]>;
|
|
179
180
|
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuComponent, "kendo-grid-column-menu", never, { "standalone": { "alias": "standalone"; "required": false; }; "column": { "alias": "column"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "columnMenuTemplate": { "alias": "columnMenuTemplate"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, never, true, never>;
|
|
180
181
|
}
|
|
@@ -48,10 +48,6 @@ export declare class ColumnMenuService {
|
|
|
48
48
|
* @hidden
|
|
49
49
|
*/
|
|
50
50
|
sortable: any;
|
|
51
|
-
/**
|
|
52
|
-
* Closes the column menu.
|
|
53
|
-
*/
|
|
54
|
-
close(): void;
|
|
55
51
|
/**
|
|
56
52
|
* @hidden
|
|
57
53
|
*/
|
|
@@ -60,6 +56,10 @@ export declare class ColumnMenuService {
|
|
|
60
56
|
* @hidden
|
|
61
57
|
*/
|
|
62
58
|
constructor(menuTabbingService?: MenuTabbingService);
|
|
59
|
+
/**
|
|
60
|
+
* Closes the column menu.
|
|
61
|
+
*/
|
|
62
|
+
close(): void;
|
|
63
63
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuService, never>;
|
|
64
64
|
static ɵprov: i0.ɵɵInjectableDeclaration<ColumnMenuService>;
|
|
65
65
|
}
|
package/column-menu/utils.d.ts
CHANGED
|
@@ -31,8 +31,8 @@ export declare const hasColumnChooser: (settings: any) => boolean;
|
|
|
31
31
|
*/
|
|
32
32
|
export declare const hasAutoSizeColumn: (settings: any) => boolean;
|
|
33
33
|
/**
|
|
34
|
-
* @hidden
|
|
35
|
-
*/
|
|
34
|
+
* @hidden
|
|
35
|
+
*/
|
|
36
36
|
export declare const hasAutoSizeAllColumns: (settings: any) => boolean;
|
|
37
37
|
/**
|
|
38
38
|
* @hidden
|
|
@@ -37,10 +37,6 @@ export class ColumnChooserComponent {
|
|
|
37
37
|
ngZone;
|
|
38
38
|
renderer;
|
|
39
39
|
changeDetector;
|
|
40
|
-
/**
|
|
41
|
-
* @hidden
|
|
42
|
-
*/
|
|
43
|
-
columnsIcon = columnsIcon;
|
|
44
40
|
/**
|
|
45
41
|
* Specifies if the changes in the visibility of the column will be immediately applied.
|
|
46
42
|
*
|
|
@@ -58,6 +54,7 @@ export class ColumnChooserComponent {
|
|
|
58
54
|
get columns() {
|
|
59
55
|
return this.columnInfoService.leafNamedColumns;
|
|
60
56
|
}
|
|
57
|
+
columnsIcon = columnsIcon;
|
|
61
58
|
popupRef;
|
|
62
59
|
popupId;
|
|
63
60
|
closeClick;
|
|
@@ -148,7 +145,7 @@ export class ColumnChooserComponent {
|
|
|
148
145
|
this.popupRef.close();
|
|
149
146
|
this.popupRef = null;
|
|
150
147
|
this.changeDetector.markForCheck();
|
|
151
|
-
this.escapeListener
|
|
148
|
+
this.escapeListener?.();
|
|
152
149
|
}
|
|
153
150
|
this.detachClose();
|
|
154
151
|
focusAnchor && this.anchor.element.focus();
|
|
@@ -27,7 +27,7 @@ export class ColumnListKeyboardNavigation {
|
|
|
27
27
|
toggle(index, active) {
|
|
28
28
|
const element = this.items[index]?.host.nativeElement;
|
|
29
29
|
element && this.renderer.setAttribute(this.items[index].host.nativeElement, 'tabindex', active ? '0' : '-1');
|
|
30
|
-
active && element
|
|
30
|
+
active && element?.focus();
|
|
31
31
|
}
|
|
32
32
|
toggleCheckedState() {
|
|
33
33
|
this.items[this.activeIndex].host.nativeElement.firstElementChild.click();
|
|
@@ -21,12 +21,7 @@ export class ColumnListComponent {
|
|
|
21
21
|
ngZone;
|
|
22
22
|
renderer;
|
|
23
23
|
listNavigationService;
|
|
24
|
-
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
isChecked(checkbox) {
|
|
28
|
-
return checkbox.checked;
|
|
29
|
-
}
|
|
24
|
+
className = true;
|
|
30
25
|
reset = new EventEmitter();
|
|
31
26
|
apply = new EventEmitter();
|
|
32
27
|
columnChange = new EventEmitter();
|
|
@@ -197,6 +192,20 @@ export class ColumnListComponent {
|
|
|
197
192
|
const checkboxElement = closestItem.querySelector('.k-checkbox-wrap');
|
|
198
193
|
const checkbox = this.checkboxes.find(checkBox => checkBox.hostElement.nativeElement === checkboxElement);
|
|
199
194
|
const index = parseInt(checkboxElement.firstElementChild.getAttribute('data-index'), 10);
|
|
195
|
+
if (index !== this.listNavigationService.activeIndex) {
|
|
196
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
|
|
197
|
+
this.listNavigationService.activeIndex = index;
|
|
198
|
+
this.listNavigationService.toggle(index, true);
|
|
199
|
+
}
|
|
200
|
+
if (checkboxElement.contains(e.target)) {
|
|
201
|
+
const checkboxInputElement = checkboxElement.firstElementChild;
|
|
202
|
+
checkboxInputElement.blur();
|
|
203
|
+
checkboxInputElement.classList.remove('k-focus');
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
this.listNavigationService.toggleCheckedState();
|
|
207
|
+
}
|
|
208
|
+
closestItem.focus();
|
|
200
209
|
if (this.autoSync) {
|
|
201
210
|
if (!this.columns[index]) {
|
|
202
211
|
return;
|
|
@@ -213,11 +222,6 @@ export class ColumnListComponent {
|
|
|
213
222
|
else {
|
|
214
223
|
this.updateDisabled();
|
|
215
224
|
}
|
|
216
|
-
if (index !== this.listNavigationService.activeIndex) {
|
|
217
|
-
this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
|
|
218
|
-
this.listNavigationService.activeIndex = index;
|
|
219
|
-
this.listNavigationService.toggle(index, true);
|
|
220
|
-
}
|
|
221
225
|
}
|
|
222
226
|
};
|
|
223
227
|
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 });
|
|
@@ -236,6 +240,7 @@ export class ColumnListComponent {
|
|
|
236
240
|
[inputAttributes]="{'data-index': index.toString()}"
|
|
237
241
|
[checkedState]="!column.hidden"
|
|
238
242
|
[disabled]="isDisabled(column)"
|
|
243
|
+
[tabindex]="-1"
|
|
239
244
|
></kendo-checkbox>
|
|
240
245
|
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
241
246
|
</label>
|
|
@@ -246,16 +251,16 @@ export class ColumnListComponent {
|
|
|
246
251
|
type="button"
|
|
247
252
|
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
248
253
|
(click)="applyChanges()"
|
|
249
|
-
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
|
|
250
|
-
(keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
|
|
254
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation(); applyChanges();"
|
|
255
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation(); applyChanges();">{{ applyText }}</button>
|
|
251
256
|
<button
|
|
252
257
|
#resetButton
|
|
253
258
|
type="button"
|
|
254
259
|
(keydown.tab)="onTab($event)"
|
|
255
260
|
class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
256
261
|
(click)="cancelChanges()"
|
|
257
|
-
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
258
|
-
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
262
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation(); cancelChanges();"
|
|
263
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation(); cancelChanges();">{{ resetText }}</button>
|
|
259
264
|
</div>
|
|
260
265
|
`, 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"] }] });
|
|
261
266
|
}
|
|
@@ -279,6 +284,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
279
284
|
[inputAttributes]="{'data-index': index.toString()}"
|
|
280
285
|
[checkedState]="!column.hidden"
|
|
281
286
|
[disabled]="isDisabled(column)"
|
|
287
|
+
[tabindex]="-1"
|
|
282
288
|
></kendo-checkbox>
|
|
283
289
|
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
284
290
|
</label>
|
|
@@ -289,16 +295,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
289
295
|
type="button"
|
|
290
296
|
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
291
297
|
(click)="applyChanges()"
|
|
292
|
-
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
|
|
293
|
-
(keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
|
|
298
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation(); applyChanges();"
|
|
299
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation(); applyChanges();">{{ applyText }}</button>
|
|
294
300
|
<button
|
|
295
301
|
#resetButton
|
|
296
302
|
type="button"
|
|
297
303
|
(keydown.tab)="onTab($event)"
|
|
298
304
|
class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
299
305
|
(click)="cancelChanges()"
|
|
300
|
-
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
301
|
-
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
306
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation(); cancelChanges();"
|
|
307
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation(); cancelChanges();">{{ resetText }}</button>
|
|
302
308
|
</div>
|
|
303
309
|
`,
|
|
304
310
|
standalone: true,
|
|
@@ -279,7 +279,7 @@ export class ColumnMenuComponent {
|
|
|
279
279
|
this.close(true);
|
|
280
280
|
this.updateAria(ariaRoot);
|
|
281
281
|
});
|
|
282
|
-
this.popupSubs.add(this.popupRef.popup.instance.close.subscribe(() => {
|
|
282
|
+
this.popupSubs.add(() => this.popupRef.popup.instance.close.subscribe(() => {
|
|
283
283
|
this.popupSubs?.unsubscribe();
|
|
284
284
|
this.popupSubs = this.popupRef = null;
|
|
285
285
|
this.updateAria(ariaRoot);
|
|
@@ -301,12 +301,7 @@ export class ColumnMenuComponent {
|
|
|
301
301
|
}
|
|
302
302
|
}
|
|
303
303
|
else {
|
|
304
|
-
|
|
305
|
-
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
306
|
-
}
|
|
307
|
-
else {
|
|
308
|
-
this.anchor.nativeElement.focus();
|
|
309
|
-
}
|
|
304
|
+
this.focusRoot();
|
|
310
305
|
}
|
|
311
306
|
}
|
|
312
307
|
/**
|
|
@@ -319,12 +314,7 @@ export class ColumnMenuComponent {
|
|
|
319
314
|
if (!triggerFocus) {
|
|
320
315
|
return;
|
|
321
316
|
}
|
|
322
|
-
|
|
323
|
-
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
324
|
-
}
|
|
325
|
-
else {
|
|
326
|
-
this.anchor.nativeElement.focus();
|
|
327
|
-
}
|
|
317
|
+
this.focusRoot();
|
|
328
318
|
}
|
|
329
319
|
/**
|
|
330
320
|
* @hidden
|
|
@@ -341,6 +331,9 @@ export class ColumnMenuComponent {
|
|
|
341
331
|
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
342
332
|
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
343
333
|
}
|
|
334
|
+
focusRoot() {
|
|
335
|
+
this.isNavigable ? this.navigationService.focusCell(0, this.column.leafIndex) : this.anchor.nativeElement.focus();
|
|
336
|
+
}
|
|
344
337
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: i1.NavigationService }, { token: i2.SinglePopupService }, { token: i3.ColumnMenuService }, { token: i4.ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i5.ColumnInfoService }, { token: i6.IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
345
338
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuComponent, isStandalone: true, selector: "kendo-grid-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate", tabIndex: "tabIndex" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [
|
|
346
339
|
ColumnMenuService,
|
|
@@ -354,7 +347,7 @@ export class ColumnMenuComponent {
|
|
|
354
347
|
href="#"
|
|
355
348
|
[tabindex]="tabIndex"
|
|
356
349
|
[attr.title]="columnMenuTitle"
|
|
357
|
-
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
350
|
+
[attr.aria-expanded]="isNavigable ? undefined : false"
|
|
358
351
|
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
359
352
|
<kendo-icon-wrapper
|
|
360
353
|
name="more-vertical"
|
|
@@ -365,7 +358,7 @@ export class ColumnMenuComponent {
|
|
|
365
358
|
(keydown.escape)="close(true)"
|
|
366
359
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
367
360
|
<ng-container
|
|
368
|
-
[ngTemplateOutlet]="
|
|
361
|
+
[ngTemplateOutlet]="column.columnMenuTemplateRef || columnMenuTemplate || (settings.view === 'tabbed' ? tabbedInterfaceTemplate : defaultTemplate)"
|
|
369
362
|
[ngTemplateOutletContext]="{ service: service, column: column }">
|
|
370
363
|
</ng-container>
|
|
371
364
|
</kendo-grid-columnmenu-container>
|
|
@@ -531,7 +524,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
531
524
|
href="#"
|
|
532
525
|
[tabindex]="tabIndex"
|
|
533
526
|
[attr.title]="columnMenuTitle"
|
|
534
|
-
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
527
|
+
[attr.aria-expanded]="isNavigable ? undefined : false"
|
|
535
528
|
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
536
529
|
<kendo-icon-wrapper
|
|
537
530
|
name="more-vertical"
|
|
@@ -542,7 +535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
542
535
|
(keydown.escape)="close(true)"
|
|
543
536
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
544
537
|
<ng-container
|
|
545
|
-
[ngTemplateOutlet]="
|
|
538
|
+
[ngTemplateOutlet]="column.columnMenuTemplateRef || columnMenuTemplate || (settings.view === 'tabbed' ? tabbedInterfaceTemplate : defaultTemplate)"
|
|
546
539
|
[ngTemplateOutletContext]="{ service: service, column: column }">
|
|
547
540
|
</ng-container>
|
|
548
541
|
</kendo-grid-columnmenu-container>
|
|
@@ -48,12 +48,6 @@ export class ColumnMenuService {
|
|
|
48
48
|
* @hidden
|
|
49
49
|
*/
|
|
50
50
|
sortable;
|
|
51
|
-
/**
|
|
52
|
-
* Closes the column menu.
|
|
53
|
-
*/
|
|
54
|
-
close() {
|
|
55
|
-
this.closeMenu.emit();
|
|
56
|
-
}
|
|
57
51
|
/**
|
|
58
52
|
* @hidden
|
|
59
53
|
*/
|
|
@@ -64,6 +58,12 @@ export class ColumnMenuService {
|
|
|
64
58
|
constructor(menuTabbingService) {
|
|
65
59
|
this.menuTabbingService = menuTabbingService;
|
|
66
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Closes the column menu.
|
|
63
|
+
*/
|
|
64
|
+
close() {
|
|
65
|
+
this.closeMenu.emit();
|
|
66
|
+
}
|
|
67
67
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuService, deps: [{ token: i1.MenuTabbingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
68
68
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuService });
|
|
69
69
|
}
|
|
@@ -31,14 +31,13 @@ export const hasColumnChooser = (settings) => settings.columnChooser !== false;
|
|
|
31
31
|
*/
|
|
32
32
|
export const hasAutoSizeColumn = (settings) => settings.autoSizeColumn;
|
|
33
33
|
/**
|
|
34
|
-
* @hidden
|
|
35
|
-
*/
|
|
34
|
+
* @hidden
|
|
35
|
+
*/
|
|
36
36
|
export const hasAutoSizeAllColumns = (settings) => settings.autoSizeAllColumns;
|
|
37
37
|
/**
|
|
38
38
|
* @hidden
|
|
39
39
|
*/
|
|
40
40
|
export const autoSizeColumn = (grid, service, column) => {
|
|
41
|
-
// eslint-disable-next-line no-unused-expressions
|
|
42
41
|
column ? grid.autoFitColumn(column) : grid.autoFitColumns();
|
|
43
42
|
service.close();
|
|
44
43
|
};
|
|
@@ -36,20 +36,7 @@ import * as i3 from "../../layout/sizing-options.service";
|
|
|
36
36
|
export class DateFilterCellComponent extends DateFilterComponent {
|
|
37
37
|
ctx;
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
40
|
-
* [See example](slug:filter_row#toc-built-in-filter-row-components).
|
|
41
|
-
* @example
|
|
42
|
-
*
|
|
43
|
-
* ```html
|
|
44
|
-
* <kendo-grid-column field="Discontinued">
|
|
45
|
-
* <ng-template kendoGridFilterCellTemplate let-filter let-column="column">
|
|
46
|
-
* <kendo-grid-date-filter-cell
|
|
47
|
-
* [column]="column"
|
|
48
|
-
* [filter]="filter">
|
|
49
|
-
* </kendo-grid-date-filter-cell>
|
|
50
|
-
* </ng-template>
|
|
51
|
-
* </kendo-grid-column>
|
|
52
|
-
* ```
|
|
39
|
+
* Determines if the drop-down filter operators will be displayed. The default value is `true`.
|
|
53
40
|
* @type {boolean}
|
|
54
41
|
* @default true
|
|
55
42
|
*/
|
|
@@ -100,13 +87,11 @@ export class DateFilterCellComponent extends DateFilterComponent {
|
|
|
100
87
|
[topView]="topView"
|
|
101
88
|
[min]="min"
|
|
102
89
|
[max]="max"
|
|
103
|
-
[weekNumber]="weekNumber"
|
|
104
|
-
>
|
|
90
|
+
[weekNumber]="weekNumber">
|
|
105
91
|
<kendo-datepicker-messages
|
|
106
92
|
[toggle]="messageFor('filterDateToggle')"
|
|
107
93
|
[today]="messageFor('filterDateToday')"
|
|
108
|
-
>
|
|
109
|
-
</kendo-datepicker-messages>
|
|
94
|
+
></kendo-datepicker-messages>
|
|
110
95
|
</kendo-datepicker>
|
|
111
96
|
</kendo-grid-filter-wrapper-cell>
|
|
112
97
|
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
|
|
@@ -137,13 +122,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
137
122
|
[topView]="topView"
|
|
138
123
|
[min]="min"
|
|
139
124
|
[max]="max"
|
|
140
|
-
[weekNumber]="weekNumber"
|
|
141
|
-
>
|
|
125
|
+
[weekNumber]="weekNumber">
|
|
142
126
|
<kendo-datepicker-messages
|
|
143
127
|
[toggle]="messageFor('filterDateToggle')"
|
|
144
128
|
[today]="messageFor('filterDateToday')"
|
|
145
|
-
>
|
|
146
|
-
</kendo-datepicker-messages>
|
|
129
|
+
></kendo-datepicker-messages>
|
|
147
130
|
</kendo-datepicker>
|
|
148
131
|
</kendo-grid-filter-wrapper-cell>
|
|
149
132
|
`,
|
|
@@ -99,13 +99,11 @@ export class NumericFilterCellComponent extends NumericFilterComponent {
|
|
|
99
99
|
[max]="max"
|
|
100
100
|
[size]="size"
|
|
101
101
|
[step]="step"
|
|
102
|
-
[placeholder]="placeholder"
|
|
103
|
-
>
|
|
102
|
+
[placeholder]="placeholder">
|
|
104
103
|
<kendo-numerictextbox-messages
|
|
105
104
|
[increment]="messageFor('filterNumericIncrement')"
|
|
106
105
|
[decrement]="messageFor('filterNumericDecrement')"
|
|
107
|
-
>
|
|
108
|
-
</kendo-numerictextbox-messages>
|
|
106
|
+
></kendo-numerictextbox-messages>
|
|
109
107
|
</kendo-numerictextbox>
|
|
110
108
|
</kendo-grid-filter-wrapper-cell>
|
|
111
109
|
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { 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: "component", type: NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }] });
|
|
@@ -136,13 +134,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
136
134
|
[max]="max"
|
|
137
135
|
[size]="size"
|
|
138
136
|
[step]="step"
|
|
139
|
-
[placeholder]="placeholder"
|
|
140
|
-
>
|
|
137
|
+
[placeholder]="placeholder">
|
|
141
138
|
<kendo-numerictextbox-messages
|
|
142
139
|
[increment]="messageFor('filterNumericIncrement')"
|
|
143
140
|
[decrement]="messageFor('filterNumericDecrement')"
|
|
144
|
-
>
|
|
145
|
-
</kendo-numerictextbox-messages>
|
|
141
|
+
></kendo-numerictextbox-messages>
|
|
146
142
|
</kendo-numerictextbox>
|
|
147
143
|
</kendo-grid-filter-wrapper-cell>
|
|
148
144
|
`,
|
|
@@ -80,7 +80,6 @@ export class StringFilterCellComponent extends StringFilterComponent {
|
|
|
80
80
|
[defaultOperator]="operator"
|
|
81
81
|
[showOperators]="showOperators">
|
|
82
82
|
<kendo-textbox
|
|
83
|
-
kendoTextBox
|
|
84
83
|
[size]="size"
|
|
85
84
|
kendoGridFocusable
|
|
86
85
|
kendoFilterInput
|
|
@@ -104,7 +103,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
104
103
|
[defaultOperator]="operator"
|
|
105
104
|
[showOperators]="showOperators">
|
|
106
105
|
<kendo-textbox
|
|
107
|
-
kendoTextBox
|
|
108
106
|
[size]="size"
|
|
109
107
|
kendoGridFocusable
|
|
110
108
|
kendoFilterInput
|
|
@@ -92,7 +92,7 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
|
|
92
92
|
* @hidden
|
|
93
93
|
*/
|
|
94
94
|
onShiftTab(e) {
|
|
95
|
-
if (
|
|
95
|
+
if (!this.menuTabbingService?.isColumnMenu && this.filterService.menuTabbingService.lastFocusable) {
|
|
96
96
|
e.preventDefault();
|
|
97
97
|
this.filterService.menuTabbingService.lastFocusable.focus();
|
|
98
98
|
}
|
|
@@ -72,8 +72,7 @@ export class DateFilterMenuInputComponent {
|
|
|
72
72
|
[currentFilter]="currentFilter"
|
|
73
73
|
[filterService]="filterService"
|
|
74
74
|
[isFirstDropDown]="isFirstDropDown"
|
|
75
|
-
[menuTabbingService]="menuTabbingService"
|
|
76
|
-
>
|
|
75
|
+
[menuTabbingService]="menuTabbingService">
|
|
77
76
|
<kendo-datepicker
|
|
78
77
|
#picker
|
|
79
78
|
kendoFilterInput
|
|
@@ -89,13 +88,11 @@ export class DateFilterMenuInputComponent {
|
|
|
89
88
|
[activeView]="activeView"
|
|
90
89
|
[bottomView]="bottomView"
|
|
91
90
|
[topView]="topView"
|
|
92
|
-
[weekNumber]="weekNumber"
|
|
93
|
-
>
|
|
91
|
+
[weekNumber]="weekNumber">
|
|
94
92
|
<kendo-datepicker-messages
|
|
95
93
|
[toggle]="messageFor('filterDateToggle')"
|
|
96
94
|
[today]="messageFor('filterDateToday')"
|
|
97
|
-
>
|
|
98
|
-
</kendo-datepicker-messages>
|
|
95
|
+
></kendo-datepicker-messages>
|
|
99
96
|
</kendo-datepicker>
|
|
100
97
|
</kendo-grid-filter-menu-input-wrapper>
|
|
101
98
|
`, isInline: true, dependencies: [{ kind: "component", type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
|
|
@@ -113,8 +110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
113
110
|
[currentFilter]="currentFilter"
|
|
114
111
|
[filterService]="filterService"
|
|
115
112
|
[isFirstDropDown]="isFirstDropDown"
|
|
116
|
-
[menuTabbingService]="menuTabbingService"
|
|
117
|
-
>
|
|
113
|
+
[menuTabbingService]="menuTabbingService">
|
|
118
114
|
<kendo-datepicker
|
|
119
115
|
#picker
|
|
120
116
|
kendoFilterInput
|
|
@@ -130,13 +126,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
130
126
|
[activeView]="activeView"
|
|
131
127
|
[bottomView]="bottomView"
|
|
132
128
|
[topView]="topView"
|
|
133
|
-
[weekNumber]="weekNumber"
|
|
134
|
-
>
|
|
129
|
+
[weekNumber]="weekNumber">
|
|
135
130
|
<kendo-datepicker-messages
|
|
136
131
|
[toggle]="messageFor('filterDateToggle')"
|
|
137
132
|
[today]="messageFor('filterDateToday')"
|
|
138
|
-
>
|
|
139
|
-
</kendo-datepicker-messages>
|
|
133
|
+
></kendo-datepicker-messages>
|
|
140
134
|
</kendo-datepicker>
|
|
141
135
|
</kendo-grid-filter-menu-input-wrapper>
|
|
142
136
|
`,
|
|
@@ -96,8 +96,7 @@ export class DateFilterMenuComponent extends DateFilterComponent {
|
|
|
96
96
|
[max]="max"
|
|
97
97
|
[weekNumber]="weekNumber"
|
|
98
98
|
[isFirstDropDown]="true"
|
|
99
|
-
[menuTabbingService]="menuTabbingService"
|
|
100
|
-
>
|
|
99
|
+
[menuTabbingService]="menuTabbingService">
|
|
101
100
|
</kendo-grid-date-filter-menu-input>
|
|
102
101
|
<kendo-dropdownlist
|
|
103
102
|
*ngIf="extra"
|
|
@@ -127,8 +126,7 @@ export class DateFilterMenuComponent extends DateFilterComponent {
|
|
|
127
126
|
[min]="min"
|
|
128
127
|
[max]="max"
|
|
129
128
|
[weekNumber]="weekNumber"
|
|
130
|
-
[menuTabbingService]="menuTabbingService"
|
|
131
|
-
>
|
|
129
|
+
[menuTabbingService]="menuTabbingService">
|
|
132
130
|
</kendo-grid-date-filter-menu-input>
|
|
133
131
|
`, isInline: true, dependencies: [{ kind: "component", type: DateFilterMenuInputComponent, selector: "kendo-grid-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
134
132
|
}
|
|
@@ -153,8 +151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
153
151
|
[max]="max"
|
|
154
152
|
[weekNumber]="weekNumber"
|
|
155
153
|
[isFirstDropDown]="true"
|
|
156
|
-
[menuTabbingService]="menuTabbingService"
|
|
157
|
-
>
|
|
154
|
+
[menuTabbingService]="menuTabbingService">
|
|
158
155
|
</kendo-grid-date-filter-menu-input>
|
|
159
156
|
<kendo-dropdownlist
|
|
160
157
|
*ngIf="extra"
|
|
@@ -184,8 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
184
181
|
[min]="min"
|
|
185
182
|
[max]="max"
|
|
186
183
|
[weekNumber]="weekNumber"
|
|
187
|
-
[menuTabbingService]="menuTabbingService"
|
|
188
|
-
>
|
|
184
|
+
[menuTabbingService]="menuTabbingService">
|
|
189
185
|
</kendo-grid-date-filter-menu-input>
|
|
190
186
|
`,
|
|
191
187
|
standalone: true,
|
|
@@ -113,8 +113,7 @@ export class FilterMenuContainerComponent {
|
|
|
113
113
|
}
|
|
114
114
|
ngAfterViewChecked() {
|
|
115
115
|
if (!this.menuTabbingService.isColumnMenu || (this.isLast && this.isExpanded)) {
|
|
116
|
-
this.menuTabbingService.lastFocusable = this.
|
|
117
|
-
this.resetButton.nativeElement : this.filterButton.nativeElement;
|
|
116
|
+
this.menuTabbingService.lastFocusable = this.resetButton.nativeElement;
|
|
118
117
|
}
|
|
119
118
|
}
|
|
120
119
|
ngOnDestroy() {
|
|
@@ -163,7 +162,6 @@ export class FilterMenuContainerComponent {
|
|
|
163
162
|
if (this.menuTabbingService.firstFocusable && (!this.menuTabbingService.isColumnMenu || this.isLast)) {
|
|
164
163
|
e.preventDefault();
|
|
165
164
|
if (buttonType === 'reset') {
|
|
166
|
-
// eslint-disable-next-line no-unused-expressions
|
|
167
165
|
this.menuTabbingService.firstFocusable.focus();
|
|
168
166
|
}
|
|
169
167
|
else {
|
|
@@ -33,7 +33,7 @@ export class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent
|
|
|
33
33
|
this.ctx = ctx;
|
|
34
34
|
}
|
|
35
35
|
ngAfterViewInit() {
|
|
36
|
-
const shouldFocusFirstFocusable = this.isFirstDropDown && this.filterService
|
|
36
|
+
const shouldFocusFirstFocusable = this.isFirstDropDown && this.filterService?.menuTabbingService;
|
|
37
37
|
const isTabbedInterface = this.menuTabbingService?.isTabbedInterface;
|
|
38
38
|
if (shouldFocusFirstFocusable && !isTabbedInterface) {
|
|
39
39
|
this.filterService.menuTabbingService.firstFocusable = this.firstOperatorDropDown;
|
|
@@ -75,7 +75,7 @@ export class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent
|
|
|
75
75
|
}
|
|
76
76
|
onShiftTab(e) {
|
|
77
77
|
e.stopImmediatePropagation();
|
|
78
|
-
if (
|
|
78
|
+
if (!this.menuTabbingService?.isColumnMenu && this.isFirstDropDown && this.filterService.menuTabbingService.lastFocusable) {
|
|
79
79
|
e.preventDefault();
|
|
80
80
|
this.filterService.menuTabbingService.lastFocusable.focus();
|
|
81
81
|
}
|