@progress/kendo-angular-grid 19.0.0-develop.16 → 19.0.0-develop.18
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/adaptiveness/adaptive-mode.d.ts +12 -0
- package/adaptiveness/adaptive-renderer.component.d.ts +84 -0
- package/column-menu/column-chooser.component.d.ts +4 -0
- package/column-menu/column-list.component.d.ts +9 -3
- package/column-menu/column-menu-item.component.d.ts +38 -2
- package/column-menu/column-menu-item.directive.d.ts +5 -2
- package/column-menu/column-menu.component.d.ts +4 -2
- package/common/adaptiveness.service.d.ts +50 -0
- package/common/single-popup.service.d.ts +3 -1
- package/directives.d.ts +1 -1
- package/editing-directives/external-editing.directive.d.ts +3 -1
- package/esm2022/adaptiveness/adaptive-mode.mjs +5 -0
- package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1106 -0
- package/esm2022/column-menu/column-chooser.component.mjs +13 -11
- package/esm2022/column-menu/column-list.component.mjs +42 -8
- package/esm2022/column-menu/column-menu-autosize-all.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-autosize.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-container.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-filter.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-item.component.mjs +106 -11
- package/esm2022/column-menu/column-menu-item.directive.mjs +14 -5
- package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-position.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-stick.component.mjs +1 -1
- package/esm2022/column-menu/column-menu.component.mjs +60 -41
- package/esm2022/common/adaptiveness.service.mjs +72 -0
- package/esm2022/common/single-popup.service.mjs +9 -3
- package/esm2022/directives.mjs +1 -1
- package/esm2022/editing-directives/external-editing.directive.mjs +28 -14
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +2 -2
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +2 -0
- package/esm2022/filtering/menu/date-filter-menu.component.mjs +4 -0
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +21 -10
- package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +24 -4
- package/esm2022/filtering/menu/filter-menu.component.mjs +44 -29
- package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +4 -0
- package/esm2022/filtering/menu/string-filter-menu.component.mjs +4 -0
- package/esm2022/grid.component.mjs +143 -28
- package/esm2022/grid.module.mjs +1 -1
- package/esm2022/index.mjs +1 -1
- package/esm2022/localization/messages.mjs +62 -2
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +203 -0
- package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +39 -26
- package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +19 -7
- package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +26 -4
- package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +21 -8
- package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +16 -3
- package/esm2022/utils.mjs +0 -13
- package/fesm2022/progress-kendo-angular-grid.mjs +2960 -1360
- package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
- package/filtering/menu/filter-menu-container.component.d.ts +14 -4
- package/filtering/menu/filter-menu-input-wrapper.component.d.ts +8 -3
- package/filtering/menu/filter-menu.component.d.ts +6 -3
- package/grid.component.d.ts +30 -3
- package/grid.module.d.ts +1 -1
- package/index.d.ts +1 -1
- package/localization/messages.d.ts +42 -2
- package/package.json +21 -20
- package/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.d.ts +13 -3
- package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +3 -1
- package/rendering/toolbar/tools/filter-tool-wrapper.component.d.ts +5 -5
- package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +4 -1
- package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +3 -1
- package/rendering/toolbar/tools/sort-toolbar-tool.component.d.ts +4 -0
- package/schematics/ngAdd/index.js +4 -4
- package/utils.d.ts +0 -4
- package/esm2022/column-menu/column-chooser-tool.directive.mjs +0 -160
|
@@ -30,6 +30,7 @@ import { ColumnMenuSortComponent } from './column-menu-sort.component';
|
|
|
30
30
|
import { ColumnMenuContainerComponent } from './column-menu-container.component';
|
|
31
31
|
import { NgClass, NgTemplateOutlet, NgIf } from '@angular/common';
|
|
32
32
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
|
33
|
+
import { AdaptiveGridService } from '../common/adaptiveness.service';
|
|
33
34
|
import * as i0 from "@angular/core";
|
|
34
35
|
import * as i1 from "./../navigation/navigation.service";
|
|
35
36
|
import * as i2 from "../common/single-popup.service";
|
|
@@ -37,6 +38,7 @@ import * as i3 from "./column-menu.service";
|
|
|
37
38
|
import * as i4 from "../common/provider.service";
|
|
38
39
|
import * as i5 from "../common/column-info.service";
|
|
39
40
|
import * as i6 from "../common/id.service";
|
|
41
|
+
import * as i7 from "../common/adaptiveness.service";
|
|
40
42
|
const POPUP_CLASSES = 'k-grid-columnmenu-popup k-column-menu';
|
|
41
43
|
let id = 0;
|
|
42
44
|
const getId = (gridId) => `${gridId}-column-menu-${id++}`;
|
|
@@ -61,6 +63,7 @@ export class ColumnMenuComponent {
|
|
|
61
63
|
cdr;
|
|
62
64
|
columnInfoService;
|
|
63
65
|
idService;
|
|
66
|
+
adaptiveGridService;
|
|
64
67
|
/**
|
|
65
68
|
* @hidden
|
|
66
69
|
*/
|
|
@@ -143,7 +146,7 @@ export class ColumnMenuComponent {
|
|
|
143
146
|
popupRef;
|
|
144
147
|
closeSubscription;
|
|
145
148
|
popupSubs;
|
|
146
|
-
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService, idService) {
|
|
149
|
+
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService, idService, adaptiveGridService) {
|
|
147
150
|
this.navigationService = navigationService;
|
|
148
151
|
this.popupService = popupService;
|
|
149
152
|
this.service = service;
|
|
@@ -152,6 +155,7 @@ export class ColumnMenuComponent {
|
|
|
152
155
|
this.cdr = cdr;
|
|
153
156
|
this.columnInfoService = columnInfoService;
|
|
154
157
|
this.idService = idService;
|
|
158
|
+
this.adaptiveGridService = adaptiveGridService;
|
|
155
159
|
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this, true));
|
|
156
160
|
}
|
|
157
161
|
/**
|
|
@@ -264,44 +268,55 @@ export class ColumnMenuComponent {
|
|
|
264
268
|
e.preventDefault();
|
|
265
269
|
e instanceof KeyboardEvent && e.stopImmediatePropagation();
|
|
266
270
|
}
|
|
267
|
-
this.
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
if (this.popupRef) {
|
|
275
|
-
this.popupSubs?.unsubscribe();
|
|
276
|
-
this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
|
|
277
|
-
this.popupSubs?.unsubscribe();
|
|
278
|
-
this.popupSubs = null;
|
|
279
|
-
this.close(true);
|
|
280
|
-
this.updateAria(ariaRoot);
|
|
281
|
-
});
|
|
282
|
-
this.popupSubs.add(() => this.popupRef.popup.instance.close.subscribe(() => {
|
|
283
|
-
this.popupSubs?.unsubscribe();
|
|
284
|
-
this.popupSubs = this.popupRef = null;
|
|
285
|
-
this.updateAria(ariaRoot);
|
|
286
|
-
}));
|
|
287
|
-
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
|
|
288
|
-
if (popupAriaElement) {
|
|
289
|
-
const popupId = getId(this.idService?.gridId());
|
|
290
|
-
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
291
|
-
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
292
|
-
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
|
|
293
|
-
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
294
|
-
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
295
|
-
}
|
|
296
|
-
if (this.settings.view === 'tabbed') {
|
|
297
|
-
this.renderer.addClass(popupAriaElement, 'k-column-menu-tabbed');
|
|
298
|
-
this.renderer.addClass(popupAriaElement, 'k-column-menu');
|
|
299
|
-
this.cdr.detectChanges();
|
|
300
|
-
this.tabStrip?.selectTab(0);
|
|
271
|
+
if (this.ctx.grid.adaptiveMode === 'auto' && this.adaptiveGridService.windowSize !== 'large') {
|
|
272
|
+
if (!this.ctx.grid.isActionSheetExpanded) {
|
|
273
|
+
this.adaptiveGridService.viewType = 'columnMenu';
|
|
274
|
+
this.adaptiveGridService.columns = this.columns;
|
|
275
|
+
this.adaptiveGridService.columnMenuService = this.service;
|
|
276
|
+
this.adaptiveGridService.column = this.column;
|
|
277
|
+
this.ctx.grid.adaptiveRenderer.actionSheet.toggle(true);
|
|
301
278
|
}
|
|
302
279
|
}
|
|
303
280
|
else {
|
|
304
|
-
this.
|
|
281
|
+
this.expandedFilter = this.getExpandedState(this.settings.filter);
|
|
282
|
+
this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
|
|
283
|
+
this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
|
|
284
|
+
this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASSES);
|
|
285
|
+
// Needed as changes to 'popupRef' and 'popupId' are not reflected
|
|
286
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
287
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
288
|
+
if (this.popupRef) {
|
|
289
|
+
this.popupSubs?.unsubscribe();
|
|
290
|
+
this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
|
|
291
|
+
this.popupSubs?.unsubscribe();
|
|
292
|
+
this.popupSubs = null;
|
|
293
|
+
this.close(true);
|
|
294
|
+
this.updateAria(ariaRoot);
|
|
295
|
+
});
|
|
296
|
+
this.popupSubs.add(() => this.popupRef.popup.instance.close.subscribe(() => {
|
|
297
|
+
this.popupSubs?.unsubscribe();
|
|
298
|
+
this.popupSubs = this.popupRef = null;
|
|
299
|
+
this.updateAria(ariaRoot);
|
|
300
|
+
}));
|
|
301
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
|
|
302
|
+
if (popupAriaElement) {
|
|
303
|
+
const popupId = getId(this.idService?.gridId());
|
|
304
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
305
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
306
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
|
|
307
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
308
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
309
|
+
}
|
|
310
|
+
if (this.settings.view === 'tabbed') {
|
|
311
|
+
this.renderer.addClass(popupAriaElement, 'k-column-menu-tabbed');
|
|
312
|
+
this.renderer.addClass(popupAriaElement, 'k-column-menu');
|
|
313
|
+
this.cdr.detectChanges();
|
|
314
|
+
this.tabStrip?.selectTab(0);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
this.focusRoot();
|
|
319
|
+
}
|
|
305
320
|
}
|
|
306
321
|
}
|
|
307
322
|
/**
|
|
@@ -334,7 +349,7 @@ export class ColumnMenuComponent {
|
|
|
334
349
|
focusRoot() {
|
|
335
350
|
this.isNavigable ? this.navigationService.focusCell(0, this.column.leafIndex) : this.anchor.nativeElement.focus();
|
|
336
351
|
}
|
|
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 });
|
|
352
|
+
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 }, { token: i7.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
338
353
|
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: [
|
|
339
354
|
ColumnMenuService,
|
|
340
355
|
MenuTabbingService
|
|
@@ -380,7 +395,8 @@ export class ColumnMenuComponent {
|
|
|
380
395
|
[showStick]="hasStick"
|
|
381
396
|
[kendoGridColumnMenuItem]="positionItem"
|
|
382
397
|
[service]="service"
|
|
383
|
-
[expanded]="expandedPosition"
|
|
398
|
+
[expanded]="expandedPosition"
|
|
399
|
+
>
|
|
384
400
|
</kendo-grid-columnmenu-position>
|
|
385
401
|
<span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasColumnChooser || hasAutoSizeColumn || hasAutoSizeAllColumns" class="k-separator"></span>
|
|
386
402
|
<kendo-grid-columnmenu-chooser
|
|
@@ -505,7 +521,8 @@ export class ColumnMenuComponent {
|
|
|
505
521
|
</kendo-tabstrip-tab>
|
|
506
522
|
</kendo-tabstrip>
|
|
507
523
|
</ng-template>
|
|
508
|
-
|
|
524
|
+
|
|
525
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { kind: "directive", type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { kind: "component", type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: TabTitleDirective, selector: "[kendoTabTitle]" }, { kind: "directive", type: TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
509
526
|
}
|
|
510
527
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
|
|
511
528
|
type: Component,
|
|
@@ -557,7 +574,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
557
574
|
[showStick]="hasStick"
|
|
558
575
|
[kendoGridColumnMenuItem]="positionItem"
|
|
559
576
|
[service]="service"
|
|
560
|
-
[expanded]="expandedPosition"
|
|
577
|
+
[expanded]="expandedPosition"
|
|
578
|
+
>
|
|
561
579
|
</kendo-grid-columnmenu-position>
|
|
562
580
|
<span [style.borderColor]="'rgba(0, 0, 0, 0.08)'" *ngIf="hasColumnChooser || hasAutoSizeColumn || hasAutoSizeAllColumns" class="k-separator"></span>
|
|
563
581
|
<kendo-grid-columnmenu-chooser
|
|
@@ -682,6 +700,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
682
700
|
</kendo-tabstrip-tab>
|
|
683
701
|
</kendo-tabstrip>
|
|
684
702
|
</ng-template>
|
|
703
|
+
|
|
685
704
|
`,
|
|
686
705
|
standalone: true,
|
|
687
706
|
imports: [
|
|
@@ -694,7 +713,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
694
713
|
}]
|
|
695
714
|
}], ctorParameters: function () { return [{ type: i1.NavigationService }, { type: i2.SinglePopupService }, { type: i3.ColumnMenuService }, { type: i4.ContextService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i5.ColumnInfoService }, { type: i6.IdService, decorators: [{
|
|
696
715
|
type: Optional
|
|
697
|
-
}] }]; }, propDecorators: { standalone: [{
|
|
716
|
+
}] }, { type: i7.AdaptiveGridService }]; }, propDecorators: { standalone: [{
|
|
698
717
|
type: HostBinding,
|
|
699
718
|
args: ['class.k-grid-column-menu-standalone']
|
|
700
719
|
}, {
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Injectable } from "@angular/core";
|
|
6
|
+
import { Subject } from "rxjs";
|
|
7
|
+
import { AdaptiveService } from "@progress/kendo-angular-utils";
|
|
8
|
+
import { ContextService } from "./provider.service";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "./provider.service";
|
|
11
|
+
import * as i2 from "@progress/kendo-angular-utils";
|
|
12
|
+
/**
|
|
13
|
+
* @hidden
|
|
14
|
+
*
|
|
15
|
+
* The AdaptiveGridService is used to provide common information for the ActionSheet used in adaptive mode.
|
|
16
|
+
*/
|
|
17
|
+
export class AdaptiveGridService {
|
|
18
|
+
ctx;
|
|
19
|
+
adaptiveService;
|
|
20
|
+
/**
|
|
21
|
+
* Observable that emits when the ActionSheet's views change animation ends.
|
|
22
|
+
*/
|
|
23
|
+
get animationEnd() {
|
|
24
|
+
return this.animationEndSubject.asObservable();
|
|
25
|
+
}
|
|
26
|
+
columnMenuService;
|
|
27
|
+
columns = [];
|
|
28
|
+
secondaryView;
|
|
29
|
+
viewType;
|
|
30
|
+
popupRef;
|
|
31
|
+
column;
|
|
32
|
+
filterMenuContainer;
|
|
33
|
+
filterMenuContainerComponentRef;
|
|
34
|
+
animationEndSubject = new Subject();
|
|
35
|
+
constructor(ctx, adaptiveService) {
|
|
36
|
+
this.ctx = ctx;
|
|
37
|
+
this.adaptiveService = adaptiveService;
|
|
38
|
+
}
|
|
39
|
+
submitFilter() {
|
|
40
|
+
this.filterMenuContainer.submit();
|
|
41
|
+
this.ctx.grid.adaptiveRenderer.actionSheet.toggle(false);
|
|
42
|
+
this.reset();
|
|
43
|
+
}
|
|
44
|
+
resetFilter() {
|
|
45
|
+
this.filterMenuContainer.reset();
|
|
46
|
+
this.ctx.grid.adaptiveRenderer.actionSheet.toggle(false);
|
|
47
|
+
this.reset();
|
|
48
|
+
}
|
|
49
|
+
reset() {
|
|
50
|
+
this.ctx.grid.adaptiveRenderer.actionSheet.currentView = 1;
|
|
51
|
+
this.filterMenuContainerComponentRef?.destroy();
|
|
52
|
+
this.column = null;
|
|
53
|
+
this.popupRef = null;
|
|
54
|
+
this.filterMenuContainer = null;
|
|
55
|
+
this.viewType = null;
|
|
56
|
+
this.secondaryView = null;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Emits an event to notify that the animation has ended.
|
|
60
|
+
*/
|
|
61
|
+
notifyAnimationEnd() {
|
|
62
|
+
this.animationEndSubject.next();
|
|
63
|
+
}
|
|
64
|
+
get windowSize() {
|
|
65
|
+
return this.adaptiveService.size;
|
|
66
|
+
}
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveGridService, deps: [{ token: i1.ContextService }, { token: i2.AdaptiveService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
68
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveGridService });
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveGridService, decorators: [{
|
|
71
|
+
type: Injectable
|
|
72
|
+
}], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.AdaptiveService }]; } });
|
|
@@ -11,10 +11,12 @@ import { ScrollSyncService } from '../scrolling/scroll-sync.service';
|
|
|
11
11
|
import { isDocumentAvailable } from '@progress/kendo-angular-common';
|
|
12
12
|
import { ContextService } from './provider.service';
|
|
13
13
|
import { skip } from 'rxjs/operators';
|
|
14
|
+
import { AdaptiveGridService } from './adaptiveness.service';
|
|
14
15
|
import * as i0 from "@angular/core";
|
|
15
16
|
import * as i1 from "@progress/kendo-angular-popup";
|
|
16
17
|
import * as i2 from "../scrolling/scroll-sync.service";
|
|
17
18
|
import * as i3 from "./provider.service";
|
|
19
|
+
import * as i4 from "./adaptiveness.service";
|
|
18
20
|
const contains = (node, predicate) => {
|
|
19
21
|
while (node) {
|
|
20
22
|
if (predicate(node)) {
|
|
@@ -47,6 +49,7 @@ export class SinglePopupService {
|
|
|
47
49
|
renderer;
|
|
48
50
|
ngZone;
|
|
49
51
|
ctx;
|
|
52
|
+
adaptiveGridService;
|
|
50
53
|
/**
|
|
51
54
|
* Fires when the filter or column menus are about to close because the user clicked outside their popups.
|
|
52
55
|
* Used to prevent the popup from closing.
|
|
@@ -60,11 +63,12 @@ export class SinglePopupService {
|
|
|
60
63
|
/**
|
|
61
64
|
* @hidden
|
|
62
65
|
*/
|
|
63
|
-
constructor(popupService, renderer, ngZone, scrollSyncService, ctx) {
|
|
66
|
+
constructor(popupService, renderer, ngZone, scrollSyncService, ctx, adaptiveGridService) {
|
|
64
67
|
this.popupService = popupService;
|
|
65
68
|
this.renderer = renderer;
|
|
66
69
|
this.ngZone = ngZone;
|
|
67
70
|
this.ctx = ctx;
|
|
71
|
+
this.adaptiveGridService = adaptiveGridService;
|
|
68
72
|
this.scrollSubscription = scrollSyncService.changes.pipe(skip(1)).subscribe(() => this.destroy());
|
|
69
73
|
}
|
|
70
74
|
/**
|
|
@@ -83,6 +87,7 @@ export class SinglePopupService {
|
|
|
83
87
|
content: template,
|
|
84
88
|
positionMode: "absolute"
|
|
85
89
|
});
|
|
90
|
+
this.adaptiveGridService.popupRef = this.popupRef;
|
|
86
91
|
this.renderer.setAttribute(this.popupRef.popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
|
|
87
92
|
this.attachClose(anchor);
|
|
88
93
|
}
|
|
@@ -102,6 +107,7 @@ export class SinglePopupService {
|
|
|
102
107
|
this.pointerEventsSub = null;
|
|
103
108
|
this.popupRef.close();
|
|
104
109
|
this.popupRef = null;
|
|
110
|
+
this.adaptiveGridService.popupRef = null;
|
|
105
111
|
}
|
|
106
112
|
}
|
|
107
113
|
ngOnDestroy() {
|
|
@@ -141,9 +147,9 @@ export class SinglePopupService {
|
|
|
141
147
|
}));
|
|
142
148
|
});
|
|
143
149
|
}
|
|
144
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SinglePopupService, deps: [{ token: i1.PopupService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i2.ScrollSyncService }, { token: i3.ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
150
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SinglePopupService, deps: [{ token: i1.PopupService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i2.ScrollSyncService }, { token: i3.ContextService }, { token: i4.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
145
151
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SinglePopupService });
|
|
146
152
|
}
|
|
147
153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SinglePopupService, decorators: [{
|
|
148
154
|
type: Injectable
|
|
149
|
-
}], ctorParameters: function () { return [{ type: i1.PopupService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i2.ScrollSyncService }, { type: i3.ContextService }]; } });
|
|
155
|
+
}], ctorParameters: function () { return [{ type: i1.PopupService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i2.ScrollSyncService }, { type: i3.ContextService }, { type: i4.AdaptiveGridService }]; } });
|
package/esm2022/directives.mjs
CHANGED
|
@@ -73,7 +73,7 @@ import { FilterRowComponent } from "./filtering/filter-row.component";
|
|
|
73
73
|
// COLUMN MENU
|
|
74
74
|
import { ColumnMenuChooserItemCheckedDirective } from "./column-menu/column-chooser-item-checked.directive";
|
|
75
75
|
import { ColumnChooserComponent } from "./column-menu/column-chooser.component";
|
|
76
|
-
import { ColumnChooserToolbarDirective } from "./
|
|
76
|
+
import { ColumnChooserToolbarDirective } from "./rendering/toolbar/tools/column-chooser-tool.directive";
|
|
77
77
|
import { ColumnListComponent } from "./column-menu/column-list.component";
|
|
78
78
|
import { ColumnMenuAutoSizeAllColumnsComponent } from "./column-menu/column-menu-autosize-all.component";
|
|
79
79
|
import { ColumnMenuAutoSizeColumnComponent } from "./column-menu/column-menu-autosize.component";
|
|
@@ -9,9 +9,11 @@ import { markAllAsTouched } from './utils';
|
|
|
9
9
|
import { EditingDirectiveBase } from './editing-directive-base';
|
|
10
10
|
import { DialogFormComponent } from '../editing/form';
|
|
11
11
|
import { isPresent } from '@progress/kendo-angular-common';
|
|
12
|
+
import { AdaptiveGridService } from '../common/adaptiveness.service';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
import * as i1 from "../grid.component";
|
|
14
15
|
import * as i2 from "../editing/local-data-changes.service";
|
|
16
|
+
import * as i3 from "../common/adaptiveness.service";
|
|
15
17
|
/**
|
|
16
18
|
* A directive which encapsulates the editing operations of the Grid when using the
|
|
17
19
|
* External Form ([see example](slug:editing_directives_grid#external-editing)).
|
|
@@ -19,6 +21,7 @@ import * as i2 from "../editing/local-data-changes.service";
|
|
|
19
21
|
export class ExternalEditingDirective extends EditingDirectiveBase {
|
|
20
22
|
grid;
|
|
21
23
|
localDataChangesService;
|
|
24
|
+
adaptiveGridService;
|
|
22
25
|
/**
|
|
23
26
|
* The function that creates the `FormGroup` for the edited model.
|
|
24
27
|
*/
|
|
@@ -31,10 +34,11 @@ export class ExternalEditingDirective extends EditingDirectiveBase {
|
|
|
31
34
|
* Allows you to customize the Dialog that contains the edit form.
|
|
32
35
|
*/
|
|
33
36
|
dialogSettings;
|
|
34
|
-
constructor(grid, localDataChangesService) {
|
|
37
|
+
constructor(grid, localDataChangesService, adaptiveGridService) {
|
|
35
38
|
super(grid, localDataChangesService);
|
|
36
39
|
this.grid = grid;
|
|
37
40
|
this.localDataChangesService = localDataChangesService;
|
|
41
|
+
this.adaptiveGridService = adaptiveGridService;
|
|
38
42
|
}
|
|
39
43
|
ngOnInit() {
|
|
40
44
|
super.ngOnInit();
|
|
@@ -46,19 +50,29 @@ export class ExternalEditingDirective extends EditingDirectiveBase {
|
|
|
46
50
|
* Opens a Dialog that contains the edit form.
|
|
47
51
|
*/
|
|
48
52
|
openEditFormDialog(editEventArgs, formGroup, formSettings) {
|
|
49
|
-
const settings = { appendTo: this.grid.dialogContainer, content: DialogFormComponent, title: this.localization.get('externalEditingTitle'), ...this.dialogSettings };
|
|
50
|
-
const dialog = this.dialogService.open(settings);
|
|
51
53
|
const formControls = this.normalizeFormSettings(formGroup, editEventArgs);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (resultType === this.localization.get('externalEditingSaveText')) {
|
|
58
|
-
this.saveHandler({ ...editEventArgs, formGroup });
|
|
54
|
+
if (this.grid.adaptiveMode === 'auto' && this.adaptiveGridService.windowSize !== 'large') {
|
|
55
|
+
if (!this.grid.isActionSheetExpanded) {
|
|
56
|
+
this.adaptiveGridService.viewType = 'externalEditing';
|
|
57
|
+
this.grid.adaptiveRenderer.externalEditingSettings = { formControls, formGroup, formSettings, event: editEventArgs, externalEditingDirective: this };
|
|
58
|
+
this.grid.adaptiveRenderer.actionSheet.toggle(true);
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
const settings = { appendTo: this.grid.dialogContainer, content: DialogFormComponent, title: this.localization.get('externalEditingTitle'), ...this.dialogSettings };
|
|
63
|
+
const dialog = this.dialogService.open(settings);
|
|
64
|
+
this.adaptiveGridService.popupRef = dialog;
|
|
65
|
+
dialog.content.setInput('controls', formControls);
|
|
66
|
+
formSettings && dialog.content.setInput('formSettings', formSettings);
|
|
67
|
+
dialog.content.setInput('formGroup', formGroup);
|
|
68
|
+
dialog.result.subscribe((r) => {
|
|
69
|
+
const resultType = r['text'];
|
|
70
|
+
if (resultType === this.localization.get('externalEditingSaveText')) {
|
|
71
|
+
this.saveHandler({ ...editEventArgs, formGroup });
|
|
72
|
+
}
|
|
73
|
+
dialog.close();
|
|
74
|
+
});
|
|
75
|
+
}
|
|
62
76
|
}
|
|
63
77
|
createModel(args) {
|
|
64
78
|
return this.createFormGroup(args);
|
|
@@ -111,7 +125,7 @@ export class ExternalEditingDirective extends EditingDirectiveBase {
|
|
|
111
125
|
});
|
|
112
126
|
return settings.filter(item => isPresent(item));
|
|
113
127
|
}
|
|
114
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExternalEditingDirective, deps: [{ token: i1.GridComponent }, { token: i2.LocalDataChangesService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
128
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExternalEditingDirective, deps: [{ token: i1.GridComponent }, { token: i2.LocalDataChangesService }, { token: i3.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
115
129
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ExternalEditingDirective, isStandalone: true, selector: "[kendoGridExternalEditing]", inputs: { createFormGroup: ["kendoGridExternalEditing", "createFormGroup"], formSettings: "formSettings", dialogSettings: "dialogSettings" }, usesInheritance: true, ngImport: i0 });
|
|
116
130
|
}
|
|
117
131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExternalEditingDirective, decorators: [{
|
|
@@ -120,7 +134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
120
134
|
selector: '[kendoGridExternalEditing]',
|
|
121
135
|
standalone: true
|
|
122
136
|
}]
|
|
123
|
-
}], ctorParameters: function () { return [{ type: i1.GridComponent }, { type: i2.LocalDataChangesService }]; }, propDecorators: { createFormGroup: [{
|
|
137
|
+
}], ctorParameters: function () { return [{ type: i1.GridComponent }, { type: i2.LocalDataChangesService }, { type: i3.AdaptiveGridService }]; }, propDecorators: { createFormGroup: [{
|
|
124
138
|
type: Input,
|
|
125
139
|
args: ['kendoGridExternalEditing']
|
|
126
140
|
}], formSettings: [{
|
|
@@ -119,7 +119,7 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
|
|
119
119
|
(change)="onChange(item.value, input)"
|
|
120
120
|
(keydown.shift.tab)="onShiftTab($event)"
|
|
121
121
|
></kendo-radiobutton>
|
|
122
|
-
<label class="k-radio-label" [attr.for]="
|
|
122
|
+
<label class="k-radio-label" [attr.for]="input.focusableId">{{item.text}}</label>
|
|
123
123
|
</li>
|
|
124
124
|
</ul>
|
|
125
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"] }] });
|
|
@@ -141,7 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
141
141
|
(change)="onChange(item.value, input)"
|
|
142
142
|
(keydown.shift.tab)="onShiftTab($event)"
|
|
143
143
|
></kendo-radiobutton>
|
|
144
|
-
<label class="k-radio-label" [attr.for]="
|
|
144
|
+
<label class="k-radio-label" [attr.for]="input.focusableId">{{item.text}}</label>
|
|
145
145
|
</li>
|
|
146
146
|
</ul>
|
|
147
147
|
`,
|
|
@@ -76,6 +76,7 @@ export class DateFilterMenuInputComponent {
|
|
|
76
76
|
<kendo-datepicker
|
|
77
77
|
#picker
|
|
78
78
|
kendoFilterInput
|
|
79
|
+
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
79
80
|
[columnLabel]="columnLabel"
|
|
80
81
|
[filterDelay]="0"
|
|
81
82
|
(open)="open(picker)"
|
|
@@ -114,6 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
114
115
|
<kendo-datepicker
|
|
115
116
|
#picker
|
|
116
117
|
kendoFilterInput
|
|
118
|
+
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
117
119
|
[columnLabel]="columnLabel"
|
|
118
120
|
[filterDelay]="0"
|
|
119
121
|
(open)="open(picker)"
|
|
@@ -101,6 +101,8 @@ export class DateFilterMenuComponent extends DateFilterComponent {
|
|
|
101
101
|
<kendo-dropdownlist
|
|
102
102
|
*ngIf="extra"
|
|
103
103
|
kendoFilterMenuDropDown
|
|
104
|
+
[adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
|
|
105
|
+
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
104
106
|
[filterMenuDropDownLabel]="filterMenuDropDownLabel"
|
|
105
107
|
class="k-filter-and"
|
|
106
108
|
[data]="logicOperators"
|
|
@@ -156,6 +158,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
156
158
|
<kendo-dropdownlist
|
|
157
159
|
*ngIf="extra"
|
|
158
160
|
kendoFilterMenuDropDown
|
|
161
|
+
[adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
|
|
162
|
+
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
159
163
|
[filterMenuDropDownLabel]="filterMenuDropDownLabel"
|
|
160
164
|
class="k-filter-and"
|
|
161
165
|
[data]="logicOperators"
|
|
@@ -13,16 +13,21 @@ import { ContextService } from '../../common/provider.service';
|
|
|
13
13
|
import { FilterMenuHostDirective } from './filter-menu-host.directive';
|
|
14
14
|
import { NgSwitch, NgSwitchCase, NgIf, NgTemplateOutlet, NgClass } from '@angular/common';
|
|
15
15
|
import { FormsModule } from '@angular/forms';
|
|
16
|
+
import { AdaptiveGridService } from '../../common/adaptiveness.service';
|
|
16
17
|
import * as i0 from "@angular/core";
|
|
17
18
|
import * as i1 from "../filter.service";
|
|
18
19
|
import * as i2 from "../../common/provider.service";
|
|
19
20
|
import * as i3 from "./menu-tabbing.service";
|
|
20
|
-
import * as i4 from "
|
|
21
|
+
import * as i4 from "../../common/adaptiveness.service";
|
|
22
|
+
import * as i5 from "@angular/forms";
|
|
21
23
|
const isNoValueOperator = operator => (operator === "isnull"
|
|
22
24
|
|| operator === "isnotnull"
|
|
23
25
|
|| operator === "isempty"
|
|
24
26
|
|| operator === "isnotempty");
|
|
25
|
-
|
|
27
|
+
/**
|
|
28
|
+
* @hidden
|
|
29
|
+
*/
|
|
30
|
+
export const validFilters = ({ value, operator }) => !isNullOrEmptyString(value) || isNoValueOperator(operator);
|
|
26
31
|
const trimFilters = filter => {
|
|
27
32
|
filter.filters = filter.filters.filter(validFilters);
|
|
28
33
|
return filter;
|
|
@@ -41,7 +46,10 @@ const findParent = (filters, field, parent) => {
|
|
|
41
46
|
return acc;
|
|
42
47
|
}, undefined);
|
|
43
48
|
};
|
|
44
|
-
|
|
49
|
+
/**
|
|
50
|
+
* @hidden
|
|
51
|
+
*/
|
|
52
|
+
export const parentLogicOfDefault = (filter, field, def = "and") => {
|
|
45
53
|
const parent = findParent(((filter || {}).filters || []), field);
|
|
46
54
|
return isPresent(parent) ? parent.logic : def;
|
|
47
55
|
};
|
|
@@ -53,6 +61,7 @@ export class FilterMenuContainerComponent {
|
|
|
53
61
|
childService;
|
|
54
62
|
ctx;
|
|
55
63
|
cd;
|
|
64
|
+
adaptiveGridService;
|
|
56
65
|
close = new EventEmitter();
|
|
57
66
|
/**
|
|
58
67
|
* The column with which the filter is associated.
|
|
@@ -100,12 +109,14 @@ export class FilterMenuContainerComponent {
|
|
|
100
109
|
subscription;
|
|
101
110
|
_templateContext = {};
|
|
102
111
|
_filter;
|
|
103
|
-
constructor(parentService, childService, ctx, cd, menuTabbingService) {
|
|
112
|
+
constructor(parentService, childService, ctx, cd, menuTabbingService, adaptiveGridService) {
|
|
104
113
|
this.parentService = parentService;
|
|
105
114
|
this.childService = childService;
|
|
106
115
|
this.ctx = ctx;
|
|
107
116
|
this.cd = cd;
|
|
117
|
+
this.adaptiveGridService = adaptiveGridService;
|
|
108
118
|
this.menuTabbingService = menuTabbingService;
|
|
119
|
+
this.adaptiveGridService.filterMenuContainer = this;
|
|
109
120
|
}
|
|
110
121
|
ngOnInit() {
|
|
111
122
|
this.subscription = this.childService.changes.subscribe(filter => this._childFilter = filter);
|
|
@@ -113,7 +124,7 @@ export class FilterMenuContainerComponent {
|
|
|
113
124
|
}
|
|
114
125
|
ngAfterViewChecked() {
|
|
115
126
|
if (!this.menuTabbingService.isColumnMenu || (this.isLast && this.isExpanded)) {
|
|
116
|
-
this.menuTabbingService.lastFocusable = this.resetButton
|
|
127
|
+
this.menuTabbingService.lastFocusable = this.resetButton?.nativeElement;
|
|
117
128
|
}
|
|
118
129
|
}
|
|
119
130
|
ngOnDestroy() {
|
|
@@ -175,7 +186,7 @@ export class FilterMenuContainerComponent {
|
|
|
175
186
|
get filterText() {
|
|
176
187
|
return this.ctx.localization.get("filterFilterButton");
|
|
177
188
|
}
|
|
178
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, deps: [{ token: i1.FilterService, skipSelf: true }, { token: i1.FilterService }, { token: i2.ContextService }, { token: i0.ChangeDetectorRef }, { token: i3.MenuTabbingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
189
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, deps: [{ token: i1.FilterService, skipSelf: true }, { token: i1.FilterService }, { token: i2.ContextService }, { token: i0.ChangeDetectorRef }, { token: i3.MenuTabbingService }, { token: i4.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
179
190
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterMenuContainerComponent, isStandalone: true, selector: "kendo-grid-filter-menu-container", inputs: { column: "column", isLast: "isLast", isExpanded: "isExpanded", menuTabbingService: "menuTabbingService", filter: "filter", actionsClass: "actionsClass" }, outputs: { close: "close" }, providers: [
|
|
180
191
|
FilterService,
|
|
181
192
|
MenuTabbingService
|
|
@@ -202,7 +213,7 @@ export class FilterMenuContainerComponent {
|
|
|
202
213
|
</ng-template>
|
|
203
214
|
</ng-container>
|
|
204
215
|
</ng-container>
|
|
205
|
-
<div [ngClass]="actionsClass">
|
|
216
|
+
<div *ngIf="!ctx.grid?.isActionSheetExpanded" [ngClass]="actionsClass">
|
|
206
217
|
<button #filterButton
|
|
207
218
|
type="submit"
|
|
208
219
|
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
@@ -216,7 +227,7 @@ export class FilterMenuContainerComponent {
|
|
|
216
227
|
</div>
|
|
217
228
|
</div>
|
|
218
229
|
</form>
|
|
219
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type:
|
|
230
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: FilterMenuHostDirective, selector: "[kendoFilterMenuHost]", inputs: ["filterService", "menuTabbingService"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
220
231
|
}
|
|
221
232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, decorators: [{
|
|
222
233
|
type: Component,
|
|
@@ -249,7 +260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
249
260
|
</ng-template>
|
|
250
261
|
</ng-container>
|
|
251
262
|
</ng-container>
|
|
252
|
-
<div [ngClass]="actionsClass">
|
|
263
|
+
<div *ngIf="!ctx.grid?.isActionSheetExpanded" [ngClass]="actionsClass">
|
|
253
264
|
<button #filterButton
|
|
254
265
|
type="submit"
|
|
255
266
|
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
@@ -269,7 +280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
269
280
|
}]
|
|
270
281
|
}], ctorParameters: function () { return [{ type: i1.FilterService, decorators: [{
|
|
271
282
|
type: SkipSelf
|
|
272
|
-
}] }, { type: i1.FilterService }, { type: i2.ContextService }, { type: i0.ChangeDetectorRef }, { type: i3.MenuTabbingService }]; }, propDecorators: { close: [{
|
|
283
|
+
}] }, { type: i1.FilterService }, { type: i2.ContextService }, { type: i0.ChangeDetectorRef }, { type: i3.MenuTabbingService }, { type: i4.AdaptiveGridService }]; }, propDecorators: { close: [{
|
|
273
284
|
type: Output
|
|
274
285
|
}], column: [{
|
|
275
286
|
type: Input
|