@progress/kendo-angular-grid 19.0.0-develop.3 → 19.0.0-develop.31
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/codemods/template-transformer/index.js +94 -0
- package/codemods/utils.js +553 -0
- package/codemods/v19/grid-kendogridgroupbinding.js +51 -0
- package/column-menu/column-chooser.component.d.ts +4 -0
- package/column-menu/column-list.component.d.ts +10 -3
- package/column-menu/column-menu-item.component.d.ts +48 -3
- package/column-menu/column-menu-item.directive.d.ts +5 -2
- package/column-menu/column-menu.component.d.ts +4 -2
- package/columns/column-base.d.ts +5 -0
- package/columns/span-column.component.d.ts +2 -2
- package/common/adaptiveness.service.d.ts +50 -0
- package/common/single-popup.service.d.ts +3 -1
- package/common/toolbar-tool-base.directive.d.ts +26 -0
- package/directives.d.ts +12 -5
- package/dragdrop/drag-hint.service.d.ts +3 -2
- package/editing/add-command-tool.directive.d.ts +7 -6
- package/editing/cancel-command-tool.directive.d.ts +38 -0
- package/editing/edit-command-tool.directive.d.ts +38 -0
- package/editing/edit.service.d.ts +1 -1
- package/editing/remove-command-tool.directive.d.ts +39 -0
- package/editing/save-command-tool.directive.d.ts +38 -0
- package/editing/toolbar-editing-tool-base.directive.d.ts +29 -0
- package/editing-directives/editing-directive-base.d.ts +4 -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 +1108 -0
- package/esm2022/column-menu/column-chooser.component.mjs +13 -11
- package/esm2022/column-menu/column-list.component.mjs +51 -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 +123 -12
- 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 +68 -44
- package/esm2022/column-resizing/column-handle.directive.mjs +2 -2
- package/esm2022/columns/column-base.mjs +9 -0
- package/esm2022/columns/columns-container.mjs +1 -1
- package/esm2022/columns/span-column.component.mjs +9 -9
- package/esm2022/common/adaptiveness.service.mjs +72 -0
- package/esm2022/common/single-popup.service.mjs +9 -3
- package/esm2022/common/toolbar-tool-base.directive.mjs +81 -0
- package/esm2022/directives.mjs +18 -3
- package/esm2022/dragdrop/drag-hint.service.mjs +7 -4
- package/esm2022/editing/add-command-tool.directive.mjs +12 -15
- package/esm2022/editing/cancel-command-tool.directive.mjs +64 -0
- package/esm2022/editing/edit-command-tool.directive.mjs +59 -0
- package/esm2022/editing/form/form-formfield.component.mjs +1 -1
- package/esm2022/editing/remove-command-tool.directive.mjs +60 -0
- package/esm2022/editing/remove-command.directive.mjs +1 -0
- package/esm2022/editing/save-command-tool.directive.mjs +64 -0
- package/esm2022/editing/toolbar-editing-tool-base.directive.mjs +94 -0
- package/esm2022/editing-directives/editing-directive-base.mjs +5 -2
- package/esm2022/editing-directives/external-editing.directive.mjs +28 -14
- package/esm2022/excel/excel-command-tool.directive.mjs +12 -17
- package/esm2022/filtering/cell/autocomplete-filter-cell.component.mjs +1 -1
- package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +1 -1
- package/esm2022/filtering/cell/date-filter-cell.component.mjs +1 -1
- package/esm2022/filtering/cell/filter-cell-operators.component.mjs +1 -1
- package/esm2022/filtering/filter-input.directive.mjs +14 -2
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +4 -2
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +5 -1
- package/esm2022/filtering/menu/date-filter-menu.component.mjs +7 -1
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +21 -10
- package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +27 -5
- package/esm2022/filtering/menu/filter-menu.component.mjs +44 -29
- package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +2 -0
- package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +7 -1
- package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +2 -0
- package/esm2022/filtering/menu/string-filter-menu.component.mjs +11 -2
- package/esm2022/grid.component.mjs +358 -82
- package/esm2022/grid.module.mjs +114 -101
- package/esm2022/index.mjs +10 -1
- package/esm2022/localization/messages.mjs +104 -2
- package/esm2022/navigation/navigation.service.mjs +1 -1
- package/esm2022/navigation/toolbar-tool-name.mjs +17 -0
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/pdf/pdf-command-tool.directive.mjs +12 -15
- package/esm2022/rendering/cell.component.mjs +4 -4
- package/esm2022/rendering/header/header.component.mjs +1 -1
- package/esm2022/rendering/list.component.mjs +1 -1
- package/esm2022/rendering/table-body.component.mjs +11 -3
- package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +203 -0
- package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +61 -34
- package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +29 -8
- package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +73 -8
- package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +46 -20
- package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +24 -8
- package/esm2022/row-reordering/row-reorder.service.mjs +15 -0
- package/esm2022/selection/selection.service.mjs +11 -0
- package/esm2022/state-management/grid-state.models.mjs +26 -0
- package/esm2022/state-management/redo-command-tool.mjs +66 -0
- package/esm2022/state-management/undo-command-tool.mjs +66 -0
- package/esm2022/state-management/undo-redo.directive.mjs +178 -0
- package/esm2022/state-management/undo-redo.service.mjs +22 -0
- package/esm2022/state-management/undo-redo.stack.mjs +232 -0
- package/esm2022/utils.mjs +13 -13
- package/excel/excel-command-tool.directive.d.ts +5 -5
- package/fesm2022/progress-kendo-angular-grid.mjs +4672 -1798
- package/filtering/filter-input.directive.d.ts +1 -0
- 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/filtering/menu/numeric-filter-menu-input.component.d.ts +1 -1
- package/filtering/menu/string-filter-menu-input.component.d.ts +1 -1
- package/filtering/menu/string-filter-menu.component.d.ts +1 -0
- package/grid.component.d.ts +86 -33
- package/grid.module.d.ts +107 -100
- package/index.d.ts +9 -1
- package/localization/messages.d.ts +70 -2
- package/navigation/toolbar-tool-name.d.ts +17 -0
- package/package.json +36 -20
- package/pdf/pdf-command-tool.directive.d.ts +6 -5
- package/rendering/cell.component.d.ts +1 -1
- package/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.d.ts +17 -6
- package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +9 -1
- package/rendering/toolbar/tools/filter-tool-wrapper.component.d.ts +6 -5
- package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +11 -2
- package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +9 -1
- package/rendering/toolbar/tools/sort-toolbar-tool.component.d.ts +5 -1
- package/row-reordering/row-reorder.service.d.ts +2 -0
- package/schematics/ngAdd/index.js +4 -4
- package/selection/selection.service.d.ts +1 -0
- package/state-management/grid-state.models.d.ts +58 -0
- package/state-management/redo-command-tool.d.ts +38 -0
- package/state-management/undo-command-tool.d.ts +38 -0
- package/state-management/undo-redo.directive.d.ts +51 -0
- package/state-management/undo-redo.service.d.ts +19 -0
- package/state-management/undo-redo.stack.d.ts +104 -0
- package/utils.d.ts +11 -5
- package/esm2022/column-menu/column-chooser-tool.directive.mjs +0 -172
|
@@ -2,14 +2,16 @@
|
|
|
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 { Directive } from '@angular/core';
|
|
5
|
+
import { ChangeDetectorRef, Directive, NgZone } from '@angular/core';
|
|
6
6
|
import { ToolBarButtonComponent } from '@progress/kendo-angular-toolbar';
|
|
7
|
-
import { Subscription } from 'rxjs';
|
|
8
|
-
import { fileExcelIcon } from '@progress/kendo-svg-icons';
|
|
9
7
|
import { ExcelService } from './excel.service';
|
|
8
|
+
import { ContextService } from '../common/provider.service';
|
|
9
|
+
import { ToolbarToolBase } from '../common/toolbar-tool-base.directive';
|
|
10
|
+
import { ToolbarToolName } from '../navigation/toolbar-tool-name';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "./excel.service";
|
|
12
13
|
import * as i2 from "@progress/kendo-angular-toolbar";
|
|
14
|
+
import * as i3 from "../common/provider.service";
|
|
13
15
|
/**
|
|
14
16
|
* Represents the `export-to-Excel` toolbar tool of the Grid.
|
|
15
17
|
* You can apply this directive to any `kendo-toolbar-button` element inside a
|
|
@@ -30,22 +32,15 @@ import * as i2 from "@progress/kendo-angular-toolbar";
|
|
|
30
32
|
* </kendo-grid>
|
|
31
33
|
* ```
|
|
32
34
|
*/
|
|
33
|
-
export class ExcelCommandToolbarDirective {
|
|
35
|
+
export class ExcelCommandToolbarDirective extends ToolbarToolBase {
|
|
34
36
|
excelService;
|
|
35
|
-
host
|
|
36
|
-
|
|
37
|
-
constructor(excelService, host) {
|
|
37
|
+
constructor(excelService, host, ctx, zone, cdr) {
|
|
38
|
+
super(host, ToolbarToolName.excelExport, ctx, zone, cdr);
|
|
38
39
|
this.excelService = excelService;
|
|
39
|
-
this.host = host;
|
|
40
40
|
}
|
|
41
41
|
ngOnInit() {
|
|
42
|
-
|
|
42
|
+
super.ngOnInit();
|
|
43
43
|
this.host.className = 'k-grid-excel';
|
|
44
|
-
this.host.svgIcon = fileExcelIcon;
|
|
45
|
-
this.host.icon = 'file-excel';
|
|
46
|
-
}
|
|
47
|
-
ngOnDestroy() {
|
|
48
|
-
this.clickSub.unsubscribe();
|
|
49
44
|
}
|
|
50
45
|
/**
|
|
51
46
|
* @hidden
|
|
@@ -54,8 +49,8 @@ export class ExcelCommandToolbarDirective {
|
|
|
54
49
|
e.preventDefault();
|
|
55
50
|
this.excelService.exportClick.emit();
|
|
56
51
|
}
|
|
57
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelCommandToolbarDirective, deps: [{ token: i1.ExcelService }, { token: i2.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
58
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ExcelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridExcelTool]", ngImport: i0 });
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelCommandToolbarDirective, deps: [{ token: i1.ExcelService }, { token: i2.ToolBarButtonComponent }, { token: i3.ContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
53
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ExcelCommandToolbarDirective, isStandalone: true, selector: "[kendoGridExcelTool]", usesInheritance: true, ngImport: i0 });
|
|
59
54
|
}
|
|
60
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelCommandToolbarDirective, decorators: [{
|
|
61
56
|
type: Directive,
|
|
@@ -63,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
63
58
|
selector: '[kendoGridExcelTool]',
|
|
64
59
|
standalone: true
|
|
65
60
|
}]
|
|
66
|
-
}], ctorParameters: function () { return [{ type: i1.ExcelService }, { type: i2.ToolBarButtonComponent }]; } });
|
|
61
|
+
}], ctorParameters: function () { return [{ type: i1.ExcelService }, { type: i2.ToolBarButtonComponent }, { type: i3.ContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; } });
|
|
@@ -79,7 +79,7 @@ export class AutoCompleteFilterCellComponent extends BaseFilterCellComponent {
|
|
|
79
79
|
[value]="currentFilter?.value">
|
|
80
80
|
</kendo-autocomplete>
|
|
81
81
|
</kendo-grid-filter-wrapper-cell>
|
|
82
|
-
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "
|
|
82
|
+
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoAutoComplete"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
83
83
|
}
|
|
84
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
|
|
85
85
|
type: Component,
|
|
@@ -81,7 +81,7 @@ export class BooleanFilterCellComponent extends BooleanFilterComponent {
|
|
|
81
81
|
[value]="currentFilter?.value">
|
|
82
82
|
</kendo-dropdownlist>
|
|
83
83
|
</kendo-grid-filter-wrapper-cell>
|
|
84
|
-
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "
|
|
84
|
+
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "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: 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"] }] });
|
|
85
85
|
}
|
|
86
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
@@ -94,7 +94,7 @@ export class DateFilterCellComponent extends DateFilterComponent {
|
|
|
94
94
|
></kendo-datepicker-messages>
|
|
95
95
|
</kendo-datepicker>
|
|
96
96
|
</kendo-grid-filter-wrapper-cell>
|
|
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", "
|
|
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", "adaptiveTitle", "adaptiveSubtitle", "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" }] });
|
|
98
98
|
}
|
|
99
99
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterCellComponent, decorators: [{
|
|
100
100
|
type: Component,
|
|
@@ -175,7 +175,7 @@ export class FilterCellOperatorsComponent {
|
|
|
175
175
|
[size]="size"
|
|
176
176
|
(click)="clearClick()"
|
|
177
177
|
(keydown)="clearKeydown($event)"></button>
|
|
178
|
-
`, isInline: true, dependencies: [{ 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", "
|
|
178
|
+
`, isInline: true, dependencies: [{ 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", "adaptiveTitle", "adaptiveSubtitle", "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: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
|
|
179
179
|
}
|
|
180
180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
|
|
181
181
|
type: Component,
|
|
@@ -13,6 +13,7 @@ import * as i0 from "@angular/core";
|
|
|
13
13
|
* @hidden
|
|
14
14
|
*/
|
|
15
15
|
export class FilterInputDirective {
|
|
16
|
+
ngZone;
|
|
16
17
|
element;
|
|
17
18
|
renderer;
|
|
18
19
|
change = new EventEmitter();
|
|
@@ -31,12 +32,19 @@ export class FilterInputDirective {
|
|
|
31
32
|
changeRequestsSubscription;
|
|
32
33
|
unsubscribeEvents;
|
|
33
34
|
constructor(valueAccessors, ngZone, element, renderer) {
|
|
35
|
+
this.ngZone = ngZone;
|
|
34
36
|
this.element = element;
|
|
35
37
|
this.renderer = renderer;
|
|
36
38
|
this.accessor = valueAccessors[0];
|
|
37
39
|
ngZone.runOutsideAngular(() => {
|
|
38
40
|
const unsubscribeStart = renderer.listen(element.nativeElement, 'compositionstart', () => this.composing = true);
|
|
39
|
-
const unsubscribeEnd = renderer.listen(element.nativeElement, 'compositionend', () =>
|
|
41
|
+
const unsubscribeEnd = renderer.listen(element.nativeElement, 'compositionend', (event) => {
|
|
42
|
+
this.composing = false;
|
|
43
|
+
const value = event.target?.value;
|
|
44
|
+
this.filterDelay > 0 ?
|
|
45
|
+
this.changeRequests.next(value) :
|
|
46
|
+
this.change.emit(value);
|
|
47
|
+
});
|
|
40
48
|
this.unsubscribeEvents = () => {
|
|
41
49
|
unsubscribeStart();
|
|
42
50
|
unsubscribeEnd();
|
|
@@ -63,7 +71,11 @@ export class FilterInputDirective {
|
|
|
63
71
|
subscribeChanges() {
|
|
64
72
|
this.changeRequestsSubscription = this.changeRequests
|
|
65
73
|
.pipe(debounceTime(this.filterDelay), filter(() => !this.composing))
|
|
66
|
-
.subscribe(x =>
|
|
74
|
+
.subscribe((x) => {
|
|
75
|
+
this.ngZone.run(() => {
|
|
76
|
+
this.change.emit(x);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
67
79
|
}
|
|
68
80
|
unsubscribeChanges() {
|
|
69
81
|
if (this.changeRequestsSubscription) {
|
|
@@ -113,13 +113,14 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
|
|
113
113
|
kendoFilterMenuRadioButton
|
|
114
114
|
[columnLabel]="columnLabel"
|
|
115
115
|
#input
|
|
116
|
+
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
116
117
|
[name]="idPrefix"
|
|
117
118
|
[checked]="isSelected(item.value)"
|
|
118
119
|
[attr.id]="radioId(item.value)"
|
|
119
120
|
(change)="onChange(item.value, input)"
|
|
120
121
|
(keydown.shift.tab)="onShiftTab($event)"
|
|
121
122
|
></kendo-radiobutton>
|
|
122
|
-
<label class="k-radio-label" [attr.for]="
|
|
123
|
+
<label class="k-radio-label" [attr.for]="input.focusableId">{{item.text}}</label>
|
|
123
124
|
</li>
|
|
124
125
|
</ul>
|
|
125
126
|
`, 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"] }] });
|
|
@@ -135,13 +136,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
135
136
|
kendoFilterMenuRadioButton
|
|
136
137
|
[columnLabel]="columnLabel"
|
|
137
138
|
#input
|
|
139
|
+
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
138
140
|
[name]="idPrefix"
|
|
139
141
|
[checked]="isSelected(item.value)"
|
|
140
142
|
[attr.id]="radioId(item.value)"
|
|
141
143
|
(change)="onChange(item.value, input)"
|
|
142
144
|
(keydown.shift.tab)="onShiftTab($event)"
|
|
143
145
|
></kendo-radiobutton>
|
|
144
|
-
<label class="k-radio-label" [attr.for]="
|
|
146
|
+
<label class="k-radio-label" [attr.for]="input.focusableId">{{item.text}}</label>
|
|
145
147
|
</li>
|
|
146
148
|
</ul>
|
|
147
149
|
`,
|
|
@@ -76,6 +76,8 @@ export class DateFilterMenuInputComponent {
|
|
|
76
76
|
<kendo-datepicker
|
|
77
77
|
#picker
|
|
78
78
|
kendoFilterInput
|
|
79
|
+
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
80
|
+
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
79
81
|
[columnLabel]="columnLabel"
|
|
80
82
|
[filterDelay]="0"
|
|
81
83
|
(open)="open(picker)"
|
|
@@ -95,7 +97,7 @@ export class DateFilterMenuInputComponent {
|
|
|
95
97
|
></kendo-datepicker-messages>
|
|
96
98
|
</kendo-datepicker>
|
|
97
99
|
</kendo-grid-filter-menu-input-wrapper>
|
|
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", "
|
|
100
|
+
`, 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", "adaptiveTitle", "adaptiveSubtitle", "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" }] });
|
|
99
101
|
}
|
|
100
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuInputComponent, decorators: [{
|
|
101
103
|
type: Component,
|
|
@@ -114,6 +116,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
114
116
|
<kendo-datepicker
|
|
115
117
|
#picker
|
|
116
118
|
kendoFilterInput
|
|
119
|
+
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
120
|
+
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
117
121
|
[columnLabel]="columnLabel"
|
|
118
122
|
[filterDelay]="0"
|
|
119
123
|
(open)="open(picker)"
|
|
@@ -101,6 +101,9 @@ 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"
|
|
106
|
+
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
104
107
|
[filterMenuDropDownLabel]="filterMenuDropDownLabel"
|
|
105
108
|
class="k-filter-and"
|
|
106
109
|
[data]="logicOperators"
|
|
@@ -128,7 +131,7 @@ export class DateFilterMenuComponent extends DateFilterComponent {
|
|
|
128
131
|
[weekNumber]="weekNumber"
|
|
129
132
|
[menuTabbingService]="menuTabbingService">
|
|
130
133
|
</kendo-grid-date-filter-menu-input>
|
|
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", "
|
|
134
|
+
`, 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", "adaptiveTitle", "adaptiveSubtitle", "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"] }] });
|
|
132
135
|
}
|
|
133
136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
|
|
134
137
|
type: Component,
|
|
@@ -156,6 +159,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
156
159
|
<kendo-dropdownlist
|
|
157
160
|
*ngIf="extra"
|
|
158
161
|
kendoFilterMenuDropDown
|
|
162
|
+
[adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
|
|
163
|
+
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
164
|
+
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
159
165
|
[filterMenuDropDownLabel]="filterMenuDropDownLabel"
|
|
160
166
|
class="k-filter-and"
|
|
161
167
|
[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
|
|
@@ -10,36 +10,52 @@ import { FilterInputWrapperComponent } from "../filter-input-wrapper.component";
|
|
|
10
10
|
import { replaceMessagePlaceholder } from '../../utils';
|
|
11
11
|
import { ContextService } from '../../common/provider.service';
|
|
12
12
|
import { FilterMenuDropDownListDirective } from './filter-menu-dropdownlist.directive';
|
|
13
|
+
import { AdaptiveGridService } from '../../common/adaptiveness.service';
|
|
14
|
+
import { Subscription } from 'rxjs';
|
|
13
15
|
import * as i0 from "@angular/core";
|
|
14
16
|
import * as i1 from "../../common/provider.service";
|
|
17
|
+
import * as i2 from "../../common/adaptiveness.service";
|
|
15
18
|
/**
|
|
16
19
|
* @hidden
|
|
17
20
|
*/
|
|
18
21
|
export class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent {
|
|
19
22
|
ctx;
|
|
23
|
+
adaptiveGridService;
|
|
20
24
|
filterService;
|
|
21
25
|
isFirstDropDown;
|
|
22
26
|
menuTabbingService;
|
|
23
27
|
firstOperatorDropDown;
|
|
24
28
|
_currentFilter;
|
|
29
|
+
subs = new Subscription();
|
|
25
30
|
/**
|
|
26
31
|
* @hidden
|
|
27
32
|
*/
|
|
28
33
|
get hostClasses() {
|
|
29
34
|
return false;
|
|
30
35
|
}
|
|
31
|
-
constructor(ctx) {
|
|
36
|
+
constructor(ctx, adaptiveGridService) {
|
|
32
37
|
super(null);
|
|
33
38
|
this.ctx = ctx;
|
|
39
|
+
this.adaptiveGridService = adaptiveGridService;
|
|
34
40
|
}
|
|
35
41
|
ngAfterViewInit() {
|
|
36
42
|
const shouldFocusFirstFocusable = this.isFirstDropDown && this.filterService?.menuTabbingService;
|
|
37
43
|
const isTabbedInterface = this.menuTabbingService?.isTabbedInterface;
|
|
38
44
|
if (shouldFocusFirstFocusable && !isTabbedInterface) {
|
|
39
45
|
this.filterService.menuTabbingService.firstFocusable = this.firstOperatorDropDown;
|
|
40
|
-
this.
|
|
46
|
+
if (this.ctx.grid?.isActionSheetExpanded) {
|
|
47
|
+
this.subs.add(this.adaptiveGridService.animationEnd.subscribe(() => {
|
|
48
|
+
this.firstOperatorDropDown.focus();
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.firstOperatorDropDown.focus();
|
|
53
|
+
}
|
|
41
54
|
}
|
|
42
55
|
}
|
|
56
|
+
ngOnDestroy() {
|
|
57
|
+
this.subs?.unsubscribe();
|
|
58
|
+
}
|
|
43
59
|
operatorChange(dataItem) {
|
|
44
60
|
this.currentOperator = dataItem;
|
|
45
61
|
}
|
|
@@ -85,10 +101,13 @@ export class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent
|
|
|
85
101
|
const columnName = this.column ? this.column.title || this.column.field : '';
|
|
86
102
|
return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
|
|
87
103
|
}
|
|
88
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuInputWrapperComponent, deps: [{ token: i1.ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuInputWrapperComponent, deps: [{ token: i1.ContextService }, { token: i2.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
105
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterMenuInputWrapperComponent, isStandalone: true, selector: "kendo-grid-filter-menu-input-wrapper", inputs: { filterService: "filterService", isFirstDropDown: "isFirstDropDown", menuTabbingService: "menuTabbingService", currentFilter: "currentFilter" }, viewQueries: [{ propertyName: "firstOperatorDropDown", first: true, predicate: DropDownListComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
90
106
|
<kendo-dropdownlist
|
|
91
107
|
kendoFilterMenuDropDown
|
|
108
|
+
[adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
|
|
109
|
+
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
110
|
+
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
92
111
|
[filterMenuDropDownLabel]="filterMenuDropDownLabel"
|
|
93
112
|
[data]="operators"
|
|
94
113
|
(valueChange)="operatorChange($event)"
|
|
@@ -99,7 +118,7 @@ export class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent
|
|
|
99
118
|
(keydown.shift.tab)="onShiftTab($event)">
|
|
100
119
|
</kendo-dropdownlist>
|
|
101
120
|
<ng-content></ng-content>
|
|
102
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "
|
|
121
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "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"] }] });
|
|
103
122
|
}
|
|
104
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuInputWrapperComponent, decorators: [{
|
|
105
124
|
type: Component,
|
|
@@ -108,6 +127,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
108
127
|
template: `
|
|
109
128
|
<kendo-dropdownlist
|
|
110
129
|
kendoFilterMenuDropDown
|
|
130
|
+
[adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
|
|
131
|
+
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
132
|
+
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
111
133
|
[filterMenuDropDownLabel]="filterMenuDropDownLabel"
|
|
112
134
|
[data]="operators"
|
|
113
135
|
(valueChange)="operatorChange($event)"
|
|
@@ -122,7 +144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
122
144
|
standalone: true,
|
|
123
145
|
imports: [DropDownListComponent, FilterMenuDropDownListDirective]
|
|
124
146
|
}]
|
|
125
|
-
}], ctorParameters: function () { return [{ type: i1.ContextService }]; }, propDecorators: { filterService: [{
|
|
147
|
+
}], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.AdaptiveGridService }]; }, propDecorators: { filterService: [{
|
|
126
148
|
type: Input
|
|
127
149
|
}], isFirstDropDown: [{
|
|
128
150
|
type: Input
|